Update of /cvsroot/alsa/alsa-kernel/pci/ali5451
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25446/ali5451
Modified Files:
ali5451.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: ali5451.c
===================================================================
RCS file: /cvsroot/alsa/alsa-kernel/pci/ali5451/ali5451.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -r1.45 -r1.46
--- ali5451.c 8 Apr 2004 16:35:00 -0000 1.45
+++ ali5451.c 8 Apr 2004 17:04:21 -0000 1.46
@@ -1905,14 +1905,15 @@
}
#ifdef CONFIG_PM
-static void ali_suspend(ali_t *chip)
+static int ali_suspend(snd_card_t *card, unsigned int state)
{
+ ali_t *chip = snd_magic_cast(ali_t, card->pm_private_data, return -EINVAL);
ali_image_t *im;
int i, j;
im = chip->image;
if (! im)
- return;
+ return 0;
spin_lock_irq(&chip->reg_lock);
@@ -1939,16 +1940,18 @@
outl(0xffffffff, ALI_REG(chip, ALI_STOP));
spin_unlock_irq(&chip->reg_lock);
+ return 0;
}
-static void ali_resume(ali_t *chip)
+static int ali_resume(snd_card_t *card, unsigned int state)
{
+ ali_t *chip = snd_magic_cast(ali_t, card->pm_private_data, return -EINVAL);
ali_image_t *im;
int i, j;
im = chip->image;
if (! im)
- return;
+ return 0;
pci_enable_device(chip->pci);
@@ -1974,19 +1977,6 @@
outl(im->regs[ALI_MISCINT >> 2], ALI_REG(chip, ALI_MISCINT));
spin_unlock_irq(&chip->reg_lock);
- return;
-}
-
-static int snd_ali_suspend(struct pci_dev *dev, u32 state)
-{
- ali_t *chip = snd_magic_cast(ali_t, pci_get_drvdata(dev), return -ENXIO);
- ali_suspend(chip);
- return 0;
-}
-static int snd_ali_resume(struct pci_dev *dev)
-{
- ali_t *chip = snd_magic_cast(ali_t, pci_get_drvdata(dev), return -ENXIO);
- ali_resume(chip);
return 0;
}
#endif /* CONFIG_PM */
@@ -2202,7 +2192,9 @@
#ifdef CONFIG_PM
codec->image = kmalloc(sizeof(*codec->image), GFP_KERNEL);
if (! codec->image)
- snd_printk("can't allocate apm buffer\n");
+ snd_printk(KERN_WARNING "can't allocate apm buffer\n");
+ else
+ snd_card_set_pm_callback(card, ali_suspend, ali_resume, codec);
#endif
snd_ali_enable_address_interrupt(codec);
@@ -2278,10 +2270,7 @@
.id_table = snd_ali_ids,
.probe = snd_ali_probe,
.remove = __devexit_p(snd_ali_remove),
-#ifdef CONFIG_PM
- .suspend = snd_ali_suspend,
- .resume = snd_ali_resume,
-#endif
+ SND_PCI_PM_CALLBACKS
};
static int __init alsa_card_ali_init(void)
-------------------------------------------------------
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