[PATCH 0/3] usb: xhci: Add broken port disable quirk

From: Roger Quadros
Date: Sat Nov 19 2016 - 13:20:14 EST


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

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


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

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(-)