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
/
ens1370.c
diff --git
a/sound/pci/ens1370.c
b/sound/pci/ens1370.c
index
ca9e34e
..
a84f6b2
100644
(file)
--- a/
sound/pci/ens1370.c
+++ b/
sound/pci/ens1370.c
@@
-444,9
+444,9
@@
struct ensoniq {
#endif
};
#endif
};
-static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id
, struct pt_regs *regs
);
+static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id);
-static struct pci_device_id snd_audiopci_ids[]
__devinitdata
= {
+static struct pci_device_id snd_audiopci_ids[] = {
#ifdef CHIP1370
{ 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */
#endif
#ifdef CHIP1370
{ 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */
#endif
@@
-1915,7
+1915,7
@@
static void __devinit snd_ensoniq_proc_init(struct ensoniq * ensoniq)
struct snd_info_entry *entry;
if (! snd_card_proc_new(ensoniq->card, "audiopci", &entry))
struct snd_info_entry *entry;
if (! snd_card_proc_new(ensoniq->card, "audiopci", &entry))
- snd_info_set_text_ops(entry, ensoniq,
1024,
snd_ensoniq_proc_read);
+ snd_info_set_text_ops(entry, ensoniq, snd_ensoniq_proc_read);
}
/*
}
/*
@@
-2072,9
+2072,10
@@
static int snd_ensoniq_suspend(struct pci_dev *pci, pm_message_t state)
udelay(100);
snd_ak4531_suspend(ensoniq->u.es1370.ak4531);
#endif
udelay(100);
snd_ak4531_suspend(ensoniq->u.es1370.ak4531);
#endif
- 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;
}
@@
-2083,9
+2084,14
@@
static int snd_ensoniq_resume(struct pci_dev *pci)
struct snd_card *card = pci_get_drvdata(pci);
struct ensoniq *ensoniq = card->private_data;
struct snd_card *card = pci_get_drvdata(pci);
struct ensoniq *ensoniq = 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 DRIVER_NAME ": pci_enable_device failed, "
+ "disabling device\n");
+ snd_card_disconnect(card);
+ return -EIO;
+ }
pci_set_master(pci);
snd_ensoniq_chip_init(ensoniq);
pci_set_master(pci);
snd_ensoniq_chip_init(ensoniq);
@@
-2135,7
+2141,7
@@
static int __devinit snd_ensoniq_create(struct snd_card *card,
return err;
}
ensoniq->port = pci_resource_start(pci, 0);
return err;
}
ensoniq->port = pci_resource_start(pci, 0);
- if (request_irq(pci->irq, snd_audiopci_interrupt,
SA_INTERRUPT|SA_SHIRQ
,
+ if (request_irq(pci->irq, snd_audiopci_interrupt,
IRQF_SHARED
,
"Ensoniq AudioPCI", ensoniq)) {
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_ensoniq_free(ensoniq);
"Ensoniq AudioPCI", ensoniq)) {
snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
snd_ensoniq_free(ensoniq);
@@
-2404,7
+2410,7
@@
static int __devinit snd_ensoniq_midi(struct ensoniq * ensoniq, int device,
* Interrupt handler
*/
* Interrupt handler
*/
-static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id)
{
struct ensoniq *ensoniq = dev_id;
unsigned int status, sctrl;
{
struct ensoniq *ensoniq = dev_id;
unsigned int status, sctrl;