]> 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)
committerMattijs Korpershoek <mkorpershoek@baylibre.com>
Tue, 15 Oct 2024 09:03:57 +0000 (11:03 +0200)
commit3e47302dd71267b85e5ec65c5b6d881c23cce6cb
tree9985cd4869923f60cd706c2f36eced6516011144
parent502a50ab1f7e32e3e90056597e8ce6a0931789ba
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>
Link: https://lore.kernel.org/r/20241011-u-boot-dwc3-gadget-dcache-fixup-v4-3-5f3498d8035b@linaro.org
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
drivers/usb/dwc3/ep0.c
drivers/usb/dwc3/gadget.c
drivers/usb/dwc3/io.h