diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2014-11-19 04:24:17 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-11-19 04:24:16 -0800 |
commit | 24704aac26bb3d0e152e1efd69b6861ace8a4e65 (patch) | |
tree | 6ed58b369aa3d3807e5bb670162faee5c485d0a8 | |
parent | 0b79c0cd4809f5fb8af1923497c8c450d3b3ff0c (diff) | |
parent | 3aa3af9615a2d9bd545fed7648d5f3abfc08d9ab (diff) |
Merge "ASoC: msm8x16: update rx path register write sequence"
-rw-r--r-- | sound/soc/codecs/msm8x16-wcd.c | 49 | ||||
-rw-r--r-- | sound/soc/msm/msm8x16.c | 2 |
2 files changed, 13 insertions, 38 deletions
diff --git a/sound/soc/codecs/msm8x16-wcd.c b/sound/soc/codecs/msm8x16-wcd.c index 1a61c6a1621f..499a51bf773f 100644 --- a/sound/soc/codecs/msm8x16-wcd.c +++ b/sound/soc/codecs/msm8x16-wcd.c @@ -1732,27 +1732,6 @@ static int msm8x16_wcd_tx_disable_pdm_clk(struct snd_soc_dapm_widget *w, } return 0; } -static int msm8x16_wcd_codec_enable_rx1_rx2_dig_clk( - struct snd_soc_dapm_widget *w, - struct snd_kcontrol *kcontrol, int event) -{ - struct snd_soc_codec *codec = w->codec; - struct msm8916_asoc_mach_data *pdata = NULL; - - pdata = snd_soc_card_get_drvdata(codec->card); - - dev_dbg(w->codec->dev, "%s event %d w->name %s\n", __func__, - event, w->name); - switch (event) { - case SND_SOC_DAPM_POST_PMD: - if (atomic_read(&pdata->mclk_rsc_ref) == 0) - snd_soc_update_bits(codec, - MSM8X16_WCD_A_CDC_CLK_PDM_CTL, - 0x03, 0x00); - break; - } - return 0; -} static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) @@ -1812,9 +1791,10 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, } break; case SND_SOC_DAPM_POST_PMD: - snd_soc_update_bits(codec, - MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, - 0x80, 0x00); + if (msm8x16_wcd->rx_bias_count == 0) + snd_soc_update_bits(codec, + MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, + 0x80, 0x00); if (msm8x16_wcd->spk_boost_set) { snd_soc_update_bits(codec, MSM8X16_WCD_A_ANALOG_BOOST_EN_CTL, @@ -1825,11 +1805,6 @@ static int msm8x16_wcd_codec_enable_dig_clk(struct snd_soc_dapm_widget *w, } else { snd_soc_update_bits(codec, w->reg, 1<<w->shift, 0x00); } - if (atomic_read(&pdata->mclk_rsc_ref) == 0) - snd_soc_update_bits(codec, - MSM8X16_WCD_A_CDC_CLK_PDM_CTL, - 0x03, 0x00); - break; } return 0; } @@ -2561,6 +2536,9 @@ static int msm8x16_wcd_codec_enable_clock_block(struct snd_soc_codec *codec, } else { snd_soc_update_bits(codec, MSM8X16_WCD_A_DIGITAL_CDC_TOP_CLK_CTL, 0x0C, 0x00); + snd_soc_update_bits(codec, + MSM8X16_WCD_A_CDC_CLK_PDM_CTL, 0x03, 0x00); + } return 0; } @@ -2957,11 +2935,9 @@ static const struct snd_soc_dapm_widget msm8x16_wcd_dapm_widgets[] = { SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_SUPPLY("RX1 CLK", MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, - 0, 0, msm8x16_wcd_codec_enable_rx1_rx2_dig_clk, - SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), + 0, 0, NULL, 0), SND_SOC_DAPM_SUPPLY("RX2 CLK", MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, - 1, 0, msm8x16_wcd_codec_enable_rx1_rx2_dig_clk, - SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), + 1, 0, NULL, 0), SND_SOC_DAPM_SUPPLY("RX3 CLK", MSM8X16_WCD_A_DIGITAL_CDC_DIG_CLK_CTL, 2, 0, msm8x16_wcd_codec_enable_dig_clk, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), @@ -3018,18 +2994,17 @@ static const struct snd_soc_dapm_widget msm8x16_wcd_dapm_widgets[] = { msm8x16_wcd_codec_enable_charge_pump, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD), - SND_SOC_DAPM_SUPPLY("RX_BIAS", SND_SOC_NOPM, + SND_SOC_DAPM_SUPPLY_S("RX_BIAS", 1, SND_SOC_NOPM, 0, 0, msm8x16_wcd_codec_enable_rx_bias, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), - SND_SOC_DAPM_SUPPLY("SPK_RX_BIAS", - SND_SOC_NOPM, 0, 0, + SND_SOC_DAPM_SUPPLY_S("SPK_RX_BIAS", 1, SND_SOC_NOPM, 0, 0, msm8x16_wcd_codec_enable_rx_bias, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), /* TX */ - SND_SOC_DAPM_SUPPLY("CDC_CONN", MSM8X16_WCD_A_CDC_CLK_OTHR_CTL, + SND_SOC_DAPM_SUPPLY_S("CDC_CONN", -2, MSM8X16_WCD_A_CDC_CLK_OTHR_CTL, 2, 0, NULL, 0), diff --git a/sound/soc/msm/msm8x16.c b/sound/soc/msm/msm8x16.c index aca64d13fe58..c2c64e21b1a4 100644 --- a/sound/soc/msm/msm8x16.c +++ b/sound/soc/msm/msm8x16.c @@ -237,7 +237,7 @@ static int msm8x16_mclk_event(struct snd_soc_dapm_widget *w, static const struct snd_soc_dapm_widget msm8x16_dapm_widgets[] = { - SND_SOC_DAPM_SUPPLY("MCLK", SND_SOC_NOPM, 0, 0, + SND_SOC_DAPM_SUPPLY_S("MCLK", -1, SND_SOC_NOPM, 0, 0, msm8x16_mclk_event, SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_MIC("Handset Mic", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), |