projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kset: convert pci hotplug to use kset_create_and_add
[powerpc.git]
/
drivers
/
pci
/
msi.c
diff --git
a/drivers/pci/msi.c
b/drivers/pci/msi.c
index
87e0161
..
07c9f09
100644
(file)
--- a/
drivers/pci/msi.c
+++ b/
drivers/pci/msi.c
@@
-224,6
+224,12
@@
static struct msi_desc* alloc_msi_entry(void)
return entry;
}
return entry;
}
+static void pci_intx_for_msi(struct pci_dev *dev, int enable)
+{
+ if (!(dev->dev_flags & PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG))
+ pci_intx(dev, enable);
+}
+
#ifdef CONFIG_PM
static void __pci_restore_msi_state(struct pci_dev *dev)
{
#ifdef CONFIG_PM
static void __pci_restore_msi_state(struct pci_dev *dev)
{
@@
-237,7
+243,7
@@
static void __pci_restore_msi_state(struct pci_dev *dev)
entry = get_irq_msi(dev->irq);
pos = entry->msi_attrib.pos;
entry = get_irq_msi(dev->irq);
pos = entry->msi_attrib.pos;
- pci_intx
(dev, 0); /* disable intx */
+ pci_intx
_for_msi(dev, 0);
msi_set_enable(dev, 0);
write_msi_msg(dev->irq, &entry->msg);
if (entry->msi_attrib.maskbit)
msi_set_enable(dev, 0);
write_msi_msg(dev->irq, &entry->msg);
if (entry->msi_attrib.maskbit)
@@
-260,7
+266,7
@@
static void __pci_restore_msix_state(struct pci_dev *dev)
return;
/* route the table */
return;
/* route the table */
- pci_intx
(dev, 0); /* disable intx */
+ pci_intx
_for_msi(dev, 0);
msix_set_enable(dev, 0);
list_for_each_entry(entry, &dev->msi_list, list) {
msix_set_enable(dev, 0);
list_for_each_entry(entry, &dev->msi_list, list) {
@@
-343,7
+349,7
@@
static int msi_capability_init(struct pci_dev *dev)
}
/* Set MSI enabled bits */
}
/* Set MSI enabled bits */
- pci_intx
(dev, 0); /* disable intx */
+ pci_intx
_for_msi(dev, 0);
msi_set_enable(dev, 1);
dev->msi_enabled = 1;
msi_set_enable(dev, 1);
dev->msi_enabled = 1;
@@
-433,7
+439,7
@@
static int msix_capability_init(struct pci_dev *dev,
i++;
}
/* Set MSI-X enabled bits */
i++;
}
/* Set MSI-X enabled bits */
- pci_intx
(dev, 0); /* disable intx */
+ pci_intx
_for_msi(dev, 0);
msix_set_enable(dev, 1);
dev->msix_enabled = 1;
msix_set_enable(dev, 1);
dev->msix_enabled = 1;
@@
-528,7
+534,7
@@
void pci_disable_msi(struct pci_dev* dev)
return;
msi_set_enable(dev, 0);
return;
msi_set_enable(dev, 0);
- pci_intx
(dev, 1); /* enable intx */
+ pci_intx
_for_msi(dev, 1);
dev->msi_enabled = 0;
BUG_ON(list_empty(&dev->msi_list));
dev->msi_enabled = 0;
BUG_ON(list_empty(&dev->msi_list));
@@
-640,7
+646,7
@@
void pci_disable_msix(struct pci_dev* dev)
return;
msix_set_enable(dev, 0);
return;
msix_set_enable(dev, 0);
- pci_intx
(dev, 1); /* enable intx */
+ pci_intx
_for_msi(dev, 1);
dev->msix_enabled = 0;
msix_free_all_irqs(dev);
dev->msix_enabled = 0;
msix_free_all_irqs(dev);