linux/drivers/usb/dwc2
Phil Elwell 45ad6b592e usb: dwc2: Fix gadget DMA unmap direction
commit 75a41ce46b upstream.

The dwc2 gadget support maps and unmaps DMA buffers as necessary. When
mapping and unmapping it uses the direction of the endpoint to select
the direction of the DMA transfer, but this fails for Control OUT
transfers because the unmap occurs after the endpoint direction has
been reversed for the status phase.

A possible solution would be to unmap the buffer before the direction
is changed, but a safer, less invasive fix is to remember the buffer
direction independently of the endpoint direction.

Fixes: fe0b94abcd ("usb: dwc2: gadget: manage ep0 state in software")
Acked-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Link: https://lore.kernel.org/r/20210506112200.2893922-1-phil@raspberrypi.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2021-05-19 10:13:15 +02:00
..
core.c usb: dwc2: Update Core Reset programming flow. 2020-05-25 11:09:44 +03:00
core.h usb: dwc2: Fix gadget DMA unmap direction 2021-05-19 10:13:15 +02:00
core_intr.c usb: dwc2: Fix hibernation between host and device modes. 2021-05-14 09:50:21 +02:00
debug.h USB: dwc2: Use the correct style for SPDX License Identifier 2020-05-05 10:58:50 +03:00
debugfs.c USB: ch9: add "USB_" prefix in front of TEST defines 2020-06-24 15:01:24 +02:00
drd.c usb: dwc2: override PHY input signals with usb role switch support 2020-10-02 13:29:13 +03:00
gadget.c usb: dwc2: Fix gadget DMA unmap direction 2021-05-19 10:13:15 +02:00
hcd.c usb: dwc2: Fix host mode hibernation exit with remote wakeup flow. 2021-05-14 09:50:21 +02:00
hcd.h USB: dwc2: Use the correct style for SPDX License Identifier 2020-05-05 10:58:50 +03:00
hcd_ddma.c usb: dwc2: Modify dwc2_readl/writel functions prototype 2018-07-30 10:39:16 +03:00
hcd_intr.c usb: dwc2: Make "trimming xfer length" a debug message 2021-03-04 11:37:26 +01:00
hcd_queue.c usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression) 2019-06-06 13:51:41 +03:00
hw.h usb: dwc2: Update Core Reset programming flow. 2020-05-25 11:09:44 +03:00
Kconfig usb: dwc2: override PHY input signals with usb role switch support 2020-10-02 13:29:13 +03:00
Makefile usb: dwc2: override PHY input signals with usb role switch support 2020-10-02 13:29:13 +03:00
params.c usb: dwc2: don't use ID/Vbus detection if usb-role-switch on STM32MP15 SoCs 2020-10-02 13:29:13 +03:00
pci.c usb: dwc2: pci: Fix an error code in probe 2018-11-14 11:07:12 +02:00
platform.c usb: dwc2: Avoid leaving the error_debugfs label unused 2020-10-27 11:33:53 +02:00