]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/acpi/pci_link.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-omap-h63xx.git] / drivers / acpi / pci_link.c
index 65bf4fa596336534cd69dab10ad18a3f10239216..e52ad91ce2dc2c93b76f887cd0902806ef1af013 100644 (file)
@@ -531,7 +531,7 @@ int __init acpi_irq_penalty_init(void)
        return 0;
 }
 
-static int acpi_irq_balance;   /* 0: static, 1: balance */
+static int acpi_irq_balance = -1;      /* 0: static, 1: balance */
 
 static int acpi_pci_link_allocate(struct acpi_pci_link *link)
 {
@@ -737,7 +737,7 @@ static int acpi_pci_link_add(struct acpi_device *device)
        link->device = device;
        strcpy(acpi_device_name(device), ACPI_PCI_LINK_DEVICE_NAME);
        strcpy(acpi_device_class(device), ACPI_PCI_LINK_CLASS);
-       acpi_driver_data(device) = link;
+       device->driver_data = link;
 
        mutex_lock(&acpi_link_lock);
        result = acpi_pci_link_get_possible(link);
@@ -950,10 +950,17 @@ device_initcall(irqrouter_init_sysfs);
 
 static int __init acpi_pci_link_init(void)
 {
-
        if (acpi_noirq)
                return 0;
 
+       if (acpi_irq_balance == -1) {
+               /* no command line switch: enable balancing in IOAPIC mode */
+               if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC)
+                       acpi_irq_balance = 1;
+               else
+                       acpi_irq_balance = 0;
+       }
+
        acpi_link.count = 0;
        INIT_LIST_HEAD(&acpi_link.entries);