Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / drivers / acpi / osl.c
index 3abe9b2..9964f70 100644 (file)
@@ -152,6 +152,16 @@ static u32 acpi_osi_handler(acpi_string interface, u32 supported)
                        osi_linux.dmi ? " via DMI" : "");
        }
 
+       if (!strcmp("Darwin", interface)) {
+               /*
+                * Apple firmware will behave poorly if it receives positive
+                * answers to "Darwin" and any other OS. Respond positively
+                * to Darwin and then disable all other vendor strings.
+                */
+               acpi_update_interfaces(ACPI_DISABLE_ALL_VENDOR_STRINGS);
+               supported = ACPI_UINT32_MAX;
+       }
+
        return supported;
 }
 
@@ -825,7 +835,7 @@ acpi_os_install_interrupt_handler(u32 gsi, acpi_osd_handler handler,
 
        acpi_irq_handler = handler;
        acpi_irq_context = context;
-       if (request_irq(irq, acpi_irq, IRQF_SHARED | IRQF_NO_SUSPEND, "acpi", acpi_irq)) {
+       if (request_irq(irq, acpi_irq, IRQF_SHARED, "acpi", acpi_irq)) {
                printk(KERN_ERR PREFIX "SCI (IRQ%d) allocation failed\n", irq);
                acpi_irq_handler = NULL;
                return AE_NOT_ACQUIRED;