From 6d25c622a56c35077c423309f2eb6e95feb299cd Mon Sep 17 00:00:00 2001 From: XiaoTan Luo Date: Fri, 24 Jul 2020 10:11:43 +0800 Subject: [PATCH] ASoC: es8323: fixed es8323 suspend error it produces a lot of heat when es8323 suspend, and fixed it. Signed-off-by: XiaoTan Luo Change-Id: I26c9a5dacc15f4b9a5ca323993d4986848c6be7d --- sound/soc/codecs/es8323.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/es8323.c b/sound/soc/codecs/es8323.c index 5cfb77f6c880..ea709fb7d574 100644 --- a/sound/soc/codecs/es8323.c +++ b/sound/soc/codecs/es8323.c @@ -290,7 +290,7 @@ static const struct snd_soc_dapm_widget es8323_dapm_widgets[] = { /* gModify.Cmmt Implement when suspend/startup */ SND_SOC_DAPM_DAC("Right DAC", "Right Playback", ES8323_DACPOWER, 7, 0), - SND_SOC_DAPM_DAC("Left DAC", "Left Playback", ES8323_DACPOWER, 8, 0), + SND_SOC_DAPM_DAC("Left DAC", "Left Playback", ES8323_DACPOWER, 6, 0), SND_SOC_DAPM_MIXER("Left Mixer", SND_SOC_NOPM, 0, 0, &es8323_left_mixer_controls[0], @@ -767,12 +767,15 @@ static int es8323_suspend(struct snd_soc_component *component) snd_soc_component_write(component, 0x19, 0x06); snd_soc_component_write(component, 0x30, 0x00); snd_soc_component_write(component, 0x31, 0x00); - snd_soc_component_write(component, ES8323_ADCPOWER, 0xFF); + snd_soc_component_write(component, ES8323_DACCONTROL17, 0x38); + snd_soc_component_write(component, ES8323_DACCONTROL20, 0x38); + snd_soc_component_write(component, ES8323_DACPOWER, 0x00); snd_soc_component_write(component, ES8323_DACPOWER, 0xc0); + snd_soc_component_write(component, ES8323_ADCPOWER, 0xFF); snd_soc_component_write(component, ES8323_CHIPPOWER, 0xF3); - snd_soc_component_write(component, 0x00, 0x00); - snd_soc_component_write(component, 0x01, 0x58); snd_soc_component_write(component, 0x2b, 0x9c); + snd_soc_component_write(component, 0x00, 0x06); + snd_soc_component_write(component, 0x01, 0x58); usleep_range(18000, 20000); return 0; } @@ -781,10 +784,12 @@ static int es8323_resume(struct snd_soc_component *component) { snd_soc_component_write(component, 0x2b, 0x80); snd_soc_component_write(component, 0x01, 0x50); - snd_soc_component_write(component, 0x00, 0x32); + snd_soc_component_write(component, 0x00, 0x16); snd_soc_component_write(component, ES8323_CHIPPOWER, 0x00); snd_soc_component_write(component, ES8323_DACPOWER, 0x0c); snd_soc_component_write(component, ES8323_ADCPOWER, 0x59); + snd_soc_component_write(component, ES8323_DACCONTROL17, 0xb8); + snd_soc_component_write(component, ES8323_DACCONTROL20, 0xb8); snd_soc_component_write(component, 0x31, es8323_DEF_VOL); snd_soc_component_write(component, 0x30, es8323_DEF_VOL); snd_soc_component_write(component, 0x19, 0x02);