aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/usb/musb/musb_core.c
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2017-06-16 10:40:56 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-20 11:45:01 +0800
commit1fa07c370bba23aa596ca143b90b64cd35918ec2 (patch)
tree9c47c4d80ab74ff9c55fc3d53a5b8a8a9b3a74a0 /drivers/usb/musb/musb_core.c
parentdmaengine: omap-dma: port_window support correction for both direction (diff)
downloadwireguard-linux-1fa07c370bba23aa596ca143b90b64cd35918ec2.tar.xz
wireguard-linux-1fa07c370bba23aa596ca143b90b64cd35918ec2.zip
usb: musb: Add quirk to avoid skb reserve in gadget mode
For tusb6010 the DMA functionality only possible if the buffer is 32bit aligned (SYNC access to FIFO) since with ASYNC access the TX/RX offset registers will corrupt eventually. The MUSB_G_NO_SKB_RESERVE will set the quirk_avoids_skb_reserve flag in usb_gadget struct to provide correctly aligned buffer. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Bin Liu <b-liu@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/musb/musb_core.c')
-rw-r--r--drivers/usb/musb/musb_core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 870da18f5077..87cbd56cc761 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2224,6 +2224,9 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
musb->io.ep_select = musb_flat_ep_select;
}
+ if (musb->io.quirks & MUSB_G_NO_SKB_RESERVE)
+ musb->g.quirk_avoids_skb_reserve = 1;
+
/* At least tusb6010 has its own offsets */
if (musb->ops->ep_offset)
musb->io.ep_offset = musb->ops->ep_offset;