]> git.dujemihanovic.xyz Git - u-boot.git/commit
usb: dwc3: invalidate dcache on buffer used in interrupt handling
authorNeil Armstrong <neil.armstrong@linaro.org>
Fri, 11 Oct 2024 14:38:26 +0000 (16:38 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 21 Oct 2024 21:27:33 +0000 (15:27 -0600)
commit9214627f5ecede8610e33abf2de5a0083f3f80ce
treef4208908bc9b855fdff2a1d540bfa008a02e6993
parent73ab8196886c145983d5ff5514c179487df0c6e1
usb: dwc3: invalidate dcache on buffer used in interrupt handling

On Qualcomm systems, the setup buffer and even buffers are in
a bad state at interrupt handling, so invalidate the dcache lines
for the setup_buf and event buffer to make sure we read correct
data written by the hardware.

This fixes the following error:
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type -1
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type 4673109

and invalid situation in dwc3_gadget_giveback() because setup_buf content
is read at 0s and leads to fatal crash fixed by [1].

[1] https://lore.kernel.org/all/20240528-topic-sm8x50-dwc3-gadget-crash-fix-v1-1-58434ab4b3d3@linaro.org/

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
drivers/usb/dwc3/ep0.c
drivers/usb/dwc3/gadget.c
drivers/usb/dwc3/io.h