diff options
author | Jeff Garzik <jeff@garzik.org> | 2007-10-11 16:58:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-10-12 18:03:19 -0400 |
commit | a79e4198d1effbba040e9bf407a95fc9b3418789 (patch) | |
tree | bbfeed15db3a03c3e7f50ae36f18c017fb940b9e /include/asm-x86/pci_64.h | |
parent | 32a2eea795643929a43cbbba00d8c4a176b309bf (diff) |
PCI: X86: Introduce and enable PCI domain support
* fix bug in pci_read() and pci_write() which prevented PCI domain
support from working (hardcoded domain 0).
* unconditionally enable CONFIG_PCI_DOMAINS
* implement pci_domain_nr() and pci_proc_domain(), as required of
all arches when CONFIG_PCI_DOMAINS is enabled.
* store domain in struct pci_sysdata, as assigned by ACPI
* support "pci=nodomains"
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include/asm-x86/pci_64.h')
-rw-r--r-- | include/asm-x86/pci_64.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/asm-x86/pci_64.h b/include/asm-x86/pci_64.h index 5da8cb0c0599..0a123d6a820f 100644 --- a/include/asm-x86/pci_64.h +++ b/include/asm-x86/pci_64.h | |||
@@ -6,12 +6,24 @@ | |||
6 | #ifdef __KERNEL__ | 6 | #ifdef __KERNEL__ |
7 | 7 | ||
8 | struct pci_sysdata { | 8 | struct pci_sysdata { |
9 | int domain; /* PCI domain */ | ||
9 | int node; /* NUMA node */ | 10 | int node; /* NUMA node */ |
10 | void* iommu; /* IOMMU private data */ | 11 | void* iommu; /* IOMMU private data */ |
11 | }; | 12 | }; |
12 | 13 | ||
13 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); | 14 | extern struct pci_bus *pci_scan_bus_with_sysdata(int busno); |
14 | 15 | ||
16 | static inline int pci_domain_nr(struct pci_bus *bus) | ||
17 | { | ||
18 | struct pci_sysdata *sd = bus->sysdata; | ||
19 | return sd->domain; | ||
20 | } | ||
21 | |||
22 | static inline int pci_proc_domain(struct pci_bus *bus) | ||
23 | { | ||
24 | return pci_domain_nr(bus); | ||
25 | } | ||
26 | |||
15 | #ifdef CONFIG_CALGARY_IOMMU | 27 | #ifdef CONFIG_CALGARY_IOMMU |
16 | static inline void* pci_iommu(struct pci_bus *bus) | 28 | static inline void* pci_iommu(struct pci_bus *bus) |
17 | { | 29 | { |