aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Kunitskiy <alexey.kv@gmail.com>2009-11-14 08:18:54 -0500
committerTakashi Iwai <tiwai@suse.de>2009-11-14 08:32:51 -0500
commit50d40f187f9182ee8caa1b83f80a0e11e2226baa (patch)
treecfadd8a1eb211ddb0e36aefbe3b1e243c0f22a48
parent401de8184a4d94688962b9258fe10ab309ffda9c (diff)
ALSA: ice1724 - Patch for suspend/resume for ESI Juli@
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> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/ice1712/juli.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/sound/pci/ice1712/juli.c b/sound/pci/ice1712/juli.c
index fd948bfd9aef..f5020ad99a10 100644
--- a/sound/pci/ice1712/juli.c
+++ b/sound/pci/ice1712/juli.c
@@ -504,6 +504,31 @@ static int __devinit juli_add_controls(struct snd_ice1712 *ice)
504} 504}
505 505
506/* 506/*
507 * suspend/resume
508 * */
509
510#ifdef CONFIG_PM
511static int juli_resume(struct snd_ice1712 *ice)
512{
513 struct snd_akm4xxx *ak = ice->akm;
514 struct juli_spec *spec = ice->spec;
515 /* akm4358 un-reset, un-mute */
516 snd_akm4xxx_reset(ak, 0);
517 /* reinit ak4114 */
518 snd_ak4114_reinit(spec->ak4114);
519 return 0;
520}
521
522static int juli_suspend(struct snd_ice1712 *ice)
523{
524 struct snd_akm4xxx *ak = ice->akm;
525 /* akm4358 reset and soft-mute */
526 snd_akm4xxx_reset(ak, 1);
527 return 0;
528}
529#endif
530
531/*
507 * initialize the chip 532 * initialize the chip
508 */ 533 */
509 534
@@ -646,6 +671,13 @@ static int __devinit juli_init(struct snd_ice1712 *ice)
646 ice->set_spdif_clock = juli_set_spdif_clock; 671 ice->set_spdif_clock = juli_set_spdif_clock;
647 672
648 ice->spdif.ops.open = juli_spdif_in_open; 673 ice->spdif.ops.open = juli_spdif_in_open;
674
675#ifdef CONFIG_PM
676 ice->pm_resume = juli_resume;
677 ice->pm_suspend = juli_suspend;
678 ice->pm_suspend_enabled = 1;
679#endif
680
649 return 0; 681 return 0;
650} 682}
651 683