linux_dsm_epyc7002/drivers/usb
Peter Chen cbe85c88ce usb: chipidea: udc: don't do hardware access if gadget has stopped
After _gadget_stop_activity is executed, we can consider the hardware
operation for gadget has finished, and the udc can be stopped and enter
low power mode. So, any later hardware operations (from usb_ep_ops APIs
or usb_gadget_ops APIs) should be considered invalid, any deinitializatons
has been covered at _gadget_stop_activity.

I meet this problem when I plug out usb cable from PC using mass_storage
gadget, my callstack like: vbus interrupt->.vbus_session->
composite_disconnect ->pm_runtime_put_sync(&_gadget->dev),
the composite_disconnect will call fsg_disable, but fsg_disable calls
usb_ep_disable using async way, there are register accesses for
usb_ep_disable. So sometimes, I get system hang due to visit register
without clock, sometimes not.

The Linux Kernel USB maintainer Alan Stern suggests this kinds of solution.
See: http://marc.info/?l=linux-usb&m=138541769810983&w=2.

Cc: <stable@vger.kernel.org> #v4.9+
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Link: https://lore.kernel.org/r/20190820020503.27080-2-peter.chen@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-08-21 09:45:49 -07:00
..
atm USB: atm: ueagle-atm.c: remove redundant license text 2019-06-03 15:21:57 +02:00
c67x00 USB: add SPDX identifiers to all remaining Makefiles 2017-11-07 15:53:48 +01:00
chipidea usb: chipidea: udc: don't do hardware access if gadget has stopped 2019-08-21 09:45:49 -07:00
class usbtmc: more sanity checking for packet size 2019-08-21 09:45:46 -07:00
common USB: move usb debugfs directory creation to the usb common core 2019-06-06 08:59:19 +02:00
core usb: add a hcd_uses_dma helper 2019-08-15 15:18:05 +02:00
dwc2 usb: add a hcd_uses_dma helper 2019-08-15 15:18:05 +02:00
dwc3 Revert "usb:gadget Separated decoding functions from dwc3 driver." 2019-07-04 13:02:09 +02:00
early drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
gadget usb: udc: lpc32xx: silence fall-through warning 2019-08-21 09:45:46 -07:00
host usb: host: fotg2: restart hcd after port reset 2019-08-15 14:49:16 +02:00
image scsi: usb: image: microtek: use sg helper to iterate over scatterlist 2019-06-20 15:21:32 -04:00
isp1760 usb: isp1760-hcd: Fix fall-through annotations 2019-05-01 18:13:52 +02:00
misc usb: iowarrior: fix deadlock on disconnect 2019-08-08 12:43:18 +02:00
mon docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
mtu3 Revert "usb: mtu3: fix up undefined reference to usb_debug_root" 2019-06-10 19:43:57 +02:00
musb usb: musb: dsps: Use dev_get_drvdata() 2019-04-30 17:55:08 +02:00
phy Driver Core and debugfs changes for 5.3-rc1 2019-07-12 12:24:03 -07:00
renesas_usbhs USB: more changes for v5.3 merge window 2019-07-03 13:48:54 +02:00
roles device connection: Find connections also by checking the references 2019-06-03 10:55:38 +02:00
serial USB: serial: option: add the BroadMobi BM818 card 2019-08-15 13:46:22 +02:00
storage usb-storage: Add a limitation for blk_queue_max_hw_sectors() 2019-07-25 10:40:02 +02:00
typec usb: typec: tcpm: Ignore unsupported/unknown alternate mode requests 2019-08-02 18:18:10 +02:00
usbip usbip: Replace unused kvec array with single variable in vhci_send_cmd_unlink() 2019-06-05 11:54:38 +02:00
wusbcore wusb: switch to cbcmac transform 2019-06-18 08:52:34 +02:00
Kconfig dma-mapping updates for Linux 5.3 2019-07-12 15:13:55 -07:00
Makefile Revert "usb:cdns3 Add Cadence USB3 DRD Driver" 2019-07-04 13:01:33 +02:00
usb-skeleton.c usb: usb-skeleton: use irqsave() in USB's complete callback 2018-06-28 19:36:06 +09:00