alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [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).