Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15
authorManoj Iyer <manoj.iyer@canonical.com>
Fri, 14 Jan 2011 10:17:15 +0000 (10:17 +0000)
committerLeann Ogasawara <leann.ogasawara@canonical.com>
Mon, 28 Mar 2011 13:53:57 +0000 (06:53 -0700)
Set acpi_skip_timer_override to force ignoring BIOS
IRQ0 pin2 override. This fixes resume from suspend on
AMD based ThinkPad Edge 11,13,14 and 15.

Please note that with this patch applied, you will see
a warning message from the kernel, this is printed in acpi/boot.c
before it sets acpi_skip_timer_override=1;

[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: at /home/manjo/ubuntu-maverick-674710/arch/x86/kernel/acpi/boot.c:1345 dmi_ignore_irq0_timer_override+0x2e/0x52()
[    0.000000] Hardware name: 254523U
[    0.000000] ati_ixp4x0 quirk not complete.
[    0.000000] Modules linked in:
[    0.000000] Pid: 0, comm: swapper Not tainted 2.6.35-25-generic #43
[    0.000000] Call Trace:
[    0.000000]  [<c014ad42>] warn_slowpath_common+0x72/0xa0
[    0.000000]  [<c0826724>] ? dmi_ignore_irq0_timer_override+0x2e/0x52
[    0.000000]  [<c0826724>] ? dmi_ignore_irq0_timer_override+0x2e/0x52
[    0.000000]  [<c014ae13>] warn_slowpath_fmt+0x33/0x40
[    0.000000]  [<c0826724>] dmi_ignore_irq0_timer_override+0x2e/0x52
[    0.000000]  [<c04dd7d0>] dmi_check_system+0x30/0x50
[    0.000000]  [<c0826df4>] acpi_boot_table_init+0x10/0x7d
[    0.000000]  [<c0821ea7>] ? io_delay_init+0x16/0x18
[    0.000000]  [<c081f556>] setup_arch+0x562/0x645
[    0.000000]  [<c012cf19>] ? default_spin_lock_flags+0x9/0x10
[    0.000000]  [<c081b57b>] start_kernel+0xcf/0x374
[    0.000000]  [<c081b0d7>] i386_start_kernel+0xd7/0xdf
[    0.000000] ---[ end trace a7919e7f17c0a725 ]---
[    0.000000] ThinkPad Edge detected: Ignoring BIOS IRQ0 pin2 override

Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>

BugLink: http://launchpad.net/bugs/702434
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Andy Whitcroft <apw@canonical.com>

arch/x86/kernel/acpi/boot.c

index 3e6e2d6..7d3ac5a 100644 (file)
@@ -1425,6 +1425,42 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
                     DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
                     },
         },
+       /* ThinkPad Edge 11 (AMD) */
+       {
+        .callback = dmi_ignore_irq0_timer_override,
+        .ident = "ThinkPad Edge",
+        .matches = {
+                    DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+                    DMI_MATCH(DMI_PRODUCT_NAME, "254523U"),
+                   },
+       },
+       /* ThinkPad Edge 13 (AMD) */
+       {
+        .callback = dmi_ignore_irq0_timer_override,
+        .ident = "ThinkPad Edge",
+        .matches = {
+                    DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+                    DMI_MATCH(DMI_PRODUCT_NAME, "022120U"),
+                   },
+       },
+       /* ThinkPad Edge 14 (AMD) */
+       {
+        .callback = dmi_ignore_irq0_timer_override,
+        .ident = "ThinkPad Edge",
+        .matches = {
+                    DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+                    DMI_MATCH(DMI_PRODUCT_NAME, "019923U"),
+                   },
+       },
+       /* ThinkPad Edge 15 (AMD) */
+       {
+        .callback = dmi_ignore_irq0_timer_override,
+        .ident = "ThinkPad Edge",
+        .matches = {
+                    DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+                    DMI_MATCH(DMI_PRODUCT_NAME, "030222U"),
+                   },
+       },
        {}
 };