GitHub/LineageOS/android_kernel_motorola_exynos9610.git
9 years agodmaengine: pl330: add DMA_PAUSE feature
Robert Baldyga [Wed, 11 Feb 2015 12:23:18 +0000 (13:23 +0100)]
dmaengine: pl330: add DMA_PAUSE feature

DMA_PAUSE command is used for halting DMA transfer on chosen channel.
It can be useful when we want to safely read residue before terminating
all requests on channel. Otherwise there can be situation when some data
is transferred before channel termination but after reading residue,
which obviously results with data loss. To avoid this situation we can
pause channel, read residue and then terminate all requests.
This scenario is common, for example, in serial port drivers.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: pl330: improve pl330_tx_status() function
Robert Baldyga [Wed, 11 Feb 2015 12:23:17 +0000 (13:23 +0100)]
dmaengine: pl330: improve pl330_tx_status() function

This patch adds possibility to read residue of DMA transfer. It's useful
when we want to know how many bytes have been transferred before we
terminate channel. It can take place, for example, on timeout interrupt.

Signed-off-by: Lukasz Czerwinski <l.czerwinski@samsung.com>
Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-dmac: Disable channel 0 when using IOMMU
Laurent Pinchart [Tue, 27 Jan 2015 17:04:10 +0000 (19:04 +0200)]
dmaengine: rcar-dmac: Disable channel 0 when using IOMMU

A still unconfirmed hardware bug prevents the IPMMU microTLB 0 to be
flushed correctly, resulting in memory corruption. DMAC 0 channel 0 is
connected to microTLB 0 on currently supported platforms, so we can't
use it with the IPMMU. As the IOMMU API operates at the device level we
can't disable it selectively, so ignore channel 0 for now if the device
is part of an IOMMU group.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-dmac: Work around descriptor mode IOMMU errata
Laurent Pinchart [Tue, 27 Jan 2015 16:33:29 +0000 (18:33 +0200)]
dmaengine: rcar-dmac: Work around descriptor mode IOMMU errata

When descriptor memory is accessed through an IOMMU the DMADAR register
isn't initialized automatically from the first descriptor at beginning
of transfer by the DMAC like it should. Initialize it manually with the
destination address of the first chunk.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-dmac: Allocate hardware descriptors with DMAC device
Laurent Pinchart [Tue, 27 Jan 2015 13:58:53 +0000 (15:58 +0200)]
dmaengine: rcar-dmac: Allocate hardware descriptors with DMAC device

When wired to an IOMMU to access data, the DMAC accesses the hardware
descriptors through the IOMMU as well. We're using the DMA mapping API
to allocate the descriptors, but with a NULL device at the moment, which
prevents IOMMU mappings from being created. Fix this by passing the DMAC
device instead.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-dmac: Fix oops due to unintialized list in error ISR
Laurent Pinchart [Tue, 27 Jan 2015 13:58:53 +0000 (15:58 +0200)]
dmaengine: rcar-dmac: Fix oops due to unintialized list in error ISR

The error interrupt handler stops and reinitializes all channels. This
causes a crash for channels that have never been used, as their
descriptor lists are uninitialized. Fix it by initializing the
descriptor lists at probe time.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-dmac: Fix spinlock issues in interrupt
Laurent Pinchart [Tue, 27 Jan 2015 13:52:13 +0000 (15:52 +0200)]
dmaengine: rcar-dmac: Fix spinlock issues in interrupt

The rcar_dmac_desc_put() function is called in interrupt context and
must thus use spin_lock_irqsave() instead of spin_lock_irq().

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaenegine: edma: fix sparse warnings
Lad, Prabhakar [Wed, 4 Feb 2015 13:03:27 +0000 (13:03 +0000)]
dmaenegine: edma: fix sparse warnings

this patch fixes following sparse warnings:

edma.c:537:32: warning: symbol 'edma_prep_dma_memcpy' was not declared. Should it be static?
edma.c:1070:6: warning: symbol 'edma_filter_fn' was not declared. Should it be static?

Signed-off-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-dmac: Fix uninitialized variable usage
Laurent Pinchart [Thu, 8 Jan 2015 16:29:25 +0000 (18:29 +0200)]
dmaengine: rcar-dmac: Fix uninitialized variable usage

The desc variable is used uninitialized in the rcar_dmac_desc_get() and
rcar_dmac_xfer_chunk_get() functions if descriptors need to be
allocated. Fix it.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: shdmac: extend PM methods
Sergei Shtylyov [Tue, 20 Jan 2015 21:13:21 +0000 (00:13 +0300)]
dmaengine: shdmac: extend PM methods

In order to make it possible to restore from hibernation not only in Linux but
also in e.g. U-Boot, we have to use sh_dmae_{suspend|resume}() for the {freeze|
thaw|restore}() PM methods. It's handy to achieve this with SIMPLE_DEV_PM_OPS()
macro; since  that macro doesn't do anything when CONFIG_PM_SLEEP  is undefined,
we don't need to #define sh_dmae_{suspend|resume} NULL anymore but we'll have to
enclose sh_dmae_{suspend|resume}() into the new #ifdef...

Based on original patch by Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: shdmac: use SET_RUNTIME_PM_OPS()
Sergei Shtylyov [Tue, 20 Jan 2015 21:09:46 +0000 (00:09 +0300)]
dmaengine: shdmac: use SET_RUNTIME_PM_OPS()

Use SET_RUNTIME_PM_OPS() to initialize the runtime PM method pointers in the
'struct dev_pm_ops';  since that macro doesn't  do anything  if CONFIG_PM is
not defined, we have  to move #ifdef up to also cover the runtime PM methods
in order to avoid compilation warnings.

Based on orignal patch by Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: pl330: fix bug that cause start the same descs in cyclic
Addy Ke [Mon, 8 Dec 2014 11:28:20 +0000 (19:28 +0800)]
dmaengine: pl330: fix bug that cause start the same descs in cyclic

This bug will cause NULL pointer after commit dfac17, and cause
wrong package in I2S DMA transfer before commit dfac17.

Tested on RK3288-pinky2 board.

Detail:
I2S DMA transfer(sound/core/pcm_dmaengine.c):
dmaengine_pcm_prepare_and_submit -->
dmaengine_prep_dma_cyclic -->
pl330_prep_dma_cyclic -->
the case:
1. pl330_submit_req(desc0): thrd->req[0].desc = desc0, thrd->lstenq = 0
2. pl330_submit_req(desc1): thrd->req[1].desc = desc1, thrd->lstenq = 1
3. _start(desc0) by submit_req: thrd->req_running = 0
   because: idx = 1 - thrd->lstenq = 0
4. pl330_update(desc0 OK): thrd->req[0].desc = NULL, desc0 to req_done list
   because: idx = active = thrd->req_running = 0
5. _start(desc1) by pl330_update: thrd->req_running = 1
   because:
   idx = 1 - thrd->lstenq = 0, but thrd->req[0].desc == NULL,
   so:
   idx = thrd->lstenq = 1
6. pl330_submit_req(desc2): thrd->req[0].desc = desc2, thrd->lstenq = 0
7. _start(desc1) by submit_req: thrd->req_running = 1
   because: idx = 1 - thrd->lstenq = 1
   Note: _start started the same descs
         _start should start desc2 here, NOT desc1

8. pl330_update(desc1 OK): thrd->req[1].desc = NULL, desc1 to req_done list
   because: idx = active = thrd->req_running = 1
9. _start(desc2) by pl330_update : thrd->req_running = 0
   because: idx = 1 - thrd->lstenq = 0
10.pl330_update(desc1 OK, NOT desc2): thrd->req[0].desc = NULL,
   desc2 to req_done list
   because: idx = active = thrd->req_running = 0

11.pl330_submit_req(desc3): thrd->req[0].desc = desc3, thrd->lstenq = 0
12.pl330_submit_req(desc4): thrd->req[1].desc = desc4, thrd->lstenq = 1
13._start(desc3) by submit_req: thrd->req_running = 0
   because: idx = 1 - thrd->lstenq = 0
14.pl330_update(desc2 OK NOT desc3): thrd->req[0].desc = NULL
   desc3 to req_done list
   because: idx = active = thrd->req_running = 0
15._start(desc4) by pl330_update: thrd->req_running = 1
   because:
   idx = 1 - thrd->lstenq = 0, but thrd->req[0].desc == NULL,
   so:
   idx = thrd->lstenq = 1
16.pl330_submit_req(desc5): thrd->req[0].desc = desc5, thrd->lstenq = 0
17._start(desc4) by submit_req: thrd->req_running = 1
   because: idx = 1 - thrd->lstenq = 1
18.pl330_update(desc3 OK NOT desc4): thrd->req[1].desc = NULL
   desc4 to req_done list
   because: idx = active = thrd->req_running = 1
19._start(desc4) by pl330_update: thrd->req_running = 0
   because:
   idx = 1 - thrd->lstenq = 1, but thrd->req[1].desc == NULL,
   so:
   idx = thrd->lstenq = 0
20.pl330_update(desc4 OK): thrd->req[0].desc = NULL, desc5 to req_done list
   because: idx = active = thrd->req_running = 0
21.pl330_update(desc4 OK):
   1) before commit dfac17(set req_running -1 in pl330_update/mark_free()):
      because: active = -1, abort
      result: desc0-desc5's callback are all called,
      but step 10 and step 18 go wrong.
   2) before commit dfac17:
      idx = active = thrd->req_runnig = 0 -->
      descdone = thrd->req[0] = NULL -->
      list_add_tail(&descdone->rqd, &pl330->req_done); -->
      got NULL pointer!!!

Signed-off-by: Addy Ke <addy.ke@rock-chips.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: at_xdmac: allow muliple dwidths when doing slave transfers
Ludovic Desroches [Tue, 27 Jan 2015 15:30:32 +0000 (16:30 +0100)]
dmaengine: at_xdmac: allow muliple dwidths when doing slave transfers

When using FIFO, we need to support differents data width in a single
transfer. For example, serial device which usually uses 1-byte data
width will use 4-bytes data width when using the FIFO. If the transfer
size is not aligned on 4-bytes then the end of the transfer will be
performed with 1-byte data-width. For that reason,
at_xdmac_prep_slave_sg() now builds linked list descriptors using view 2
instead of view 1 so each of them can update the DWIDTH field into the
Channel Configuration Register.

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: at_xdmac: simplify channel configuration stuff
Ludovic Desroches [Tue, 27 Jan 2015 15:30:31 +0000 (16:30 +0100)]
dmaengine: at_xdmac: simplify channel configuration stuff

This patch simplifies the channel configuration register management.
Relying on a "software snapshot" of the configuration is not safe and
too complex.

Multiple dwidths will be introduced for slave transfers. In this case,
it becomes quite difficult to have an accurate snapshot of the channel
configuration register in the way it is done. Using the channel
configuration available in the lli descriptor simplifies this stuff.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: at_xdmac: introduce save_cc field
Ludovic Desroches [Tue, 27 Jan 2015 15:30:30 +0000 (16:30 +0100)]
dmaengine: at_xdmac: introduce save_cc field

When suspending the device, read the channel configuration directly from
the register instead of relying on a software snapshot, it will be
safer.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: at_xdmac: wait for in-progress transaction to complete after pausing a...
Cyrille Pitchen [Tue, 27 Jan 2015 15:30:29 +0000 (16:30 +0100)]
dmaengine: at_xdmac: wait for in-progress transaction to complete after pausing a channel

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agoioat: fail self-test if wait_for_completion times out
Nicholas Mc Guire [Thu, 8 Jan 2015 14:16:35 +0000 (15:16 +0100)]
ioat: fail self-test if wait_for_completion times out

wait_for_completion_timeout reaching timeout was being ignored,
fail the self-test if timeout condition occurs.

v2: fixup of coding style issues.

Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
Acked-by: Dave Jiang <dave.jiang@intel.com>
Reviewed-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: dw: define DW_DMA_MAX_NR_MASTERS
Andy Shevchenko [Tue, 13 Jan 2015 17:08:14 +0000 (19:08 +0200)]
dmaengine: dw: define DW_DMA_MAX_NR_MASTERS

Instead of using magic number in the code the patch provides
DW_DMA_MAX_NR_MASTERS constant.

While here, restrict the reading of data width array by amount of the actual
number of AHB masters.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: dw: amend description of dma_dev field
Andy Shevchenko [Tue, 13 Jan 2015 17:08:13 +0000 (19:08 +0200)]
dmaengine: dw: amend description of dma_dev field

The dma_dev field is widely used in filter functions to mach with a proper DMA
controller device. Thus it's not deprecated. The patch fixes the description of
that field. There is no functional change.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmatest: move src_off, dst_off, len inside loop
Andy Shevchenko [Wed, 22 Oct 2014 13:16:43 +0000 (16:16 +0300)]
dmatest: move src_off, dst_off, len inside loop

The scope of those varsiables is in while-loop. This patch moves them there and
removes duplicate code.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmatest: fix indentation
Andy Shevchenko [Wed, 22 Oct 2014 13:16:42 +0000 (16:16 +0300)]
dmatest: fix indentation

Simple fixes an indentation in few places across the code.

There is no functional change.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: Add driver for IMG MDC
Andrew Bresticker [Thu, 11 Dec 2014 22:59:17 +0000 (14:59 -0800)]
dmaengine: Add driver for IMG MDC

Add support for the IMG Multi-threaded DMA Controller (MDC) found on
certain IMG SoCs.  Currently this driver supports the variant present
on the MIPS-based Pistachio SoC.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: Add binding document for IMG MDC
Andrew Bresticker [Thu, 11 Dec 2014 22:59:16 +0000 (14:59 -0800)]
dmaengine: Add binding document for IMG MDC

Add a binding document for the IMG Multi-threaded DMA Controller (MDC)
present on the MIPS-based Pistachio and other IMG SoCs.

Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: s3c24xx: missing unlock on an error path
Dan Carpenter [Fri, 30 Jan 2015 08:29:33 +0000 (11:29 +0300)]
dmaengine: s3c24xx: missing unlock on an error path

We should unlock here before returning -EINVAL.

Fixes: 39ad46009654 ('dmaengine: s3c24xx: Split device_control')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agoioatdma: Adding support for BDX-DE ioatdma.
Dave Jiang [Fri, 30 Jan 2015 22:06:01 +0000 (15:06 -0700)]
ioatdma: Adding support for BDX-DE ioatdma.

Adding PCI device IDs and hooks in workarounds for Broadwell DE ioatdma.

Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodma: mmp_tdma: Fix build for ARM64
Rob Herring [Tue, 3 Feb 2015 23:07:35 +0000 (17:07 -0600)]
dma: mmp_tdma: Fix build for ARM64

sram_get_gpool is only used for legacy, non-DT MMP/PXA platforms. Provide
an empty version in order to build on ARM64.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: dw: update MAINTAINERS file
Andy Shevchenko [Mon, 19 Jan 2015 16:23:06 +0000 (18:23 +0200)]
dmaengine: dw: update MAINTAINERS file

This is a follow up to the previously done changes in the layout of the driver
files. We now have an additional file include/linux/dma/dw.h which is missed in
the MAINTAINERS data base.

Fixes: 3d588f83e4d6 (dmaengine: dw: split dma-dw.h to platform and private parts)
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agoMerge branch 'topic/rcar' into for-linus
Vinod Koul [Tue, 3 Feb 2015 00:55:43 +0000 (16:55 -0800)]
Merge branch 'topic/rcar' into for-linus

9 years agoMerge branch 'topic/slave_caps_device_control_fix_rebased' into for-linus
Vinod Koul [Tue, 3 Feb 2015 00:55:35 +0000 (16:55 -0800)]
Merge branch 'topic/slave_caps_device_control_fix_rebased' into for-linus

9 years agodmaengine: of: bail out early if "dmas" property is not present
Wolfram Sang [Wed, 14 Jan 2015 14:16:28 +0000 (15:16 +0100)]
dmaengine: of: bail out early if "dmas" property is not present

And don't print an error: not configured is not an error.

Reported-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: shdmac: fixup WARNING of slave caps retrieval
Kuninori Morimoto [Thu, 22 Jan 2015 02:32:51 +0000 (02:32 +0000)]
dmaengine: shdmac: fixup WARNING of slave caps retrieval

ecc19d17868be9c9f8f00ed928791533c420f3e0
(dmaengine: Add a warning for drivers not using the generic slave
caps retrieval) added WARN() for DMA_SLAVE.
Kernel will shows WARNING without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-hpbdma: tidyup residue_granularity
Kuninori Morimoto [Wed, 21 Jan 2015 04:42:22 +0000 (04:42 +0000)]
dmaengine: rcar-hpbdma: tidyup residue_granularity

The driver doesn't support residue reporting at all.
residue_granularity should be set to DMA_RESIDUE_GRANULARITY_DESCRIPTOR.
Special thanks to Laurent

Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: Add dma_get_slave_caps() inline stub when !CONFIG_DMA_ENGINE
Laurent Pinchart [Mon, 19 Jan 2015 11:54:27 +0000 (13:54 +0200)]
dmaengine: Add dma_get_slave_caps() inline stub when !CONFIG_DMA_ENGINE

Commit 0d5484b1c3db8a38 ("dmaengine: Move dma_get_slave_caps()
implementation to dmaengine.c") turned the inline dma_get_slave_caps()
function into an external function without adding an inline stub for the
cases where CONFIG_DMA_ENGINE isn't set. This breaks compilation of
drivers using the DMA engine API when CONFIG_DMA_ENGINE isn't set.

Add an inline stub to fix compilation.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Fixes: 0d5484b1c3db ("dmaengine: Move dma_get_slave_caps() implementation to dmaengine.c")
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: coh901318: fix function return types build warnings
Arnd Bergmann [Tue, 13 Jan 2015 21:17:03 +0000 (22:17 +0100)]
dmaengine: coh901318: fix function return types build warnings

A recent patch that removed coh901318_control() replaced it
with a number of pointers to existing functions, but those
unfortunately have the wrong return  type and need to be
changed to return an 'int' with an error value rather than
a 'void' to avoid these build warnings:

drivers/dma/coh901318.c:2697:32: warning: assignment from incompatible pointer type
  base->dma_slave.device_config = coh901318_dma_set_runtimeconfig;
                                ^
drivers/dma/coh901318.c:2698:31: warning: assignment from incompatible pointer type
  base->dma_slave.device_pause = coh901318_pause;
                               ^
drivers/dma/coh901318.c:2699:32: warning: assignment from incompatible pointer type
  base->dma_slave.device_resume = coh901318_resume

The coh901318_base_init function has the correct return type
already, but needs to be marked 'static' to avoid a sparse
warning about a missing declaration.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 6782af118b6c ("dmaengine: coh901318: Split device_control")
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: s3c24xx: Fix typo
Maxime Ripard [Tue, 13 Jan 2015 20:16:23 +0000 (21:16 +0100)]
dmaengine: s3c24xx: Fix typo

A typo has been introduced in the spin_unlock_irqrestore function. Fix it.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: sa11x0: Fix warning and compilation errors
Maxime Ripard [Tue, 13 Jan 2015 20:16:22 +0000 (21:16 +0100)]
dmaengine: sa11x0: Fix warning and compilation errors

The sa11x0_dma_resume conflicts between the dmaengine device_resume callback
and the dev_pm_ops resume implementation.

Also remove some unused variables at the same time.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: Move dma_get_slave_caps() implementation to dmaengine.c
Laurent Pinchart [Tue, 28 Oct 2014 22:30:58 +0000 (00:30 +0200)]
dmaengine: Move dma_get_slave_caps() implementation to dmaengine.c

The function is too big to be a static inline.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: at_hdmac: declare slave capabilities
Ludovic Desroches [Tue, 6 Jan 2015 16:36:26 +0000 (17:36 +0100)]
dmaengine: at_hdmac: declare slave capabilities

Declare slave capabilities to suppress "this driver doesn't support generic
slave capabilities reporting" warning.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: tegra: add slave capabilities reporting
Paul Walmsley [Tue, 6 Jan 2015 06:44:56 +0000 (06:44 +0000)]
dmaengine: tegra: add slave capabilities reporting

After commit ecc19d17868be9c9f8f00ed928791533c420f3e0 ("dmaengine: Add
a warning for drivers not using the generic slave caps retrieval"),
the Tegra APB DMA driver causes this warning during boot:

WARNING: CPU: 0 PID: 1 at drivers/dma/dmaengine.c:830 dma_async_device_register+0x294/0x538()
this driver doesn't support generic slave capabilities reporting

Fix by setting the appropriate reporting structure fields that are
passed to dma_async_device_register().

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Tested-by: Thierry Reding <treding@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: fsldma: remove the unused variable
Kevin Hao [Thu, 8 Jan 2015 10:38:17 +0000 (18:38 +0800)]
dmaengine: fsldma: remove the unused variable

Fix the following build warning:
  drivers/dma/fsldma.c: In function 'fsl_dma_device_terminate_all':
  drivers/dma/fsldma.c:947:6: warning: unused variable 'size' [-Wunused-variable]

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: fsldma: declare slave capabilities for the generic code
Kevin Hao [Thu, 8 Jan 2015 10:38:16 +0000 (18:38 +0800)]
dmaengine: fsldma: declare slave capabilities for the generic code

Since commit ecc19d17868b ("dmaengine: Add a warning for drivers not
using the generic slave caps retrieval"), the dma drivers are required
to fill the caps infos in order to support generic slaves caps
retrieval. Otherwise we will get a warning like this:
  WARNING: at drivers/dma/dmaengine.c:830
  Modules linked in:
  CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W       3.19.0-rc2-next-20150106-dirty #271
  task: c0000001f70a0000 ti: c0000001f7044000 task.ti: c0000001f7044000
  NIP: c00000000032b238 LR: c00000000032b234 CTR: c00000000001d258
  REGS: c0000001f7047330 TRAP: 0700   Tainted: G        W        (3.19.0-rc2-next-20150106-dirty)
  MSR: 0000000080029000 <CE,EE,ME>  CR: 24adbe22  XER: 20000000
  SOFTE: 1
  GPR00: c00000000032b234 c0000001f70475b0 c0000000009b4848 0000000000000040
  GPR04: 0000000000000001 0000000000000001 0000000000000000 000000000000000f
  GPR08: 0000000000000000 c000000000902988 c000000000902988 00000000000052c8
  GPR12: 0000000024adbe22 c00000000fff4000 c000000000002038 0000000000000000
  GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
  GPR24: 0000000000000000 0000000000000000 c000000000972dc8 c0000000007e6fd0
  GPR28: c0000001f76d1d30 c0000001f76d1c10 c0000001f76d1c00 0000000000000000
  NIP [c00000000032b238] .dma_async_device_register+0x3f8/0x5b8
  LR [c00000000032b234] .dma_async_device_register+0x3f4/0x5b8
  Call Trace:
  [c0000001f70475b0] [c00000000032b234] .dma_async_device_register+0x3f4/0x5b8 (unreliable)
  [c0000001f70476a0] [c00000000032ca78] .fsldma_of_probe+0x298/0x438
  [c0000001f7047750] [c00000000037080c] .platform_drv_probe+0x50/0x9c
  [c0000001f70477d0] [c00000000036e74c] .really_probe+0xa4/0x29c
  [c0000001f7047870] [c00000000036eae4] .__driver_attach+0x100/0x104
  [c0000001f7047900] [c00000000036c1f0] .bus_for_each_dev+0x84/0xe4
  [c0000001f70479a0] [c00000000036e164] .driver_attach+0x24/0x38
  [c0000001f7047a10] [c00000000036dcc8] .bus_add_driver+0x1c8/0x2ac
  [c0000001f7047ab0] [c00000000036f14c] .driver_register+0x8c/0x158
  [c0000001f7047b30] [c0000000003707a8] .__platform_driver_register+0x6c/0x80
  [c0000001f7047ba0] [c000000000898a3c] .fsldma_init+0x2c/0x40
  [c0000001f7047c10] [c000000000001818] .do_one_initcall+0xb8/0x234
  [c0000001f7047d00] [c000000000878e2c] .kernel_init_freeable+0x188/0x268
  [c0000001f7047db0] [c000000000002054] .kernel_init+0x1c/0xfc8
  [c0000001f7047e30] [c000000000000884] .ret_from_kernel_thread+0x58/0xd4
  Instruction dump:
  7fb9f840 3bffffe0 409effac 7f54d378 48000060 813d0050 2f890000 40befdd0
  3c62ffe3 38632450 482f0aa9 60000000 <0fe000004bfffdb8 7f03c378 482ed465

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: rcar-hpbdma: fixup WARNING of slave caps retrieval
Kuninori Morimoto [Thu, 8 Jan 2015 01:38:50 +0000 (01:38 +0000)]
dmaengine: rcar-hpbdma: fixup WARNING of slave caps retrieval

ecc19d17868be9c9f8f00ed928791533c420f3e0
(dmaengine: Add a warning for drivers not using the generic slave
caps retrieval) added WARN() for DMA_SLAVE.
Kernel will shows WARNING without this patch.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: imx-sdma: Return a proper error code in platform_get_irq()
Fabio Estevam [Mon, 29 Dec 2014 17:20:53 +0000 (15:20 -0200)]
dmaengine: imx-sdma: Return a proper error code in platform_get_irq()

There is no need to return a 'fake' value upon platform_get_irq() failure.

Just propagate the real error instead.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: imx-sdma: Use devm functions
Fabio Estevam [Mon, 29 Dec 2014 17:20:52 +0000 (15:20 -0200)]
dmaengine: imx-sdma: Use devm functions

By using devm functions we can make the code shorter and cleaner.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: imx-sdma: Declare slave capabilities for the generic code
Fabio Estevam [Mon, 29 Dec 2014 17:20:51 +0000 (15:20 -0200)]
dmaengine: imx-sdma: Declare slave capabilities for the generic code

Since ecc19d17868be9c ("dmaengine: Add a warning for drivers not using the
generic slave caps retrieval") the following warning is observed:

[    0.224981] ------------[ cut here ]------------
[    0.225013] WARNING: CPU: 0 PID: 1 at drivers/dma/dmaengine.c:830 dma_async_device_register+0x2a0/0x4c8()
[    0.225023] this driver doesn't support generic slave capabilities reporting

Declare the slave capabilities to avoid such warning.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: mxs-dma: Declare slave capabilities for the generic code
Fabio Estevam [Mon, 29 Dec 2014 17:21:19 +0000 (15:21 -0200)]
dmaengine: mxs-dma: Declare slave capabilities for the generic code

Since ecc19d17868be9c ("dmaengine: Add a warning for drivers not using the
generic slave caps retrieval") the following warning is observed:

[    0.113023] ------------[ cut here ]------------
[    0.113053] WARNING: CPU: 0 PID: 1 at drivers/dma/dmaengine.c:830 dma_async_device_register+0x2a0/0x4c8()
[    0.113063] this driver doesn't support generic slave capabilities reporting

Declare the slave capabilities to avoid such warning.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: dw: provide DMA capabilities
Andy Shevchenko [Fri, 2 Jan 2015 14:17:24 +0000 (16:17 +0200)]
dmaengine: dw: provide DMA capabilities

The new DMAEngine requirement is to provide what the DMA controller can do,
such as directions, bus widths, and residue granularity. The patch sets those
properties for the DesignWare DMA controller driver.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: drop owner assignment from platform_drivers
Wolfram Sang [Tue, 13 Jan 2015 16:46:48 +0000 (17:46 +0100)]
dmaengine: drop owner assignment from platform_drivers

This platform_driver does not need to set an owner, it will be populated by the
driver core.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: mmp-tdma: fix terminate_all return code
Arnd Bergmann [Tue, 13 Jan 2015 13:31:46 +0000 (14:31 +0100)]
dmaengine: mmp-tdma: fix terminate_all return code

In a recent cleanup, the mmp_tdma_terminate_all function was
introduced but does not set a proper return value. Almost
no slave driver uses that return value, but if one does, the
result will be undefined, which the compiler warns about:

dma/mmp_tdma.c: In function 'mmp_tdma_terminate_all':
dma/mmp_tdma.c:474:1: warning: no return statement in function returning non-void [-Wreturn-type]

This changes the driver to return zero, like most other
drivers do.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: f43a6fd400ba6 ("dmaengine: mmp-tdma: Split device_control")
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: mmp-tdma: don't include mach/regs-icu.h
Arnd Bergmann [Tue, 13 Jan 2015 13:25:19 +0000 (14:25 +0100)]
dmaengine: mmp-tdma: don't include mach/regs-icu.h

The mmp tdma driver does not actually require this header, and
we want to enable multiplatform support for MMP, which would
make it inaccessible and cause a build error.

This patch just removes the old #include.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: k3: fix duplicate function definition
Arnd Bergmann [Tue, 13 Jan 2015 13:23:13 +0000 (14:23 +0100)]
dmaengine: k3: fix duplicate function definition

Commit db08425ebd51f ("dmaengine: k3: Split device_control") introduced
two new helper functions, which unfortunately have the same names
as the existing suspend/resume functions, resulting in a build error
when CONFIG_PM_SLEEP is enabled:

drivers/dma/k3dma.c:823:12: error: conflicting types for 'k3_dma_resume'
 static int k3_dma_resume(struct device *dev)
            ^
drivers/dma/k3dma.c:625:12: note: previous definition of 'k3_dma_resume' was here
 static int k3_dma_resume(struct dma_chan *chan)
            ^

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: db08425ebd51f ("dmaengine: k3: Split device_control")
Reported-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
9 years agodmaengine: k3: Fix duplicated function name and allmodconfig build
Krzysztof Kozlowski [Mon, 29 Dec 2014 13:01:30 +0000 (14:01 +0100)]
dmaengine: k3: Fix duplicated function name and allmodconfig build

While splitting device control in db08425ebd51 ("dmaengine: k3:
Split device_control") new function with the same 'k3_dma_resume' name
was added, leading to build error:

drivers/dma/k3dma.c:823:12: error: conflicting types for â€˜k3_dma_resume’
drivers/dma/k3dma.c:625:12: note: previous definition of â€˜k3_dma_resume’ was here

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: rcar-dmac: Handle hardware descriptor allocation failure
Jürg Billeter [Tue, 25 Nov 2014 14:10:17 +0000 (15:10 +0100)]
dmaengine: rcar-dmac: Handle hardware descriptor allocation failure

If the atomic DMA coherent pool is too small, disable use of hardware
descriptor lists instead of crashing the system:

ERROR: 256 KiB atomic DMA coherent pool is too small!
Please increase it with coherent_pool= kernel parameter!

Unable to handle kernel NULL pointer dereference at virtual address 00000004
Internal error: Oops: a07 [#1] PREEMPT SMP ARM

PC is at rcar_dmac_chan_reinit+0x3c/0x160
LR is at _raw_spin_lock_irqsave+0x18/0x5c

[<802132c0>] (rcar_dmac_chan_reinit) from [<80214818>] (rcar_dmac_isr_error+0x84/0xa0)
[<80214818>] (rcar_dmac_isr_error) from [<80060484>] (handle_irq_event_percpu+0x50/0x150)
[<80060484>] (handle_irq_event_percpu) from [<800605c0>] (handle_irq_event+0x3c/0x5c)
[<800605c0>] (handle_irq_event) from [<8006350c>] (handle_fasteoi_irq+0xb8/0x198)
[<8006350c>] (handle_fasteoi_irq) from [<8005fdb0>] (generic_handle_irq+0x20/0x30)
[<8005fdb0>] (generic_handle_irq) from [<8000fcd0>] (handle_IRQ+0x50/0xc4)
[<8000fcd0>] (handle_IRQ) from [<800092cc>] (gic_handle_irq+0x28/0x5c)
[<800092cc>] (gic_handle_irq) from [<80012700>] (__irq_svc+0x40/0x70)

Kernel panic - not syncing: Fatal exception in interrupt

Signed-off-by: Jürg Billeter <j@bitron.ch>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
10 years agodmaengine: rcar-dmac: Cache hardware descriptors memory
Laurent Pinchart [Fri, 18 Jul 2014 22:05:14 +0000 (00:05 +0200)]
dmaengine: rcar-dmac: Cache hardware descriptors memory

Unlike DMA transfers descriptors that are preallocated and cached,
memory used to store hardware descriptors is allocated and freed with
the DMA coherent allocation API for every transfer. Besides degrading
performances, this creates a CMA stress test that seems to cause issues.
Running dmatest with the noverify option produces

[   50.066539] alloc_contig_range test_pages_isolated(6b845, 6b846) failed
[   50.235180] alloc_contig_range test_pages_isolated(6b848, 6b84e) failed
[   52.964584] alloc_contig_range test_pages_isolated(6b847, 6b848) failed
[   54.127113] alloc_contig_range test_pages_isolated(6b843, 6b844) failed
[   56.270253] alloc_contig_range test_pages_isolated(6b84c, 6b850) failed

The root cause needs to be fixed, but in the meantime, as a workaround
and a performance improvement, cache hardware descriptors.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
10 years agodmaengine: rcar-dmac: Implement support for hardware descriptor lists
Laurent Pinchart [Wed, 16 Jul 2014 21:15:48 +0000 (23:15 +0200)]
dmaengine: rcar-dmac: Implement support for hardware descriptor lists

The DMAC supports hardware-based auto-configuration from descriptor
lists. This reduces the number of interrupts required for processing a
DMA transfer. Support that mode in the driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
10 years agodmaengine: rcar-dmac: Add Renesas R-Car Gen2 DMA Controller (DMAC) driver
Laurent Pinchart [Tue, 8 Jul 2014 22:42:19 +0000 (00:42 +0200)]
dmaengine: rcar-dmac: Add Renesas R-Car Gen2 DMA Controller (DMAC) driver

The DMAC is a general purpose multi-channel DMA controller that supports
both slave and memcpy transfers.

The driver currently supports the DMAC found in the r8a7790 and r8a7791
SoCs. Support for compatible DMA controllers (such as the audio DMAC)
will be added later.

Feature-wise, automatic hardware handling of descriptors chains isn't
supported yet. LPAE support is implemented.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
10 years agodmaengine: rcar-dmac: Remove duplicate sentence from DT bindings
Laurent Pinchart [Sun, 6 Jul 2014 14:07:20 +0000 (16:07 +0200)]
dmaengine: rcar-dmac: Remove duplicate sentence from DT bindings

DT bindings are complex enough without expressing the same information
twice in a slightly different way. Remove the duplicate.

Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
10 years agodmaengine: Add 16 bytes, 32 bytes and 64 bytes bus widths
Laurent Pinchart [Wed, 6 Aug 2014 08:52:41 +0000 (10:52 +0200)]
dmaengine: Add 16 bytes, 32 bytes and 64 bytes bus widths

The widths are missing, add them.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
10 years agodmaengine: imx-dma.c: Remove unused function
Rickard Strandqvist [Sun, 21 Dec 2014 17:18:22 +0000 (18:18 +0100)]
dmaengine: imx-dma.c: Remove unused function

Remove the function is_imx21_dma() that is not used anywhere.

This was partially found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: nbpfaxi: update the driver comments
Vinod Koul [Mon, 22 Dec 2014 14:54:14 +0000 (20:24 +0530)]
dmaengine: nbpfaxi: update the driver comments

driver comment refers to DMA_PAUSE which needs to be updated to
.device_pause

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: ep93xx: update the driver comments
Vinod Koul [Mon, 22 Dec 2014 14:54:14 +0000 (20:24 +0530)]
dmaengine: ep93xx: update the driver comments

driver comment refers to DMA_SLAVE_CONFIG which needs to be updated to
.device_config

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: dw: update the driver comments
Vinod Koul [Mon, 22 Dec 2014 14:54:14 +0000 (20:24 +0530)]
dmaengine: dw: update the driver comments

driver comment refers to DMA_SLAVE_CONFIG which needs to be updated to
.device_config

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: at_hdmac: update the driver comments
Vinod Koul [Mon, 22 Dec 2014 14:54:14 +0000 (20:24 +0530)]
dmaengine: at_hdmac: update the driver comments

driver comment refers to DMA_SLAVE_CONFIG which needs to be updated to
.device_config

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: tegra: fix incompatible pointer type warns
Vinod Koul [Mon, 8 Dec 2014 06:00:17 +0000 (11:30 +0530)]
dmaengine: tegra: fix incompatible pointer type warns

drivers/dma/tegra20-apb-dma.c:1428:37: warning: assignment from incompatible pointer type [enabled by default]
drivers/dma/ste_dma40.c: In function 'd40_terminate_all':

The function prototype expects return type 'int' whereas these where void

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: ste_dma: fix incompatible pointer type warns
Vinod Koul [Mon, 8 Dec 2014 05:57:08 +0000 (11:27 +0530)]
dmaengine: ste_dma: fix incompatible pointer type warns

drivers/dma/ste_dma40.c:2627:3: warning: 'return' with a value, in function returning void [enabled by default]
drivers/dma/ste_dma40.c: In function 'd40_ops_init':
drivers/dma/ste_dma40.c:2869:28: warning: assignment from incompatible pointer type [enabled by default]

The function prototype expects return type 'int' whereas these where void

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: mxs-dma: fix unused variable warn
Vinod Koul [Mon, 8 Dec 2014 05:55:50 +0000 (11:25 +0530)]
dmaengine: mxs-dma: fix unused variable warn

drivers/dma/mxs-dma.c: In function 'mxs_dma_terminate_all':
drivers/dma/mxs-dma.c:662:23: warning: unused variable 'mxs_chan'[-Wunused-variable]

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: mxs-dma: fix incompatible pointer type build warns
Vinod Koul [Mon, 8 Dec 2014 05:54:09 +0000 (11:24 +0530)]
dmaengine: mxs-dma: fix incompatible pointer type build warns

drivers/dma/mxs-dma.c: In function 'mxs_dma_probe':
drivers/dma/mxs-dma.c:848:35: warning: assignment from incompatible pointer type [enabled by default]
drivers/dma/mxs-dma.c:849:36: warning: assignment from incompatible pointer type [enabled by default]

The function prototype expects return type 'int' whereas these where void

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agoDocumentation: dmaengine: clarify dma_slave_config expectations
Vinod Koul [Sun, 7 Dec 2014 17:48:01 +0000 (23:18 +0530)]
Documentation: dmaengine: clarify dma_slave_config expectations

dma_slave_config is expected to be set for slave operations Only, not for
memcpy ones

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: omap: fix the assignment to .device_config
Vinod Koul [Sun, 7 Dec 2014 17:42:31 +0000 (23:12 +0530)]
dmaengine: omap: fix the assignment to .device_config

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: mxs-dma: fix the arg to mxs_dma_reset_chan()
Vinod Koul [Sun, 7 Dec 2014 17:37:38 +0000 (23:07 +0530)]
dmaengine: mxs-dma: fix the arg to mxs_dma_reset_chan()

mxs_dma_reset_chan() expects struct dma_chan * as argument but we were
providing struct dma_chan, so fix this

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agoDocumentation: dmaengine: Update the documentation
Maxime Ripard [Mon, 17 Nov 2014 13:42:55 +0000 (14:42 +0100)]
Documentation: dmaengine: Update the documentation

Now that we have splitted device_control and removed device_slave_caps in favor
of a few dma_device variables, update the documentation accordingly.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: Remove device_control and device_slave_caps
Maxime Ripard [Mon, 17 Nov 2014 13:42:54 +0000 (14:42 +0100)]
dmaengine: Remove device_control and device_slave_caps

Now that device_control has been split into several functions, and
device_slave_caps rendered useless, we can safely remove them.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: Add a warning for drivers not using the generic slave caps retrieval
Maxime Ripard [Mon, 17 Nov 2014 13:42:53 +0000 (14:42 +0100)]
dmaengine: Add a warning for drivers not using the generic slave caps retrieval

For the slave caps retrieval to be really useful, most drivers need to
implement it.

Hence, we need to be slightly more aggressive, and trigger a warning at
registration time for drivers that don't fill their caps infos in order to
encourage them to implement it.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: sun6i: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:52 +0000 (14:42 +0100)]
dmaengine: sun6i: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: sirf: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:51 +0000 (14:42 +0100)]
dmaengine: sirf: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: pl330: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:50 +0000 (14:42 +0100)]
dmaengine: pl330: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: omap: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:49 +0000 (14:42 +0100)]
dmaengine: omap: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: nbpfaxi: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:48 +0000 (14:42 +0100)]
dmaengine: nbpfaxi: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: edma: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:47 +0000 (14:42 +0100)]
dmaengine: edma: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: fsl-edma: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:46 +0000 (14:42 +0100)]
dmaengine: fsl-edma: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: bcm2835: Declare slave capabilities for the generic code
Maxime Ripard [Mon, 17 Nov 2014 13:42:45 +0000 (14:42 +0100)]
dmaengine: bcm2835: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: at_xdmac: Declare slave capabilities for the generic code
Ludovic Desroches [Mon, 17 Nov 2014 13:42:44 +0000 (14:42 +0100)]
dmaengine: at_xdmac: Declare slave capabilities for the generic code

Now that the generic slave caps code can make use of the device assigned
capabilities, instead of relying on a callback to be implemented.

Make use of this code.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: rapidio: tsi721: Rename device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:43 +0000 (14:42 +0100)]
dmaengine: rapidio: tsi721: Rename device_control

Rename the device_control callback of the TXX9 DMA driver to terminate_all
since it's all it's really doing. That will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: txx9: Rename device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:42 +0000 (14:42 +0100)]
dmaengine: txx9: Rename device_control

Rename the device_control callback of the TXX9 DMA driver to terminate_all
since it's all it's really doing. That will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: td: Rename device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:41 +0000 (14:42 +0100)]
dmaengine: td: Rename device_control

Rename the device_control callback of the Timberdal DMA driver to terminate_all
since it's all it's really doing. That will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: pch-dma: Rename device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:40 +0000 (14:42 +0100)]
dmaengine: pch-dma: Rename device_control

Rename the device_control callback of the Intel PCH DMA driver to terminate_all
since it's all it's really doing. That will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: mv_xor: Remove device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:39 +0000 (14:42 +0100)]
dmaengine: mv_xor: Remove device_control

The Marvell XOR engine doesn't allow any operations that use to be defined in
device_control, it shouldn't need to be defined. Since it's going to be
deprecated, remove it altogether.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: xilinx: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:38 +0000 (14:42 +0100)]
dmaengine: xilinx: Split device_control

Split the device_control callback of the Xilinx VDMA driver to make use of the
newly introduced callbacks, that will eventually be used to retrieve slave
capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: tegra20: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:37 +0000 (14:42 +0100)]
dmaengine: tegra20: Split device_control

Split the device_control callback of the NVidia Tegra20 APB DMA driver to make
use of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: d40: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:36 +0000 (14:42 +0100)]
dmaengine: d40: Split device_control

Split the device_control callback of the ST-Ericsson DMA 40 driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: sun6i: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:35 +0000 (14:42 +0100)]
dmaengine: sun6i: Split device_control

Split the device_control callback of the Allwinner A31 DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: sirf: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:34 +0000 (14:42 +0100)]
dmaengine: sirf: Split device_control

Split the device_control callback of the SiRF Prima 2 DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: sh: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:33 +0000 (14:42 +0100)]
dmaengine: sh: Split device_control

Split the device_control callback of the Super-H DMA driver to make use of the
newly introduced callbacks, that will eventually be used to retrieve slave
capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: sa11x0: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:32 +0000 (14:42 +0100)]
dmaengine: sa11x0: Split device_control

Split the device_control callback of the SA-11x0 DMA driver to make use of the
newly introduced callbacks, that will eventually be used to retrieve slave
capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: s3c24xx: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:31 +0000 (14:42 +0100)]
dmaengine: s3c24xx: Split device_control

Split the device_control callback of the Samsung S3C24xxx DMA driver to make
use of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: bam-dma: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:30 +0000 (14:42 +0100)]
dmaengine: bam-dma: Split device_control

Split the device_control callback of the Qualcomm BAM DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: pl330: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:29 +0000 (14:42 +0100)]
dmaengine: pl330: Split device_control

Split the device_control callback of the AMBA PL330 DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: omap: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:28 +0000 (14:42 +0100)]
dmaengine: omap: Split device_control

Split the device_control callback of the TI OMAP DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: nbpfaxi: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:27 +0000 (14:42 +0100)]
dmaengine: nbpfaxi: Split device_control

Split the device_control callback of the NBPF AXI DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
10 years agodmaengine: mxs: Split device_control
Maxime Ripard [Mon, 17 Nov 2014 13:42:26 +0000 (14:42 +0100)]
dmaengine: mxs: Split device_control

Split the device_control callback of the Freescale MXS DMA driver to make use
of the newly introduced callbacks, that will eventually be used to retrieve
slave capabilities.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>