From 568481a10ef976340b264e4b3d2ff0f251f5dc71 Mon Sep 17 00:00:00 2001 From: Shunhua Lan Date: Mon, 8 Apr 2024 11:35:03 +0800 Subject: [PATCH] ASoC: rockchip: multicodecs: move PA control operation from supply to speaker/headphone widget The dapm power sequences is static int dapm_up_seq[] = { [snd_soc_dapm_supply] = 3, [snd_soc_dapm_dac] = 8, [snd_soc_dapm_hp] = 12, [snd_soc_dapm_spk] = 12, }; static int dapm_down_seq[] = { [snd_soc_dapm_hp] = 4, [snd_soc_dapm_spk] = 4, [snd_soc_dapm_dac] = 7, [snd_soc_dapm_supply] = 13, }; We should enable PA power after dac on and disable before dac off Signed-off-by: Shunhua Lan Change-Id: Ie5b7d5736496061e8f7551bf7d40ffba83015144 --- sound/soc/rockchip/rockchip_multicodecs.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/sound/soc/rockchip/rockchip_multicodecs.c b/sound/soc/rockchip/rockchip_multicodecs.c index 3c34f391fdd8..002f52edf227 100644 --- a/sound/soc/rockchip/rockchip_multicodecs.c +++ b/sound/soc/rockchip/rockchip_multicodecs.c @@ -309,21 +309,12 @@ static int mc_spk_event(struct snd_soc_dapm_widget *w, } static const struct snd_soc_dapm_widget mc_dapm_widgets[] = { - - SND_SOC_DAPM_HP("Headphone", NULL), - SND_SOC_DAPM_SPK("Speaker", NULL), + SND_SOC_DAPM_HP("Headphone", mc_hp_event), + SND_SOC_DAPM_SPK("Speaker", mc_spk_event), SND_SOC_DAPM_MIC("Main Mic", NULL), SND_SOC_DAPM_MIC("Headset Mic", NULL), - SND_SOC_DAPM_SUPPLY("Speaker Power", - SND_SOC_NOPM, 0, 0, - mc_spk_event, - SND_SOC_DAPM_POST_PMU | - SND_SOC_DAPM_PRE_PMD), - SND_SOC_DAPM_SUPPLY("Headphone Power", - SND_SOC_NOPM, 0, 0, - mc_hp_event, - SND_SOC_DAPM_POST_PMU | - SND_SOC_DAPM_PRE_PMD), + SND_SOC_DAPM_SUPPLY("Speaker Power", SND_SOC_NOPM, 0, 0, NULL, 0), + SND_SOC_DAPM_SUPPLY("Headphone Power", SND_SOC_NOPM, 0, 0, NULL, 0), }; static int mc_switch_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)