linux-xiaomi-chiron/include/linux/platform_data
Zhangfei Gao c8acd6aa6b dmaengine: mmp-pdma support
1. virtual channel vs. physical channel
Virtual channel is managed by dmaengine
Physical channel handling resource, such as irq
Physical channel is alloced dynamically as descending priority,
freed immediately when irq done.
The availble highest priority physically channel will alwayes be alloced

Issue pending list -> alloc highest dma physically channel available -> dma done -> free physically channel

2. list: running list & pending list
submit: desc list -> pending list
issue_pending_list: if (IDLE) pending list -> running list; free pending list (RUN)
irq: free running list (IDLE)
     check pendlist -> pending list -> running list; free pending list (RUN)

3. irq:
Each list generate one irq, calling callback
One list may contain several desc chain, in such case, make sure only the last desc list generate irq.

4. async
Submit will add desc chain to pending list, which can be multi-called
If multi desc chain is submitted, only the last desc would generate irq -> call back
If IDLE, issue_pending_list start pending_list, transforming pendlist to running list
If RUN, irq will start pending list

5. test
5.1 pxa3xx_nand on pxa910
5.2 insmod dmatest.ko (threads_per_chan=y)
By default drivers/dma/dmatest.c test every channel and test memcpy with 1 threads per channel

Signed-off-by: Zhangfei Gao <zhangfei.gao@marvell.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
2012-09-14 08:14:07 +05:30
..
ad7266.h iio:adc: Add AD7265/AD7266 support 2012-06-30 10:15:07 +01:00
at91_adc.h ARM: AT91: Add platform data for the AT91 ADCs 2012-05-14 13:17:49 -07:00
atmel-aes.h ARM: AT91SAM9G45: add crypto peripherals 2012-07-11 11:06:16 +08:00
atmel.h avr32: fix build failures from mis-naming of atmel_nand.h 2012-04-02 14:41:25 -07:00
clk-integrator.h ARM: integrator: convert to common clock 2012-07-11 17:58:45 -07:00
clk-nomadik.h ARM: nomadik: convert to generic clock 2012-06-10 18:41:40 +02:00
clk-u300.h ARM: u300: convert to common clock 2012-07-11 15:36:45 -07:00
cpsw.h netdev: driver: ethernet: Add TI CPSW driver 2012-03-19 18:02:05 -04:00
dwc3-exynos.h usb: dwc3: Add Exynos Specific Glue layer 2012-03-02 12:11:28 +02:00
dwc3-omap.h usb: dwc3: omap: distinguish between SW and HW modes 2011-09-09 13:02:45 +03:00
efm32-uart.h serial/efm32: add new driver 2012-01-26 11:29:47 -08:00
ehci-sh.h usb: ehci-sh: Add PHY init function with platform data 2012-04-18 13:52:35 -07:00
emif_plat.h memory: emif: add basic infrastructure for EMIF driver 2012-05-02 00:10:49 -07:00
exynos4_tmu.h hwmon: Add driver for EXYNOS4 TMU 2011-10-24 11:09:35 -07:00
fsa9480.h drivers/misc: add support the FSA9480 USB Switch 2011-07-25 20:57:14 -07:00
gpio-em.h gpio: Emma Mobile GPIO driver V2 2012-05-18 00:00:45 +02:00
i2c-nomadik.h i2c-nomadik: move header to <linux/platform_data/i2c-nomadik.h> 2012-07-09 11:40:40 +02:00
ina2xx.h hwmon: INA219 and INA226 support 2012-05-22 06:48:02 -07:00
leds-lm3556.h leds: Add LED driver for lm3556 chip 2012-07-24 07:52:35 +08:00
leds-renesas-tpu.h drivers/leds/leds-renesas-tpu.c: move Renesas TPU LED driver platform data 2011-10-31 17:30:55 -07:00
lp855x.h backlight: move lp855x header into platform_data directory 2012-07-30 17:25:15 -07:00
lp8727.h lp8727_charger: Move header file into platform_data directory 2012-07-14 01:14:35 -07:00
macb.h ARM: at91/boards: use -EINVAL for invalid gpio 2011-11-29 15:46:14 +00:00
mmp_audio.h ASoC: mmp: add audio dma support 2012-06-13 13:13:37 +01:00
mmp_dma.h dmaengine: mmp-pdma support 2012-09-14 08:14:07 +05:30
msm_serial_hs.h
mv_usb.h usb/marvell: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
ntc_thermistor.h doc: fix broken references 2011-09-27 18:08:04 +02:00
omap-abe-twl6040.h include: platform_data: Platform data header for OMAP4 ASoC audio 2012-01-26 15:39:09 +02:00
omap4-keypad.h Input: omap4-keypad - move platform_data to <linux/platform_data> 2012-03-16 22:49:46 -07:00
omap_drm.h omap2+: add drm device 2012-07-02 04:05:57 -07:00
pxa_sdhci.h mmc: sdhci-pxa: move platform data to include/linux/platform_data 2011-07-20 17:20:52 -04:00
s3c-hsotg.h usb: s3c-hsotg: Add header file protection macros in s3c-hsotg.h 2012-07-17 10:54:29 -07:00
s3c-hsudc.h usb: gadget: s3c-hsudc: move platform_data struct to global header 2011-12-21 13:24:27 +02:00
tegra_emc.h ARM: tegra: emc: convert tegra2_emc to a platform driver 2012-02-06 18:24:59 -08:00
tegra_usb.h usb: ehci-tegra: Add vbus_gpio to platform data 2012-04-18 10:26:37 -06:00
uio_pruss.h
wiznet.h Ethernet driver for the WIZnet W5300 chip 2012-04-05 01:43:02 -04:00