aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Yi <[email protected]>2024-06-24 11:06:04 +0800
committerMark Brown <[email protected]>2024-06-24 13:38:24 +0100
commit4eed78198b30c4c5975e454e7b1e6e25a7ac7353 (patch)
treee1fe847523523110a052246be25d5876ff0776d0
parent2604faa7b71291b0ccd17f8d6009f3ff6dae287b (diff)
ASoC: codecs: ES8326: Slove headphone detection issue
We modified the headphone detection setting to avoid an error button state after codec resume from suspend state Signed-off-by: Zhang Yi <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
-rw-r--r--sound/soc/codecs/es8326.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sound/soc/codecs/es8326.c b/sound/soc/codecs/es8326.c
index 6a4e42e5e35b..0468e6db81ca 100644
--- a/sound/soc/codecs/es8326.c
+++ b/sound/soc/codecs/es8326.c
@@ -877,6 +877,8 @@ static void es8326_jack_detect_handler(struct work_struct *work)
if (es8326->jack->status & SND_JACK_HEADSET) {
/* detect button */
dev_dbg(comp->dev, "button pressed\n");
+ regmap_write(es8326->regmap, ES8326_INT_SOURCE,
+ (ES8326_INT_SRC_PIN9 | ES8326_INT_SRC_BUTTON));
queue_delayed_work(system_wq, &es8326->button_press_work, 10);
goto exit;
}
@@ -1052,11 +1054,6 @@ static int es8326_resume(struct snd_soc_component *component)
regmap_write(es8326->regmap, ES8326_ADC_MUTE, 0x0f);
- es8326->jack_remove_retry = 0;
- es8326->hp = 0;
- es8326->hpl_vol = 0x03;
- es8326->hpr_vol = 0x03;
-
es8326_irq(es8326->irq, es8326);
return 0;
}
@@ -1211,6 +1208,10 @@ static int es8326_i2c_probe(struct i2c_client *i2c)
}
es8326->irq = i2c->irq;
+ es8326->jack_remove_retry = 0;
+ es8326->hp = 0;
+ es8326->hpl_vol = 0x03;
+ es8326->hpr_vol = 0x03;
INIT_DELAYED_WORK(&es8326->jack_detect_work,
es8326_jack_detect_handler);
INIT_DELAYED_WORK(&es8326->button_press_work,