summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorZhang Yi <zhangyi@everest-semi.com>2024-04-02 08:20:42 +0200
committerMark Brown <broonie@kernel.org>2024-04-02 16:54:18 +0200
commit6e5f5bf894eb9260f07ad0da4e2dd2efd616ed59 (patch)
treee70a3c43126f8115c617a012cb055b6c940f8551 /sound
parentASoC: codecs: ES8326: modify clock table (diff)
downloadlinux-6e5f5bf894eb9260f07ad0da4e2dd2efd616ed59.tar.xz
linux-6e5f5bf894eb9260f07ad0da4e2dd2efd616ed59.zip
ASoC: codecs: ES8326: Solve a headphone detection issue after suspend and resume
We got a headphone detection issue after suspend and resume. And we fixed it by modifying the configuration at es8326_suspend and invoke es8326_irq at es8326_resume. Signed-off-by: Zhang Yi <zhangyi@everest-semi.com> Link: https://msgid.link/r/20240402062043.20608-4-zhangyi@everest-semi.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/es8326.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/codecs/es8326.c b/sound/soc/codecs/es8326.c
index 275db81d10d4..fa809ab41a4a 100644
--- a/sound/soc/codecs/es8326.c
+++ b/sound/soc/codecs/es8326.c
@@ -1062,6 +1062,8 @@ static int es8326_resume(struct snd_soc_component *component)
es8326->hp = 0;
es8326->hpl_vol = 0x03;
es8326->hpr_vol = 0x03;
+
+ es8326_irq(es8326->irq, es8326);
return 0;
}
@@ -1072,6 +1074,9 @@ static int es8326_suspend(struct snd_soc_component *component)
cancel_delayed_work_sync(&es8326->jack_detect_work);
es8326_disable_micbias(component);
es8326->calibrated = false;
+ regmap_write(es8326->regmap, ES8326_CLK_MUX, 0x2d);
+ regmap_write(es8326->regmap, ES8326_DAC2HPMIX, 0x00);
+ regmap_write(es8326->regmap, ES8326_ANA_PDN, 0x3b);
regmap_write(es8326->regmap, ES8326_CLK_CTL, ES8326_CLK_OFF);
regcache_cache_only(es8326->regmap, true);
regcache_mark_dirty(es8326->regmap);