diff options
| author | Jeff Garzik <jgarzik@pobox.com> | 2005-09-14 08:19:08 -0400 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2005-09-14 08:19:08 -0400 |
| commit | 905ec87e93bc9e01b15c60035cd6a50c636cbaef (patch) | |
| tree | 46fd7618d6511611ffc19eb0dd4d7bc6b90a41c2 /arch/i386/pci | |
| parent | 1d6ae775d7a948c9575658eb41184fd2e506c0df (diff) | |
| parent | 2f4ba45a75d6383b4a1201169a808ffea416ffa0 (diff) | |
Merge /spare/repo/linux-2.6/
Diffstat (limited to 'arch/i386/pci')
| -rw-r--r-- | arch/i386/pci/Makefile | 2 | ||||
| -rw-r--r-- | arch/i386/pci/acpi.c | 17 | ||||
| -rw-r--r-- | arch/i386/pci/i386.c | 6 | ||||
| -rw-r--r-- | arch/i386/pci/irq.c | 2 | ||||
| -rw-r--r-- | arch/i386/pci/mmconfig.c | 7 |
5 files changed, 21 insertions, 13 deletions
diff --git a/arch/i386/pci/Makefile b/arch/i386/pci/Makefile index 1bff03f36965..ead6122dd06d 100644 --- a/arch/i386/pci/Makefile +++ b/arch/i386/pci/Makefile | |||
| @@ -5,7 +5,7 @@ obj-$(CONFIG_PCI_MMCONFIG) += mmconfig.o | |||
| 5 | obj-$(CONFIG_PCI_DIRECT) += direct.o | 5 | obj-$(CONFIG_PCI_DIRECT) += direct.o |
| 6 | 6 | ||
| 7 | pci-y := fixup.o | 7 | pci-y := fixup.o |
| 8 | pci-$(CONFIG_ACPI_PCI) += acpi.o | 8 | pci-$(CONFIG_ACPI) += acpi.o |
| 9 | pci-y += legacy.o irq.o | 9 | pci-y += legacy.o irq.o |
| 10 | 10 | ||
| 11 | pci-$(CONFIG_X86_VISWS) := visws.o fixup.o | 11 | pci-$(CONFIG_X86_VISWS) := visws.o fixup.o |
diff --git a/arch/i386/pci/acpi.c b/arch/i386/pci/acpi.c index 42913f43feb0..2941674f35eb 100644 --- a/arch/i386/pci/acpi.c +++ b/arch/i386/pci/acpi.c | |||
| @@ -3,16 +3,31 @@ | |||
| 3 | #include <linux/init.h> | 3 | #include <linux/init.h> |
| 4 | #include <linux/irq.h> | 4 | #include <linux/irq.h> |
| 5 | #include <asm/hw_irq.h> | 5 | #include <asm/hw_irq.h> |
| 6 | #include <asm/numa.h> | ||
| 6 | #include "pci.h" | 7 | #include "pci.h" |
| 7 | 8 | ||
| 8 | struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum) | 9 | struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum) |
| 9 | { | 10 | { |
| 11 | struct pci_bus *bus; | ||
| 12 | |||
| 10 | if (domain != 0) { | 13 | if (domain != 0) { |
| 11 | printk(KERN_WARNING "PCI: Multiple domains not supported\n"); | 14 | printk(KERN_WARNING "PCI: Multiple domains not supported\n"); |
| 12 | return NULL; | 15 | return NULL; |
| 13 | } | 16 | } |
| 14 | 17 | ||
| 15 | return pcibios_scan_root(busnum); | 18 | bus = pcibios_scan_root(busnum); |
| 19 | #ifdef CONFIG_ACPI_NUMA | ||
| 20 | if (bus != NULL) { | ||
| 21 | int pxm = acpi_get_pxm(device->handle); | ||
| 22 | if (pxm >= 0) { | ||
| 23 | bus->sysdata = (void *)(unsigned long)pxm_to_node(pxm); | ||
| 24 | printk("bus %d -> pxm %d -> node %ld\n", | ||
| 25 | busnum, pxm, (long)(bus->sysdata)); | ||
| 26 | } | ||
| 27 | } | ||
| 28 | #endif | ||
| 29 | |||
| 30 | return bus; | ||
| 16 | } | 31 | } |
| 17 | 32 | ||
| 18 | extern int pci_routeirq; | 33 | extern int pci_routeirq; |
diff --git a/arch/i386/pci/i386.c b/arch/i386/pci/i386.c index 3cc480998a47..6d6338500c3c 100644 --- a/arch/i386/pci/i386.c +++ b/arch/i386/pci/i386.c | |||
| @@ -283,9 +283,9 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, | |||
| 283 | /* Write-combine setting is ignored, it is changed via the mtrr | 283 | /* Write-combine setting is ignored, it is changed via the mtrr |
| 284 | * interfaces on this platform. | 284 | * interfaces on this platform. |
| 285 | */ | 285 | */ |
| 286 | if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, | 286 | if (io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, |
| 287 | vma->vm_end - vma->vm_start, | 287 | vma->vm_end - vma->vm_start, |
| 288 | vma->vm_page_prot)) | 288 | vma->vm_page_prot)) |
| 289 | return -EAGAIN; | 289 | return -EAGAIN; |
| 290 | 290 | ||
| 291 | return 0; | 291 | return 0; |
diff --git a/arch/i386/pci/irq.c b/arch/i386/pci/irq.c index 86348b68fda1..326a2edc3834 100644 --- a/arch/i386/pci/irq.c +++ b/arch/i386/pci/irq.c | |||
| @@ -1075,7 +1075,7 @@ static void pirq_penalize_isa_irq(int irq, int active) | |||
| 1075 | 1075 | ||
| 1076 | void pcibios_penalize_isa_irq(int irq, int active) | 1076 | void pcibios_penalize_isa_irq(int irq, int active) |
| 1077 | { | 1077 | { |
| 1078 | #ifdef CONFIG_ACPI_PCI | 1078 | #ifdef CONFIG_ACPI |
| 1079 | if (!acpi_noirq) | 1079 | if (!acpi_noirq) |
| 1080 | acpi_penalize_isa_irq(irq, active); | 1080 | acpi_penalize_isa_irq(irq, active); |
| 1081 | else | 1081 | else |
diff --git a/arch/i386/pci/mmconfig.c b/arch/i386/pci/mmconfig.c index 60f0e7a1162a..dfbf80cff834 100644 --- a/arch/i386/pci/mmconfig.c +++ b/arch/i386/pci/mmconfig.c | |||
| @@ -127,13 +127,6 @@ static int __init pci_mmcfg_init(void) | |||
| 127 | (pci_mmcfg_config[0].base_address == 0)) | 127 | (pci_mmcfg_config[0].base_address == 0)) |
| 128 | goto out; | 128 | goto out; |
| 129 | 129 | ||
| 130 | /* Kludge for now. Don't use mmconfig on AMD systems because | ||
| 131 | those have some busses where mmconfig doesn't work, | ||
| 132 | and we don't parse ACPI MCFG well enough to handle that. | ||
| 133 | Remove when proper handling is added. */ | ||
| 134 | if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) | ||
| 135 | goto out; | ||
| 136 | |||
| 137 | printk(KERN_INFO "PCI: Using MMCONFIG\n"); | 130 | printk(KERN_INFO "PCI: Using MMCONFIG\n"); |
| 138 | raw_pci_ops = &pci_mmcfg; | 131 | raw_pci_ops = &pci_mmcfg; |
| 139 | pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF; | 132 | pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF; |
