Update of /cvsroot/alsa/alsa-kernel/isa/cs423x In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19034/isa/cs423x
Modified Files: cs4231_lib.c Log Message: Clean up of power-management codes. - moved commonly used codes to the core layer. - using the unified suspend/resume callbacks for PCI and ISA - added snd_card_set_pm_callbacks() and snd_card_set_isa_pm_callbacks() as the registration functions. Index: cs4231_lib.c =================================================================== RCS file: /cvsroot/alsa/alsa-kernel/isa/cs423x/cs4231_lib.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- cs4231_lib.c 6 Mar 2004 16:51:29 -0000 1.37 +++ cs4231_lib.c 8 Apr 2004 16:34:59 -0000 1.38 @@ -1343,6 +1343,7 @@ #ifdef CONFIG_PM +/* lowlevel suspend callback for CS4231 */ static void snd_cs4231_suspend(cs4231_t *chip) { int reg; @@ -1354,6 +1355,7 @@ spin_unlock_irqrestore(&chip->reg_lock, flags); } +/* lowlevel resume callback for CS4231 */ static void snd_cs4231_resume(cs4231_t *chip) { int reg; @@ -1395,25 +1397,25 @@ #endif } -static int snd_cs4231_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data) +static int snd_cs4231_pm_suspend(snd_card_t *card, unsigned int state) { - cs4231_t *chip = snd_magic_cast(cs4231_t, dev->data, return 0); - - switch (rqst) { - case PM_SUSPEND: - if (chip->suspend) { - snd_pcm_suspend_all(chip->pcm); - (*chip->suspend)(chip); - } - break; - case PM_RESUME: - if (chip->resume) - (*chip->resume)(chip); - break; + cs4231_t *chip = snd_magic_cast(cs4231_t, card->pm_private_data, return -EINVAL); + if (chip->suspend) { + chip->suspend(chip); + snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); } return 0; } +static int snd_cs4231_pm_resume(snd_card_t *card, unsigned int state) +{ + cs4231_t *chip = snd_magic_cast(cs4231_t, card->pm_private_data, return -EINVAL); + if (chip->resume) { + chip->resume(chip); + snd_power_change_state(card, SNDRV_CTL_POWER_D0); + } + return 0; +} #endif /* CONFIG_PM */ #ifdef LEGACY_SUPPORT @@ -1441,10 +1443,6 @@ snd_dma_disable(chip->dma2); free_dma(chip->dma2); } -#ifdef CONFIG_PM - if (chip->pm_dev) - pm_unregister(chip->pm_dev); -#endif if (chip->timer) snd_device_free(chip->card, chip->timer); snd_magic_kfree(chip); @@ -1587,9 +1585,7 @@ /* Power Management */ chip->suspend = snd_cs4231_suspend; chip->resume = snd_cs4231_resume; - chip->pm_dev = pm_register(PM_ISA_DEV, 0, snd_cs4231_pm_callback); - if (chip->pm_dev) - chip->pm_dev->data = chip; + snd_card_set_isa_pm_callback(card, snd_cs4231_pm_suspend, snd_cs4231_pm_resume, chip); #endif *rchip = chip; ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog