linux/drivers/usb/cdns3
Pawel Laszczak ee51a5d322 usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version
commit 8614ecdb15 upstream.

The controllers with rtl version larger than
RTL_REVISION_NEW_LPM (0x00002700) has bug which causes that controller
doesn't resume from L1 state. It happens if after receiving LPM packet
controller starts transitioning to L1 and in this moment the driver force
resuming by write operation to PORTSC.PLS.
It's corner case and happens when write operation to PORTSC occurs during
device delay before transitioning to L1 after transmitting ACK
time (TL1TokenRetry).

Forcing transition from L1->L0 by driver for revision larger than
RTL_REVISION_NEW_LPM is not needed, so driver can simply fix this issue
through block call of cdnsp_force_l0_go function.

Fixes: 3d82904559 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver")
Cc: stable <stable@kernel.org>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Acked-by: Peter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/PH7PR07MB9538B55C3A6E71F9ED29E980DD842@PH7PR07MB9538.namprd07.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-05-18 08:21:23 +02:00
..
cdns3-debug.h usb: cdns3: Change file names for cdns3 driver. 2020-12-29 12:36:13 +08:00
cdns3-ep0.c usb: cdns3: Fixed incorrect gadget state 2021-07-29 14:13:02 +08:00
cdns3-gadget.c usb: cdns3: Fix deadlock when using NCM gadget 2025-05-02 07:46:59 +02:00
cdns3-gadget.h usb: cdns3: fix iso transfer error when mult is not zero 2024-01-25 15:27:40 -08:00
cdns3-imx.c usb: cdns3: cdns3-imx: File headers are not good candidates for kernel-doc 2021-05-27 09:43:44 +02:00
cdns3-pci-wrap.c usb: cdns3: Fix issue with using incorrect PCI device function 2023-03-30 12:49:24 +02:00
cdns3-plat.c usb: cdns3: Put the cdns set active part outside the spin lock 2023-09-23 11:11:06 +02:00
cdns3-ti.c usb: cdns3: cdns3-ti: File headers are not good candidates for kernel-doc 2021-05-27 09:43:44 +02:00
cdns3-trace.c usb: cdns3: Change file names for cdns3 driver. 2020-12-29 12:36:13 +08:00
cdns3-trace.h usb: cdns3: trace: delete the trace parameter for request->trb 2021-04-12 20:19:21 +08:00
cdnsp-debug.h usb: cdnsp: fix cdnsp_decode_trb function to properly handle ret value 2022-01-26 13:59:20 +01:00
cdnsp-ep0.c usb: cdnsp: Fixes error: uninitialized symbol 'len' 2023-04-13 16:55:26 +02:00
cdnsp-gadget.c usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version 2025-05-18 08:21:23 +02:00
cdnsp-gadget.h usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version 2025-05-18 08:21:23 +02:00
cdnsp-mem.c usb: cdnsp: Fix a NULL pointer dereference in cdnsp_endpoint_init() 2021-12-03 13:57:45 +01:00
cdnsp-pci.c usb: cdnsp: Fix issue with resuming from L1 2025-05-18 08:21:23 +02:00
cdnsp-ring.c usb: cdnsp: fix L1 resume issue for RTL_REVISION_NEW_LPM version 2025-05-18 08:21:23 +02:00
cdnsp-trace.c usb: cdnsp: Add tracepoints for CDNSP driver 2020-12-29 12:36:13 +08:00
cdnsp-trace.h usb: cdnsp: Fix issue in cdnsp_log_ep trace event 2021-12-13 15:23:24 +01:00
core.c usb: cdnsp: fixed issue with incorrect detecting CDNSP family controllers 2024-03-01 13:26:33 +01:00
core.h usb: cdnsp: Fix issue with resuming from L1 2025-05-18 08:21:23 +02:00
drd.c usb: cdns3: Add quirk flag to enable suspend residency 2024-12-27 13:52:51 +01:00
drd.h usb: cdns3: Add quirk flag to enable suspend residency 2024-12-27 13:52:51 +01:00
gadget-export.h usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver 2020-12-29 12:36:13 +08:00
host-export.h usb: cdns3: Removes xhci_cdns3_suspend_quirk from host-export.h 2020-12-29 12:36:13 +08:00
host.c usb: xhci: fix loss of data on Cadence xHC 2024-10-17 15:21:25 +02:00
Kconfig usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver 2020-12-29 12:36:13 +08:00
Makefile usb: cdnsp: fixes undefined reference to cdns_remove 2021-01-14 09:02:00 +08:00