linux/drivers/usb
Roger Quadros 705e3ce37b usb: dwc3: core: Fix system suspend on TI AM62 platforms
Since commit 6d73572206 ("usb: dwc3: core: Prevent phy suspend during init"),
system suspend is broken on AM62 TI platforms.

Before that commit, both DWC3_GUSB3PIPECTL_SUSPHY and DWC3_GUSB2PHYCFG_SUSPHY
bits (hence forth called 2 SUSPHY bits) were being set during core
initialization and even during core re-initialization after a system
suspend/resume.

These bits are required to be set for system suspend/resume to work correctly
on AM62 platforms.

Since that commit, the 2 SUSPHY bits are not set for DEVICE/OTG mode if gadget
driver is not loaded and started.
For Host mode, the 2 SUSPHY bits are set before the first system suspend but
get cleared at system resume during core re-init and are never set again.

This patch resovles these two issues by ensuring the 2 SUSPHY bits are set
before system suspend and restored to the original state during system resume.

Cc: stable@vger.kernel.org # v6.9+
Fixes: 6d73572206 ("usb: dwc3: core: Prevent phy suspend during init")
Link: https://lore.kernel.org/all/1519dbe7-73b6-4afc-bfe3-23f4f75d772f@kernel.org/
Signed-off-by: Roger Quadros <rogerq@kernel.org>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Tested-by: Markus Schneider-Pargmann <msp@baylibre.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Link: https://lore.kernel.org/r/20241011-am62-lpm-usb-v3-1-562d445625b5@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-10-16 10:25:48 +02:00
..
atm move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
c67x00 USB: c67x00: Remove unused declaration c67x00_hcd_msg_received() 2023-10-02 16:42:33 +02:00
cdns3 sub: cdns3: Use predefined PCI vendor ID constant 2024-09-13 15:39:06 +02:00
chipidea usb: chipidea: npcm: Fix coding style with clarification of data type 2024-09-11 15:34:49 +02:00
class move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
common usb: common: Switch to device_property_match_property_string() 2024-09-11 15:34:34 +02:00
core move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
dwc2 usb: dwc2: drd: fix clock gating on USB role switch 2024-09-11 15:35:33 +02:00
dwc3 usb: dwc3: core: Fix system suspend on TI AM62 platforms 2024-10-16 10:25:48 +02:00
early
fotg210 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
gadget USB fixes for 6.12-rc3 2024-10-13 09:21:36 -07:00
host xhci: tegra: fix checked USB2 port number 2024-10-16 10:25:43 +02:00
image scsi: core: Add a dma_alignment field to the host and host template 2024-04-11 21:37:48 -04:00
isp1760 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
misc USB fixes for 6.12-rc3 2024-10-13 09:21:36 -07:00
mon [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
mtu3 tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
musb move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
phy move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
renesas_usbhs usb: renesas_usbhs: Remove renesas_usbhs_get_info() wrapper 2024-04-18 16:47:49 +02:00
roles usb: roles: Improve the fix for a false positive recursive locking complaint 2024-09-13 07:36:02 +02:00
serial move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
storage usb: storage: ignore bogus device raised by JieLi BR21 USB sound chip 2024-10-04 15:32:25 +02:00
typec usb: typec: qcom-pmic-typec: fix sink status being overwritten with RP_DEF 2024-10-16 10:25:03 +02:00
usbip Merge 6.11-rc3 into usb-next 2024-08-12 18:49:00 +02:00
Kconfig usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk 2023-10-02 16:19:12 +02:00
Makefile USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected 2024-06-04 15:33:38 +02:00
usb-skeleton.c