linux/drivers/usb/dwc2
John Stultz fc30c4bb44 usb: dwc2: Workaround case where GOTGCTL state is wrong
When removing a USB-A to USB-otg adapter cable, we get a change status
irq, and then in dwc2_conn_id_status_change, we erroneously see the
GOTGCTL_CONID_B flag set. This causes us to get stuck in the
"while (!dwc2_is_device_mode(hsotg))" loop, spitting out "Waiting for
Peripheral Mode, Mode=Host" warnings until it fails out many seconds
later.

This patch works around the issue by re-reading the GOTGCTL state to
check if the GOTGCTL_CONID_B is still set and if not restarting the
change status logic.

Cc: Wei Xu <xuwei5@hisilicon.com>
Cc: Guodong Xu <guodong.xu@linaro.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: John Youn <johnyoun@synopsys.com>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Chen Yu <chenyu56@huawei.com>
Cc: Vardan Mikayelyan <mvardan@synopsys.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Reviewed-by: Vardan Mikayelyan <mvardan@synopsys.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2017-01-24 16:19:09 +02:00
..
core_intr.c usb: dwc2: Fix usage of bool params 2017-01-24 16:19:07 +02:00
core.c usb: dwc2: Avoid sleeping while holding hsotg->lock 2017-01-24 16:19:08 +02:00
core.h usb: dwc2: Avoid sleeping while holding hsotg->lock 2017-01-24 16:19:08 +02:00
debug.h usb: dwc2: Add identifier in prototypes 2017-01-24 11:04:18 +02:00
debugfs.c usb: dwc2: Show dr_mode via debugfs 2017-01-24 16:19:08 +02:00
gadget.c usb: dwc2: Avoid sleeping while holding hsotg->lock 2017-01-24 16:19:08 +02:00
hcd_ddma.c usb: dwc2: Fix usage of bool params 2017-01-24 16:19:07 +02:00
hcd_intr.c usb: dwc2: Fix usage of bool params 2017-01-24 16:19:07 +02:00
hcd_queue.c usb: dwc2: Fix usage of bool params 2017-01-24 16:19:07 +02:00
hcd.c usb: dwc2: Workaround case where GOTGCTL state is wrong 2017-01-24 16:19:09 +02:00
hcd.h usb: dwc2: Cleanup some checkpatch issues 2017-01-24 11:04:18 +02:00
hw.h usb: dwc2: Cleanup some checkpatch issues 2017-01-24 11:04:18 +02:00
Kconfig USB: dwc2-usb: add USB_GADGET dependency 2016-06-29 11:11:41 +03:00
Makefile usb: dwc2: Add params.c file 2016-11-18 13:54:10 +02:00
params.c usb: dwc2: Remove debug prints in params.c 2017-01-24 16:19:08 +02:00
pci.c usb: dwc2: Cleanup some checkpatch issues 2017-01-24 11:04:18 +02:00
platform.c usb: dwc2: Fix brace usage 2017-01-24 11:04:19 +02:00