aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAxel Lin <axel.lin@gmail.com>2011-11-01 03:17:57 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-11-08 06:02:31 -0500
commite94de1e864d2d205e4e503b0f083c07f288b45fe (patch)
treeaddaac58ce6878d83b86d137036996bbf0f4f2ed
parent65ff03f4624d12ad6c19a01a0af7385eda09e4a6 (diff)
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: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--sound/soc/codecs/cs42l51.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/sound/soc/codecs/cs42l51.c b/sound/soc/codecs/cs42l51.c
index 8c3c8205d19e..00718b5e747b 100644
--- a/sound/soc/codecs/cs42l51.c
+++ b/sound/soc/codecs/cs42l51.c
@@ -175,21 +175,18 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
175static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w, 175static int cs42l51_pdn_event(struct snd_soc_dapm_widget *w,
176 struct snd_kcontrol *kcontrol, int event) 176 struct snd_kcontrol *kcontrol, int event)
177{ 177{
178 unsigned long value;
179
180 value = snd_soc_read(w->codec, CS42L51_POWER_CTL1);
181 value &= ~CS42L51_POWER_CTL1_PDN;
182
183 switch (event) { 178 switch (event) {
184 case SND_SOC_DAPM_PRE_PMD: 179 case SND_SOC_DAPM_PRE_PMD:
185 value |= CS42L51_POWER_CTL1_PDN; 180 snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
181 CS42L51_POWER_CTL1_PDN,
182 CS42L51_POWER_CTL1_PDN);
186 break; 183 break;
187 default: 184 default:
188 case SND_SOC_DAPM_POST_PMD: 185 case SND_SOC_DAPM_POST_PMD:
186 snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
187 CS42L51_POWER_CTL1_PDN, 0);
189 break; 188 break;
190 } 189 }
191 snd_soc_update_bits(w->codec, CS42L51_POWER_CTL1,
192 CS42L51_POWER_CTL1_PDN, value);
193 190
194 return 0; 191 return 0;
195} 192}