diff options
| -rw-r--r-- | Documentation/kernel-parameters.txt | 2 | ||||
| -rw-r--r-- | drivers/pci/pci.c | 13 | ||||
| -rw-r--r-- | include/linux/pci.h | 7 |
3 files changed, 20 insertions, 2 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index e9acd5540d29..d006e8b66ffa 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -1274,6 +1274,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 1274 | noaer [PCIE] If the PCIEAER kernel config parameter is | 1274 | noaer [PCIE] If the PCIEAER kernel config parameter is |
| 1275 | enabled, this kernel boot option can be used to | 1275 | enabled, this kernel boot option can be used to |
| 1276 | disable the use of PCIE advanced error reporting. | 1276 | disable the use of PCIE advanced error reporting. |
| 1277 | nodomains [PCI] Disable support for multiple PCI | ||
| 1278 | root domains (aka PCI segments, in ACPI-speak). | ||
| 1277 | nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI | 1279 | nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI |
| 1278 | Configuration | 1280 | Configuration |
| 1279 | nomsi [MSI] If the PCI_MSI kernel config parameter is | 1281 | nomsi [MSI] If the PCI_MSI kernel config parameter is |
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 2dd5c282fabe..728b3c863d87 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
| @@ -23,6 +23,10 @@ | |||
| 23 | 23 | ||
| 24 | unsigned int pci_pm_d3_delay = 10; | 24 | unsigned int pci_pm_d3_delay = 10; |
| 25 | 25 | ||
| 26 | #ifdef CONFIG_PCI_DOMAINS | ||
| 27 | int pci_domains_supported = 1; | ||
| 28 | #endif | ||
| 29 | |||
| 26 | #define DEFAULT_CARDBUS_IO_SIZE (256) | 30 | #define DEFAULT_CARDBUS_IO_SIZE (256) |
| 27 | #define DEFAULT_CARDBUS_MEM_SIZE (64*1024*1024) | 31 | #define DEFAULT_CARDBUS_MEM_SIZE (64*1024*1024) |
| 28 | /* pci=cbmemsize=nnM,cbiosize=nn can override this */ | 32 | /* pci=cbmemsize=nnM,cbiosize=nn can override this */ |
| @@ -1567,6 +1571,13 @@ int pci_select_bars(struct pci_dev *dev, unsigned long flags) | |||
| 1567 | return bars; | 1571 | return bars; |
| 1568 | } | 1572 | } |
| 1569 | 1573 | ||
| 1574 | static void __devinit pci_no_domains(void) | ||
| 1575 | { | ||
| 1576 | #ifdef CONFIG_PCI_DOMAINS | ||
| 1577 | pci_domains_supported = 0; | ||
| 1578 | #endif | ||
| 1579 | } | ||
| 1580 | |||
| 1570 | static int __devinit pci_init(void) | 1581 | static int __devinit pci_init(void) |
| 1571 | { | 1582 | { |
| 1572 | struct pci_dev *dev = NULL; | 1583 | struct pci_dev *dev = NULL; |
| @@ -1588,6 +1599,8 @@ static int __devinit pci_setup(char *str) | |||
| 1588 | pci_no_msi(); | 1599 | pci_no_msi(); |
| 1589 | } else if (!strcmp(str, "noaer")) { | 1600 | } else if (!strcmp(str, "noaer")) { |
| 1590 | pci_no_aer(); | 1601 | pci_no_aer(); |
| 1602 | } else if (!strcmp(str, "nodomains")) { | ||
| 1603 | pci_no_domains(); | ||
| 1591 | } else if (!strncmp(str, "cbiosize=", 9)) { | 1604 | } else if (!strncmp(str, "cbiosize=", 9)) { |
| 1592 | pci_cardbus_io_size = memparse(str + 9, &str); | 1605 | pci_cardbus_io_size = memparse(str + 9, &str); |
| 1593 | } else if (!strncmp(str, "cbmemsize=", 10)) { | 1606 | } else if (!strncmp(str, "cbmemsize=", 10)) { |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 038a0dc7273a..768b93359f90 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -685,13 +685,16 @@ extern void pci_unblock_user_cfg_access(struct pci_dev *dev); | |||
| 685 | * a PCI domain is defined to be a set of PCI busses which share | 685 | * a PCI domain is defined to be a set of PCI busses which share |
| 686 | * configuration space. | 686 | * configuration space. |
| 687 | */ | 687 | */ |
| 688 | #ifndef CONFIG_PCI_DOMAINS | 688 | #ifdef CONFIG_PCI_DOMAINS |
| 689 | extern int pci_domains_supported; | ||
| 690 | #else | ||
| 691 | enum { pci_domains_supported = 0 }; | ||
| 689 | static inline int pci_domain_nr(struct pci_bus *bus) { return 0; } | 692 | static inline int pci_domain_nr(struct pci_bus *bus) { return 0; } |
| 690 | static inline int pci_proc_domain(struct pci_bus *bus) | 693 | static inline int pci_proc_domain(struct pci_bus *bus) |
| 691 | { | 694 | { |
| 692 | return 0; | 695 | return 0; |
| 693 | } | 696 | } |
| 694 | #endif | 697 | #endif /* CONFIG_PCI_DOMAINS */ |
| 695 | 698 | ||
| 696 | #else /* CONFIG_PCI is not enabled */ | 699 | #else /* CONFIG_PCI is not enabled */ |
| 697 | 700 | ||
