mirror of
https://github.com/torvalds/linux.git
synced 2026-06-10 07:32:29 +02:00
ASoC: wm8994: Ensure all AIFnCLK events are run from the _late variants
commit c8fdc1b566 upstream.
Ensure that all the actions get taken at appropriate times by calling the
_PRE and _POST events for the aifNclk_ev functions explicitly.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
073e100877
commit
2d539f9e66
|
|
@ -1207,17 +1207,19 @@ static int late_enable_ev(struct snd_soc_dapm_widget *w,
|
|||
switch (event) {
|
||||
case SND_SOC_DAPM_PRE_PMU:
|
||||
if (wm8994->aif1clk_enable) {
|
||||
aif1clk_ev(w, kcontrol, event);
|
||||
aif1clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMU);
|
||||
snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
|
||||
WM8994_AIF1CLK_ENA_MASK,
|
||||
WM8994_AIF1CLK_ENA);
|
||||
aif1clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMU);
|
||||
wm8994->aif1clk_enable = 0;
|
||||
}
|
||||
if (wm8994->aif2clk_enable) {
|
||||
aif2clk_ev(w, kcontrol, event);
|
||||
aif2clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMU);
|
||||
snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
|
||||
WM8994_AIF2CLK_ENA_MASK,
|
||||
WM8994_AIF2CLK_ENA);
|
||||
aif2clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMU);
|
||||
wm8994->aif2clk_enable = 0;
|
||||
}
|
||||
break;
|
||||
|
|
@ -1238,15 +1240,17 @@ static int late_disable_ev(struct snd_soc_dapm_widget *w,
|
|||
switch (event) {
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
if (wm8994->aif1clk_disable) {
|
||||
aif1clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMD);
|
||||
snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
|
||||
WM8994_AIF1CLK_ENA_MASK, 0);
|
||||
aif1clk_ev(w, kcontrol, event);
|
||||
aif1clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMD);
|
||||
wm8994->aif1clk_disable = 0;
|
||||
}
|
||||
if (wm8994->aif2clk_disable) {
|
||||
aif2clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMD);
|
||||
snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
|
||||
WM8994_AIF2CLK_ENA_MASK, 0);
|
||||
aif2clk_ev(w, kcontrol, event);
|
||||
aif2clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMD);
|
||||
wm8994->aif2clk_disable = 0;
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user