diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0014-bcm2835-i2s-get-base-address-for-DMA-from-devicetree.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.4/0014-bcm2835-i2s-get-base-address-for-DMA-from-devicetree.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0014-bcm2835-i2s-get-base-address-for-DMA-from-devicetree.patch b/target/linux/brcm2708/patches-4.4/0014-bcm2835-i2s-get-base-address-for-DMA-from-devicetree.patch deleted file mode 100644 index 9f869b50b1..0000000000 --- a/target/linux/brcm2708/patches-4.4/0014-bcm2835-i2s-get-base-address-for-DMA-from-devicetree.patch +++ /dev/null @@ -1,65 +0,0 @@ -From fba1570f5f2fa5a65e933db49d3fc36126561a15 Mon Sep 17 00:00:00 2001 -From: Matthias Reichl <hias@horus.com> -Date: Sun, 11 Oct 2015 16:44:05 +0200 -Subject: [PATCH] bcm2835-i2s: get base address for DMA from devicetree - -Code copied from spi-bcm2835. Get physical address from devicetree -instead of using hardcoded constant. - -Signed-off-by: Matthias Reichl <hias@horus.com> ---- - sound/soc/bcm/bcm2835-i2s.c | 20 ++++++++++++-------- - 1 file changed, 12 insertions(+), 8 deletions(-) - ---- a/sound/soc/bcm/bcm2835-i2s.c -+++ b/sound/soc/bcm/bcm2835-i2s.c -@@ -38,6 +38,7 @@ - #include <linux/delay.h> - #include <linux/io.h> - #include <linux/clk.h> -+#include <linux/of_address.h> - - #include <sound/core.h> - #include <sound/pcm.h> -@@ -158,10 +159,6 @@ static const unsigned int bcm2835_clk_fr - #define BCM2835_I2S_INT_RXR BIT(1) - #define BCM2835_I2S_INT_TXW BIT(0) - --/* I2S DMA interface */ --/* FIXME: Needs IOMMU support */ --#define BCM2835_VCMMU_SHIFT (0x7E000000 - 0x20000000) -- - /* General device struct */ - struct bcm2835_i2s_dev { - struct device *dev; -@@ -791,6 +788,15 @@ static int bcm2835_i2s_probe(struct plat - int ret; - struct regmap *regmap[2]; - struct resource *mem[2]; -+ const __be32 *addr; -+ dma_addr_t dma_reg_base; -+ -+ addr = of_get_address(pdev->dev.of_node, 0, NULL, NULL); -+ if (!addr) { -+ dev_err(&pdev->dev, "could not get DMA-register address\n"); -+ return -ENODEV; -+ } -+ dma_reg_base = be32_to_cpup(addr); - - /* Request both ioareas */ - for (i = 0; i <= 1; i++) { -@@ -817,12 +823,10 @@ static int bcm2835_i2s_probe(struct plat - - /* Set the DMA address */ - dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr = -- (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG -- + BCM2835_VCMMU_SHIFT; -+ dma_reg_base + BCM2835_I2S_FIFO_A_REG; - - dev->dma_data[SNDRV_PCM_STREAM_CAPTURE].addr = -- (dma_addr_t)mem[0]->start + BCM2835_I2S_FIFO_A_REG -- + BCM2835_VCMMU_SHIFT; -+ dma_reg_base + BCM2835_I2S_FIFO_A_REG; - - /* Set the bus width */ - dev->dma_data[SNDRV_PCM_STREAM_PLAYBACK].addr_width = |