]> www.infradead.org Git - nvme.git/commitdiff
ASoC: codecs: ES8326: Solve a headphone detection issue after suspend and resume
authorZhang Yi <zhangyi@everest-semi.com>
Tue, 2 Apr 2024 06:20:42 +0000 (14:20 +0800)
committerMark Brown <broonie@kernel.org>
Tue, 2 Apr 2024 14:54:18 +0000 (15:54 +0100)
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>
sound/soc/codecs/es8326.c

index 275db81d10d49d27a55c4a0e2337b1604ca62e27..fa809ab41a4aec147f36951085d0a6253ab367bc 100644 (file)
@@ -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);