diff options
author | Matthew Wilcox <matthew@wil.cx> | 2006-03-06 00:33:34 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-23 17:35:16 -0500 |
commit | 309e57df7b766172ba137a8cbd909f88dd76e8e9 (patch) | |
tree | 74cc85977654925c76c687e597c7586b9e75629b /drivers/pci/msi.c | |
parent | 5eeca8e688b6affba4cd85262152fdd1b274ad33 (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.c | 10 |
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 | ||
1160 | void pci_no_msi(void) | ||
1161 | { | ||
1162 | pci_msi_enable = 0; | ||
1163 | } | ||
1164 | |||
1155 | EXPORT_SYMBOL(pci_enable_msi); | 1165 | EXPORT_SYMBOL(pci_enable_msi); |
1156 | EXPORT_SYMBOL(pci_disable_msi); | 1166 | EXPORT_SYMBOL(pci_disable_msi); |
1157 | EXPORT_SYMBOL(pci_enable_msix); | 1167 | EXPORT_SYMBOL(pci_enable_msix); |