ASoC: es8316: fix headphone mixer volume table
authorKatsuhiro Suzuki <katsuhiro@katsuster.net>
Mon, 26 Aug 2019 15:38:59 +0000 (00:38 +0900)
committerMark Brown <broonie@kernel.org>
Tue, 27 Aug 2019 19:38:12 +0000 (20:38 +0100)
This patch fix setting table of Headphone mixer volume.
Current code uses 4 ... 7 values but these values are prohibited.

Correct settings are the following:
  0000 -12dB
  0001 -10.5dB
  0010 -9dB
  0011 -7.5dB
  0100 -6dB
  1000 -4.5dB
  1001 -3dB
  1010 -1.5dB
  1011 0dB

Signed-off-by: Katsuhiro Suzuki <katsuhiro@katsuster.net>
Reviewed-by: Daniel Drake <drake@endlessm.com>
Link: https://lore.kernel.org/r/20190826153900.25969-1-katsuhiro@katsuster.net
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/es8316.c

index 6db002cc205824f2fe31c59c5a25490fee7b570c..96d04896193f2499b0ed7039d4a2a0605a16b44d 100644 (file)
@@ -51,7 +51,10 @@ static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(adc_vol_tlv, -9600, 50, 1);
 static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(alc_max_gain_tlv, -650, 150, 0);
 static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(alc_min_gain_tlv, -1200, 150, 0);
 static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(alc_target_tlv, -1650, 150, 0);
-static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(hpmixer_gain_tlv, -1200, 150, 0);
+static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(hpmixer_gain_tlv,
+       0, 4, TLV_DB_SCALE_ITEM(-1200, 150, 0),
+       8, 11, TLV_DB_SCALE_ITEM(-450, 150, 0),
+);
 
 static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(adc_pga_gain_tlv,
        0, 0, TLV_DB_SCALE_ITEM(-350, 0, 0),
@@ -89,7 +92,7 @@ static const struct snd_kcontrol_new es8316_snd_controls[] = {
        SOC_DOUBLE_TLV("Headphone Playback Volume", ES8316_CPHP_ICAL_VOL,
                       4, 0, 3, 1, hpout_vol_tlv),
        SOC_DOUBLE_TLV("Headphone Mixer Volume", ES8316_HPMIX_VOL,
-                      0, 4, 7, 0, hpmixer_gain_tlv),
+                      0, 4, 11, 0, hpmixer_gain_tlv),
 
        SOC_ENUM("Playback Polarity", dacpol),
        SOC_DOUBLE_R_TLV("DAC Playback Volume", ES8316_DAC_VOLL,