linux/drivers/usb/musb
Hema Kalliguddi 92d2711f5d usb: musb: unmap dma buffer when switching to PIO
Buffer is mapped to dma when dma channel is
allocated. If, for some reason, dma channel
programming fails, musb code will fallback
to PIO mode to transfer that request. In
that case, we need to unmap the buffer
back to CPU.

MUSB RTL1.8 and above cannot handle buffers
which are not 32bit aligned. That happens to
every request sent by g_ether gadget
driver. Since the buffer sent was unaligned,
we need to fallback to PIO.

Because of that, g_ether was failing due
to missing buffer unmapping.

With this patch and [1] g_ether works fine
with all MUSB revisions.

Verified with OMAP3630 board, which has
MUSB RTL1.8 using g_ether and g_zero.

[1] http://www.spinics.net/lists/linux-usb/msg38400.html

Signed-off-by: Hema HK <hemahk@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-11-22 12:36:48 +02:00
..
am35x.c USB: musb: AM35x: Workaround for fifo read issue 2010-10-22 10:22:17 -07:00
blackfin.c USB: musb: blackfin: push clkin value to platform resources 2010-11-05 14:13:32 +02:00
blackfin.h USB: musb: workaround Blackfin FIFO anomalies 2009-12-23 11:34:19 -08:00
cppi_dma.c USB: musb: suppress warning about unused flags 2010-10-22 10:21:55 -07:00
cppi_dma.h headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
da8xx.c usb: musb: introduce DA8xx/OMAP-L1x glue layer 2010-10-22 10:21:52 -07:00
davinci.c USB: MUSB: fix kernel WARNING/oops when unloading module in OTG mode 2010-10-22 10:21:58 -07:00
davinci.h USB: musb: partial DaVinci dm355 support 2009-03-24 16:20:36 -07:00
Kconfig USB: musb: add musb support for AM35x 2010-10-22 10:22:16 -07:00
Makefile USB: musb: add musb support for AM35x 2010-10-22 10:22:16 -07:00
musb_core.c usb: musb: Fix handling of spurious SESSREQ 2010-11-05 14:17:35 +02:00
musb_core.h USB: musb: blackfin: pm: make it work 2010-11-05 14:10:57 +02:00
musb_debug.h USB: musb: make DBG() calls actually depend on CONFIG_USB_MUSB_DEBUG 2010-10-22 10:21:52 -07:00
musb_debugfs.c usb: musb_debugfs: don't use the struct file private_data field with seq_files 2010-09-20 16:04:56 -07:00
musb_dma.h USB: musb: add work around for Blackfin anomaly 05000456 2009-12-11 11:55:24 -08:00
musb_gadget_ep0.c usb: musb: gadget: restart request on clearing endpoint halt 2010-09-24 11:05:01 -07:00
musb_gadget.c usb: musb: unmap dma buffer when switching to PIO 2010-11-22 12:36:48 +02:00
musb_gadget.h usb: musb: support ISO high bandwidth for gadget mode 2010-10-22 10:21:53 -07:00
musb_host.c usb: musb: host: support DMA transfers greater than max channel length 2010-10-22 10:21:54 -07:00
musb_host.h musb: add high bandwidth ISO support 2009-06-15 21:44:41 -07:00
musb_io.h USB: musb: Blackfin provides read/write I/O accessor in header files 2009-01-07 10:00:08 -08:00
musb_regs.h USB: musb: blackfin: fix musb_read_txhubport() definition 2010-11-05 13:59:32 +02:00
musb_virthub.c USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
musbhsdma.c usb: musb: fail unaligned DMA transfers on v1.8 and above 2010-11-09 10:24:35 +02:00
musbhsdma.h usb: musb: hsdma: use musb_read/writel 2010-05-20 13:21:32 -07:00
omap2430.c USB: MUSB: fix kernel WARNING/oops when unloading module in OTG mode 2010-10-22 10:21:58 -07:00
omap2430.h USB: musb: get rid of omap_readl/writel 2010-03-02 14:54:38 -08:00
tusb6010_omap.c usb: Fix tusb6010 for DMA API 2010-04-30 09:25:09 -07:00
tusb6010.c USB: MUSB: fix kernel WARNING/oops when unloading module in OTG mode 2010-10-22 10:21:58 -07:00
tusb6010.h USB: musb: Remove my email address from few musb related drivers 2009-04-23 14:15:27 -07:00