Rabin Vincent
e9f3a49c96
dmaengine/ste_dma40: clear LNK on channel startup
...
Otherwise if a previously physical channel is used as a logical channel, the
LNK may have old values which affect the operation of the logical channel since
the LNK register has different semantics between physical and logical channels.
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com >
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-01-02 16:42:44 +05:30
Narayanan G
5cd326fd27
dmaengine/ste_dma40: allow fixed physical channel
...
Allow logical channels to specify the physical channel they want to use.
This is needed to avoid two peripherals operating on the same physical
channel during some special use-cases. (like mmc and usb during a
usb mass storage case).
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Signed-off-by: Narayanan G <narayanan.gopalakrishnan@stericsson.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com >
2011-12-05 09:16:59 +05:30
Narayanan G
28c7a19d23
dmaengine/ste_dma40: Add support to use lcla area from esram
...
This patch provides an option of having the lcla (link address)
in ESRAM instead of allocating it. The bool value (use_esram_lcla)
in the stedma40_platform_data if set to true, then the lcla
address would be taken from platform resources. Also, the
corresponding esram regulator is managed in the
suspend/resume functions.
Signed-off-by: Narayanan G <narayanan.gopalakrishnan@stericsson.com >
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com >
2011-11-28 09:00:08 +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
Vinod Koul
e0d23ef29e
Merge branch 'dma_slave_direction' into next_test_dirn
...
resolved conflicts:
drivers/media/video/mx3_camera.c
2011-11-17 14:54:57 +05:30
Paul Gortmaker
f492b21027
drivers/dma: Add export.h to ste_dma40.c
...
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com >
2011-10-31 19:31:44 -04:00
Vinod Koul
db8196df4b
dmaengine: move drivers to dma_transfer_direction
...
fixup usage of dma direction by introducing dma_transfer_direction,
this patch moves dma/drivers/* to use new enum
Cc: Jassi Brar <jaswinder.singh@linaro.org >
Cc: Russell King <rmk+kernel@arm.linux.org.uk >
Cc: Viresh Kumar <viresh.kumar@st.com >
Cc: Linus Walleij <linus.walleij@linaro.org >
Cc: Nicolas Ferre <nicolas.ferre@atmel.com >
Cc: Mika Westerberg <mika.westerberg@iki.fi >
Cc: H Hartley Sweeten <hartleys@visionengravers.com >
Cc: Li Yang <leoli@freescale.com >
Cc: Zhang Wei <zw@zh-kernel.org >
Cc: Sascha Hauer <s.hauer@pengutronix.de >
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de >
Cc: Shawn Guo <shawn.guo@freescale.com >
Cc: Yong Wang <yong.y.wang@intel.com >
Cc: Tomoya MORINAGA <tomoya-linux@dsn.lapis-semi.com >
Cc: Boojin Kim <boojin.kim@samsung.com >
Cc: Barry Song <Baohua.Song@csr.com >
Acked-by: Mika Westerberg <mika.westerberg@iki.fi >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Acked-by: Viresh Kumar <viresh.kumar@st.com >
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com >
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com >
2011-10-27 20:53:43 +05:30
Per Forlin
503473ac2a
dmaengine/ste_dma40: fix memory leak due to prepared descriptors
...
Prepared descriptors that are not submitted will not be freed. Add
prepared descriptor to a list to be able to release them upon
dmaengine_terminate_all().
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:11:38 +05:30
Per Forlin
70a207ad4d
dmaengine/ste_dma40: fix Oops due to double free of client descriptor
...
The client list may exist in two lists at the same time. This makes free
fail since the same desc is freed multiple times. Remove desc from
client list when adding it to the pending queue. Move free of client owned
descriptors from free_dma() to terminate_all().
Unable to handle kernel paging request at virtual address 00100104
pgd = dea8c000
[00100104] *pgd=1ea62831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1 ] PREEMPT SMP
Modules linked in:
CPU: 0 Not tainted (3.1.0-rc3+ #58 )
PC is at d40_free_chan_resources+0x64/0x330
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:11:21 +05:30
Per Forlin
270e779036
dmaengine/ste_dma40: remove duplicate call to d40_pool_lli_free().
...
d40_desc_free() already calls d40_pool_lli_free().
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:11:05 +05:30
Per Forlin
89de9f6542
dmaengine/ste_dma40: add missing kernel doc for pending_queue
...
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:10:39 +05:30
Per Forlin
82babbb361
dmaengine/ste_dma40: fix memory leak due to prepared descriptors
...
Prepared descriptors that are not submitted will not be freed. Add
prepared descriptor to a list to be able to release them upon
dmaengine_terminate_all().
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:08:26 +05:30
Per Forlin
7404368c22
dmaengine/ste_dma40: fix Oops due to double free of client descriptor
...
The client list may exist in two lists at the same time. This makes free
fail since the same desc is freed multiple times. Remove desc from
client list when adding it to the pending queue. Move free of client owned
descriptors from free_dma() to terminate_all().
Unable to handle kernel paging request at virtual address 00100104
pgd = dea8c000
[00100104] *pgd=1ea62831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1 ] PREEMPT SMP
Modules linked in:
CPU: 0 Not tainted (3.1.0-rc3+ #58 )
PC is at d40_free_chan_resources+0x64/0x330
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:07:58 +05:30
Per Forlin
3b3d5b0f85
dmaengine/ste_dma40: remove duplicate call to d40_pool_lli_free().
...
d40_desc_free() already calls d40_pool_lli_free().
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:07:28 +05:30
Per Forlin
da063d2609
dmaengine/ste_dma40: add missing kernel doc for pending_queue
...
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-09-05 17:07:03 +05:30
Linus Torvalds
12ff47e7f5
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
...
* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (37 commits)
Improve slave/cyclic DMA engine documentation
dmaengine: pl08x: handle the rest of enums in pl08x_width
DMA: PL08x: cleanup selection of burst size
DMA: PL08x: avoid recalculating cctl at each prepare
DMA: PL08x: cleanup selection of buswidth
DMA: PL08x: constify plchan->cd and plat->slave_channels
DMA: PL08x: separately store source/destination cctl
DMA: PL08x: separately store source/destination slave address
DMA: PL08x: clean up LLI debugging
DMA: PL08x: select LLI bus only once per LLI setup
DMA: PL08x: remove unused constants
ARM: mxs-dma: reset after disable channel
dma: intel_mid_dma: remove redundant pci_set_drvdata calls
dma: mxs-dma: fix unterminated platform_device_id table
dmaengine: pl330: make platform data optional
dmaengine: imx-sdma: return proper error if kzalloc fails
pch_dma: Fix CTL register access issue
dmaengine: mxs-dma: skip request_irq for NO_IRQ
dmaengine/coh901318: fix slave submission semantics
dmaengine/ste_dma40: allow memory buswidth/burst to be configured
...
Fix trivial whitespace conflict in drivers/dma/mv_xor.c
2011-08-01 13:46:37 -10:00
Rabin Vincent
98ca528916
dmaengine/ste_dma40: allow memory buswidth/burst to be configured
...
Currently the runtime config implementation forces the memory side
parameters to be the same as the peripheral side. Allow these to be
different, and check for misconfiguration.
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com >
Reviewed-by: Ulf HANSSON <ulf.hansson@stericsson.com >
Tested-by: Stefan Nilsson <stefan.xk.nilsson@stericsson.com >
Reviewed-by: Per Forlin <per.forlin@stericsson.com >
Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com >
Cc: Robert Marklund <robert.marklund@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
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
Robert Marklund
79ca7ec3d1
dmaengine/ste_dma40: make the cyclic alloc NOWAIT
...
This function may be initiated from IRQ context, so the allocation
must allocate NOWAIT memory.
Signed-off-by: Robert Marklund <robert.marklund@stericsson.com >
Reviewed-by: Rabin Vincent <rabin.vincent@stericsson.com >
Reviewed-by: Philippe Langlais <philippe.langlais@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
om prakash
ae752bf4cb
dmaengine/ste_dma40: fix missing kernel-doc
...
Missing documentation creates kernel-doc warnings, so add
the documenation.
Signed-off-by: Om Prakash <omprakash.pal@stericsson.com >
Reviewed-by: Rabin Vincent <rabin.vincent@stericsson.com >
Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com >
Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar@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
Per Forlin
a8f3067bce
dmaengine/ste_dma40: add a separate queue for pending requests
...
tx_submit will add descriptors to the pending queue. Issue pending
will then move the pending descriptors to the transfer queue.
Signed-off-by: Per Forlin <per.forlin@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-07-14 04:02:08 +05:30
Alexey Dobriyan
b7f080cfe2
net: remove mm.h inclusion from netdevice.h
...
Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually).
To prevent mm.h inclusion via other channels also extract "enum dma_data_direction"
definition into separate header. This tiny piece is what gluing netdevice.h with mm.h
via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h".
Removal of mm.h from scatterlist.h was tried and was found not feasible
on most archs, so the link was cutoff earlier.
Hope people are OK with tiny include file.
Note, that mm_types.h is still dragged in, but it is a separate story.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2011-06-21 19:17:20 -07:00
Linus Torvalds
4cb865deec
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
...
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (33 commits)
x86: poll waiting for I/OAT DMA channel status
maintainers: add dma engine tree details
dmaengine: add TODO items for future work on dma drivers
dmaengine: Add API documentation for slave dma usage
dmaengine/dw_dmac: Update maintainer-ship
dmaengine: move link order
dmaengine/dw_dmac: implement pause and resume in dwc_control
dmaengine/dw_dmac: Replace spin_lock* with irqsave variants and enable submission from callback
dmaengine/dw_dmac: Divide one sg to many desc, if sg len is greater than DWC_MAX_COUNT
dmaengine/dw_dmac: set residue as total len in dwc_tx_status if status is !DMA_SUCCESS
dmaengine/dw_dmac: don't call callback routine in case dmaengine_terminate_all() is called
dmaengine: at_hdmac: pause: no need to wait for FIFO empty
pch_dma: modify pci device table definition
pch_dma: Support new device ML7223 IOH
pch_dma: Support I2S for ML7213 IOH
pch_dma: Fix DMA setting issue
pch_dma: modify for checkpatch
pch_dma: fix dma direction issue for ML7213 IOH video-in
dmaengine: at_hdmac: use descriptor chaining help function
dmaengine: at_hdmac: implement pause and resume in atc_control
...
Fix up trivial conflict in drivers/dma/dw_dmac.c
2011-05-28 12:35:15 -07:00
Linus Walleij
a0eb221a44
dmaengine: move link order
...
Move the dmaengine subsystem up early in the drivers Makefile so
DMA is made available early to all drivers, just like e.g.
regulators. Now even regulators can use DMA on the same initlevel.
As a result we can bump the ste_dma40 and coh901318 dmaengine
drivers down one initlevel to subsys_init().
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-05-19 16:56:26 +05:30
Philippe Langlais
711b9cea92
dmaengine/ste_dma40: fix introduced warnings
...
The compiler nowadays moans about possibly non-assigned variable.
Fix this by default-assigning 0.
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org >
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Vinod Koul <vinod.koul@intel.com >
2011-05-09 11:24:17 +05:30
Lucas De Marchi
25985edced
Fix common misspellings
...
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi >
2011-03-31 11:26:23 -03: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
86eb5fb611
dma40: stop ongoing transfers in DMA_TERMINATE_ALL
...
The current implementation of DMA_TERMINATE_ALL leaves ongoing transfers
running. Fix it.
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
7ad74a7cf6
dma40: fix DMA_SG capability and channels
...
The DMA_SG cap is enabled on the wrong channel, and the pointers are repeatedly
set incorrectly. Fix it and combine the ops settings to a common function.
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
6045f0bb28
dma40: handle failure to allocate first LCLA
...
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
e65889c75c
dma40: extract lcla code into separate function
...
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
822c567639
dma40: unify src/dst addr check
...
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
cade1d30b2
dma40: combine mem and slave prep_sg functions
...
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
10a946b3a4
dma40: remove export of stedma40_memcpy_sg
...
The dmaengine framework has the API for this now.
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:18 -08:00
Rabin Vincent
3e3a0763e7
dma40: combine mem and slave sg-to-lli functions
...
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:18 -08:00
Rabin Vincent
00ac034148
dma40: remove duplicated dev addr 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:18 -08:00
Rabin Vincent
dbd8878803
dma40: combine duplicated d40_pool_lli_alloc() calls
...
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:18 -08:00
Rabin Vincent
5f81158f90
dma40: combine desc init functions
...
The desc init code can be shared between the mem and slave prep routines.
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:18 -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
d924abad7f
dma40: remove unnecessary casts
...
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
b00f938c8c
dma40: fix DMA API usage for LLIs
...
Map and unmap the LLIs and use dma_sync_single_for_device() appropriately
instead of mapping and never unmapping them.
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
026cbc424a
dma40: fix DMA API usage for LCLA
...
Map the buffer once and use dma_sync*() appropriately instead of mapping the
buffer over and over without unmapping it.
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
594ece4dc0
dma40: remove unnecessary ALIGN()s
...
ALIGN(x * y, y) == x * y
ALIGN(aligned + x * y, y) == aligned + x * y
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
Rabin Vincent
4d5949009e
dma40: fix comment to refer to SOCs rather than boards
...
And add DB8500v2 information.
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
Rabin Vincent
6db5a8ba11
dma40: use helpers for error functions
...
Almost every use of dev_err in this driver prints the function name. Abstract
out wrappers to help with this and reduce code duplication.
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
Rabin Vincent
724a8577d8
dma40: use helpers for channel type check
...
The somewhat confusing check
d40c->log_num == D40_PHY_CHAN
and its variants are used in several places to check if a channel is logical or
physical. Use appropriately named helpers to do this to make the code more
readable.
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