[PATCH 7/8] PCI: check if MSI is enabled before adding _OSC support capability

Andrew Patterson
2008-10-29T05:48:51Z

PCI: check if MSI is enabled before adding _OSC support capability

Ensure that pci=nomsi is not set before adding the _OSC support capability
OSC_MSI_SUPPORT to the root bridge.

Signed-off-by: Andrew Patterson <andrew.patterson@hp.com>
---

drivers/acpi/pci_root.c | 20 +++++++++++---------
1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 75a59ea..32afd02 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -194,6 +194,7 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
unsigned long long value = 0;
acpi_handle handle = NULL;
struct acpi_device *child;
+ u32 flags;

if (!device)
@@ -211,17 +212,18 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)

device->ops.bind = acpi_pci_bind;

- pci_acpi_osc_support(device->handle,
- OSC_EXT_PCI_CONFIG_SUPPORT |
- OSC_PCI_SEGMENT_GROUPS_SUPPORT |
-#ifdef CONFIG_PCI_MSI
- OSC_MSI_SUPPORT |
-#endif
+ flags = (OSC_EXT_PCI_CONFIG_SUPPORT |
+ OSC_PCI_SEGMENT_GROUPS_SUPPORT |
#ifdef CONFIG_PCIEASPM
- OSC_ACTIVE_STATE_PWR_SUPPORT |
- OSC_CLOCK_PWR_CAPABILITY_SUPPORT |
+ OSC_ACTIVE_STATE_PWR_SUPPORT |
+ OSC_CLOCK_PWR_CAPABILITY_SUPPORT |
+#endif
+ 0);
+#ifdef CONFIG_PCI_MSI
+ if (pci_msi_enabled())
+ flags |= OSC_MSI_SUPPORT;
#endif
- 0);
+ pci_acpi_osc_support(device->handle, flags);

/*
* Segment