linux-stable/drivers/usb/dwc2
John Stultz dad3f793f2 usb: dwc2: Make sure we disconnect the gadget state
I had seen some odd behavior with HiKey's usb-gadget interface
that I finally seemed to have chased down. Basically every other
time I plugged in the OTG port, the gadget interface would
properly initialize. The other times, I'd get a big WARN_ON
in dwc2_hsotg_init_fifo() about the fifo_map not being clear.

Ends up if we don't disconnect the gadget state, the fifo-map
doesn't get cleared properly, which causes WARN_ON messages and
also results in the device not properly being setup as a gadget
every other time the OTG port is connected.

So this patch adds a call to dwc2_hsotg_disconnect() in the
reset path so the state is properly cleared.

With it, the gadget interface initializes properly on every
plug in.

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: Felipe Balbi <felipe.balbi@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2017-04-11 10:58:16 +03:00
..
core.c usb: dwc2: host: use msleep() for long delay 2017-01-24 16:19:10 +02:00
core.h usb: dwc2: eliminate irq parameter from dwc2_hcd_init 2017-01-26 10:52:01 +02:00
core_intr.c usb: dwc2: Fix usage of bool params 2017-01-24 16:19:07 +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: changes for v4.11 2017-01-26 15:36:28 +01:00
hcd.c usb: dwc2: Make sure we disconnect the gadget state 2017-04-11 10:58:16 +03:00
hcd.h usb: dwc2: eliminate irq parameter from dwc2_hcd_init 2017-01-26 10:52:01 +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
hw.h usb: dwc2: Cleanup some checkpatch issues 2017-01-24 11:04:18 +02:00
Kconfig
Makefile usb: dwc2: Add params.c file 2016-11-18 13:54:10 +02:00
params.c usb: dwc2: gadget: Add checking for g-tx-fifo-size parameter 2017-01-24 16:19:11 +02:00
pci.c usb: dwc2: Cleanup some checkpatch issues 2017-01-24 11:04:18 +02:00
platform.c usb: dwc2: eliminate irq parameter from dwc2_hcd_init 2017-01-26 10:52:01 +02:00