aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0118-ASoC-bcm2835-Enforce-full-symmetry.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0118-ASoC-bcm2835-Enforce-full-symmetry.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/950-0118-ASoC-bcm2835-Enforce-full-symmetry.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0118-ASoC-bcm2835-Enforce-full-symmetry.patch b/target/linux/brcm2708/patches-4.14/950-0118-ASoC-bcm2835-Enforce-full-symmetry.patch
new file mode 100644
index 0000000000..b07a02b9c9
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.14/950-0118-ASoC-bcm2835-Enforce-full-symmetry.patch
@@ -0,0 +1,36 @@
+From 5f88ff5e23cd30d28c0f4604cd159d899fde4dc7 Mon Sep 17 00:00:00 2001
+From: Matthias Reichl <hias@horus.com>
+Date: Sun, 7 May 2017 16:24:57 +0200
+Subject: [PATCH 118/454] ASoC: bcm2835: Enforce full symmetry
+
+bcm2835's configuration registers can't be changed when a stream
+is running, which means asymmetric configurations aren't supported.
+
+Channel and rate symmetry are already enforced by constraints
+but samplebits had been missed.
+
+As hw_params doesn't check for symmetry constraints by itself
+and just returns success if a stream is running this led to
+situations where asymmetric configurations were seeming to
+succeed but of course didn't work because the hardware wasn't
+configured at all.
+
+Fix this by adding the missing samplerate symmetry constraint.
+
+Signed-off-by: Matthias Reichl <hias@horus.com>
+---
+ sound/soc/bcm/bcm2835-i2s.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/sound/soc/bcm/bcm2835-i2s.c
++++ b/sound/soc/bcm/bcm2835-i2s.c
+@@ -783,7 +783,8 @@ static struct snd_soc_dai_driver bcm2835
+ | SNDRV_PCM_FMTBIT_S32_LE
+ },
+ .ops = &bcm2835_i2s_dai_ops,
+- .symmetric_rates = 1
++ .symmetric_rates = 1,
++ .symmetric_samplebits = 1,
+ };
+
+ static bool bcm2835_i2s_volatile_reg(struct device *dev, unsigned int reg)