From: Aleksey Kunitskiy <alexey.kv@xxxxxxxxx> 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@xxxxxxxxx> --- pci/ice1712/juli.c | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-) diff --git a/pci/ice1712/juli.c b/pci/ice1712/juli.c index 4bed963..2cf34c2 100644 --- a/pci/ice1712/juli.c +++ b/pci/ice1712/juli.c @@ -483,6 +483,28 @@ static int __devinit juli_add_controls(struct snd_ice1712 *ice) } /* + * suspend/resume + * */ + +#ifdef CONFIG_PM +static int __devinit juli_resume(struct snd_ice1712 *ice) +{ + struct snd_akm4xxx *ak = ice->akm; + /* akm4358 un-reset, un-mute */ + snd_akm4xxx_reset(ak, 0); + return 0; +} + +static int __devinit juli_suspend(struct snd_ice1712 *ice) +{ + struct snd_akm4xxx *ak = ice->akm; + /* akm4358 reset and soft-mute */ + snd_akm4xxx_reset(ak, 1); + return 0; +} +#endif + +/* * initialize the chip */ @@ -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; + ice->pm_suspend_enabled = 1; +#endif + return 0; } -- 1.6.4.4 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel