Loading sound/soc/msm/msm8x16.c +19 −13 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <linux/qpnp/clkdiv.h> #include <linux/io.h> #include <linux/module.h> #include <linux/timer.h> #include <linux/workqueue.h> #include <linux/sched.h> #include <sound/core.h> Loading Loading @@ -235,7 +234,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, msm8x16_mclk_event, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), msm8x16_mclk_event, SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_MIC("Handset Mic", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), SND_SOC_DAPM_MIC("Secondary Mic", NULL), Loading Loading @@ -578,8 +577,8 @@ static int msm8x16_enable_codec_ext_clk(struct snd_soc_codec *codec, msm8x16_wcd_mclk_enable(codec, 1, dapm); } } else { if (atomic_dec_return(&pdata->mclk_rsc_ref) == 0) { mutex_lock(&pdata->cdc_mclk_mutex); atomic_set(&pdata->mclk_rsc_ref, 0); cancel_delayed_work_sync(&pdata->enable_mclk_work); pdata->digital_cdc_clk.clk_val = 0; afe_set_digital_codec_core_clock( Loading @@ -589,7 +588,6 @@ static int msm8x16_enable_codec_ext_clk(struct snd_soc_codec *codec, mutex_unlock(&pdata->cdc_mclk_mutex); msm8x16_wcd_mclk_enable(codec, 0, dapm); } } return ret; } Loading Loading @@ -658,6 +656,14 @@ static int msm8x16_mclk_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { pr_debug("%s: event = %d\n", __func__, event); switch (event) { case SND_SOC_DAPM_POST_PMD: return msm8x16_enable_codec_ext_clk(w->codec, 0, true); default: pr_err("%s: invalid DAPM event %d\n", __func__, event); return -EINVAL; } return 0; } Loading Loading
sound/soc/msm/msm8x16.c +19 −13 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ #include <linux/qpnp/clkdiv.h> #include <linux/io.h> #include <linux/module.h> #include <linux/timer.h> #include <linux/workqueue.h> #include <linux/sched.h> #include <sound/core.h> Loading Loading @@ -235,7 +234,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, msm8x16_mclk_event, SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), msm8x16_mclk_event, SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_MIC("Handset Mic", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), SND_SOC_DAPM_MIC("Secondary Mic", NULL), Loading Loading @@ -578,8 +577,8 @@ static int msm8x16_enable_codec_ext_clk(struct snd_soc_codec *codec, msm8x16_wcd_mclk_enable(codec, 1, dapm); } } else { if (atomic_dec_return(&pdata->mclk_rsc_ref) == 0) { mutex_lock(&pdata->cdc_mclk_mutex); atomic_set(&pdata->mclk_rsc_ref, 0); cancel_delayed_work_sync(&pdata->enable_mclk_work); pdata->digital_cdc_clk.clk_val = 0; afe_set_digital_codec_core_clock( Loading @@ -589,7 +588,6 @@ static int msm8x16_enable_codec_ext_clk(struct snd_soc_codec *codec, mutex_unlock(&pdata->cdc_mclk_mutex); msm8x16_wcd_mclk_enable(codec, 0, dapm); } } return ret; } Loading Loading @@ -658,6 +656,14 @@ static int msm8x16_mclk_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { pr_debug("%s: event = %d\n", __func__, event); switch (event) { case SND_SOC_DAPM_POST_PMD: return msm8x16_enable_codec_ext_clk(w->codec, 0, true); default: pr_err("%s: invalid DAPM event %d\n", __func__, event); return -EINVAL; } return 0; } Loading