lkml.org 
[lkml]   [2022]   [Aug]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 208/389] ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV
    Date
    From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

    [ Upstream commit 5babb012c847beb6c8c7108fd78f650b7a2c6054 ]

    move all the digital gains form using SX_TLV to S8_TLV, these gains are
    actually 8 bit gains with 7th signed bit and ranges from -84dB to +40dB

    rest of the Qualcomm wcd codecs uses these properly.

    Fixes: ef8a4757a6db ("ASoC: msm8916-wcd-digital: Add sidetone support")
    Fixes: 150db8c5afa1 ("ASoC: codecs: Add msm8916-wcd digital codec")
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20220609111901.318047-2-srinivas.kandagatla@linaro.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/codecs/msm8916-wcd-digital.c | 46 +++++++++++++-------------
    1 file changed, 23 insertions(+), 23 deletions(-)

    diff --git a/sound/soc/codecs/msm8916-wcd-digital.c b/sound/soc/codecs/msm8916-wcd-digital.c
    index e4cde214b7b2..6e5bce4f5eb2 100644
    --- a/sound/soc/codecs/msm8916-wcd-digital.c
    +++ b/sound/soc/codecs/msm8916-wcd-digital.c
    @@ -328,8 +328,8 @@ static const struct snd_kcontrol_new rx1_mix2_inp1_mux = SOC_DAPM_ENUM(
    static const struct snd_kcontrol_new rx2_mix2_inp1_mux = SOC_DAPM_ENUM(
    "RX2 MIX2 INP1 Mux", rx2_mix2_inp1_chain_enum);

    -/* Digital Gain control -38.4 dB to +38.4 dB in 0.3 dB steps */
    -static const DECLARE_TLV_DB_SCALE(digital_gain, -3840, 30, 0);
    +/* Digital Gain control -84 dB to +40 dB in 1 dB steps */
    +static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400);

    /* Cutoff Freq for High Pass Filter at -3dB */
    static const char * const hpf_cutoff_text[] = {
    @@ -510,15 +510,15 @@ static int wcd_iir_filter_info(struct snd_kcontrol *kcontrol,

    static const struct snd_kcontrol_new msm8916_wcd_digital_snd_controls[] = {
    SOC_SINGLE_S8_TLV("RX1 Digital Volume", LPASS_CDC_RX1_VOL_CTL_B2_CTL,
    - -128, 127, digital_gain),
    + -84, 40, digital_gain),
    SOC_SINGLE_S8_TLV("RX2 Digital Volume", LPASS_CDC_RX2_VOL_CTL_B2_CTL,
    - -128, 127, digital_gain),
    + -84, 40, digital_gain),
    SOC_SINGLE_S8_TLV("RX3 Digital Volume", LPASS_CDC_RX3_VOL_CTL_B2_CTL,
    - -128, 127, digital_gain),
    + -84, 40, digital_gain),
    SOC_SINGLE_S8_TLV("TX1 Digital Volume", LPASS_CDC_TX1_VOL_CTL_GAIN,
    - -128, 127, digital_gain),
    + -84, 40, digital_gain),
    SOC_SINGLE_S8_TLV("TX2 Digital Volume", LPASS_CDC_TX2_VOL_CTL_GAIN,
    - -128, 127, digital_gain),
    + -84, 40, digital_gain),
    SOC_ENUM("TX1 HPF Cutoff", tx1_hpf_cutoff_enum),
    SOC_ENUM("TX2 HPF Cutoff", tx2_hpf_cutoff_enum),
    SOC_SINGLE("TX1 HPF Switch", LPASS_CDC_TX1_MUX_CTL, 3, 1, 0),
    @@ -553,22 +553,22 @@ static const struct snd_kcontrol_new msm8916_wcd_digital_snd_controls[] = {
    WCD_IIR_FILTER_CTL("IIR2 Band3", IIR2, BAND3),
    WCD_IIR_FILTER_CTL("IIR2 Band4", IIR2, BAND4),
    WCD_IIR_FILTER_CTL("IIR2 Band5", IIR2, BAND5),
    - SOC_SINGLE_SX_TLV("IIR1 INP1 Volume", LPASS_CDC_IIR1_GAIN_B1_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR1 INP2 Volume", LPASS_CDC_IIR1_GAIN_B2_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR1 INP3 Volume", LPASS_CDC_IIR1_GAIN_B3_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR1 INP4 Volume", LPASS_CDC_IIR1_GAIN_B4_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR2 INP1 Volume", LPASS_CDC_IIR2_GAIN_B1_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR2 INP2 Volume", LPASS_CDC_IIR2_GAIN_B2_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR2 INP3 Volume", LPASS_CDC_IIR2_GAIN_B3_CTL,
    - 0, -84, 40, digital_gain),
    - SOC_SINGLE_SX_TLV("IIR2 INP4 Volume", LPASS_CDC_IIR2_GAIN_B4_CTL,
    - 0, -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR1 INP1 Volume", LPASS_CDC_IIR1_GAIN_B1_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR1 INP2 Volume", LPASS_CDC_IIR1_GAIN_B2_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR1 INP3 Volume", LPASS_CDC_IIR1_GAIN_B3_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR1 INP4 Volume", LPASS_CDC_IIR1_GAIN_B4_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR2 INP1 Volume", LPASS_CDC_IIR2_GAIN_B1_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR2 INP2 Volume", LPASS_CDC_IIR2_GAIN_B2_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR2 INP3 Volume", LPASS_CDC_IIR2_GAIN_B3_CTL,
    + -84, 40, digital_gain),
    + SOC_SINGLE_S8_TLV("IIR2 INP4 Volume", LPASS_CDC_IIR2_GAIN_B4_CTL,
    + -84, 40, digital_gain),

    };

    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-23 13:38    [W:4.615 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site