linux/arch/arm/mach-davinci
Rajashekhara, Sudhakar 90bd4e6dd7 davinci: support for EDMA resource sharing
Current EDMA driver is not taking care of EDMA channels/slots
which are allocated from other processor, say DSP. If a
channel/slot is allocated from DSP, the existing EDMA driver
can still allocate the same resource on ARM.

This patch enables the user to pass the channel/slots reserved
for DSP as platform data. EDMA driver scans this list during
probe and prepares a bitmap of channel/slots which can be used
on ARM side.

Trying to reserve channels by doing a 'pre-allocate' using
edma_alloc_{slot|channel}() API does not work because

1) The reservation should be done in probe() to avoid race
   with other ARM side driver trying to use EDMA

2) The alloc channel API sets up the access through shadow region
   0 which will be incorrect for DSP usage. It also sets up the
   channel <-> queue number mapping which is not required as DSP
   will likely do its own mapping anyway.

3) (minor) There is no API to allocate channels in bulk.

Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
2010-08-05 09:58:25 -07:00
..
include/mach davinci: support for EDMA resource sharing 2010-08-05 09:58:25 -07:00
board-da830-evm.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-da850-evm.c davinci: da850 TPS6507x touch screen driver board data 2010-05-28 01:37:39 +02:00
board-dm355-evm.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-dm355-leopard.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-dm365-evm.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2010-05-20 09:41:44 -07:00
board-dm644x-evm.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-dm646x-evm.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-neuros-osd2.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-sffsdr.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
board-tnetv107x-evm.c Davinci: tnetv107x evm board initial support 2010-06-21 12:48:31 -07:00
cdce949.c davinci: misc cleanups from sparse 2010-05-06 15:02:01 -07:00
clock.c Davinci: psc - use ioremap() 2010-05-13 10:05:27 -07:00
clock.h Davinci: watchdog reset separation across socs 2010-05-06 15:02:09 -07:00
common.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
cp_intc.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
cpufreq.c davinci: DA850/OMAP-L138: avoid using separate initcall for initializing regulator 2009-11-25 10:21:37 -08:00
cpuidle.c davinci: cpuidle: move mapping of DDR2 controller registers out of driver 2010-02-04 13:29:38 -08:00
da830.c davinci: da8xx: sparse cleanup: remove duplicate entries in irq priorities 2010-08-05 09:58:23 -07:00
da850.c davinci: da8xx: sparse cleanup: remove duplicate entries in irq priorities 2010-08-05 09:58:23 -07:00
devices-da8xx.c davinci: edma: provide ability to detect insufficient CC info data 2010-08-05 09:58:24 -07:00
devices-tnetv107x.c davinci: edma: provide ability to detect insufficient CC info data 2010-08-05 09:58:24 -07:00
devices.c Davinci: timer - use ioremap() 2010-05-13 10:05:26 -07:00
dm355.c davinci: edma: provide ability to detect insufficient CC info data 2010-08-05 09:58:24 -07:00
dm365.c davinci: edma: provide ability to detect insufficient CC info data 2010-08-05 09:58:24 -07:00
dm644x.c davinci: edma: provide ability to detect insufficient CC info data 2010-08-05 09:58:24 -07:00
dm646x.c davinci: edma: provide ability to detect insufficient CC info data 2010-08-05 09:58:24 -07:00
dma.c davinci: support for EDMA resource sharing 2010-08-05 09:58:25 -07:00
gpio-tnetv107x.c Davinci: tnetv107x initial gpio support 2010-06-21 12:48:31 -07:00
gpio.c Davinci: gpio - use ioremap() 2010-05-13 10:05:22 -07:00
io.c Davinci: iotable based ioremap() interception 2010-05-13 10:05:31 -07:00
irq.c Davinci: aintc/cpintc - use ioremap() 2010-05-13 10:05:28 -07:00
Kconfig Davinci: tnetv107x evm board initial support 2010-06-21 12:48:31 -07:00
Makefile Davinci: tnetv107x evm board initial support 2010-06-21 12:48:31 -07:00
Makefile.boot davinci: da8xx: Add base DA830/OMAP-L137 SoC support 2009-08-26 10:56:59 +03:00
mux.c Davinci: pinmux - use ioremap() 2010-05-13 10:05:29 -07:00
mux.h Davinci: eliminate pinmux offset verbosity 2010-05-06 15:02:09 -07:00
pm.c davinci: add power management support 2010-02-04 13:29:55 -08:00
psc.c Davinci: psc - use ioremap() 2010-05-13 10:05:27 -07:00
serial.c Davinci: serial - conditional reset via pwremu 2010-05-06 15:02:10 -07:00
sleep.S davinci: add power management support 2010-02-04 13:29:55 -08:00
sram.c DaVinci: remove unneeded #include's 2009-11-25 10:21:31 -08:00
time.c Davinci: timer - use ioremap() 2010-05-13 10:05:26 -07:00
tnetv107x.c Davinci: tnetv107x soc support 2010-06-21 12:48:30 -07:00
usb.c DA8xx: MUSB platform device registration 2009-11-25 10:21:33 -08:00