On Fri, Jan 8, 2021 at 2:34 PM Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx> wrote: > > On Tue, 2020-12-29 at 14:24 +0800, Ikjoon Jang wrote: > > xhci-mtk has hooks on add_endpoint() and drop_endpoint() from xhci > > to handle its own sw bandwidth managements and stores bandwidth data > > into internal table every time add_endpoint() is called, > > so when bandwidth allocation fails at one endpoint, all earlier > > allocation from the same interface could still remain at the table. > If failed to add an endpoint, will cause failure of its interface > config, then the other endpoints in the same interface will be dropped > later? you mean some endpoints in an interface may fail but without > affecting its function? Yes, drop_endpoint() is called for a failed interface when set_interface() fails to switch alt settings, but set_configuration() does not call drop_endpoint(). TT data seems to remain allocated until a device gets removed. > > > > > This patch adds two more hooks from check_bandwidth() and > > reset_bandwidth(), and make mtk-xhci to releases all failed endpoints > > from reset_bandwidth(). > > > > Fixes: 08e469de87a2 ("usb: xhci-mtk: supports bandwidth scheduling with multi-TT") > > Signed-off-by: Ikjoon Jang <ikjn@xxxxxxxxxxxx> >