[PATCH v7] usb: xhci-mtk: fix unreleased bandwidth data

Greg Kroah-Hartman gregkh at linuxfoundation.org
Fri Jan 29 05:27:51 EST 2021


On Fri, Jan 29, 2021 at 05:38:19PM +0800, Chunfeng Yun wrote:
> From: Ikjoon Jang <ikjn at chromium.org>
> 
> 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 at chromium.org>
> Signed-off-by: Chunfeng Yun <chunfeng.yun at mediatek.com>
> ---
> Changes in v7 from Chunfeng:
> - rename xhci_mtk_droop_ep() as destroy_sch_ep(), and include parameters
> - add member @allocated in mu3h_sch_ep_info struct
>   used to skip endpoint not allocated bandwidth
> - use xhci_dbg() instead of dev_dbg()
> - rename bw_ep_list_new as bw_ep_chk_list

As a previous version of this patch is already in my public tree, just
send a follow-on patch that resolves the issues in the previous one, as
I can not apply this one.  Bonus is that you get the credit for fixing
these issues :)

thanks,

greg k-h



More information about the linux-arm-kernel mailing list