ASoC: max98373: change power down sequence for smart amp
authorLong Wang <long.wang@analog.com>
Thu, 6 Apr 2023 15:45:35 +0000 (10:45 -0500)
committerMark Brown <broonie@kernel.org>
Thu, 6 Apr 2023 15:49:35 +0000 (16:49 +0100)
In order to avoid pop noise which occurs when switching
device from speaker to headphone, the amplifier should
power down first when stopping playback.

Signed-off-by: Long Wang <long.wang@analog.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Link: https://lore.kernel.org/r/20230406154535.18205-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/max98373.c

index f90a6a7ba83b8cb122a8192c197f6e4d57788dc6..fde055c6c89466b361b441814c70ec9a89ee8653 100644 (file)
@@ -31,7 +31,7 @@ static int max98373_dac_event(struct snd_soc_dapm_widget *w,
                        MAX98373_GLOBAL_EN_MASK, 1);
                usleep_range(30000, 31000);
                break;
-       case SND_SOC_DAPM_POST_PMD:
+       case SND_SOC_DAPM_PRE_PMD:
                regmap_update_bits(max98373->regmap,
                        MAX98373_R20FF_GLOBAL_SHDN,
                        MAX98373_GLOBAL_EN_MASK, 0);
@@ -64,7 +64,7 @@ static const struct snd_kcontrol_new max98373_spkfb_control =
 static const struct snd_soc_dapm_widget max98373_dapm_widgets[] = {
 SND_SOC_DAPM_DAC_E("Amp Enable", "HiFi Playback",
        MAX98373_R202B_PCM_RX_EN, 0, 0, max98373_dac_event,
-       SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
+       SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
 SND_SOC_DAPM_MUX("DAI Sel Mux", SND_SOC_NOPM, 0, 0,
        &max98373_dai_controls),
 SND_SOC_DAPM_OUTPUT("BE_OUT"),