History log of /drivers/dma/sh/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b19f40b8bf87bfc32b91260a90a7fa2cdebcd9bb 21-Aug-2014 Ryo Kataoka <ryo.kataoka.wt@renesas.com> dma: rcar-audmapp: Fix for no corresponding slave ID

In case of no corresponding slave ID, the audmapp_set_slave() returns
-ENXIO same as sh_dmae_set_slave() of shdmac.c.
DMAEngine might return wrong channel without this patch

Signed-off-by: Ryo Kataoka <ryo.kataoka.wt@renesas.com>
Signed-off-by: Jun Watanabe <jun.watanabe.ue@renesas.com>,
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-audmapp.c
31c1e5a1350ae8d1bc2018f5de8264266d9773e1 01-Aug-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: Remove the context argument to the prep_dma_cyclic operation

The argument is always set to NULL and never used. Remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
4415b03abb0aacd937010f13310b7fa437b9ad7d 31-Jul-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: shdma: Allocate cyclic sg list dynamically

The sg list used to prepare cyclic DMA descriptors is currently
allocated statically on the stack as an array of 32 elements. This makes
the shdma_prep_dma_cyclic() function consume a lot of stack space, as
reported by the compiler:

drivers/dma/sh/shdma-base.c: In function ‘shdma_prep_dma_cyclic’:
drivers/dma/sh/shdma-base.c:715:1: warning: the frame size of 1056 bytes
is larger than 1024 bytes [-Wframe-larger-than=]

Given the limited Linux kernel stack size, this could lead to stack
overflows. Fix the problem by allocating the sg list dynamically.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
c091ff51b4d2543b828d53ce47f66905dee870fd 31-Jul-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: shdma: Make channel filter ignore unrelated devices

The shdma_chan_filter() function relies on the DMA channel being
embedded in an shdma_chan structure. If this assumption isn't true, for
instance when the system contains DMA channels supported by an unrelated
driver, the function will crash.

Avoid this by returning false directly when the channel belongs to an
unrelated device.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
9f2c2bb31258e11b1ebaf73bdf2a88f8afaa2dd2 31-Jul-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: sh: Rework Kconfig and Makefile

Separate helpers and drivers in the Kconfig and Makefile to improve
readability and move the CONFIG_OF dependency from the Makefile to
Kconfig.

[pebolle@tiscali.nl: reported need to rename SHDMA_R8A73A4 instances]
Reported-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
[horms+renesas@verge.net.au: squashed rename of SHDMA_R8A73A4 instances]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
akefile
hdma.h
db0e7018191e1deb33e3ed8bb8ed89e5a4ae1ba1 28-Jul-2014 Vinod Koul <vinod.koul@intel.com> Merge commit 'renesas-rcar-audmapp-for-v3.17' into for-linus
0cdbee33ea42bfd5f61f824e258a1a0944dd2a27 20-Jun-2014 Geert Uytterhoeven <geert+renesas@glider.be> dmaengine: shdma: Use defines instead of hardcoded numbers

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
hdma-arm.h
hdmac.c
caf18c27ddb2fb8ae2a7591b908e7efb7484e459 18-Jun-2014 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> dma: rcar-audmapp: add DT support

This patch adds DT support to Audio DMAC peri peri driver.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
[horms+renesas@verge.net.au: Do not add trailing blank line to rcar-audmapp.txt]
[horms+renesas@verge.net.au: squashed patch to add NULL terminater to audmapp_of_match]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
car-audmapp.c
6b32fafee2bb5fcf0b3d3d04a9762d3a0212089e 20-Jun-2014 Geert Uytterhoeven <geert+renesas@glider.be> dmaengine: shdma: Add more register documentation

Also add a few definitions that were missing.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
hdmac.c
75bfa5f60a368b1ccacaf71bfc0376b8d9eb2e9f 18-Jun-2014 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> dma: rcar-audmapp: don't keep audmapp_slave_config for each channeles

Current audmapp driver is keeping audmapp_slave_config
for each channeles, but, nessasary information is only "chcr".
Current style (= keeping audmapp_slave_config) is
not good match for DT support.
Keep "chcr" instead of audmapp_slave_config

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
car-audmapp.c
016b10f4ea76ba2189d476b4a5f7168e57a8d7ad 18-Jun-2014 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> dma: rcar-audmapp: enable .set_slave

Current .set_slave callback did nothing,
since it assumed src/dst address come from platform settings.
But, it isn't good match to DT probing.
This patch enables .set_slave callback to this issue.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
car-audmapp.c
877d8425072b50965f6f04ea3a127928f66db72f 02-Jun-2014 Vinod Koul <vinod.koul@intel.com> dmaengine: sh: don't use dynamic static allocation

dynamic stack allocation in kernel is considered bad as kernel stack is low and
we get warns on few archs as reported by kbuild test robot

>> drivers/dma/sh/shdma-base.c:671:32: sparse: Variable length array is used.
>> drivers/dma/sh/shdma-base.c:701:1: warning: 'shdma_prep_dma_cyclic' uses
>> dynamic stack allocation [enabled by default]

Fix this by making a static array of 32 which should be sufficient for
shdma_prep_dma_cyclic which only user in kernel is audio and 32 periods for
audio seems quite sufficient atm

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
9d9f71a804314e7d50e2fa9e6e61bc77e2d6ae1c 02-Jun-2014 Vinod Koul <vinod.koul@intel.com> dmaengine: sh: fix print specifier warnings

As documented in Documentation/printk-formats.txt we should use %zu/%zx
specifiers for size_t type variables for the code to compile on different
architectures. This is uncovered as COMPILE_TEST has been enabled recently for
this driver

drivers/dma/sh/shdma-base.c: In function 'shdma_prep_dma_cyclic':
>> drivers/dma/sh/shdma-base.c:683:4: warning: format '%d' expects argument of
>> type 'int', but argument 4 has type 'size_t' [-Wformat=]
__func__, buf_len, period_len, slave_id);
>> drivers/dma/sh/shdma-base.c:683:4: warning: format '%d' expects argument of
>> type 'int', but argument 5 has type 'size_t' [-Wformat=]

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
a68765430772fac92ad4f0dd9e33d31b4276546e 02-Jun-2014 Vinod Koul <vinod.koul@intel.com> dmaengine: sh: make shdma_prep_dma_cyclic static

kbuild test robot reports that shdma_prep_dma_cyclic should be static, since
symbol is not declared, quick check revails that is the case

>> drivers/dma/sh/shdma-base.c:660:32: sparse: symbol 'shdma_prep_dma_cyclic'
>> was not declared. Should it be static?

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
ebc6d2d9c8cd48c351da84dd467c0edddc149ded 13-May-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: shdma: Enable driver compilation with COMPILE_TEST

This helps increasing build testing coverage.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
494ead469e1b0db060a96627c879fb444fe3970a 13-May-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: rcar-hpbdma: Include linux/err.h

linux/err.h isn't implicitly included by the current headers on all
platforms, resulting in compilation failures due to implicit
declarations of IS_ERR and PTR_ERR. Fix this by including linux/err.h.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-hpbdma.c
830c863987aa26c2133241b61fe22bf466ccb7cc 13-May-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: sudmac: Include linux/err.h

linux/err.h isn't implicitly included by the current headers on all
platforms, resulting in compilation failures due to implicit
declarations of IS_ERR and PTR_ERR. Fix this by including linux/err.h.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
udmac.c
cf5a23b78717bb547ab6c9267f05d4fe803bd853 13-May-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: sudmac: Keep #include sorted alphabetically

This helps detecting duplicate includes.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
udmac.c
c46b9af26f1a971f7727328ba1cf4d702545cf2f 13-May-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: shdmac: Include linux/err.h

linux/err.h isn't implicitly included by the current headers on all
platforms, resulting in compilation failures due to implicit
declarations of IS_ERR and PTR_ERR. Fix this by including linux/err.h.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
a5cdc1c15562c0c68e7c418693f3f884ec838a06 13-May-2014 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> dmaengine: shdmac: Keep #include sorted alphabetically

This helps detecting duplicate includes.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
dfbb85cab5f0819d0424a3637b03e7892704fa42 03-Apr-2014 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> DMA: shdma: add cyclic transfer support

This patch add cyclic transfer support and enables dmaengine_prep_dma_cyclic()

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
[reflown changelog for readablity]
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
91ea74e9ec5c584eef1dcd69554b8315c1ebb0d9 03-Apr-2014 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> DMA: shdma: tidyup callback chunk finder

Current shdma is using "last" which indicates last desc which needs to have
callback function. But that desc's chunks is always 1, we can use it as finder

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
[reflown changelog for readablity]
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
e43a34e3ec5d1b14a11c3220f5a12aa797d73cd1 11-Mar-2014 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> shdma: add R-Car Audio DMAC peri peri driver

Add support Audio DMAC peri peri driver
for Renesas R-Car Gen2 SoC, using 'shdma-base'
DMA driver framework.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
[fixed checkpatch error]
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
akefile
car-audmapp.c
51455ec4f0d6aaff7371b51e8155e0d4bec1aca5 11-Dec-2013 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> DMA: shdma: Make sh_dmae_pm static

The structure isn't used outside of its compilation unit. Make it
static.

Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: dmaengine@vger.kernel.org
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
52d6a5ee101bf0e6c1fc5373eebe5c3307e4a0ca 11-Dec-2013 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> DMA: shdma: Fix warnings due to declared but unused symbols

Several functions and variables are use on SH_CPU4 or ARM only. Guard
their declaration with conditional compilation directives to avoid
warnings.

Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: dmaengine@vger.kernel.org
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
42e4a12a0d92d09de66d8b5b2c85855b8051c15e 11-Dec-2013 Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> DMA: shdma: Fix warnings due to improper casts and printk formats

Use the %zu and %pad printk specifiers to print size_t and dma_addr_t
variables, and cast pointers to uintptr_t instead of unsigned int where
applicable. This fixes warnings on platforms where pointers and/or
dma_addr_t have a different size than int

Cc: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: dmaengine@vger.kernel.org
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
hdma-of.c
udmac.c
5affdeea8fd07f89709d39585ec47fb29f73247c 29-Oct-2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> rcar-hpbdma: initialise plane information when halted

Plane information should be initialized when halted.
It may restart from the wrong plane without this patch.

Reviewed-by: Max Filippov <max.filippov@cogentembedded.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-hpbdma.c
b3000cd835a6116c0a7d0f8e3df5be26c2138d86 29-Oct-2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> rcar-hpbdma: fixup channel busy check for double plane

The device busy check method is different between
single and double planes.
It will always return "busy" without this patch
if channel used as double plane.

Reviewed-by: Max Filippov <max.filippov@cogentembedded.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-hpbdma.c
f1eab074df85a05dabfd368b6f64e7de63070301 29-Oct-2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> rcar-hpbdma: add max transfer size

shdma_chan_probe() can set max transfer size,
but it will be PAGE_SIZE with out this patch.

Reviewed-by: Max Filippov <max.filippov@cogentembedded.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-hpbdma.c
f0dad6e701cb66301287074c39183c7312139530 30-Oct-2013 Vinod Koul <vinod.koul@intel.com> Merge branch 'dma_complete' into next
b967aecf1714c10d1e6c045e43b6385884f1ca77 30-Oct-2013 Vinod Koul <vinod.koul@intel.com> Merge branch 'for-linus' into next

Conflicts:
drivers/dma/edma.c
Moved the memory leak fix post merge

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
a8d8d268c1b201eb8449cebf4d5958c34dbc3ccc 16-Oct-2013 Vinod Koul <vinod.koul@intel.com> dmaengine: sh: use DMA_COMPLETE for dma completion status

Acked-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
174b537ac2b8fe1bac31039185b80f873716c5a1 13-Oct-2013 Michael Opdenacker <michael.opdenacker@free-electrons.com> dma: misc: remove deprecated IRQF_DISABLED

This patch proposes to remove the use of the IRQF_DISABLED flag

It's a NOOP since 2.6.35 and it will be removed one day.

Signed-off-by: Michael Opdenacker <michael.opdenacker@free-electrons.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
08d08bcdee30d3a28426bd60dfbdae44b36250bc 26-Sep-2013 Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> rcar-hpbdma: add parameter to set_slave() method

Commit 4981c4dc194efb18f0e9a02f1b43e926f2f0d2bb (DMA: shdma: switch DT mode to
use configuration data from a match table) added a new parameter to set_slave()
method but unfortunately got merged later than commit c4f6c41ba790bbbfcebb4c47a
(dma: add driver for R-Car HPB-DMAC), so that the HPB-DMAC driver retained the
old prototype which caused this warning:

drivers/dma/sh/rcar-hpbdma.c:485: warning: initialization from incompatible
pointer type

The newly added parameter is used to override DMA slave address from 'struct
hpb_dmae_slave_config', so we have to add the 'slave_addr' field to 'struct
hpb_dmae_chan', conditionally assign it in set_slave() method, and return in
slave_addr() method.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Tested-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-hpbdma.c
cdeb5c033f0389c44e5b36cafd623bdf44bbe25c 26-Sep-2013 Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> rcar-hpbdma: remove shdma_free_irq() calls

Commit c1c63a14f4f2419d093acd7164eccdff315baa86 (DMA: shdma: switch to managed
resource allocation) got rid of shdma_free_irq() but unfortunately got merged
later than commit c4f6c41ba790bbbfcebb4c47a709ac8ff1fe1af9 (dma: add driver for
R-Car HPB-DMAC), so that the HPB-DMAC driver retained the calls and got broken:

drivers/dma/sh/rcar-hpbdma.c: In function `hpb_dmae_alloc_chan_resources':
drivers/dma/sh/rcar-hpbdma.c:435: error: implicit declaration of function
`shdma_free_irq'

Fix this compilation error by removing the remaining shdma_free_irq() calls.

Reported-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Tested-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
car-hpbdma.c
ec5b103ecfde929004b691f29183255aeeadecd5 10-Sep-2013 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dmaengine updates from Vinod Koul:
"This pull brings:
- Andy's DW driver updates
- Guennadi's sh driver updates
- Pl08x driver fixes from Tomasz & Alban
- Improvements to mmp_pdma by Daniel
- TI EDMA fixes by Joel
- New drivers:
- Hisilicon k3dma driver
- Renesas rcar dma driver
- New API for publishing slave driver capablities
- Various fixes across the subsystem by Andy, Jingoo, Sachin etc..."

* 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (94 commits)
dma: edma: Remove limits on number of slots
dma: edma: Leave linked to Null slot instead of DUMMY slot
dma: edma: Find missed events and issue them
ARM: edma: Add function to manually trigger an EDMA channel
dma: edma: Write out and handle MAX_NR_SG at a given time
dma: edma: Setup parameters to DMA MAX_NR_SG at a time
dmaengine: pl330: use dma_set_max_seg_size to set the sg limit
dmaengine: dma_slave_caps: remove sg entries
dma: replace devm_request_and_ioremap by devm_ioremap_resource
dma: ste_dma40: Fix potential null pointer dereference
dma: ste_dma40: Remove duplicate const
dma: imx-dma: Remove redundant NULL check
dma: dmagengine: fix function names in comments
dma: add driver for R-Car HPB-DMAC
dma: k3dma: use devm_ioremap_resource() instead of devm_request_and_ioremap()
dma: imx-sdma: Staticize sdma_driver_data structures
pch_dma: Add MODULE_DEVICE_TABLE
dmaengine: PL08x: Add cyclic transfer support
dmaengine: PL08x: Fix reading the byte count in cctl
dmaengine: PL08x: Add support for different maximum transfer size
...
265d9c673d47fcd5812d69dc07104b706285de56 02-Sep-2013 Vinod Koul <vinod.koul@intel.com> Merge branch 'topic/sh' into for-linus

Conflicts:
drivers/dma/sh/Kconfig
drivers/dma/sh/shdmac.c

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
4770ee44359ad454992d544cf14f8d330a93f5ca 19-Aug-2013 Julia Lawall <Julia.Lawall@lip6.fr> dma: replace devm_request_and_ioremap by devm_ioremap_resource

Use devm_ioremap_resource instead of devm_request_and_ioremap.

This was done using the semantic patch
scripts/coccinelle/api/devm_ioremap_resource.cocci

The relevant call to platform_get_resource was manually moved down to the
call to devm_ioremap_resource.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
udmac.c
c4f6c41ba790bbbfcebb4c47a709ac8ff1fe1af9 24-Aug-2013 Max Filippov <max.filippov@cogentembedded.com> dma: add driver for R-Car HPB-DMAC

Add support for HPB-DMAC found in Renesas R-Car SoCs, using 'shdma-base' DMA
driver framework.

Based on the original patch by Phil Edworthy <phil.edworthy@renesas.com>.

Signed-off-by: Max Filippov <max.filippov@cogentembedded.com>
[Sergei: removed useless #include, sorted #include's, fixed HPB_DMA_TCR_MAX,
fixed formats and removed line breaks in the dev_dbg() calls, rephrased and
added IRQ # to the shdma_request_irq() failure message, added MODULE_AUTHOR(),
removed '__init'/'__exit' annotations from the probe()/remove() methods, removed
'__initdata' annotation from 'hpb_dmae_driver', fixed guard macro name in the
header file, fixed #define ASYNCRSTR_ASRST20, added #define ASYNCRSTR_ASRST24,
added the necessary runtime PM calls to the probe() and remove() methods,
handled errors returned by dma_async_device_register(), beautified comments
and #define's.]
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
akefile
car-hpbdma.c
e5ffa401eacd0e74178e20ba932200fc9fe41c07 26-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: fix a bad merge - remove free_irq()

A bad merge resulted in a left-over free_irq() call. This patch removes it.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
eb262a5419708319a3174d4ddf2777f472779182 26-Aug-2013 Jingoo Han <jg1.han@samsung.com> dma: sh: remove unnecessary platform_set_drvdata()

The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
udmac.c
1e69653d40f1a280dbfef48b0c62473ac415dd57 02-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: add r8a73a4 DMAC data to the device ID table

This configuration data will be used, when DMAC DT support is added to
r8a73a4.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
akefile
hdma-r8a73a4.c
hdma.h
hdmac.c
8eb742a0914cd79053d092a14bfac5315993dd61 02-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: add a header with common for ARM SoCs defines

All shdma DMACs on ARM SoCs share certain register layout patterns, which
are currently defined in arch/arm/mach-shmobile/include/mach/dma-register.h.
That header is included by SoC-specific setup-*.c files to be used in DMAC
platform data. That header, however, cannot be directly used by the driver.
This patch copies those defines into a driver-local header to be used by
Device Tree configurations.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-arm.h
4620ad5419612fcd9ab412410440d3a7e8a9a90a 02-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: remove private and unused defines from a global header

Macros, named like TEND or SAR lack a namespace and are too broadly named
for a global header. Besides, they aren't needed globally. Move them to
where they belong - into the driver. Some other macros aren't used at all,
remove them.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdmac.c
4981c4dc194efb18f0e9a02f1b43e926f2f0d2bb 02-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: switch DT mode to use configuration data from a match table

This facilitates DMAC DT support by eliminating the need in AUXDATA and
avoiding creating complex DT data. This also fits well with DMAC devices,
of which SoCs often have multiple identical copies and it is perfectly
valid to use a single configuration data set for all of them.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
akefile
hdma-base.c
hdma-of.c
hdma.c
hdma.h
hdmac.c
udmac.c
2833c47e0ecc74b300716e56810143125ad7a3f1 02-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: make a pointer const

Platform data shouldn't be changed at run-time, so, pointers to it should
be const.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma.c
hdma.h
cc6b0f023875a67f0c2ca7211fe6859d60b14852 02-Aug-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: sudmac: fix compiler warning

Fix the following compiler warning:

drivers/dma/sh/sudmac.c: In function 'sudmac_chan_remove':
drivers/dma/sh/sudmac.c:302: warning: unused variable 'sc'

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
udmac.c
c1c63a14f4f2419d093acd7164eccdff315baa86 02-Jul-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: switch to managed resource allocation

Switch shdma to using devm_* managed functions for allocation of memory,
requesting IRQs, mapping IO resources etc.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
hdma.c
udmac.c
ca8b387803072a16baf6d8090591b10bfdf4e253 10-Jul-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: support the new CHCLR register layout

On newer r-car SoCs the CHCLR register only contains one bit per channel,
to which a 1 has to be written to reset the channel. Older SoC versions had
one CHCLR register per channel, to which a 0 must be written to reset the
channel and clear its buffers. This patch adds support for the newer
layout.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma.c
115357e9774ff8d70a84d3c31f271209913637b0 02-Jul-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: switch all __iomem pointers to void

In the shdma driver __iomem pointers are used to point to hardware
registers. Using typed pointers like "u32 __iomem *" in this case is
inconvenient, because then offsets, added to such pointers, have to be
devided by sizeof(u32) or similar. Switch the driver to use void
pointers, which avoids this clumsiness.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma.c
hdma.h
a28a94e84bca8ba7db66bcc0db1bea51840b08b2 02-Jul-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: fix CHCLR register address calculation

struct sh_dmae_device::chan_reg is a pointer to u32, therefore when adding
offsets to it care should be taken to add offsets in sizeof(u32) units, not
in bytes. This patch corrects such a bug. While at it we also remove the
redundant parameter of the affected function.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma.c
d4adcc0160404c3237fe6ffa09dd2dd039dd3975 30-Jul-2013 Jingoo Han <jg1.han@samsung.com> dma: use dev_get_platdata()

Use the wrapper function for retrieving the platform data instead of
accessing dev->platform_data directly.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-of.c
hdma.c
udmac.c
3c4d9276626c93477af0b0b9d46b4dcb37e2eed2 24-Jul-2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> shdma: fixup sh_dmae_get_partial() calculation error

sh_desc->hw.tcr is controlling real data size,
and, register TCR is controlling data transfer count
which was xmit_shifted value of hw.tcr.
Current sh_dmae_get_partial() is calculating in different unit.
This patch fixes it.

This bug has been present since c014906a870ce70e009def0c9d170ccabeb0be63
("dmaengine: shdma: extend .device_terminate_all() to record partial
transfer"), which was added in 2.6.34-rc1.

Cc: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
hdma.c
67eacc1583909d0588c8d5d80c16298c899a6382 18-Jun-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: add DT support

This patch adds Device Tree support to the shdma driver. No special DT
properties are used, only standard DMA DT bindings are implemented. Since
shdma controllers reside on SoCs, their configuration is SoC-specific and
shall be passed to the driver from the SoC platform data, using the
auxdata procedure.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
akefile
hdma-base.c
hdma-of.c
hdma.c
fa74326c44767626a5ae794b29d54103e2259e64 06-Jun-2013 Guennadi Liakhovetski <g.liakhovetski@gmx.de> DMA: shdma: (cosmetic) don't re-calculate a pointer

Use an existing pointer instead of retrieving it again.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski+renesas@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma.c
18a1053f7b85acdda2428c9f694101070cb8e62a 23-Apr-2013 Shimoda, Yoshihiro <yoshihiro.shimoda.uh@renesas.com> sudmac: add support for SUDMAC

Some Renesas USB modules have SUDMAC. This patch supports it using
the shdma-base driver.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
akefile
udmac.c
189b4ee8e9daf349db80f47b81edec67d223a953 23-Apr-2013 Shimoda, Yoshihiro <yoshihiro.shimoda.uh@renesas.com> dma: sh: add Kconfig

This patch adds Kconfig in the drivers/dma/sh. This patch also adds
a new config "SH_DMAE_BASE" and the "config SH_DMAE" depends on it.
Since some drivers (e.g. sh_mmcif.c) depends on shdma-base.c if
CONFIG_DMA_ENGINE=y, the "config SH_DMAE_BASE" is set as "bool".

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
config
akefile
5115f3c19d17851aaff5a857f55b4a019c908775 26-Feb-2013 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma

Pull slave-dmaengine updates from Vinod Koul:
"This is fairly big pull by my standards as I had missed last merge
window. So we have the support for device tree for slave-dmaengine,
large updates to dw_dmac driver from Andy for reusing on different
architectures. Along with this we have fixes on bunch of the drivers"

Fix up trivial conflicts, usually due to #include line movement next to
each other.

* 'next' of git://git.infradead.org/users/vkoul/slave-dma: (111 commits)
Revert "ARM: SPEAr13xx: Pass DW DMAC platform data from DT"
ARM: dts: pl330: Add #dma-cells for generic dma binding support
DMA: PL330: Register the DMA controller with the generic DMA helpers
DMA: PL330: Add xlate function
DMA: PL330: Add new pl330 filter for DT case.
dma: tegra20-apb-dma: remove unnecessary assignment
edma: do not waste memory for dma_mask
dma: coh901318: set residue only if dma is in progress
dma: coh901318: avoid unbalanced locking
dmaengine.h: remove redundant else keyword
dma: of-dma: protect list write operation by spin_lock
dmaengine: ste_dma40: do not remove descriptors for cyclic transfers
dma: of-dma.c: fix memory leakage
dw_dmac: apply default dma_mask if needed
dmaengine: ioat - fix spare sparse complain
dmaengine: move drivers/of/dma.c -> drivers/dma/of-dma.c
ioatdma: fix race between updating ioat->head and IOAT_COMPLETION_PENDING
dw_dmac: add support for Lynxpoint DMA controllers
dw_dmac: return proper residue value
dw_dmac: fill individual length of descriptor
...
855372c013bbad8369223f7c75242bd3c94f9345 15-Jan-2013 Cong Ding <dinggnu@gmail.com> dma: sh/shdma-base.c: remove unnecessary null pointer check

the variable chan is dereferenced in line 635, so it is no reason to check
null again in line 641.

Signed-off-by: Cong Ding <dinggnu@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
hdma-base.c
7c1119bdd650fa58dad8157bc75c5fcf6ed97843 28-Nov-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dma: sh: Don't use ENODEV for failing slave lookup

If dmaengine driver's .device_alloc_chan_resources() method returns -ENODEV,
dma_request_channel() will decide, that the driver has been removed and will
remove the device from its list. To prevent this use ENXIO if a slave lookup
fails.

Reported-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: stable@vger.kernel.org
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
hdma.c
4bf27b8b333bcd291664fd0f7d129099d474a23b 22-Dec-2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org> Drivers: dma: remove __dev* attributes.

CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
markings need to be removed.

This change removes the use of __devinit, __devexit_p, __devinitconst,
and __devexit from these drivers.

Based on patches originally written by Bill Pemberton, but redone by me
in order to handle some of the coding style issues better, by hand.

Cc: Bill Pemberton <wfp5p@virginia.edu>
Cc: Viresh Kumar <viresh.linux@gmail.com>
Cc: Dan Williams <djbw@fb.com>
Cc: Vinod Koul <vinod.koul@intel.com>
Cc: Barry Song <baohua.song@csr.com>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: Alexander Duyck <alexander.h.duyck@intel.com>
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Bill Pemberton <wfp5p@virginia.edu>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
hdma.c
463a1f8b3ceebe990ca9a8c7cc2e51ee42cb48eb 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> dma: remove use of __devinit

CONFIG_HOTPLUG is going away as an option so __devinit is no longer
needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Li Yang <leoli@freescale.com>
Cc: Zhang Wei <zw@zh-kernel.org>
Cc: Barry Song <baohua.song@csr.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
hdma.c
a7d6e3ec28bba30d1409d70de1958edc6d9109d7 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> dma: remove use of __devexit_p

CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Acked-by: Barry Song <baohua.song@csr.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
hdma.c
4f46f8ac80416b0e8fd3aba6a0d842205fb29140 30-Jul-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dmaengine: shdma: restore partial transfer calculation

The recent shdma driver split has mistakenly removed support for partial
DMA transfer size calculation on forced termination. This patch restores
it.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
hdma-base.c
hdma.c
1ff8df4f5388ad66bd7d0199b5839a2e3345c055 05-Jul-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dma: sh: provide a migration path for slave drivers to stop using .private

This patch extends the sh dmaengine driver to support the preferred channel
selection and configuration method, instead of using the "private" field
from struct dma_chan. We add a standard filter function to be used by
slave drivers instead of implementing their own ones, and add support for
the DMA_SLAVE_CONFIG control operation, which must accompany the new
channel selection method. We still support the legacy .private channel
allocation method to cater for a smooth driver migration.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
[applied a trvial checkpath fix]
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
hdma-base.c
hdma.c
c2cdb7e4d16394fc51dc5c2c5b3e7c3733bdfaac 05-Jul-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dma: sh: use an integer slave ID to improve API compatibility

Initially struct shdma_slave has been introduced with the only member - an
unsigned slave ID - to describe common properties of DMA slaves in an
extensible way. However, experience shows, that a slave ID is indeed the
only parameter, needed to identify DMA slaves. This is also, what is used
by the core dmaengine API in struct dma_slave_config. We switch to using
the slave_id directly, instead of passing a pointer to struct shdma_slave
to improve compatibility with the core. We also make the slave_id signed
for easier error checking.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
hdma-base.c
hdma.c
ecf90fbbdc66cde6f5fa25d88541112b9baac459 05-Jul-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dmaengine: shdma: prepare to stop using struct dma_chan::private

Using struct dma_chan::private is deprecated. To update the shdma driver to
stop using it we first have to eliminate internal runtime uses of it. After
that we will also be able to stop using it for channel configuration.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
hdma-base.c
hdma.c
hdma.h
341f4dc5dcecbf60f038055db177845b9af480ed 05-Jul-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dmaengine: shdma: (cosmetic) simplify a static function

dmae_find_slave() needs only the slave_id field from the slave object, no
need to pass the pointer to the object, pass the slave_id directly.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
hdma.c
ce3a1ab74264b860450709e4bd0dcfc2d0bfc7f8 09-May-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dma: shdma: convert to the shdma base library

The shdma base library has originally been extracted from the shdma driver,
which now can be converted to actually use it.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
hdma.c
hdma.h
9a7b8e002e331d0599127f16613c32f425a14f2c 09-May-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dmaengine: add an shdma-base library

This patch extracts code from shdma.c, that does not directly deal with
hardware implementation details and can be re-used with diverse DMA
controller variants, found on SH-based SoCs.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
akefile
hdma-base.c
e95be94b8c25220aca09ed78c176f9b55a1482c8 02-Jul-2012 Guennadi Liakhovetski <g.liakhovetski@gmx.de> dma: move shdma driver to an own directory

The shdma driver is going to be split into multiple files. To make this more
convenient move it to an own directory.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
akefile
hdma.c
hdma.h