linux/drivers/usb/cdns3
Pawel Laszczak b4ecded146 usb: cdnsp: fix for Link TRB with TC
commit 740f2e2791 upstream.

Stop Endpoint command on LINK TRB with TC bit set to 1 causes that
internal cycle bit can have incorrect state after command complete.
In consequence empty transfer ring can be incorrectly detected
when EP is resumed.
NOP TRB before LINK TRB avoid such scenario. Stop Endpoint command
is then on NOP TRB and internal cycle bit is not changed and have
correct value.

Fixes: 3d82904559 ("usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver")
cc: <stable@vger.kernel.org>
Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Reviewed-by: Peter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/PH7PR07MB953878279F375CCCE6C6F40FDD8E2@PH7PR07MB9538.namprd07.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-09-04 13:25:04 +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 memory double free when handle zero packet 2024-03-01 13:26:34 +01: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: Fixes issue with dequeuing not queued requests 2023-10-19 23:08:58 +02:00
cdnsp-gadget.h usb: cdnsp: fix for Link TRB with TC 2024-09-04 13:25:04 +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: cdns3: Put the cdns set active part outside the spin lock 2023-09-23 11:11:06 +02:00
cdnsp-ring.c usb: cdnsp: fix for Link TRB with TC 2024-09-04 13:25:04 +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: cdns3: Modify the return value of cdns_set_active () to void when CONFIG_PM_SLEEP is disabled 2023-10-19 23:08:55 +02:00
drd.c usb: cdnsp: fixed issue with incorrect detecting CDNSP family controllers 2024-03-01 13:26:33 +01:00
drd.h usb: cdnsp: fixed issue with incorrect detecting CDNSP family controllers 2024-03-01 13:26:33 +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: cdnsp: blocked some cdns3 specific code 2024-03-01 13:26:33 +01: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