usb: xhci: fix config fail of FS hub behind a HS hub with MTT
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Fri, 4 Dec 2015 13:53:43 +0000 (15:53 +0200)
committerZefan Li <lizefan@huawei.com>
Wed, 26 Oct 2016 15:15:35 +0000 (23:15 +0800)
commit9f2426cd762c421bde7dcba2f12c73ef034ec5a3
tree00cc67051e25f36cac3b5534cf2cf8ec3ac45a62
parent86325076e9777158fa4bd3946c7907b78d69f1eb
usb: xhci: fix config fail of FS hub behind a HS hub with MTT

commit 096b110a3dd3c868e4610937c80d2e3f3357c1a9 upstream.

if a full speed hub connects to a high speed hub which
supports MTT, the MTT field of its slot context will be set
to 1 when xHCI driver setups an xHCI virtual device in
xhci_setup_addressable_virt_dev(); once usb core fetch its
hub descriptor, and need to update the xHC's internal data
structures for the device, the HUB field of its slot context
will be set to 1 too, meanwhile MTT is also set before,
this will cause configure endpoint command fail, so in the
case, we should clear MTT to 0 for full speed hub according
to section 6.2.2

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/usb/host/xhci.c