Since EHCI/OHCI controllers on R-Car Gen3 SoCs are possible to be getting stuck very rarely after a full/low usb device was disconnected. To detect/recover from such a situation, the controllers require a special way which poll the EHCI PORTSC register and changes the OHCI functional state. So, this patch adds a polling timer into the ehci-platform driver, and if the ehci driver detects the issue by the EHCI PORTSC register, the ehci driver removes a companion device (= the OHCI controller) to change the OHCI functional state to USB Reset once. And then, the ehci driver adds the companion device again. Yoshihiro Shimoda (2): dt-bindings: usb: generic-ehci: add a quirk property to avoid stuck usb: host: ehci-platform: add a quirk to avoid stuck .../devicetree/bindings/usb/generic-ehci.yaml | 5 + drivers/usb/host/ehci-platform.c | 104 +++++++++++++++++++++ 2 files changed, 109 insertions(+) -- 2.7.4