Tong Liu
3cb645dc85
dmaengine: ste_dma40: support more than 128 event lines
...
U8540 DMA controller is different from u9540 we need define new
registers and use them to support handling more than 128 event lines.
Signed-off-by: Tong Liu <tong.liu@stericsson.com >
Reviewed-by: Per Forlin <per.forlin@stericsson.com >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Acked-by: Vinod Koul <vinod.koul@intel.com >
Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org >
2013-01-14 10:50:48 +01:00
Masanari Iida
d73111c6d4
dma: fix comments
...
Correct spelling typo in drivers/dma.
Signed-off-by: Masanari Iida <standby24x7@gmail.com >
Signed-off-by: Jiri Kosina <jkosina@suse.cz >
2012-09-01 08:57:12 -07:00
Narayanan G
1bdae6f49c
dma40: Improve the logic of stopping logical chan
...
can be directly stopped by issuing a SUSPEND_REQ on the EE
bits. There is no need to suspend the physical channel and
restart it.
Also, the support for pre-V2 hw is discontinued.
EE bits for writing:
00: disable only if AS=11 or AS=00
01: enable
10: suspend_req only if AS=01 & EE=01 or EE=11
11: round / no change for writing
Signed-off-by: Narayanan G <narayanan.gopalakrishnan@stericsson.com >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com >
2012-04-23 17:56:17 +05:30
Narayanan G
7fb3e75e18
dmaengine/ste_dma40: support pm in dma40
...
This patch adds power management support to the dma40
driver. The DMA registers are backed up and restored,
during suspend/resume. Also flags to track the dma usage
have been introduced to facilitate this. Patch also includes
few other minor changes, related to formatting, comments.
Signed-off-by: Narayanan G <narayanan.gopalakrishnan@stericsson.com >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com >
2011-11-22 09:46:06 +05:30
Linus Walleij
f4b89764c4
dmaengine/ste_dma40: use AMBA PrimeCell helper macros
...
The DMA40 is not a PrimeCell from ARM, but it still use the same
ID registers. So let's utilize the existing macros in the
PrimeCell header to identify manufacturer and revision of the IP
block instead of reinventing the wheel.
Cc: Robert Marklund <robert.marklund@stericsson.com >
Cc: Per Forlin <per.forlin@linaro.org >
Cc: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-07-14 04:09:10 +05:30
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