[alsa-devel] [PATCH] ASoC: remove bogus SLEEP mode from wm8978 driver

Guennadi Liakhovetski g.liakhovetski at gmx.de
Thu Jan 28 16:28:55 CET 2010


Tests showed, that bit 6 of the WM8978_POWER_MANAGEMENT_2 register of wm8978
affects codec clocks. Being useless for suspend / resume, it cannot be used in
bias-level control either. Remove this bit handling.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski at gmx.de>
---
 sound/soc/codecs/wm8978.c |    7 +------
 1 files changed, 1 insertions(+), 6 deletions(-)

diff --git a/sound/soc/codecs/wm8978.c b/sound/soc/codecs/wm8978.c
index b86ef47..8dcebaa 100644
--- a/sound/soc/codecs/wm8978.c
+++ b/sound/soc/codecs/wm8978.c
@@ -873,9 +873,7 @@ static int wm8978_suspend(struct platform_device *pdev, pm_message_t state)
 	wm8978_set_bias_level(codec, SND_SOC_BIAS_OFF);
 	/* Also switch PLL off */
 	snd_soc_write(codec, WM8978_POWER_MANAGEMENT_1, 0);
-	/* Put to sleep */
-	snd_soc_write(codec, WM8978_POWER_MANAGEMENT_2, 0x40);
-	
+
 	return 0;
 }
 
@@ -887,9 +885,6 @@ static int wm8978_resume(struct platform_device *pdev)
 	int i;
 	u16 *cache = codec->reg_cache;
 
-	/* Wake up the codec */
-	snd_soc_write(codec, WM8978_POWER_MANAGEMENT_2, 0);
-
 	/* Sync reg_cache with the hardware */
 	for (i = 0; i < ARRAY_SIZE(wm8978_reg); i++) {
 		if (i == WM8978_RESET)
-- 
1.6.2.4



More information about the Alsa-devel mailing list