Hi Ikjoon, Can I put this patch into my patch series about bandwidth scheduler? the series also include "[RFC PATCH v3 1/5] usb: xhci-mtk: improve bandwidth scheduling with multi-TT", put them together will help to fix dependence issue, meanwhile I try to build xhci-mtk-sch.c into xhci-mtk.ko instead of xhci-hcd.ko. Thanks a lot On Wed, 2021-01-13 at 18:05 +0800, Ikjoon Jang wrote: > xhci-mtk needs XHCI_MTK_HOST quirk functions in add_endpoint() and > drop_endpoint() to handle its own sw bandwidth management. > > It stores bandwidth data into an internal table every time > add_endpoint() is called, and drops those in drop_endpoint(). > But when bandwidth allocation fails at one endpoint, all earlier > allocation from the same interface could still remain at the table. > > This patch moves bandwidth management codes to check_bandwidth() and > reset_bandwidth() path. To do so, this patch also adds those functions > to xhci_driver_overrides and lets mtk-xhci to release all failed > endpoints in reset_bandwidth() path. > > Fixes: 08e469de87a2 ("usb: xhci-mtk: supports bandwidth scheduling with multi-TT") > Signed-off-by: Ikjoon Jang <ikjn@xxxxxxxxxxxx> > > --- > > Changes in v6: > - use xhci overrides instead of quirk functions for > {check|reset}_bandwidth(). > > Changes in v5: > - Fix a wrong commit id in Fixes tag > > Changes in v4: > - bugfix in v3, check_bandwidth() return uninitialized value > when no new endpoints were added. > - change Fixes tag to keep dependency > > Changes in v3: > - drop unrelated code cleanups > - change Fixes tag to keep dependency > > Changes in v2: > - fix a 0-day warning from unused variable > - split one big patch into three patches > - fix wrong offset in mediatek hw flags > > drivers/usb/host/xhci-mtk-sch.c | 123 ++++++++++++++++++++++---------- > drivers/usb/host/xhci-mtk.c | 2 + > drivers/usb/host/xhci-mtk.h | 13 ++++ > drivers/usb/host/xhci.c | 8 ++- > drivers/usb/host/xhci.h | 4 ++ > 5 files changed, 111 insertions(+), 39 deletions(-)