diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/i2c/other/ak4113.c | 16 | ||||
-rw-r--r-- | sound/i2c/other/ak4114.c | 16 | ||||
-rw-r--r-- | sound/pci/ice1712/juli.c | 4 |
3 files changed, 35 insertions, 1 deletions
diff --git a/sound/i2c/other/ak4113.c b/sound/i2c/other/ak4113.c index c6bba99a90b2..c2b14d981fa1 100644 --- a/sound/i2c/other/ak4113.c +++ b/sound/i2c/other/ak4113.c | |||
@@ -636,3 +636,19 @@ static void ak4113_stats(struct work_struct *work) | |||
636 | if (atomic_dec_and_test(&chip->wq_processing)) | 636 | if (atomic_dec_and_test(&chip->wq_processing)) |
637 | schedule_delayed_work(&chip->work, HZ / 10); | 637 | schedule_delayed_work(&chip->work, HZ / 10); |
638 | } | 638 | } |
639 | |||
640 | #ifdef CONFIG_PM | ||
641 | void snd_ak4113_suspend(struct ak4113 *chip) | ||
642 | { | ||
643 | atomic_inc(&chip->wq_processing); /* don't schedule new work */ | ||
644 | cancel_delayed_work_sync(&chip->work); | ||
645 | } | ||
646 | EXPORT_SYMBOL(snd_ak4113_suspend); | ||
647 | |||
648 | void snd_ak4113_resume(struct ak4113 *chip) | ||
649 | { | ||
650 | atomic_dec(&chip->wq_processing); | ||
651 | snd_ak4113_reinit(chip); | ||
652 | } | ||
653 | EXPORT_SYMBOL(snd_ak4113_resume); | ||
654 | #endif | ||
diff --git a/sound/i2c/other/ak4114.c b/sound/i2c/other/ak4114.c index f6ee1e7a9bbd..ee639f57b664 100644 --- a/sound/i2c/other/ak4114.c +++ b/sound/i2c/other/ak4114.c | |||
@@ -621,3 +621,19 @@ static void ak4114_stats(struct work_struct *work) | |||
621 | if (atomic_dec_and_test(&chip->wq_processing)) | 621 | if (atomic_dec_and_test(&chip->wq_processing)) |
622 | schedule_delayed_work(&chip->work, HZ / 10); | 622 | schedule_delayed_work(&chip->work, HZ / 10); |
623 | } | 623 | } |
624 | |||
625 | #ifdef CONFIG_PM | ||
626 | void snd_ak4114_suspend(struct ak4114 *chip) | ||
627 | { | ||
628 | atomic_inc(&chip->wq_processing); /* don't schedule new work */ | ||
629 | cancel_delayed_work_sync(&chip->work); | ||
630 | } | ||
631 | EXPORT_SYMBOL(snd_ak4114_suspend); | ||
632 | |||
633 | void snd_ak4114_resume(struct ak4114 *chip) | ||
634 | { | ||
635 | atomic_dec(&chip->wq_processing); | ||
636 | snd_ak4114_reinit(chip); | ||
637 | } | ||
638 | EXPORT_SYMBOL(snd_ak4114_resume); | ||
639 | #endif | ||
diff --git a/sound/pci/ice1712/juli.c b/sound/pci/ice1712/juli.c index a1536c1a7ed4..4f0213427152 100644 --- a/sound/pci/ice1712/juli.c +++ b/sound/pci/ice1712/juli.c | |||
@@ -491,15 +491,17 @@ static int juli_resume(struct snd_ice1712 *ice) | |||
491 | /* akm4358 un-reset, un-mute */ | 491 | /* akm4358 un-reset, un-mute */ |
492 | snd_akm4xxx_reset(ak, 0); | 492 | snd_akm4xxx_reset(ak, 0); |
493 | /* reinit ak4114 */ | 493 | /* reinit ak4114 */ |
494 | snd_ak4114_reinit(spec->ak4114); | 494 | snd_ak4114_resume(spec->ak4114); |
495 | return 0; | 495 | return 0; |
496 | } | 496 | } |
497 | 497 | ||
498 | static int juli_suspend(struct snd_ice1712 *ice) | 498 | static int juli_suspend(struct snd_ice1712 *ice) |
499 | { | 499 | { |
500 | struct snd_akm4xxx *ak = ice->akm; | 500 | struct snd_akm4xxx *ak = ice->akm; |
501 | struct juli_spec *spec = ice->spec; | ||
501 | /* akm4358 reset and soft-mute */ | 502 | /* akm4358 reset and soft-mute */ |
502 | snd_akm4xxx_reset(ak, 1); | 503 | snd_akm4xxx_reset(ak, 1); |
504 | snd_ak4114_suspend(spec->ak4114); | ||
503 | return 0; | 505 | return 0; |
504 | } | 506 | } |
505 | #endif | 507 | #endif |