kernel-ark/drivers/usb/musb
Mike Frysinger 132543074a USB: musb: blackfin: work around anomaly 05000450
DMA mode 1 data corruption anomaly on Blackfin systems.  This issue is
specific to the Blackfin silicon as the bug appears to be related to the
connection of the musb ip to the bus/dma fabric.

Data corruption when using USB DMA mode 1. (Issue manager 17-01-0105)
DMA mode 1 allows large size transfers to generate a single interrupt
at the end of the entire transfer.  The transfer is split up in packets
of length specified in the Maximum Packet Size field for that endpoint.
If the transfer size is not an integer multiple of the Maximum Packet
Size, a short packet will be present at the end of the transfer.

Under certain conditions this packet may be corrupted in the USB FIFO.

Workaround:
Use DMA mode 1 to transfer (n* Maximum Packet Size) and schedule DMA
mode 0 to transfer the short packet.

As an example if your transfer size is 33168 bytes and Maximum Packet
Size equals 512, schedule [33168 - (33168 mod 512)] in DMA mode 1 and
the remainder (33168 mod 512) in DMA mode 0.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2011-04-13 11:51:28 +03:00
..
am35x.c musb: am35x: fix compile error due to control apis 2010-12-10 10:21:35 +02:00
blackfin.c USB: musb: blackfin: work around anomaly 05000450 2011-04-13 11:51:28 +03:00
blackfin.h
cppi_dma.c USB: musb: dereferencing an iomem pointer 2011-04-13 11:51:24 +03:00
cppi_dma.h
da8xx.c usb: musb: drop board_set_vbus 2010-12-10 10:21:33 +02:00
davinci.c usb: musb: drop board_set_vbus 2010-12-10 10:21:33 +02:00
davinci.h
Kconfig usb: musb: temporarily make it bool 2011-04-13 11:51:25 +03:00
Makefile usb: musb: add support for ux500 platform 2010-12-10 10:21:36 +02:00
musb_core.c usb: musb: Fix the crash issue during reboot 2011-04-13 11:51:28 +03:00
musb_core.h USB: musb: blackfin: work around anomaly 05000450 2011-04-13 11:51:28 +03: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 headers: kobject.h redux 2011-01-10 08:51:44 -08:00
musb_dma.h usb: musb: introduce api for dma code to check compatibility with usb request 2011-02-01 10:41:30 +02:00
musb_gadget_ep0.c usb: musb: gadget: do not poke with gadget's list_head 2011-02-17 21:11:46 +02:00
musb_gadget.c usb: musb: gadget: check the correct list_head 2011-04-13 11:51:26 +03:00
musb_gadget.h usb: musb: gadget: do not poke with gadget's list_head 2011-02-17 21:11:46 +02:00
musb_host.c Merge 2.6.38-rc5 into usb-next 2011-02-17 09:56:55 -08:00
musb_host.h
musb_io.h usb: musb: add Kconfig options for each glue layer 2010-12-10 10:21:09 +02:00
musb_regs.h Merge branch 'usb-next' into musb-merge 2010-12-16 10:05:06 -08:00
musb_virthub.c USB 3.0 Hub Changes 2011-03-13 18:07:11 -07:00
musbhsdma.c USB: musb: blackfin: work around anomaly 05000450 2011-04-13 11:51:28 +03:00
musbhsdma.h Merge branches 'devel-cleanup', 'devel-board', 'devel-early-init' and 'devel-ti816x' into omap-for-linus 2011-02-16 11:32:38 -08:00
omap2430.c Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 2011-03-16 15:04:26 -07:00
omap2430.h
tusb6010_omap.c usb: musb: tusb: Fix possible null pointer dereference in tusb6010_omap.c 2011-03-01 12:35:23 +02:00
tusb6010.c drivers: Final irq namespace conversion 2011-03-29 14:48:19 +02:00
tusb6010.h
ux500.c usb: musb: ux500: copy dma mask from platform device to musb device 2011-04-13 11:50:57 +03:00