Hi, Some XHCI controllers e.g. dwc3 based have a broken Port disable [1].
If the attached high-speed device is misbehaving, the USB stack typically disables the port using the PED bit in PORTSC. For the controllers that have broken port disable, the port fails to detect further attach/detach events and so high-speed devices can no longer be enumerated on the port. The workaround is to prevent port disable using PED on such controllers. We add a new BROKEN_PED quirk flag and 'quirk-broken-port-ped' device property and prevent port disable using PED if we encounter the quirk flag. [1] - AM572x Silicon Errata http://www.ti.com/lit/er/sprz429j/sprz429j.pdf Section i896— USB xHCI Port Disable Feature Does Not Work cheers, -roger Felipe Balbi (3): usb: xhci: add quirk flag for broken PED bits usb: host: xhci-plat: enable BROKEN_PED quirk if platform requested usb: dwc3: host: pass quirk-broken-port-ped property for known broken revisions Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 + drivers/usb/dwc3/host.c | 21 ++++++++++++++++++--- drivers/usb/host/xhci-hub.c | 6 ++++++ drivers/usb/host/xhci-plat.c | 3 +++ drivers/usb/host/xhci.h | 3 +++ 5 files changed, 31 insertions(+), 3 deletions(-) -- 2.7.4