aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0220-Revert-downstream-wm8804-changes.patch
blob: bbc2ec0ff231113bc32042fc3a3ff04f993ae851 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From 91fb8d2d0718c2de44623a300273f5144e1ebcab Mon Sep 17 00:00:00 2001
From: Matthias Reichl <hias@horus.com>
Date: Fri, 2 Feb 2018 12:00:00 +0100
Subject: [PATCH 220/454] Revert downstream wm8804 changes

The format change from S24_LE to S24_3LE effectively disables 24-bit
mode as S24_3LE isn't supported by bcm2835-i2s. This causes issues
with drivers that want to use wm8804 in 24-bit mode.

Adding the S32_LE format is also incorrect, according to the datasheet
only 16-24 bit formats are supported.

Signed-off-by: Matthias Reichl <hias@horus.com>
---
 sound/soc/codecs/wm8804.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/sound/soc/codecs/wm8804.c
+++ b/sound/soc/codecs/wm8804.c
@@ -304,7 +304,6 @@ static int wm8804_hw_params(struct snd_p
 		blen = 0x1;
 		break;
 	case 24:
-	case 32:
 		blen = 0x2;
 		break;
 	default:
@@ -516,7 +515,7 @@ static const struct snd_soc_dai_ops wm88
 };
 
 #define WM8804_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
-			SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S32_LE)
+			SNDRV_PCM_FMTBIT_S24_LE)
 
 #define WM8804_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \
 		      SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_64000 | \
@@ -544,7 +543,7 @@ static struct snd_soc_dai_driver wm8804_
 };
 
 static const struct snd_soc_codec_driver soc_codec_dev_wm8804 = {
-	.idle_bias_off = false,
+	.idle_bias_off = true,
 
 	.component_driver = {
 		.dapm_widgets		= wm8804_dapm_widgets,