linux/drivers/usb/musb
Mian Yousaf Kaukab 5f5761cb8e usb: musb: introduce api for dma code to check compatibility with usb request
Gadget MUSB driver handles dma mappings in musb_gadget_queue(). Where as it is
possible for  dma code to reject the usb request later at ->channel_program()
called from txstate()/rxstate()

For example ->channel_program in tusb6010_omap.c:

static int tusb_omap_dma_program(struct dma_channel *channel, u16 packet_sz,
        u8 rndis_mode, dma_addr_t dma_addr, u32 len)
{
...
	if (unlikely(dma_addr & 0x1) || (len < 32) || (len > packet_sz))
		return false;
...
	if (dma_addr & 0x2)
		return false;
...
}

In this case, usb request will be handled in PIO mode which renders dma mapping
operations unnecessary.

This patch adds an api to allow dma code to indicate incompatibility with usb
request. Gadget musb driver call this api, if available, before dma mappings to
avoid any unnecessary mapping operations.

Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2011-02-01 10:41:30 +02:00
..
am35x.c musb: am35x: fix compile error due to control apis 2010-12-10 10:21:35 +02:00
blackfin.c usb: musb: disable double buffering when it's broken 2011-02-01 10:41:30 +02:00
blackfin.h USB: musb: workaround Blackfin FIFO anomalies 2009-12-23 11:34:19 -08:00
cppi_dma.c usb: musb: add names for IRQs in structure resource 2010-12-01 10:56:33 +02: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: TWL6030: Selecting TWL6030_USB transceiver 2010-12-10 14:45:59 +02:00
Makefile usb: musb: add support for ux500 platform 2010-12-10 10:21:36 +02:00
musb_core.c usb: musb: core: fix IRQ check 2011-02-01 10:41:29 +02:00
musb_core.h usb: musb: disable double buffering when it's broken 2011-02-01 10:41:30 +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 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: restart request on clearing endpoint halt 2010-09-24 11:05:01 -07:00
musb_gadget.c usb: musb: introduce api for dma code to check compatibility with usb request 2011-02-01 10:41:30 +02:00
musb_gadget.h usb: musb: maintain three states for buffer mappings instead of two 2011-02-01 10:41:30 +02:00
musb_host.c usb: musb: disable double buffering when it's broken 2011-02-01 10:41:30 +02: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: musb: make all glue layer export struct musb_platform_ops 2010-12-07 09:19:39 +02:00
musbhsdma.c Merge branch 'usb-next' into musb-merge 2010-12-16 10:05:06 -08:00
musbhsdma.h usb: musb: hsdma: change back to use musb_read/writew 2011-02-01 10:41:30 +02:00
omap2430.c usb: musb: Adding musb support for OMAP4430 2010-12-10 14:56:31 +02: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: move clock handling to glue layer 2010-12-10 10:21:24 +02:00
tusb6010.h
ux500.c usb: musb: add support for ux500 platform 2010-12-10 10:21:36 +02:00