aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-07-08 15:36:50 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-08 15:36:50 -0400
commit2ceedf97aef41d071d897a6e6aec8c05fb707ec4 (patch)
tree8435c97dbb7333f8b4977e041075f7a68dfbb92b
parent09b56d5a418b7ced4ca427c7cf8faf11df72364c (diff)
parent3edc85023a1e1daf22d8e372c5c4f87dc4a04a71 (diff)
Merge tag 'dmaengine-4.13-rc1' of git://git.infradead.org/users/vkoul/slave-dma
Pull dmaengine updates from Vinod Koul: - removal of AVR32 support in dw driver as AVR32 is gone - new driver for Broadcom stream buffer accelerator (SBA) RAID driver - add support for Faraday Technology FTDMAC020 in amba-pl08x driver - IOMMU support in pl330 driver - updates to bunch of drivers * tag 'dmaengine-4.13-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (36 commits) dmaengine: qcom_hidma: correct API violation for submit dmaengine: zynqmp_dma: Remove max len check in zynqmp_dma_prep_memcpy dmaengine: tegra-apb: Really fix runtime-pm usage dmaengine: fsl_raid: make of_device_ids const. dmaengine: qcom_hidma: allow ACPI/DT parameters to be overridden dmaengine: fsldma: set BWC, DAHTS and SAHTS values correctly dmaengine: Kconfig: Simplify the help text for MXS_DMA dmaengine: pl330: Delete unused functions dmaengine: Replace WARN_TAINT_ONCE() with pr_warn_once() dmaengine: Kconfig: Extend the dependency for MXS_DMA dmaengine: mxs: Use %zu for printing a size_t variable dmaengine: ste_dma40: Cleanup scatterlist layering violations dmaengine: imx-dma: cleanup scatterlist layering violations dmaengine: use proper name for the R-Car SoC dmaengine: imx-sdma: Fix compilation warning. dmaengine: imx-sdma: Handle return value of clk_prepare_enable dmaengine: pl330: Add IOMMU support to slave tranfers dmaengine: DW DMAC: Handle return value of clk_prepare_enable dmaengine: pl08x: use GENMASK() to create bitmasks dmaengine: pl08x: Add support for Faraday Technology FTDMAC020 ...
-rw-r--r--Documentation/devicetree/bindings/dma/arm-pl08x.txt9
-rw-r--r--Documentation/devicetree/bindings/dma/brcm,iproc-sba.txt29
-rw-r--r--Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt5
-rw-r--r--Documentation/devicetree/bindings/dma/shdma.txt2
-rw-r--r--arch/arm/mach-lpc32xx/phy3250.c3
-rw-r--r--arch/arm/mach-s3c64xx/pl080.c28
-rw-r--r--arch/arm/mach-spear/spear3xx.c14
-rw-r--r--arch/arm/mach-spear/spear6xx.c14
-rw-r--r--crypto/async_tx/async_pq.c5
-rw-r--r--drivers/dma/Kconfig26
-rw-r--r--drivers/dma/Makefile1
-rw-r--r--drivers/dma/amba-pl08x.c970
-rw-r--r--drivers/dma/bcm-sba-raid.c1785
-rw-r--r--drivers/dma/dw/platform.c6
-rw-r--r--drivers/dma/fsl_raid.c2
-rw-r--r--drivers/dma/fsldma.c5
-rw-r--r--drivers/dma/fsldma.h4
-rw-r--r--drivers/dma/imx-dma.c7
-rw-r--r--drivers/dma/imx-sdma.c27
-rw-r--r--drivers/dma/ioat/dca.c8
-rw-r--r--drivers/dma/mv_xor_v2.c62
-rw-r--r--drivers/dma/mxs-dma.c2
-rw-r--r--drivers/dma/pl330.c142
-rw-r--r--drivers/dma/qcom/hidma.c22
-rw-r--r--drivers/dma/qcom/hidma.h1
-rw-r--r--drivers/dma/qcom/hidma_mgmt.c47
-rw-r--r--drivers/dma/sh/rcar-dmac.c27
-rw-r--r--drivers/dma/ste_dma40.c5
-rw-r--r--drivers/dma/tegra20-apb-dma.c50
-rw-r--r--drivers/dma/xilinx/zynqmp_dma.c3
-rw-r--r--include/linux/amba/pl080.h107
-rw-r--r--include/linux/amba/pl08x.h30
-rw-r--r--include/linux/raid/pq.h1
-rw-r--r--lib/raid6/mktables.c20
34 files changed, 3026 insertions, 443 deletions
diff --git a/Documentation/devicetree/bindings/dma/arm-pl08x.txt b/Documentation/devicetree/bindings/dma/arm-pl08x.txt
index 8a0097a029d3..0ba81f79266f 100644
--- a/Documentation/devicetree/bindings/dma/arm-pl08x.txt
+++ b/Documentation/devicetree/bindings/dma/arm-pl08x.txt
@@ -3,6 +3,11 @@
3Required properties: 3Required properties:
4- compatible: "arm,pl080", "arm,primecell"; 4- compatible: "arm,pl080", "arm,primecell";
5 "arm,pl081", "arm,primecell"; 5 "arm,pl081", "arm,primecell";
6 "faraday,ftdmac020", "arm,primecell"
7- arm,primecell-periphid: on the FTDMAC020 the primecell ID is not hard-coded
8 in the hardware and must be specified here as <0x0003b080>. This number
9 follows the PrimeCell standard numbering using the JEP106 vendor code 0x38
10 for Faraday Technology.
6- reg: Address range of the PL08x registers 11- reg: Address range of the PL08x registers
7- interrupt: The PL08x interrupt number 12- interrupt: The PL08x interrupt number
8- clocks: The clock running the IP core clock 13- clocks: The clock running the IP core clock
@@ -20,8 +25,8 @@ Optional properties:
20- dma-requests: contains the total number of DMA requests supported by the DMAC 25- dma-requests: contains the total number of DMA requests supported by the DMAC
21- memcpy-burst-size: the size of the bursts for memcpy: 1, 4, 8, 16, 32 26- memcpy-burst-size: the size of the bursts for memcpy: 1, 4, 8, 16, 32
22 64, 128 or 256 bytes are legal values 27 64, 128 or 256 bytes are legal values
23- memcpy-bus-width: the bus width used for memcpy: 8, 16 or 32 are legal 28- memcpy-bus-width: the bus width used for memcpy in bits: 8, 16 or 32 are legal
24 values 29 values, the Faraday FTDMAC020 can also accept 64 bits
25 30
26Clients 31Clients
27Required properties: 32Required properties:
diff --git a/Documentation/devicetree/bindings/dma/brcm,iproc-sba.txt b/Documentation/devicetree/bindings/dma/brcm,iproc-sba.txt
new file mode 100644
index 000000000000..092913a28457
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/brcm,iproc-sba.txt
@@ -0,0 +1,29 @@
1* Broadcom SBA RAID engine
2
3Required properties:
4- compatible: Should be one of the following
5 "brcm,iproc-sba"
6 "brcm,iproc-sba-v2"
7 The "brcm,iproc-sba" has support for only 6 PQ coefficients
8 The "brcm,iproc-sba-v2" has support for only 30 PQ coefficients
9- mboxes: List of phandle and mailbox channel specifiers
10
11Example:
12
13raid_mbox: mbox@67400000 {
14 ...
15 #mbox-cells = <3>;
16 ...
17};
18
19raid0 {
20 compatible = "brcm,iproc-sba-v2";
21 mboxes = <&raid_mbox 0 0x1 0xffff>,
22 <&raid_mbox 1 0x1 0xffff>,
23 <&raid_mbox 2 0x1 0xffff>,
24 <&raid_mbox 3 0x1 0xffff>,
25 <&raid_mbox 4 0x1 0xffff>,
26 <&raid_mbox 5 0x1 0xffff>,
27 <&raid_mbox 6 0x1 0xffff>,
28 <&raid_mbox 7 0x1 0xffff>;
29};
diff --git a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt
index 3316a9c2e638..79a204d50234 100644
--- a/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt
+++ b/Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt
@@ -30,8 +30,9 @@ Required Properties:
30 30
31- interrupts: interrupt specifiers for the DMAC, one for each entry in 31- interrupts: interrupt specifiers for the DMAC, one for each entry in
32 interrupt-names. 32 interrupt-names.
33- interrupt-names: one entry per channel, named "ch%u", where %u is the 33- interrupt-names: one entry for the error interrupt, named "error", plus one
34 channel number ranging from zero to the number of channels minus one. 34 entry per channel, named "ch%u", where %u is the channel number ranging from
35 zero to the number of channels minus one.
35 36
36- clock-names: "fck" for the functional clock 37- clock-names: "fck" for the functional clock
37- clocks: a list of phandle + clock-specifier pairs, one for each entry 38- clocks: a list of phandle + clock-specifier pairs, one for each entry
diff --git a/Documentation/devicetree/bindings/dma/shdma.txt b/Documentation/devicetree/bindings/dma/shdma.txt
index 2a3f3b8946b9..a91920a49433 100644
--- a/Documentation/devicetree/bindings/dma/shdma.txt
+++ b/Documentation/devicetree/bindings/dma/shdma.txt
@@ -1,6 +1,6 @@
1* SHDMA Device Tree bindings 1* SHDMA Device Tree bindings
2 2
3Sh-/r-mobile and r-car systems often have multiple identical DMA controller 3Sh-/r-mobile and R-Car systems often have multiple identical DMA controller
4instances, capable of serving any of a common set of DMA slave devices, using 4instances, capable of serving any of a common set of DMA slave devices, using
5the same configuration. To describe this topology we require all compatible 5the same configuration. To describe this topology we require all compatible
6SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible 6SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c
index 6c52bd32610e..e48cc06c2aec 100644
--- a/arch/arm/mach-lpc32xx/phy3250.c
+++ b/arch/arm/mach-lpc32xx/phy3250.c
@@ -137,6 +137,9 @@ static void pl08x_put_signal(const struct pl08x_channel_data *cd, int ch)
137} 137}
138 138
139static struct pl08x_platform_data pl08x_pd = { 139static struct pl08x_platform_data pl08x_pd = {
140 /* Some reasonable memcpy defaults */
141 .memcpy_burst_size = PL08X_BURST_SZ_256,
142 .memcpy_bus_width = PL08X_BUS_WIDTH_32_BITS,
140 .slave_channels = &pl08x_slave_channels[0], 143 .slave_channels = &pl08x_slave_channels[0],
141 .num_slave_channels = ARRAY_SIZE(pl08x_slave_channels), 144 .num_slave_channels = ARRAY_SIZE(pl08x_slave_channels),
142 .get_xfer_signal = pl08x_get_signal, 145 .get_xfer_signal = pl08x_get_signal,
diff --git a/arch/arm/mach-s3c64xx/pl080.c b/arch/arm/mach-s3c64xx/pl080.c
index 261820a855ec..66fc774b70ec 100644
--- a/arch/arm/mach-s3c64xx/pl080.c
+++ b/arch/arm/mach-s3c64xx/pl080.c
@@ -137,16 +137,10 @@ static const struct dma_slave_map s3c64xx_dma0_slave_map[] = {
137}; 137};
138 138
139struct pl08x_platform_data s3c64xx_dma0_plat_data = { 139struct pl08x_platform_data s3c64xx_dma0_plat_data = {
140 .memcpy_channel = { 140 .memcpy_burst_size = PL08X_BURST_SZ_4,
141 .bus_id = "memcpy", 141 .memcpy_bus_width = PL08X_BUS_WIDTH_32_BITS,
142 .cctl_memcpy = 142 .memcpy_prot_buff = true,
143 (PL080_BSIZE_4 << PL080_CONTROL_SB_SIZE_SHIFT | 143 .memcpy_prot_cache = true,
144 PL080_BSIZE_4 << PL080_CONTROL_DB_SIZE_SHIFT |
145 PL080_WIDTH_32BIT << PL080_CONTROL_SWIDTH_SHIFT |
146 PL080_WIDTH_32BIT << PL080_CONTROL_DWIDTH_SHIFT |
147 PL080_CONTROL_PROT_BUFF | PL080_CONTROL_PROT_CACHE |
148 PL080_CONTROL_PROT_SYS),
149 },
150 .lli_buses = PL08X_AHB1, 144 .lli_buses = PL08X_AHB1,
151 .mem_buses = PL08X_AHB1, 145 .mem_buses = PL08X_AHB1,
152 .get_xfer_signal = pl08x_get_xfer_signal, 146 .get_xfer_signal = pl08x_get_xfer_signal,
@@ -238,16 +232,10 @@ static const struct dma_slave_map s3c64xx_dma1_slave_map[] = {
238}; 232};
239 233
240struct pl08x_platform_data s3c64xx_dma1_plat_data = { 234struct pl08x_platform_data s3c64xx_dma1_plat_data = {
241 .memcpy_channel = { 235 .memcpy_burst_size = PL08X_BURST_SZ_4,
242 .bus_id = "memcpy", 236 .memcpy_bus_width = PL08X_BUS_WIDTH_32_BITS,
243 .cctl_memcpy =