diff mbox

ASoC: AM3517: Fix AIC23 suspend/resume hang

Message ID 1259154631-15251-1-git-send-email-anuj.aggarwal@ti.com (mailing list archive)
State Awaiting Upstream, archived
Headers show

Commit Message

Aggarwal, Anuj Nov. 25, 2009, 1:10 p.m. UTC
None
diff mbox

Patch

diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c
index 6b24d8b..cabe60c 100644
--- a/sound/soc/codecs/tlv320aic23.c
+++ b/sound/soc/codecs/tlv320aic23.c
@@ -565,13 +565,12 @@  static int tlv320aic23_set_bias_level(struct snd_soc_codec *codec,
 	case SND_SOC_BIAS_PREPARE:
 		break;
 	case SND_SOC_BIAS_STANDBY:
-		/* everything off except vref/vmid, */
-		tlv320aic23_write(codec, TLV320AIC23_PWR, reg | 0x0040);
+		/* Activate the digital interface */
+		tlv320aic23_write(codec, TLV320AIC23_ACTIVE, 0x1);
 		break;
 	case SND_SOC_BIAS_OFF:
-		/* everything off, dac mute, inactive */
+		/* Deactivate the digital interface */
 		tlv320aic23_write(codec, TLV320AIC23_ACTIVE, 0x0);
-		tlv320aic23_write(codec, TLV320AIC23_PWR, 0xffff);
 		break;
 	}
 	codec->bias_level = level;
@@ -615,7 +614,6 @@  static int tlv320aic23_suspend(struct platform_device *pdev,
 	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
 	struct snd_soc_codec *codec = socdev->card->codec;
 
-	tlv320aic23_write(codec, TLV320AIC23_ACTIVE, 0x0);
 	tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_OFF);
 
 	return 0;
@@ -625,14 +623,6 @@  static int tlv320aic23_resume(struct platform_device *pdev)
 {
 	struct snd_soc_device *socdev = platform_get_drvdata(pdev);
 	struct snd_soc_codec *codec = socdev->card->codec;
-	int i;
-	u16 reg;
-
-	/* Sync reg_cache with the hardware */
-	for (reg = 0; reg < ARRAY_SIZE(tlv320aic23_reg); i++) {
-		u16 val = tlv320aic23_read_reg_cache(codec, reg);
-		tlv320aic23_write(codec, reg, val);
-	}
 
 	tlv320aic23_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
 	tlv320aic23_set_bias_level(codec, codec->suspend_bias_level);