diff options
Diffstat (limited to 'target/arm/bcm28xx/patches/3.18.16/0001-i2s-allow-to-enable-ALSA-MMAP.patch')
-rw-r--r-- | target/arm/bcm28xx/patches/3.18.16/0001-i2s-allow-to-enable-ALSA-MMAP.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/target/arm/bcm28xx/patches/3.18.16/0001-i2s-allow-to-enable-ALSA-MMAP.patch b/target/arm/bcm28xx/patches/3.18.16/0001-i2s-allow-to-enable-ALSA-MMAP.patch new file mode 100644 index 000000000..2df6ea512 --- /dev/null +++ b/target/arm/bcm28xx/patches/3.18.16/0001-i2s-allow-to-enable-ALSA-MMAP.patch @@ -0,0 +1,54 @@ +From d017ad0179e407a81ed2423f7620d46584470ad4 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb <wbrodkorb@conet.de> +Date: Thu, 26 Mar 2015 13:00:07 +0100 +Subject: [PATCH] i2s: allow to enable ALSA MMAP + +For some ALSA plugins like dmix MMAP is required. +Allow to enable it via a module parameter called use_mmap. + +Signed-off-by: Waldemar Brodkorb <wbrodkorb@conet.de> +--- + sound/soc/bcm/bcm2708-i2s.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/sound/soc/bcm/bcm2708-i2s.c b/sound/soc/bcm/bcm2708-i2s.c +index 7570e50..3d3692f 100644 +--- a/sound/soc/bcm/bcm2708-i2s.c ++++ b/sound/soc/bcm/bcm2708-i2s.c +@@ -171,6 +171,11 @@ static const unsigned int bcm2708_clk_freq[BCM2708_CLK_SRC_HDMI+1] = { + /* I2S pin configuration */ + static int bcm2708_i2s_gpio=BCM2708_I2S_GPIO_AUTO; + ++static bool use_mmap = 0; ++module_param(use_mmap, bool, S_IRUGO); ++MODULE_PARM_DESC(use_mmap, "Use MMAP"); ++ ++ + /* General device struct */ + struct bcm2708_i2s_dev { + struct device *dev; +@@ -874,7 +879,7 @@ static const struct snd_soc_component_driver bcm2708_i2s_component = { + .name = "bcm2708-i2s-comp", + }; + +-static const struct snd_pcm_hardware bcm2708_pcm_hardware = { ++static struct snd_pcm_hardware bcm2708_pcm_hardware = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_JOINT_DUPLEX, + .formats = SNDRV_PCM_FMTBIT_S16_LE | +@@ -966,6 +971,12 @@ static int bcm2708_i2s_probe(struct platform_device *pdev) + return ret; + } + ++ if (use_mmap) { ++ printk("Enable ALSA MMAP support for I2S\n"); ++ bcm2708_pcm_hardware.info |= SNDRV_PCM_INFO_MMAP; ++ bcm2708_pcm_hardware.info |= SNDRV_PCM_INFO_MMAP_VALID; ++ } ++ + ret = snd_dmaengine_pcm_register(&pdev->dev, + &bcm2708_dmaengine_pcm_config, + SND_DMAENGINE_PCM_FLAG_COMPAT); +-- +1.9.1 + |