Rabin Vincent
0c842b5510
dma40: cyclic xfer support
...
Support cyclic transfers, which are useful for ALSA drivers.
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:21 -08:00
Rabin Vincent
7f933bed96
dma40: use flags to reduce parameter count
...
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:20 -08:00
Rabin Vincent
1f7622ca55
dma40: make d40_log_buf_to_lli static
...
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:20 -08:00
Rabin Vincent
cc31b6f794
dma40: pass the info pointer all the way to reduce argument count
...
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:20 -08:00
Rabin Vincent
5ed04b8575
dma40: unify d40_log_sg_to_lli funcs for mem and slave
...
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:19 -08:00
Rabin Vincent
1c4b0927fe
dma40: move lli_load to main source file
...
These register writes are better placed in the main source file rather than
ll.c.
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:19 -08:00
Rabin Vincent
95944c6ef5
dma40: implement prep_memcpy as a wrapper around memcpy_sg
...
To simplify the code.
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:17 -08:00
Rabin Vincent
ac2c0a3871
dma40: allow realtime and priority for event lines
...
DB8500v2's DMA40 (revision 3) allows setting event lines as high priority and
real time.
Acked-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-30 22:27:16 -08:00
Per Forlin
d49278e335
dmaengine: dma40: Add support to split up large elements
...
The maximum transfer size of the stedma40 is (64k-1) x data-width.
If the transfer size of one element exceeds this limit
the job is split up and sent as linked transfer.
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2011-01-04 17:20:43 -08:00
Rabin Vincent
20a5b6d043
ste_dma40: move mode_opt to separate config
...
Defaults are "basic mode" for physical channels, and "logical source
logical destination" for logical channels.
Acked-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-10-19 15:17:07 -07:00
Jonas Aaberg
698e4732e7
DMAENGINE: ste_dma40: rewrote LCLA entries allocation code
...
LLI allocation is now done on job level instead of channel level.
Previously the maximum length of a linked job in hw on a logical
channel was 8, since the LLIs where evenly divided. Now only
executing jobs have allocated LLIs which increase the length to
a maximum of 64 links in HW.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:46 -07:00
Jonas Aaberg
767a9675c4
DMAENGINE: ste_dma40: code clean-up
...
This patch includes non functional code clean up changes,
file header updates and a few magic numbers got defined.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:46 -07:00
Jonas Aaberg
aa182ae262
DMAENGINE: ste_dma40: added support for link jobs in hw
...
If a new job is added on a physical channel that already has
a job, the new job is linked in hw to the old job instead of
queueing up the jobs.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
3ae0267fd5
DMAENGINE: ste_dma40: removed a few magic numbers
...
Make sure to extract the revision field explicitly and document
what bits are being accessed here without magic numbers.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Jonas Aaberg
0246e77b4d
DMAENGINE: ste_dma40: fix bug related to callback handling
...
The callback got called even when it was not supposed to. Also
removed some not needed interrupt trigger on/off code.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-09-22 14:53:45 -07:00
Linus Walleij
508849ade2
DMAENGINE: ste_dma40: allocate LCLA dynamically
...
Switch to allocating LCLA in memory instead of having a fixed
address.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:55 -07:00
Linus Walleij
ef1872ec65
DMAENGINE: ste_dma40: only write phy channel config first time
...
We only need to write the configuration to a physical channel if
it is free, else it is already written.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-06-22 18:01:53 -07:00
Linus Walleij
8d318a50b3
DMAENGINE: Support for ST-Ericssons DMA40 block v3
...
This is a straightforward driver for the ST-Ericsson DMA40 DMA
controller found in U8500, implemented akin to the existing
COH 901 318 driver.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com >
Acked-by: Srinidh Kasagar <srinidhi.kasagar@stericsson.com >
Cc: STEricsson_nomadik_linux@list.st.com
Cc: Alessandro Rubini <rubini@unipv.it >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Dan Williams <dan.j.williams@intel.com >
2010-04-14 14:49:20 -07:00