1
linux/drivers/usb/musb
Anand Gadiyar 6e16edfe62 usb: musb: fail unaligned DMA transfers on v1.8 and above
The Inventra DMA engine in version 1.8 and later of the MUSB
controller cannot handle DMA addresses that are not aligned
to a 4 byte boundary. It ends up ignoring the last two bits
programmed in the DMA_ADDR register. This is a deliberate
design change in the controller and is documented in the
programming guide.

Earlier versions of the controller could handle these
accesses just fine.

Fail dma_channel_program if we see an unaligned address when
using the newer controllers, so that the caller can carry out
the transfer using PIO mode.
(Current callers already have this backup path in place).

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Tested-by: Ming Lei <tom.leiming@gmail.com>
Cc: Ajay Kumar Gupta <ajay.gupta@ti.com>
Cc: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2010-11-09 10:24:35 +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
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
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
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: gadget: kill duplicate code in musb_gadget_queue() 2010-11-08 09:29:55 +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_io.h
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