aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0210-ASoC-allo-boss-dac-fix-S24_LE-format.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0210-ASoC-allo-boss-dac-fix-S24_LE-format.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/950-0210-ASoC-allo-boss-dac-fix-S24_LE-format.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0210-ASoC-allo-boss-dac-fix-S24_LE-format.patch b/target/linux/brcm2708/patches-4.14/950-0210-ASoC-allo-boss-dac-fix-S24_LE-format.patch
new file mode 100644
index 0000000000..aa5a1b788d
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.14/950-0210-ASoC-allo-boss-dac-fix-S24_LE-format.patch
@@ -0,0 +1,56 @@
+From ae1a548ef0cb1a25242201bca5fefa5090728ea8 Mon Sep 17 00:00:00 2001
+From: Matthias Reichl <hias@horus.com>
+Date: Fri, 2 Feb 2018 20:30:42 +0100
+Subject: [PATCH 210/454] ASoC: allo-boss-dac: fix S24_LE format
+
+Remove set_bclk_ratio call so 24-bit data is transmitted in
+24 bclk cycles.
+
+Signed-off-by: Matthias Reichl <hias@horus.com>
+---
+ sound/soc/bcm/allo-boss-dac.c | 20 ++------------------
+ 1 file changed, 2 insertions(+), 18 deletions(-)
+
+--- a/sound/soc/bcm/allo-boss-dac.c
++++ b/sound/soc/bcm/allo-boss-dac.c
+@@ -222,14 +222,6 @@ static int snd_allo_boss_update_rate_den
+ return 0;
+ }
+
+-static int snd_allo_boss_set_bclk_ratio_pro(
+- struct snd_soc_dai *cpu_dai, struct snd_pcm_hw_params *params)
+-{
+- int bratio = snd_pcm_format_physical_width(params_format(params))
+- * params_channels(params);
+- return snd_soc_dai_set_bclk_ratio(cpu_dai, bratio);
+-}
+-
+ static void snd_allo_boss_gpio_mute(struct snd_soc_card *card)
+ {
+ if (mute_gpio)
+@@ -281,9 +273,6 @@ static int snd_allo_boss_hw_params(
+ {
+ int ret = 0;
+ struct snd_soc_pcm_runtime *rtd = substream->private_data;
+- struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
+- unsigned int sample_bits =
+- snd_pcm_format_physical_width(params_format(params));
+
+ if (snd_soc_allo_boss_master) {
+ struct snd_soc_codec *codec = rtd->codec;
+@@ -291,13 +280,8 @@ static int snd_allo_boss_hw_params(
+ snd_allo_boss_set_sclk(codec,
+ params_rate(params));
+
+- ret = snd_allo_boss_set_bclk_ratio_pro(cpu_dai,
+- params);
+- if (!ret)
+- ret = snd_allo_boss_update_rate_den(
+- substream, params);
+- } else {
+- ret = snd_soc_dai_set_bclk_ratio(cpu_dai, sample_bits * 2);
++ ret = snd_allo_boss_update_rate_den(
++ substream, params);
+ }
+ return ret;
+ }