mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
ASoC: rt5682: fix the wrong jack type detected
Some powers were changed during the jack insert detection and clk's enable/disable in CCF. If in parallel, the influence has a chance to detect the wrong jack type, so add a lock. Signed-off-by: Derek Fang <derek.fang@realtek.com> Link: https://lore.kernel.org/r/20211214105033.471-1-derek.fang@realtek.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
db635ba4fa
commit
8deb34a90f
@ -929,6 +929,8 @@ int rt5682_headset_detect(struct snd_soc_component *component, int jack_insert)
|
||||
unsigned int val, count;
|
||||
|
||||
if (jack_insert) {
|
||||
snd_soc_dapm_mutex_lock(dapm);
|
||||
|
||||
snd_soc_component_update_bits(component, RT5682_PWR_ANLG_1,
|
||||
RT5682_PWR_VREF2 | RT5682_PWR_MB,
|
||||
RT5682_PWR_VREF2 | RT5682_PWR_MB);
|
||||
@ -979,6 +981,8 @@ int rt5682_headset_detect(struct snd_soc_component *component, int jack_insert)
|
||||
snd_soc_component_update_bits(component, RT5682_MICBIAS_2,
|
||||
RT5682_PWR_CLK25M_MASK | RT5682_PWR_CLK1M_MASK,
|
||||
RT5682_PWR_CLK25M_PU | RT5682_PWR_CLK1M_PU);
|
||||
|
||||
snd_soc_dapm_mutex_unlock(dapm);
|
||||
} else {
|
||||
rt5682_enable_push_button_irq(component, false);
|
||||
snd_soc_component_update_bits(component, RT5682_CBJ_CTRL_1,
|
||||
|
Loading…
Reference in New Issue
Block a user