diff options
Diffstat (limited to 'sound/pci/ice1712/juli.c')
-rw-r--r-- | sound/pci/ice1712/juli.c | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/sound/pci/ice1712/juli.c b/sound/pci/ice1712/juli.c index 4bed9633a4cd..98bc3b7681b5 100644 --- a/sound/pci/ice1712/juli.c +++ b/sound/pci/ice1712/juli.c | |||
@@ -380,7 +380,7 @@ static struct snd_kcontrol_new juli_mute_controls[] __devinitdata = { | |||
380 | * inputs) are fed from Xilinx. | 380 | * inputs) are fed from Xilinx. |
381 | * | 381 | * |
382 | * I even checked traces on board and coded a support in driver for | 382 | * I even checked traces on board and coded a support in driver for |
383 | * an alternative possiblity - the unused I2S ICE output channels | 383 | * an alternative possibility - the unused I2S ICE output channels |
384 | * switched to HW-IN/SPDIF-IN and providing the monitoring signal to | 384 | * switched to HW-IN/SPDIF-IN and providing the monitoring signal to |
385 | * the DAC - to no avail. The I2S outputs seem to be unconnected. | 385 | * the DAC - to no avail. The I2S outputs seem to be unconnected. |
386 | * | 386 | * |
@@ -483,6 +483,31 @@ static int __devinit juli_add_controls(struct snd_ice1712 *ice) | |||
483 | } | 483 | } |
484 | 484 | ||
485 | /* | 485 | /* |
486 | * suspend/resume | ||
487 | * */ | ||
488 | |||
489 | #ifdef CONFIG_PM | ||
490 | static int juli_resume(struct snd_ice1712 *ice) | ||
491 | { | ||
492 | struct snd_akm4xxx *ak = ice->akm; | ||
493 | struct juli_spec *spec = ice->spec; | ||
494 | /* akm4358 un-reset, un-mute */ | ||
495 | snd_akm4xxx_reset(ak, 0); | ||
496 | /* reinit ak4114 */ | ||
497 | snd_ak4114_reinit(spec->ak4114); | ||
498 | return 0; | ||
499 | } | ||
500 | |||
501 | static int juli_suspend(struct snd_ice1712 *ice) | ||
502 | { | ||
503 | struct snd_akm4xxx *ak = ice->akm; | ||
504 | /* akm4358 reset and soft-mute */ | ||
505 | snd_akm4xxx_reset(ak, 1); | ||
506 | return 0; | ||
507 | } | ||
508 | #endif | ||
509 | |||
510 | /* | ||
486 | * initialize the chip | 511 | * initialize the chip |
487 | */ | 512 | */ |
488 | 513 | ||
@@ -626,6 +651,13 @@ static int __devinit juli_init(struct snd_ice1712 *ice) | |||
626 | ice->set_spdif_clock = juli_set_spdif_clock; | 651 | ice->set_spdif_clock = juli_set_spdif_clock; |
627 | 652 | ||
628 | ice->spdif.ops.open = juli_spdif_in_open; | 653 | ice->spdif.ops.open = juli_spdif_in_open; |
654 | |||
655 | #ifdef CONFIG_PM | ||
656 | ice->pm_resume = juli_resume; | ||
657 | ice->pm_suspend = juli_suspend; | ||
658 | ice->pm_suspend_enabled = 1; | ||
659 | #endif | ||
660 | |||
629 | return 0; | 661 | return 0; |
630 | } | 662 | } |
631 | 663 | ||