Skip to content

Commit e8ecffd

Browse files
David Raubroonie
authored andcommitted
ASoC: da7219: Correct the process of setting up Gnd switch in AAD
Enable Gnd switch to improve stability when Jack insert event occurs, and then disable Gnd switch after Jack type detection is finished. Signed-off-by: David Rau <David.Rau.opensource@dm.renesas.com> Link: https://lore.kernel.org/r/20231017021258.5929-1-David.Rau.opensource@dm.renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 9c97790 commit e8ecffd

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

sound/soc/codecs/da7219-aad.c

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ static void da7219_aad_btn_det_work(struct work_struct *work)
5959
bool micbias_up = false;
6060
int retries = 0;
6161

62-
/* Disable ground switch */
63-
snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
64-
6562
/* Drive headphones/lineout */
6663
snd_soc_component_update_bits(component, DA7219_HP_L_CTRL,
6764
DA7219_HP_L_AMP_OE_MASK,
@@ -155,9 +152,6 @@ static void da7219_aad_hptest_work(struct work_struct *work)
155152
tonegen_freq_hptest = cpu_to_le16(DA7219_AAD_HPTEST_RAMP_FREQ_INT_OSC);
156153
}
157154

158-
/* Disable ground switch */
159-
snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
160-
161155
/* Ensure gain ramping at fastest rate */
162156
gain_ramp_ctrl = snd_soc_component_read(component, DA7219_GAIN_RAMP_CTRL);
163157
snd_soc_component_write(component, DA7219_GAIN_RAMP_CTRL, DA7219_GAIN_RAMP_RATE_X8);
@@ -421,6 +415,11 @@ static irqreturn_t da7219_aad_irq_thread(int irq, void *data)
421415
* handle a removal, and we can check at the end of
422416
* hptest if we have a valid result or not.
423417
*/
418+
419+
cancel_delayed_work_sync(&da7219_aad->jack_det_work);
420+
/* Disable ground switch */
421+
snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
422+
424423
if (statusa & DA7219_JACK_TYPE_STS_MASK) {
425424
report |= SND_JACK_HEADSET;
426425
mask |= SND_JACK_HEADSET | SND_JACK_LINEOUT;

0 commit comments

Comments
 (0)