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
/
via82xx_modem.c
diff --git
a/sound/pci/via82xx_modem.c
b/sound/pci/via82xx_modem.c
index
22ce4d3
..
17d6b84
100644
(file)
--- a/
sound/pci/via82xx_modem.c
+++ b/
sound/pci/via82xx_modem.c
@@
-475,7
+475,7
@@
static void snd_via82xx_channel_reset(struct via82xx_modem *chip, struct viadev
* Interrupt handler
*/
* Interrupt handler
*/
-static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id)
{
struct via82xx_modem *chip = dev_id;
unsigned int status;
{
struct via82xx_modem *chip = dev_id;
unsigned int status;
@@
-929,7
+929,7
@@
static void __devinit snd_via82xx_proc_init(struct via82xx_modem *chip)
struct snd_info_entry *entry;
if (! snd_card_proc_new(chip->card, "via82xx", &entry))
struct snd_info_entry *entry;
if (! snd_card_proc_new(chip->card, "via82xx", &entry))
- snd_info_set_text_ops(entry, chip,
1024,
snd_via82xx_proc_read);
+ snd_info_set_text_ops(entry, chip, snd_via82xx_proc_read);
}
/*
}
/*
@@
-1032,9
+1032,10
@@
static int snd_via82xx_suspend(struct pci_dev *pci, pm_message_t state)
snd_via82xx_channel_reset(chip, &chip->devs[i]);
synchronize_irq(chip->irq);
snd_ac97_suspend(chip->ac97);
snd_via82xx_channel_reset(chip, &chip->devs[i]);
synchronize_irq(chip->irq);
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;
}
@@
-1044,9
+1045,14
@@
static int snd_via82xx_resume(struct pci_dev *pci)
struct via82xx_modem *chip = card->private_data;
int i;
struct via82xx_modem *chip = card->private_data;
int i;
- 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 "via82xx-modem: pci_enable_device failed, "
+ "disabling device\n");
+ snd_card_disconnect(card);
+ return -EIO;
+ }
pci_set_master(pci);
snd_via82xx_chip_init(chip);
pci_set_master(pci);
snd_via82xx_chip_init(chip);
@@
-1118,7
+1124,7
@@
static int __devinit snd_via82xx_create(struct snd_card *card,
return err;
}
chip->port = pci_resource_start(pci, 0);
return err;
}
chip->port = pci_resource_start(pci, 0);
- if (request_irq(pci->irq, snd_via82xx_interrupt,
SA_INTERRUPT|SA_SHIRQ
,
+ if (request_irq(pci->irq, snd_via82xx_interrupt,
IRQF_SHARED
,
card->driver, chip)) {
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_via82xx_free(chip);
card->driver, chip)) {
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_via82xx_free(chip);