aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm9713.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2008-04-14 09:27:30 -0400
committerTakashi Iwai <tiwai@suse.de>2008-04-24 06:00:35 -0400
commit87b57fe2d3fb1ce33671b944db9a4cbe0cd065ea (patch)
treeacabbbd2e75feefb25ec0a450df9afb34e604363 /sound/soc/codecs/wm9713.c
parenta295e09e89d227506ae6c0a58e1cb6359c0cda1c (diff)
[ALSA] wm9713: Don't control touch screen power on suspend
Leave the power bit for the touch screen alone when suspending the WM9713 so that the touch screen driver can handle it. This allows the touch screen to be used as a wakeup source when the system is suspended. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/soc/codecs/wm9713.c')
-rw-r--r--sound/soc/codecs/wm9713.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c
index e3174c4d980d..1f241161445c 100644
--- a/sound/soc/codecs/wm9713.c
+++ b/sound/soc/codecs/wm9713.c
@@ -1132,8 +1132,17 @@ static int wm9713_soc_suspend(struct platform_device *pdev,
1132{ 1132{
1133 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 1133 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
1134 struct snd_soc_codec *codec = socdev->codec; 1134 struct snd_soc_codec *codec = socdev->codec;
1135 u16 reg;
1136
1137 /* Disable everything except touchpanel - that will be handled
1138 * by the touch driver and left disabled if touch is not in
1139 * use. */
1140 reg = ac97_read(codec, AC97_EXTENDED_MID);
1141 ac97_write(codec, AC97_EXTENDED_MID, reg | 0x7fff);
1142 ac97_write(codec, AC97_EXTENDED_MSTATUS, 0xffff);
1143 ac97_write(codec, AC97_POWERDOWN, 0x6f00);
1144 ac97_write(codec, AC97_POWERDOWN, 0xffff);
1135 1145
1136 wm9713_dapm_event(codec, SNDRV_CTL_POWER_D3cold);
1137 return 0; 1146 return 0;
1138} 1147}
1139 1148