Fabio Baltieri
f26e03ad2b
dmaengine: ste_dma40: minor cosmetic fixes
...
This patch contains various non functional cosmetic fixes.
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:51:01 +01:00
Per Forlin
8a5d2039ab
dmaengine: ste_dma40: use writel_relaxed for lcxa
...
lcpa and lcla are written often and the cache_sync() overhead in writel
is costly, especially for wlan where every single network packet (in RX
mode) corresponds to a separate DMA transfer.
Signed-off-by: Per Forlin <per.forlin@stericsson.com >
Reviewed-by: Narayanan Gopalakrishnan <narayanan.gopalakrishnan@stericsson.com >
Reviewed-by: Rabin Vincent <rabin.vincent@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:15 +01:00
Narayanan
0fd602235d
dmaengine: ste_dma40: reset priority bit for logical channels
...
This patch sets the SSCFG/SDCFG bit[7] PRI only for physical channel
requests with high priority. For logical channels, this bit will be
zero.
Signed-off-by: Narayanan G <narayanan.gopalakrishnan@stericsson.com >
Reviewed-by: Rabin Vincent <rabin.vincent@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:09 +01:00
Linus Walleij
865fab601b
ARM: plat-nomadik: move DMA40 header to <linux/platform_data>
...
This moves the DMA40 platform data header from <plat/ste_dma40.h>
to <linux/platform_data/dma-ste-dma40.h> where is belongs.
Cc: Dan Williams <djbw@fb.com >
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com >
Cc: Ola Lilja <ola.o.lilja@stericsson.com >
Cc: Herbert Xu <herbert@gondor.apana.org.au >
Cc: Andreas Westin <andreas.westin@stericsson.com >
Acked-by: Vinod Koul <vinod.koul@intel.com >
Acked-by: Arnd Bergmann <arnd@arndb.de >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2012-11-05 09:55:32 +01:00
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
e24b36bdf8
dma40: combine duplicated code in log_sg_to_dev
...
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
7fe8be5a74
dma40: use sg_dma_address() instead of sg_phys()
...
The address to use for DMA should be taken from sg_dma_address() and not
sg_phys().
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
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
51f5d744ed
ste_dma40: remove enum for endianess
...
A bool will suffice. The default is little endian.
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
Rabin Vincent
730c187168
ste_dma40: move priority to separate field
...
And keep it low priority by default.
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:06 -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
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
Jonas Aaberg
2123a61e17
DMAENGINE: ste_dma40: interrupts only on dst
...
We don't want interrupts when the source is done, only when
the destination is done and everything is complete at the
recieveing end of a transfer.
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
Jonas Aaberg
2a6143407d
DMAENGINE: ste_dma40: various cosmetic clean-ups
...
This cleans up some extra newlines, removes some code duplication
and moves the code to comply better with checkpatch.
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:54 -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