diff mbox series

[1/2] ASoC: msm8916-wcd-analog: Fix RX1 selection in RDAC2 MUX

Message ID 20191020153007.206070-1-stephan@gerhold.net (mailing list archive)
State Accepted
Commit 9110d1b0e229cebb1ffce0c04db2b22beffd513d
Headers show
Series [1/2] ASoC: msm8916-wcd-analog: Fix RX1 selection in RDAC2 MUX | expand

Commit Message

Stephan Gerhold Oct. 20, 2019, 3:30 p.m. UTC
According to the PM8916 Hardware Register Description,
CDC_D_CDC_CONN_HPHR_DAC_CTL has only a single bit (RX_SEL)
to switch between RX1 (0) and RX2 (1). It is not possible to
disable it entirely to achieve the "ZERO" state.

However, at the moment the "RDAC2 MUX" mixer defines three possible
values ("ZERO", "RX2" and "RX1"). Setting the mixer to "ZERO"
actually configures it to RX1. Setting the mixer to "RX1" has
(seemingly) no effect.

Remove "ZERO" and replace it with "RX1" to fix this.

Fixes: 585e881e5b9e ("ASoC: codecs: Add msm8916-wcd analog codec")
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
---
 sound/soc/codecs/msm8916-wcd-analog.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Srinivas Kandagatla Oct. 21, 2019, 9:32 a.m. UTC | #1
On 20/10/2019 16:30, Stephan Gerhold wrote:
> According to the PM8916 Hardware Register Description,
> CDC_D_CDC_CONN_HPHR_DAC_CTL has only a single bit (RX_SEL)
> to switch between RX1 (0) and RX2 (1). It is not possible to
> disable it entirely to achieve the "ZERO" state.
> 
> However, at the moment the "RDAC2 MUX" mixer defines three possible
> values ("ZERO", "RX2" and "RX1"). Setting the mixer to "ZERO"
> actually configures it to RX1. Setting the mixer to "RX1" has
> (seemingly) no effect.
> 
> Remove "ZERO" and replace it with "RX1" to fix this.
> 
> Fixes: 585e881e5b9e ("ASoC: codecs: Add msm8916-wcd analog codec")
> Signed-off-by: Stephan Gerhold <stephan@gerhold.net>

Thanks for the patch, Nice catch!

Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>


> ---
>   sound/soc/codecs/msm8916-wcd-analog.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
> index 667e9f73aba3..e3d311fb510e 100644
> --- a/sound/soc/codecs/msm8916-wcd-analog.c
> +++ b/sound/soc/codecs/msm8916-wcd-analog.c
> @@ -306,7 +306,7 @@ struct pm8916_wcd_analog_priv {
>   };
>   
>   static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" };
> -static const char *const rdac2_mux_text[] = { "ZERO", "RX2", "RX1" };
> +static const char *const rdac2_mux_text[] = { "RX1", "RX2" };
>   static const char *const hph_text[] = { "ZERO", "Switch", };
>   
>   static const struct soc_enum hph_enum = SOC_ENUM_SINGLE_VIRT(
> @@ -321,7 +321,7 @@ static const struct soc_enum adc2_enum = SOC_ENUM_SINGLE_VIRT(
>   
>   /* RDAC2 MUX */
>   static const struct soc_enum rdac2_mux_enum = SOC_ENUM_SINGLE(
> -			CDC_D_CDC_CONN_HPHR_DAC_CTL, 0, 3, rdac2_mux_text);
> +			CDC_D_CDC_CONN_HPHR_DAC_CTL, 0, 2, rdac2_mux_text);
>   
>   static const struct snd_kcontrol_new spkr_switch[] = {
>   	SOC_DAPM_SINGLE("Switch", CDC_A_SPKR_DAC_CTL, 7, 1, 0)
>
diff mbox series

Patch

diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
index 667e9f73aba3..e3d311fb510e 100644
--- a/sound/soc/codecs/msm8916-wcd-analog.c
+++ b/sound/soc/codecs/msm8916-wcd-analog.c
@@ -306,7 +306,7 @@  struct pm8916_wcd_analog_priv {
 };
 
 static const char *const adc2_mux_text[] = { "ZERO", "INP2", "INP3" };
-static const char *const rdac2_mux_text[] = { "ZERO", "RX2", "RX1" };
+static const char *const rdac2_mux_text[] = { "RX1", "RX2" };
 static const char *const hph_text[] = { "ZERO", "Switch", };
 
 static const struct soc_enum hph_enum = SOC_ENUM_SINGLE_VIRT(
@@ -321,7 +321,7 @@  static const struct soc_enum adc2_enum = SOC_ENUM_SINGLE_VIRT(
 
 /* RDAC2 MUX */
 static const struct soc_enum rdac2_mux_enum = SOC_ENUM_SINGLE(
-			CDC_D_CDC_CONN_HPHR_DAC_CTL, 0, 3, rdac2_mux_text);
+			CDC_D_CDC_CONN_HPHR_DAC_CTL, 0, 2, rdac2_mux_text);
 
 static const struct snd_kcontrol_new spkr_switch[] = {
 	SOC_DAPM_SINGLE("Switch", CDC_A_SPKR_DAC_CTL, 7, 1, 0)