* [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 @ 2011-10-14 4:08 Axel Lin 2011-10-14 4:09 ` [PATCH 2/2] ASoC: wm8991: Use snd_soc_update_bits for read-modify-write Axel Lin 2011-10-14 19:36 ` [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 Mark Brown 0 siblings, 2 replies; 3+ messages in thread From: Axel Lin @ 2011-10-14 4:08 UTC (permalink / raw) To: linux-kernel Cc: Dimitris Papastamos, alsa-devel, Mark Brown, Liam Girdwood, Graeme Gregory If (fakepower & ((1 << WM8991_INMIXR_PWR_BIT)|(1 << WM8991_AINRMUX_PWR_BIT)))) is false, we should clear WM8991_AINR_ENA bits instead of WM8991_AINL_ENA. Signed-off-by: Axel Lin <axel.lin@gmail.com> --- sound/soc/codecs/wm8991.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/sound/soc/codecs/wm8991.c b/sound/soc/codecs/wm8991.c index 08d64a6..708d251 100644 --- a/sound/soc/codecs/wm8991.c +++ b/sound/soc/codecs/wm8991.c @@ -393,7 +393,7 @@ static int inmixer_event(struct snd_soc_dapm_widget *w, (1 << WM8991_AINRMUX_PWR_BIT))) reg |= WM8991_AINR_ENA; else - reg &= ~WM8991_AINL_ENA; + reg &= ~WM8991_AINR_ENA; snd_soc_write(w->codec, WM8991_POWER_MANAGEMENT_2, reg); return 0; -- 1.7.4.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] ASoC: wm8991: Use snd_soc_update_bits for read-modify-write 2011-10-14 4:08 [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 Axel Lin @ 2011-10-14 4:09 ` Axel Lin 2011-10-14 19:36 ` [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 Mark Brown 1 sibling, 0 replies; 3+ messages in thread From: Axel Lin @ 2011-10-14 4:09 UTC (permalink / raw) To: linux-kernel Cc: Dimitris Papastamos, alsa-devel, Mark Brown, Liam Girdwood, Graeme Gregory Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write Signed-off-by: Axel Lin <axel.lin@gmail.com> --- sound/soc/codecs/wm8991.c | 20 +++++++++----------- 1 files changed, 9 insertions(+), 11 deletions(-) diff --git a/sound/soc/codecs/wm8991.c b/sound/soc/codecs/wm8991.c index 708d251..c9ab3ba 100644 --- a/sound/soc/codecs/wm8991.c +++ b/sound/soc/codecs/wm8991.c @@ -1264,7 +1264,6 @@ static int wm8991_probe(struct snd_soc_codec *codec) { struct wm8991_priv *wm8991; int ret; - unsigned int reg; wm8991 = snd_soc_codec_get_drvdata(codec); @@ -1282,19 +1281,18 @@ static int wm8991_probe(struct snd_soc_codec *codec) wm8991_set_bias_level(codec, SND_SOC_BIAS_STANDBY); - reg = snd_soc_read(codec, WM8991_AUDIO_INTERFACE_4); - snd_soc_write(codec, WM8991_AUDIO_INTERFACE_4, reg | WM8991_ALRCGPIO1); + snd_soc_update_bits(codec, WM8991_AUDIO_INTERFACE_4, + WM8991_ALRCGPIO1, WM8991_ALRCGPIO1); - reg = snd_soc_read(codec, WM8991_GPIO1_GPIO2) & - ~WM8991_GPIO1_SEL_MASK; - snd_soc_write(codec, WM8991_GPIO1_GPIO2, reg | 1); + snd_soc_update_bits(codec, WM8991_GPIO1_GPIO2, + WM8991_GPIO1_SEL_MASK, 1); - reg = snd_soc_read(codec, WM8991_POWER_MANAGEMENT_1); - snd_soc_write(codec, WM8991_POWER_MANAGEMENT_1, reg | WM8991_VREF_ENA| - WM8991_VMID_MODE_MASK); + snd_soc_update_bits(codec, WM8991_POWER_MANAGEMENT_1, + WM8991_VREF_ENA | WM8991_VMID_MODE_MASK, + WM8991_VREF_ENA | WM8991_VMID_MODE_MASK); - reg = snd_soc_read(codec, WM8991_POWER_MANAGEMENT_2); - snd_soc_write(codec, WM8991_POWER_MANAGEMENT_2, reg | WM8991_OPCLK_ENA); + snd_soc_update_bits(codec, WM8991_POWER_MANAGEMENT_2, + WM8991_OPCLK_ENA, WM8991_OPCLK_ENA); snd_soc_write(codec, WM8991_DAC_CTRL, 0); snd_soc_write(codec, WM8991_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8)); -- 1.7.4.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 2011-10-14 4:08 [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 Axel Lin 2011-10-14 4:09 ` [PATCH 2/2] ASoC: wm8991: Use snd_soc_update_bits for read-modify-write Axel Lin @ 2011-10-14 19:36 ` Mark Brown 1 sibling, 0 replies; 3+ messages in thread From: Mark Brown @ 2011-10-14 19:36 UTC (permalink / raw) To: Axel Lin Cc: linux-kernel, Graeme Gregory, Dimitris Papastamos, Liam Girdwood, alsa-devel On Fri, Oct 14, 2011 at 12:08:00PM +0800, Axel Lin wrote: > If (fakepower & ((1 << WM8991_INMIXR_PWR_BIT)|(1 << WM8991_AINRMUX_PWR_BIT)))) > is false, we should clear WM8991_AINR_ENA bits instead of WM8991_AINL_ENA. > > Signed-off-by: Axel Lin <axel.lin@gmail.com> Applied both, thanks. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-10-14 19:36 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-10-14 4:08 [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 Axel Lin 2011-10-14 4:09 ` [PATCH 2/2] ASoC: wm8991: Use snd_soc_update_bits for read-modify-write Axel Lin 2011-10-14 19:36 ` [PATCH 1/2] ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2 Mark Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).