linux/drivers/usb
Rohith Kollalsi 07903626d9 usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup
According to the programming guide, it is recommended to
perform a GCTL_CORE_SOFTRESET only when switching the mode
from device to host or host to device. However, it is found
that during bootup when __dwc3_set_mode() is called for the
first time, GCTL_CORESOFTRESET is done with suspendable bit(BIT 17)
of DWC3_GUSB3PIPECTL set. This some times leads to issues
like controller going into bad state and controller registers
reading value zero. Until GCTL_CORESOFTRESET is done and
run/stop bit is set core initialization is not complete.
Setting suspendable bit of DWC3_GUSB3PIPECTL and then
performing GCTL_CORESOFTRESET is therefore not recommended.
Avoid this by only performing the reset if current_dr_role is set,
that is, when doing subsequent role switching.

Fixes: f88359e158 ("usb: dwc3: core: Do core softreset when switch mode")
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
Link: https://lore.kernel.org/r/20220714045625.20377-1-quic_rkollals@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-07-14 16:10:30 +02:00
..
atm usb: remove third argument of usb_maxpacket() 2022-04-23 10:33:53 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 Linux 5.19-rc3 2022-06-20 09:41:33 +02:00
chipidea Linux 5.19-rc4 2022-06-27 10:03:28 +02:00
class USB: cdc-acm: use define for timeout 2022-06-29 21:02:28 +02:00
common usb: common: usb-conn-gpio: Allow wakeup from system suspend 2022-06-10 11:48:41 +02:00
core usb: core: hub: Create platform devices for onboard hubs in hub_probe() 2022-07-08 14:53:50 +02:00
dwc2 usb: dwc2: drop unexpected word "the" in the comments 2022-06-24 13:37:34 +02:00
dwc3 usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup 2022-07-14 16:10:30 +02:00
early usb: early: xhci-dbc: Fix xdbc number parsing 2022-03-15 18:20:34 +01:00
gadget usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc() 2022-07-14 16:10:12 +02:00
host usb: host: xhci: use snprintf() in xhci_decode_trb() 2022-06-30 15:42:31 +02:00
image scsi: Remove drivers/scsi/scsi.h 2022-02-22 21:11:02 -05:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-05-19 18:10:59 +02:00
misc usb: ldusb: replace ternary operator with max_t() 2022-07-14 16:09:56 +02:00
mon
mtu3 usb: mtu3: support function remote wakeup 2022-07-08 14:53:30 +02:00
musb usb: musb: mpfs: add missing clk_disable_unprepare() in mpfs_remove() 2022-06-29 21:02:05 +02:00
phy Char / Misc / Other smaller driver subsystem updates for 5.19-rc1 2022-06-03 11:36:34 -07:00
renesas_usbhs usb: renesas: Fix refcount leak bug 2022-06-21 16:39:03 +02:00
roles usb: roles: add helper usb_role_string() 2021-05-27 09:17:18 +02:00
serial USB: serial: option: add Quectel RM500K module support 2022-06-23 13:58:05 +02:00
storage USB: storage: Fix typo in comment 2022-06-21 16:39:42 +02:00
typec usb: typec: tcpci: move tcpci.h to include/linux/usb/ 2022-07-08 14:51:16 +02:00
usbip usbip: vudc: Don't enable IRQs prematurely 2022-06-10 11:48:19 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c usb: usb-skeleton: Update min() to min_t() 2021-10-05 12:56:48 +02:00