diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0019-bcm2835-i2s-Enable-MMAP-support-via-a-DT-property.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.4/0019-bcm2835-i2s-Enable-MMAP-support-via-a-DT-property.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0019-bcm2835-i2s-Enable-MMAP-support-via-a-DT-property.patch b/target/linux/brcm2708/patches-4.4/0019-bcm2835-i2s-Enable-MMAP-support-via-a-DT-property.patch new file mode 100644 index 0000000000..c422cc7224 --- /dev/null +++ b/target/linux/brcm2708/patches-4.4/0019-bcm2835-i2s-Enable-MMAP-support-via-a-DT-property.patch @@ -0,0 +1,44 @@ +From 61f155e164c5dbfa5cec9a099e4aa802c2155423 Mon Sep 17 00:00:00 2001 +From: Matthias Reichl <hias@horus.com> +Date: Sun, 11 Oct 2015 15:55:21 +0200 +Subject: [PATCH 019/127] bcm2835-i2s: Enable MMAP support via a DT property + +Code ported from bcm2708-i2s driver in Raspberry Pi tree. + +RPi commit 7ee829fd77a30127db5d0b3c7d79b8718166e568 ("bcm2708-i2s: +Enable MMAP support via a DT property and overlay") + +The i2s driver used to claim to support MMAP, but that feature was disabled +when some problems were found. Add the ability to enable this feature +through Device Tree, using the i2s-mmap overlay. + +See: #1004 + +Signed-off-by: Matthias Reichl <hias@horus.com> +--- + sound/soc/bcm/bcm2835-i2s.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- a/sound/soc/bcm/bcm2835-i2s.c ++++ b/sound/soc/bcm/bcm2835-i2s.c +@@ -799,7 +799,7 @@ static const struct snd_soc_component_dr + .name = "bcm2835-i2s-comp", + }; + +-static const struct snd_pcm_hardware bcm2835_pcm_hardware = { ++static struct snd_pcm_hardware bcm2835_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_JOINT_DUPLEX, + .formats = SNDRV_PCM_FMTBIT_S16_LE | +@@ -835,6 +835,11 @@ static int bcm2835_i2s_probe(struct plat + } + dma_reg_base = be32_to_cpup(addr); + ++ if (of_property_read_bool(pdev->dev.of_node, "brcm,enable-mmap")) ++ bcm2835_pcm_hardware.info |= ++ SNDRV_PCM_INFO_MMAP | ++ SNDRV_PCM_INFO_MMAP_VALID; ++ + /* Request both ioareas */ + for (i = 0; i <= 1; i++) { + void __iomem *base; |