git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
sound
/
pci
/
als300.c
diff --git
a/sound/pci/als300.c
b/sound/pci/als300.c
index
96cfb8a
..
9f406fb
100644
(file)
--- a/
sound/pci/als300.c
+++ b/
sound/pci/als300.c
@@
-190,7
+190,7
@@
static int snd_als300_free(struct snd_als300 *chip)
snd_als300_dbgcallenter();
snd_als300_set_irq_flag(chip, IRQ_DISABLE);
if (chip->irq >= 0)
snd_als300_dbgcallenter();
snd_als300_set_irq_flag(chip, IRQ_DISABLE);
if (chip->irq >= 0)
- free_irq(chip->irq,
(void *)
chip);
+ free_irq(chip->irq, chip);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);
kfree(chip);
pci_release_regions(chip->pci);
pci_disable_device(chip->pci);
kfree(chip);
@@
-204,8
+204,7
@@
static int snd_als300_dev_free(struct snd_device *device)
return snd_als300_free(chip);
}
return snd_als300_free(chip);
}
-static irqreturn_t snd_als300_interrupt(int irq, void *dev_id,
- struct pt_regs *regs)
+static irqreturn_t snd_als300_interrupt(int irq, void *dev_id)
{
u8 status;
struct snd_als300 *chip = dev_id;
{
u8 status;
struct snd_als300 *chip = dev_id;
@@
-236,8
+235,7
@@
static irqreturn_t snd_als300_interrupt(int irq, void *dev_id,
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
-static irqreturn_t snd_als300plus_interrupt(int irq, void *dev_id,
- struct pt_regs *regs)
+static irqreturn_t snd_als300plus_interrupt(int irq, void *dev_id)
{
u8 general, mpu, dram;
struct snd_als300 *chip = dev_id;
{
u8 general, mpu, dram;
struct snd_als300 *chip = dev_id;
@@
-724,8
+722,8
@@
static int __devinit snd_als300_create(snd_card_t *card,
else
irq_handler = snd_als300_interrupt;
else
irq_handler = snd_als300_interrupt;
- if (request_irq(pci->irq, irq_handler, IRQF_
DISABLED|IRQF_
SHARED,
-
card->shortname, (void *)
chip)) {
+ if (request_irq(pci->irq, irq_handler, IRQF_SHARED,
+
card->shortname,
chip)) {
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_als300_free(chip);
return -EBUSY;
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_als300_free(chip);
return -EBUSY;
@@
-770,9
+768,9
@@
static int snd_als300_suspend(struct pci_dev *pci, pm_message_t state)
snd_pcm_suspend_all(chip->pcm);
snd_ac97_suspend(chip->ac97);
snd_pcm_suspend_all(chip->pcm);
snd_ac97_suspend(chip->ac97);
- pci_set_power_state(pci, PCI_D3hot);
pci_disable_device(pci);
pci_save_state(pci);
pci_disable_device(pci);
pci_save_state(pci);
+ pci_set_power_state(pci, pci_choose_state(pci, state));
return 0;
}
return 0;
}
@@
-781,9
+779,14
@@
static int snd_als300_resume(struct pci_dev *pci)
struct snd_card *card = pci_get_drvdata(pci);
struct snd_als300 *chip = card->private_data;
struct snd_card *card = pci_get_drvdata(pci);
struct snd_als300 *chip = card->private_data;
- pci_restore_state(pci);
- pci_enable_device(pci);
pci_set_power_state(pci, PCI_D0);
pci_set_power_state(pci, PCI_D0);
+ pci_restore_state(pci);
+ if (pci_enable_device(pci) < 0) {
+ printk(KERN_ERR "als300: pci_enable_device failed, "
+ "disabling device\n");
+ snd_card_disconnect(card);
+ return -EIO;
+ }
pci_set_master(pci);
snd_als300_init(chip);
pci_set_master(pci);
snd_als300_init(chip);