- return 0;
-}
-
-/* the chip is stored statically by snd_pmac_register_sleep_notifier
- * because we can't have any private data for notify callback.
- */
-static pmac_t *sleeping_pmac = NULL;
-
-static int snd_pmac_sleep_notify(struct pmu_sleep_notifier *self, int when)
-{
- pmac_t *chip;
-
- chip = sleeping_pmac;
- if (! chip)
- return 0;
-
- switch (when) {
- case PBOOK_SLEEP_NOW:
- snd_pmac_suspend(chip->card, PMSG_SUSPEND);
- break;
- case PBOOK_WAKE:
- snd_pmac_resume(chip->card);
- break;
- }
- return PBOOK_SLEEP_OK;
-}
-
-static struct pmu_sleep_notifier snd_pmac_sleep_notifier = {
- snd_pmac_sleep_notify, SLEEP_LEVEL_SOUND,
-};
-
-static int __init snd_pmac_register_sleep_notifier(pmac_t *chip)
-{
- /* should be protected here.. */
- snd_assert(! sleeping_pmac, return -EBUSY);
- sleeping_pmac = chip;
- pmu_register_sleep_notifier(&snd_pmac_sleep_notifier);
- return 0;
-}
-
-static int snd_pmac_unregister_sleep_notifier(pmac_t *chip)
-{
- /* should be protected here.. */
- snd_assert(sleeping_pmac == chip, return -ENODEV);
- pmu_unregister_sleep_notifier(&snd_pmac_sleep_notifier);
- sleeping_pmac = NULL;
- return 0;