linux/drivers/usb/dwc3
Elson Roy Serrao 3ddaa6a274 usb: dwc3: Properly handle processing of pending events
If dwc3 is runtime suspended we defer processing the event buffer
until resume, by setting the pending_events flag. Set this flag before
triggering resume to avoid race with the runtime resume callback.

While handling the pending events, in addition to checking the event
buffer we also need to process it. Handle this by explicitly calling
dwc3_thread_interrupt(). Also balance the runtime pm get() operation
that triggered this processing.

Cc: stable@vger.kernel.org
Fixes: fc8bb91bc8 ("usb: dwc3: implement runtime PM")
Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Reviewed-by: Roger Quadros <rogerq@kernel.org>
Link: https://lore.kernel.org/r/20230801192658.19275-1-quic_eserrao@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-08-04 14:57:23 +02:00
..
core.c Revert "usb: dwc3: core: Enable AutoRetry feature in the controller" 2023-07-25 17:42:38 +02:00
core.h Revert "usb: dwc3: core: Enable AutoRetry feature in the controller" 2023-07-25 17:42:38 +02:00
debug.h usb: dwc3: Add function suspend and function wakeup support 2023-03-29 10:27:01 +02:00
debugfs.c usb: dwc3: debugfs: Resume dwc3 before accessing registers 2023-05-13 17:56:22 +09:00
drd.c usb: dwc3: Don't switch OTG -> peripheral if extcon is present 2022-10-22 12:29:43 +02:00
dwc3-am62.c usb: dwc3-am62: Convert to platform remove callback returning void 2023-05-28 12:36:23 +01:00
dwc3-exynos.c usb: dwc3-exynos: Convert to platform remove callback returning void 2023-05-28 12:36:23 +01:00
dwc3-haps.c usb: dwc3: haps: Constify the software node 2021-02-04 15:42:06 +01:00
dwc3-imx8mp.c usb: dwc3-imx8mp: Convert to platform remove callback returning void 2023-05-28 12:36:24 +01:00
dwc3-keystone.c usb: dwc3-keystone: Convert to platform remove callback returning void 2023-05-28 12:36:24 +01:00
dwc3-meson-g12a.c usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe() 2023-06-13 11:59:01 +02:00
dwc3-of-simple.c usb: dwc3-of-simple: Convert to platform remove callback returning void 2023-05-28 12:36:24 +01:00
dwc3-omap.c usb: dwc3-omap: Convert to platform remove callback returning void 2023-05-28 12:36:24 +01:00
dwc3-pci.c usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy 2023-07-27 10:37:01 +02:00
dwc3-qcom.c USB / Thunderbolt driver updates for 6.5-rc1 2023-07-03 13:23:10 -07:00
dwc3-st.c usb: dwc3-st: Convert to platform remove callback returning void 2023-05-28 12:36:24 +01:00
dwc3-xilinx.c usb: dwc3-xilinx: Convert to platform remove callback returning void 2023-05-28 12:36:24 +01:00
ep0.c usb: dwc3: Add error logs for unknown endpoint events 2023-05-13 18:57:30 +09:00
gadget.c usb: dwc3: Properly handle processing of pending events 2023-08-04 14:57:23 +02:00
gadget.h usb: dwc3: Fix ep0 handling when getting reset while doing control transfer 2022-05-19 18:14:16 +02:00
host.c usb: dwc3: host: remove dead code in dwc3_host_get_irq() 2023-03-29 09:02:25 +02:00
io.h usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
Kconfig usb: dwc3: fix extcon dependency 2023-01-19 14:19:49 +01:00
Makefile drivers: usb: dwc3: Add AM62 USB wrapper driver 2022-04-21 18:31:56 +02:00
trace.c usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
trace.h usb: dwc3: change some trace event __dynamic_array() to __get_buf() 2023-03-09 15:35:03 +01:00
ulpi.c usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression 2020-12-28 15:55:44 +01:00