aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew@wil.cx>2006-03-06 00:33:34 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-23 17:35:16 -0500
commit309e57df7b766172ba137a8cbd909f88dd76e8e9 (patch)
tree74cc85977654925c76c687e597c7586b9e75629b /drivers/pci/msi.c
parent5eeca8e688b6affba4cd85262152fdd1b274ad33 (diff)
[PATCH] PCI: Provide a boot parameter to disable MSI
Several drivers are starting to grow options to disable MSI. However, it's often a host chipset issue, not something which individual drivers should handle. So we add the pci=nomsi kernel parameter to allow the user to disable MSI modes for systems we haven't added to the quirk list yet. Signed-off-by: Matthew Wilcox <matthew@wil.cx> Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Acked-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index aea8b258b9b8..a77e79c8c82e 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -765,8 +765,11 @@ void pci_disable_msi(struct pci_dev* dev)
765 u16 control; 765 u16 control;
766 unsigned long flags; 766 unsigned long flags;
767 767
768 if (!pci_msi_enable)
769 return;
768 if (!dev) 770 if (!dev)
769 return; 771 return;
772
770 pos = pci_find_capability(dev, PCI_CAP_ID_MSI); 773 pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
771 if (!pos) 774 if (!pos)
772 return; 775 return;
@@ -1026,6 +1029,8 @@ void pci_disable_msix(struct pci_dev* dev)
1026 int pos, temp; 1029 int pos, temp;
1027 u16 control; 1030 u16 control;
1028 1031
1032 if (!pci_msi_enable)
1033 return;
1029 if (!dev) 1034 if (!dev)
1030 return; 1035 return;
1031 1036
@@ -1152,6 +1157,11 @@ void msi_remove_pci_irq_vectors(struct pci_dev* dev)
1152 } 1157 }
1153} 1158}
1154 1159
1160void pci_no_msi(void)
1161{
1162 pci_msi_enable = 0;
1163}
1164
1155EXPORT_SYMBOL(pci_enable_msi); 1165EXPORT_SYMBOL(pci_enable_msi);
1156EXPORT_SYMBOL(pci_disable_msi); 1166EXPORT_SYMBOL(pci_disable_msi);
1157EXPORT_SYMBOL(pci_enable_msix); 1167EXPORT_SYMBOL(pci_enable_msix);