mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02: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
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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 a new issue