c55dfb10da84665c720aae5c2abf7217ea33585e
1 #ifndef _XHCI_MTK_SCHEDULER_H
2 #define _XHCI_MTK_SCHEDULER_H
10 #define SS_BW_BOUND 51000
11 #define HS_BW_BOUND 6144
13 #define USB_EP_CONTROL 0
18 #define USB_SPEED_LOW 1
19 #define USB_SPEED_FULL 2
20 #define USB_SPEED_HIGH 3
21 #define USB_SPEED_SUPER 5
23 /* mtk scheduler bitmasks */
24 #define BPKTS(p) ((p) & 0x3f)
25 #define BCSCOUNT(p) (((p) & 0x7) << 8)
26 #define BBM(p) ((p) << 11)
27 #define BOFFSET(p) ((p) & 0x3fff)
28 #define BREPEAT(p) (((p) & 0x7fff) << 16)
32 typedef unsigned int mtk_u32
;
33 typedef unsigned long long mtk_u64
;
36 #define NULL ((void *)0)
38 struct mtk_xhci_ep_ctx
{
43 /* offset 0x14 - 0x1f reserved for HC internal use */
67 int bw_cost
; //bandwidth cost in each repeat; including overhead
68 mtk_u32
*ep
; //address of usb_endpoint pointer
71 int mtk_xhci_scheduler_init(void);
72 int mtk_xhci_scheduler_add_ep(int dev_speed
, int is_in
, int isTT
, int ep_type
, int maxp
, int interval
, int burst
73 , int mult
, mtk_u32
*ep
, mtk_u32
*ep_ctx
, struct sch_ep
*sch_ep
);
74 struct sch_ep
* mtk_xhci_scheduler_remove_ep(int dev_speed
, int is_in
, int isTT
, int ep_type
, mtk_u32
*ep
);