* [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).