Re: [PATCH] ASoC: codecs: wcd938x: fix dB range for HPHL and HPHR

From: Takashi Iwai
Date: Fri Jul 07 2023 - 09:20:17 EST


On Fri, 07 Jul 2023 14:54:31 +0200,
Srinivas Kandagatla wrote:
>
> On 07/07/2023 08:35, Johan Hovold wrote:
> > On Wed, Jul 05, 2023 at 01:57:23PM +0100, Srinivas Kandagatla wrote:
> >> dB range for HPHL and HPHR gains are from +6dB to -30dB in steps of
> >> 1.5dB with register values range from 0 to 24.
> >>
> >> Current code maps these dB ranges incorrectly, fix them to allow proper
> >> volume setting.
> >>
> >> Fixes: e8ba1e05bdc0("ASoC: codecs: wcd938x: add basic controls")
> >> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> >> ---
> >> sound/soc/codecs/wcd938x.c | 6 +++---
> >> 1 file changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/sound/soc/codecs/wcd938x.c b/sound/soc/codecs/wcd938x.c
> >> index faa15a5ed2c8..3a3360711f8f 100644
> >> --- a/sound/soc/codecs/wcd938x.c
> >> +++ b/sound/soc/codecs/wcd938x.c
> >> @@ -210,7 +210,7 @@ struct wcd938x_priv {
> >> };
> >> static const SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(ear_pa_gain, 600,
> >> -1800);
> >> -static const SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(line_gain, 600, -3000);
> >> +static const DECLARE_TLV_DB_SCALE(line_gain, -3000, 150, -3000);
> >
> > This looks wrong, and indeed that forth argument appears to be a mute
> > flag. I guess that one should have been 0 (false) here?
>
> yes, this should be true instead of a mute dB value.
>
> >
> > Headphone output also appears to be way too loud by default with this
> > patch (alone) applied. Perhaps it's just the default mixer settings need
> > to be updated to match?
> >
> > It looks like you're inverting the scale above. Perhaps that's intended,
>
> yes, the highest value corresponds to lowest dB which is why its inverted.

Ouch, that's a bad design choice...


Takashi