Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e94de1e8 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

ASoC: Avoid a redundant read in cs42l51_pdn_event



snd_soc_update_bits already does read-modify-write,
no need to read the register before calling snd_soc_update_bits.

Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 65ff03f4
Loading
Loading
Loading
Loading
+5 −8
Original line number Original line Diff line number Diff line
@@ -175,21 +175,18 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w,
static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w,
		struct snd_kcontrol *kcontrol, int event)
		struct snd_kcontrol *kcontrol, int event)
{
{
	unsigned long value;

	value = snd_soc_read(w->codec, CS42L51_POWER_CTL1);
	value &= ~CS42L51_POWER_CTL1_PDN;

	switch (event) {
	switch (event) {
	case SND_SOC_DAPM_PRE_PMD:
	case SND_SOC_DAPM_PRE_PMD:
		value |= CS42L51_POWER_CTL1_PDN;
		snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
				    CS42L51_POWER_CTL1_PDN,
				    CS42L51_POWER_CTL1_PDN);
		break;
		break;
	default:
	default:
	case SND_SOC_DAPM_POST_PMD:
	case SND_SOC_DAPM_POST_PMD:
		snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
				    CS42L51_POWER_CTL1_PDN, 0);
		break;
		break;
	}
	}
	snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
		CS42L51_POWER_CTL1_PDN, value);


	return 0;
	return 0;
}
}