]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/i386/pci/acpi.c
Manual merge with Linus (conflict in drivers/input/misc/wistron_bnts.c)
[linux-2.6-omap-h63xx.git] / arch / i386 / pci / acpi.c
index 42913f43feb0edca0015a1f2013c609cc361d802..4c4522b43be5e9a6951e0b4cb7252f2ee67b73e9 100644 (file)
@@ -2,17 +2,31 @@
 #include <linux/acpi.h>
 #include <linux/init.h>
 #include <linux/irq.h>
-#include <asm/hw_irq.h>
+#include <asm/numa.h>
 #include "pci.h"
 
 struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum)
 {
+       struct pci_bus *bus;
+
        if (domain != 0) {
                printk(KERN_WARNING "PCI: Multiple domains not supported\n");
                return NULL;
        }
 
-       return pcibios_scan_root(busnum);
+       bus = pcibios_scan_root(busnum);
+#ifdef CONFIG_ACPI_NUMA
+       if (bus != NULL) {
+               int pxm = acpi_get_pxm(device->handle);
+               if (pxm >= 0) {
+                       bus->sysdata = (void *)(unsigned long)pxm_to_node(pxm);
+                       printk("bus %d -> pxm %d -> node %ld\n",
+                               busnum, pxm, (long)(bus->sysdata));
+               }
+       }
+#endif
+       
+       return bus;
 }
 
 extern int pci_routeirq;