Skip to contentSkip to conversation

ASoC: Avoid a redundant read in cs42l51_pdn_event

PATCH Applied Axel Lin 2 participants 2 messages Nov 1, 2011 – Nov 8, 2011

Subsystems (3)
lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/1 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.

---
 sound/soc/codecs/cs42l51.c |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
sound/soc/codecs/cs42l51.c +5 -8
index 8c3c820..00718b5 100644
@@ -175,21 +175,18 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
 static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w,
 		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) {
 	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;
 	default:
 	case SND_SOC_DAPM_POST_PMD:
+		snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
+				    CS42L51_POWER_CTL1_PDN, 0);
 		break;
 	}
-	snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
-		CS42L51_POWER_CTL1_PDN, value);
 
 	return 0;
 }
Signature · 1 line
1.7.5.4
Applied
#1 lore raw
Quoted 2 lines · Axel Lin

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

Applied, thanks.