Loading sound/soc/codecs/msm8x16-wcd.c +14 −17 Original line number Diff line number Diff line Loading @@ -1633,21 +1633,25 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, if (w->shift == 2) snd_soc_update_bits(codec, w->reg, 0x80, 0x80); if (msm8x16_wcd->spk_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x20); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_SEC_ACCESS, 0xA5, 0xA5); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x0F, 0x0F); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x82, 0x82); snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x20); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0xDF, 0xDF); usleep_range(CODEC_DELAY_1_MS, CODEC_DELAY_1_1_MS); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x03, 0x03); 0x83, 0x83); } else if (msm8x16_wcd->ear_pa_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_SEC_ACCESS, Loading @@ -1674,21 +1678,12 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, break; case SND_SOC_DAPM_POST_PMD: if (msm8x16_wcd->spk_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x00); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0xDF, 0x00); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x03, 0x00); 0xDF, 0x5F); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_SEC_ACCESS, 0xA5, 0x0); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x07, 0x0); MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x00); } else if (msm8x16_wcd->ear_pa_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, Loading Loading @@ -2864,7 +2859,8 @@ static const struct snd_soc_dapm_widget msm8x16_wcd_dapm_widgets[] = { }; static const struct msm8x16_wcd_reg_mask_val msm8x16_wcd_reg_defaults[] = { MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_SPKR_DAC_CTL, 0x03) MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_SPKR_DAC_CTL, 0x03), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x82), }; static const struct msm8x16_wcd_reg_mask_val msm8x16_wcd_reg_defaults_2_0[] = { Loading @@ -2876,6 +2872,7 @@ static const struct msm8x16_wcd_reg_mask_val msm8x16_wcd_reg_defaults_2_0[] = { MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0x5F), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_SLOPE_COMP_IP_ZERO, 0x88), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x0F), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x82), }; static void msm8x16_wcd_update_reg_defaults(struct snd_soc_codec *codec) Loading Loading
sound/soc/codecs/msm8x16-wcd.c +14 −17 Original line number Diff line number Diff line Loading @@ -1633,21 +1633,25 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, if (w->shift == 2) snd_soc_update_bits(codec, w->reg, 0x80, 0x80); if (msm8x16_wcd->spk_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x20); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_SEC_ACCESS, 0xA5, 0xA5); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x0F, 0x0F); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x82, 0x82); snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x20); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0xDF, 0xDF); usleep_range(CODEC_DELAY_1_MS, CODEC_DELAY_1_1_MS); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x03, 0x03); 0x83, 0x83); } else if (msm8x16_wcd->ear_pa_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_SEC_ACCESS, Loading @@ -1674,21 +1678,12 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, break; case SND_SOC_DAPM_POST_PMD: if (msm8x16_wcd->spk_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x00); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0xDF, 0x00); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x03, 0x00); 0xDF, 0x5F); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_SEC_ACCESS, 0xA5, 0x0); snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x07, 0x0); MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 0x20, 0x00); } else if (msm8x16_wcd->ear_pa_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, Loading Loading @@ -2864,7 +2859,8 @@ static const struct snd_soc_dapm_widget msm8x16_wcd_dapm_widgets[] = { }; static const struct msm8x16_wcd_reg_mask_val msm8x16_wcd_reg_defaults[] = { MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_SPKR_DAC_CTL, 0x03) MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_SPKR_DAC_CTL, 0x03), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x82), }; static const struct msm8x16_wcd_reg_mask_val msm8x16_wcd_reg_defaults_2_0[] = { Loading @@ -2876,6 +2872,7 @@ static const struct msm8x16_wcd_reg_mask_val msm8x16_wcd_reg_defaults_2_0[] = { MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, 0x5F), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_SLOPE_COMP_IP_ZERO, 0x88), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_PERPH_RESET_CTL3, 0x0F), MSM8X16_WCD_REG_VAL(MSM8X16_WCD_A_ANALOG_CURRENT_LIMIT, 0x82), }; static void msm8x16_wcd_update_reg_defaults(struct snd_soc_codec *codec) Loading