diff options
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.patch | 36 |
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) |