PCI: use ACPI _CRS data by default
authorJesse Barnes <jbarnes@virtuousgeek.org>
Thu, 11 Jun 2009 17:58:28 +0000 (10:58 -0700)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Thu, 11 Jun 2009 19:04:17 +0000 (12:04 -0700)
At this point, it seems to solve more problems than it causes, so let's try using it by default.  It's an easy revert if it ends up causing trouble.

Reviewed-by: Yinghai Lu <yhlu.kernel@gmail.com>
Acked-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Documentation/kernel-parameters.txt
arch/x86/include/asm/pci_x86.h
arch/x86/pci/acpi.c
arch/x86/pci/amd_bus.c
arch/x86/pci/common.c

index fd5cac013037defc68c3ef118ed70b476debee71..7bdaf5080408ad6e2e001eb0fb0cc8ad6636d0a0 100644 (file)
@@ -1787,7 +1787,7 @@ and is between 256 and 4096 characters. It is defined in the file
                                IRQ routing is enabled.
                noacpi          [X86] Do not use ACPI for IRQ routing
                                or for PCI scanning.
-               use_crs         [X86] Use _CRS for PCI resource
+               nocrs           [X86] Don't use _CRS for PCI resource
                                allocation.
                routeirq        Do IRQ routing for all PCI devices.
                                This is normally done in pci_enable_device(),
index e60fd3e14bdf2c720f3c890f945a80e1828d087b..cb739cc0a08063729fb239d4d6a254f6aee08625 100644 (file)
@@ -25,7 +25,7 @@
 #define PCI_BIOS_IRQ_SCAN      0x2000
 #define PCI_ASSIGN_ALL_BUSSES  0x4000
 #define PCI_CAN_SKIP_ISA_ALIGN 0x8000
-#define PCI_USE__CRS           0x10000
+#define PCI_NO_ROOT_CRS                0x10000
 #define PCI_CHECK_ENABLE_AMD_MMCONF    0x20000
 #define PCI_HAS_IO_ECS         0x40000
 #define PCI_NOASSIGN_ROMS      0x80000
index c0ecf250fe5166a82f3343b622c1ec0e07119b80..8d898e0d3609df531b4f2b130168cee5d1831def 100644 (file)
@@ -217,7 +217,7 @@ struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int do
 #endif
        }
 
-       if (bus && (pci_probe & PCI_USE__CRS))
+       if (bus && !(pci_probe & PCI_NO_ROOT_CRS))
                get_current_resources(device, busnum, domain, bus);
        return bus;
 }
index f893d6a6e803e266f3d36030f8744fecda130bf9..2255f880678bb198af08f8fd43452c2e3370167a 100644 (file)
@@ -101,7 +101,7 @@ void x86_pci_root_bus_res_quirks(struct pci_bus *b)
        struct pci_root_info *info;
 
        /* don't go for it if _CRS is used */
-       if (pci_probe & PCI_USE__CRS)
+       if (!(pci_probe & PCI_NO_ROOT_CRS))
                return;
 
        /* if only one root bus, don't need to anything */
index 2202b6257b82b84bb9ef17f33630ca7dac929610..4740119e4bb73389e66ff08ed47e30c7d12c56c6 100644 (file)
@@ -515,8 +515,8 @@ char * __devinit  pcibios_setup(char *str)
        } else if (!strcmp(str, "assign-busses")) {
                pci_probe |= PCI_ASSIGN_ALL_BUSSES;
                return NULL;
-       } else if (!strcmp(str, "use_crs")) {
-               pci_probe |= PCI_USE__CRS;
+       } else if (!strcmp(str, "nocrs")) {
+               pci_probe |= PCI_NO_ROOT_CRS;
                return NULL;
        } else if (!strcmp(str, "earlydump")) {
                pci_early_dump_regs = 1;