diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-08 15:36:50 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-08 15:36:50 -0400 |
| commit | 2ceedf97aef41d071d897a6e6aec8c05fb707ec4 (patch) | |
| tree | 8435c97dbb7333f8b4977e041075f7a68dfbb92b | |
| parent | 09b56d5a418b7ced4ca427c7cf8faf11df72364c (diff) | |
| parent | 3edc85023a1e1daf22d8e372c5c4f87dc4a04a71 (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
...
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 @@ | |||
| 3 | Required properties: | 3 | Required 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 | ||
| 26 | Clients | 31 | Clients |
| 27 | Required properties: | 32 | Required 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 | |||
| 3 | Required 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 | |||
| 11 | Example: | ||
| 12 | |||
| 13 | raid_mbox: mbox@67400000 { | ||
| 14 | ... | ||
| 15 | #mbox-cells = <3>; | ||
| 16 | ... | ||
| 17 | }; | ||
| 18 | |||
| 19 | raid0 { | ||
| 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 | ||
| 3 | Sh-/r-mobile and r-car systems often have multiple identical DMA controller | 3 | Sh-/r-mobile and R-Car systems often have multiple identical DMA controller |
| 4 | instances, capable of serving any of a common set of DMA slave devices, using | 4 | instances, capable of serving any of a common set of DMA slave devices, using |
| 5 | the same configuration. To describe this topology we require all compatible | 5 | the same configuration. To describe this topology we require all compatible |
| 6 | SHDMA DT nodes to be placed under a DMA multiplexer node. All such compatible | 6 | SHDMA 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 | ||
| 139 | static struct pl08x_platform_data pl08x_pd = { | 139 | static 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 | ||
| 139 | struct pl08x_platform_data s3c64xx_dma0_plat_data = { | 139 | struct 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 | ||
| 240 | struct pl08x_platform_data s3c64xx_dma1_plat_data = { | 234 | struct 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 = | ||
