linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
@ 2011-11-02 13:34 Vasily Khoruzhick
  2011-11-03  1:34 ` Peter Chubb
  0 siblings, 1 reply; 7+ messages in thread
From: Vasily Khoruzhick @ 2011-11-02 13:34 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Don Zickus,
	Peter Zijlstra, Peter Chubb, linux-kernel, stable
  Cc: Uroš Vampl, Vasily Khoruzhick

From: Uroš Vampl <mobile.leecher@gmail.com>

Starting with kernel 3.0, my Acer Aspire One AOA110 hangs on reboot. Doing
an internet search, I found that in git commit
b49c78d4827be8d7e67e5b94adac6b30a4a9ad14 the machine was made to reboot with
the bios method, but it does not work on most (all?) AOA110s.

This patch introduces new quirks section for machines that only reboot with
the kbd method and put the Aspire One into it.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Uroš Vampl <mobile.leecher@gmail.com>
---
 arch/x86/kernel/reboot.c |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index e334be1..f4544b1 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -294,8 +294,33 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
 			DMI_MATCH(DMI_BOARD_NAME, "VersaLogic Menlow board"),
 		},
 	},
+	{ }
+};
+
+static int __init reboot_init(void)
+{
+	dmi_check_system(reboot_dmi_table);
+	return 0;
+}
+core_initcall(reboot_init);
+
+/*
+ * Some machines require the "reboot=k" commandline option,
+ * this quirk makes that automatic.
+ */
+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 kbd_reboot_dmi_table[] = {
 	{ /* 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"),
@@ -305,12 +330,12 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = {
 	{ }
 };
 
-static int __init reboot_init(void)
+static int __init kbd_reboot_init(void)
 {
-	dmi_check_system(reboot_dmi_table);
+	dmi_check_system(kbd_reboot_dmi_table);
 	return 0;
 }
-core_initcall(reboot_init);
+core_initcall(kbd_reboot_init);
 
 extern const unsigned char machine_real_restart_asm[];
 extern const u64 machine_real_restart_gdt[3];
-- 
1.7.7.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
  2011-11-02 13:34 [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110 Vasily Khoruzhick
@ 2011-11-03  1:34 ` Peter Chubb
  2011-11-03  6:25   ` Vasily Khoruzhick
                     ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Peter Chubb @ 2011-11-03  1:34 UTC (permalink / raw)
  To: Vasily Khoruzhick
  Cc: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Don Zickus,
	Peter Zijlstra, Peter Chubb, linux-kernel, stable,
	Uroš Vampl

>>>>> "Vasily" == Vasily Khoruzhick <anarsoul@gmail.com> writes:

Vasily> From: Uroš Vampl <mobile.leecher@gmail.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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
  2011-11-03  1:34 ` Peter Chubb
@ 2011-11-03  6:25   ` Vasily Khoruzhick
  2011-11-03 13:35   ` Uros Vampl
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Vasily Khoruzhick @ 2011-11-03  6:25 UTC (permalink / raw)
  To: Peter Chubb
  Cc: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Don Zickus,
	Peter Zijlstra, linux-kernel, stable, Uroš Vampl

On Thu, 2011-11-03 at 12:34 +1100, Peter Chubb wrote:

> 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).

v0.3310 from Acer site. With BIOS reboot method AOA110 just hangs with
black screeen on reboot.

I'm not the only one who has this problem, take a look at this link:
https://bbs.archlinux.org/viewtopic.php?id=124136

> You don't need yet another table, just change the callback.
> 
> 
> Try this:

Sure, this patch should work. Will test tonight.

Regards
Vasily

> 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



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
  2011-11-03  1:34 ` Peter Chubb
  2011-11-03  6:25   ` Vasily Khoruzhick
@ 2011-11-03 13:35   ` Uros Vampl
  2011-11-04  9:53     ` Vasily
  2011-11-16 14:49   ` Vasily
  2011-12-05 11:20   ` Ingo Molnar
  3 siblings, 1 reply; 7+ messages in thread
From: Uros Vampl @ 2011-11-03 13:35 UTC (permalink / raw)
  To: Peter Chubb
  Cc: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Don Zickus,
	Peter Zijlstra, linux-kernel, Vasily Khoruzhick

On 03.11.11 12:34, Peter Chubb wrote:
> >>>>> "Vasily" == Vasily Khoruzhick <anarsoul@gmail.com> writes:
> 
> Vasily> From: Uroš Vampl <mobile.leecher@gmail.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).

My bios is v0.3309. An unpatched kernel will hang on a black screen at 
reboot, the only way out is holding the power button for 5 seconds to 
turn the machine off.

> 
> 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:

Yes, this works too.

Regards,
Uroš


> 
> 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
  2011-11-03 13:35   ` Uros Vampl
@ 2011-11-04  9:53     ` Vasily
  0 siblings, 0 replies; 7+ messages in thread
From: Vasily @ 2011-11-04  9:53 UTC (permalink / raw)
  To: Uros Vampl
  Cc: Peter Chubb, Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86,
	Don Zickus, Peter Zijlstra, linux-kernel

2011/11/3 Uros Vampl <mobile.leecher@gmail.com>:
>>
>> Try this:
>
> Yes, this works too.

Works for me aswell.

So,

Tested-by: Vasily Khoruzhick <anarsoul@gmail.com>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
  2011-11-03  1:34 ` Peter Chubb
  2011-11-03  6:25   ` Vasily Khoruzhick
  2011-11-03 13:35   ` Uros Vampl
@ 2011-11-16 14:49   ` Vasily
  2011-12-05 11:20   ` Ingo Molnar
  3 siblings, 0 replies; 7+ messages in thread
From: Vasily @ 2011-11-16 14:49 UTC (permalink / raw)
  To: Peter Chubb
  Cc: Thomas Gleixner, Ingo Molnar, H. Peter Anvin, x86, Don Zickus,
	Peter Zijlstra, linux-kernel, stable, Uroš Vampl

2011/11/3 Peter Chubb <peter.chubb@nicta.com.au>:
>>>>>> "Vasily" == Vasily Khoruzhick <anarsoul@gmail.com> writes:
>
> Vasily> From: Uroš Vampl <mobile.leecher@gmail.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:

Any chance to get this patch merged? Would be nice to see it in stable aswell.

Regards
Vasily

> 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
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110
  2011-11-03  1:34 ` Peter Chubb
                     ` (2 preceding siblings ...)
  2011-11-16 14:49   ` Vasily
@ 2011-12-05 11:20   ` Ingo Molnar
  3 siblings, 0 replies; 7+ messages in thread
From: Ingo Molnar @ 2011-12-05 11:20 UTC (permalink / raw)
  To: Peter Chubb
  Cc: Vasily Khoruzhick, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	x86, Don Zickus, Peter Zijlstra, linux-kernel, stable,
	Uroš Vampl


* Peter Chubb <peter.chubb@nicta.com.au> wrote:

> >>>>> "Vasily" == Vasily Khoruzhick <anarsoul@gmail.com> writes:
> 
> Vasily> From: Uroš Vampl <mobile.leecher@gmail.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"),

Looks like this patch worked fine for everyone affected?

If yes then please resend it with a Signed-off-by, and with the 
proper Reported-by and Tested-by tags.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-12-05 11:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-02 13:34 [PATCH RESEND] Fix reboot regression on Acer Aspire One AOA110 Vasily Khoruzhick
2011-11-03  1:34 ` Peter Chubb
2011-11-03  6:25   ` Vasily Khoruzhick
2011-11-03 13:35   ` Uros Vampl
2011-11-04  9:53     ` Vasily
2011-11-16 14:49   ` Vasily
2011-12-05 11:20   ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).