[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <w4ehxqf0q1.wl%peter@chubb.wattle.id.au>
Date: Thu, 03 Nov 2011 12:34:14 +1100
From: Peter Chubb <peter.chubb@...ta.com.au>
To: Vasily Khoruzhick <anarsoul@...il.com>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
Don Zickus <dzickus@...hat.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Peter Chubb <peter.chubb@...ta.com.au>,
linux-kernel@...r.kernel.org, stable@...nel.org,
Uroš Vampl <mobile.leecher@...il.com>
Subject: Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
>>>>> "Vasily" == Vasily Khoruzhick <anarsoul@...il.com> writes:
Vasily> From: Uroš Vampl <mobile.leecher@...il.com> Starting with
Vasily> kernel 3.0, my Acer Aspire One AOA110 hangs on reboot. Doing
Vasily> an internet search, I found that in git commit
Vasily> b49c78d4827be8d7e67e5b94adac6b30a4a9ad14 the machine was made
Vasily> to reboot with the bios method, but it does not work on most
Vasily> (all?) AOA110s.
That change was made in July to fix the broken ACPI reboot method. It
certainly works on my AOA110. What BIOS do you have installed?
(although looking at what's been published, I can't see any booting
problems mentioned in the BIOS changelogs).
Vasily> This patch introduces new quirks section for machines that
Vasily> only reboot with the kbd method and put the Aspire One into
Vasily> it.
You don't need yet another table, just change the callback.
Try this:
Index: linux-2.6/arch/x86/kernel/reboot.c
===================================================================
--- linux-2.6.orig/arch/x86/kernel/reboot.c 2011-10-31 14:35:50.105623537 +1100
+++ linux-2.6/arch/x86/kernel/reboot.c 2011-11-03 11:54:12.487901547 +1100
@@ -124,7 +124,7 @@
*/
/*
- * Some machines require the "reboot=b" commandline option,
+ * Some machines require the "reboot=b" or "reboot=k" commandline options,
* this quirk makes that automatic.
*/
static int __init set_bios_reboot(const struct dmi_system_id *d)
@@ -136,6 +136,15 @@
return 0;
}
+static int __init set_kbd_reboot(const struct dmi_system_id *d)
+{
+ if (reboot_type != BOOT_KBD) {
+ reboot_type = BOOT_KBD;
+ printk(KERN_INFO "%s series board detected. Selecting KBD-method for reboots.\n", d->ident);
+ }
+ return 0;
+}
+
static struct dmi_system_id __initdata reboot_dmi_table[] = {
{ /* Handle problems with rebooting on Dell E520's */
.callback = set_bios_reboot,
@@ -295,7 +304,7 @@
},
},
{ /* Handle reboot issue on Acer Aspire one */
- .callback = set_bios_reboot,
+ .callback = set_kbd_reboot,
.ident = "Acer Aspire One A110",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
--
Dr Peter Chubb peter DOT chubb AT nicta.com.au
http://www.ertos.nicta.com.au ERTOS within National ICT Australia
All things shall perish from under the sky/Music alone shall live, never to die
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists