At Sat, 14 Nov 2009 14:20:14 +0200, alexey.kv@gmail.com wrote:
From: Aleksey Kunitskiy alexey.kv@gmail.com
Add proper suspend/resume code for Juli@ cards. Based on ice1724 suspend/resume work of Igor Chernyshev. Fixes bug https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4413 Tested on linux-2.6.31.6
Signed-off-by: Aleksey Kunitskiy alexey.kv@gmail.com
Thanks for the patch.
A few quick review comments below.
/*
- suspend/resume
- */
+#ifdef CONFIG_PM +static int __devinit juli_resume(struct snd_ice1712 *ice)
The __devinit is invalid for the resume. Remove it.
+{
- struct snd_akm4xxx *ak = ice->akm;
- /* akm4358 un-reset, un-mute */
- snd_akm4xxx_reset(ak, 0);
Don't you need to re-initialize the ak4114 chip?
- return 0;
+}
+static int __devinit juli_suspend(struct snd_ice1712 *ice)
Similarly, __devinit is invalid for suspend, too. Remove it.
@@ -626,6 +648,13 @@ static int __devinit juli_init(struct snd_ice1712 *ice) ice->set_spdif_clock = juli_set_spdif_clock;
ice->spdif.ops.open = juli_spdif_in_open;
+#ifdef CONFIG_PM
- ice->pm_resume = &juli_resume;
- ice->pm_suspend = &juli_suspend;
Usually '&' isn't needed for function pointers (although it's valid).
Could you fix these and repost?
thanks,
Takashi