Skip to contentSkip to conversation

ACPI Poweroff fails on HP OmniBook 500

DISCUSSION Adam Kessel 2 participants 3 messages Oct 29, 2003 – Oct 31, 2003 2 messages not in the archive ACPI

lore
Share & tools
lore
#0 lore raw

I posted this recently to lkml, but got no response, so I thought I would report it here as well.[1]

In 2.4.22-rc2, ACPI poweroff worked fine on the HP OmniBook.

Since 2.4.22, all the way up to 2.4.23-pre8, the system fails to shutdown--the process gets to "power off" and hangs there. It is necessary to do a hard shut down to turn the system off.

There is no problem with rebooting.

Apparently this effects a number of HP laptops, although I have only verified it on the OmniBook 500.[2]

This problem is not present in 2.6.0-test9.

I am using force=acpi as required since I have an older BIOS. Apparently the problem occurs in OmniBook laptops they have newer BIOSes as well.

I expect this is related to the Sony VAIO problem discussed this month on this list as well.[3]

[1] http://www.ussg.iu.edu/hypermail/linux/kernel/0310.1/1625.html
[2] http://zurich.ai.mit.edu/pipermail/omnibook/2003-September/002805.html
[3] http://article.gmane.org/gmane.linux.acpi.devel/4770

-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/

A message that is not in the archive (sent off-list or not yet received): 20031029020636.GF29465-/[email protected]

#2 lore raw
Quoted 9 lines · Adam Kessel

I posted this recently to lkml, but got no response, so I thought I would report it here as well.[1]

In 2.4.22-rc2, ACPI poweroff worked fine on the HP OmniBook.

Since 2.4.22, all the way up to 2.4.23-pre8, the system fails to shutdown--the process gets to "power off" and hangs there. It is necessary to do a hard shut down to turn the system off.

Quoted 8 lines

There is no problem with rebooting.

Apparently this effects a number of HP laptops, although I have only verified it on the OmniBook 500.[2]

This problem is not present in 2.6.0-test9.

I am using force=acpi as required since I have an older BIOS. Apparently

You mean acpi=force, correct?

Quoted 4 lines

the problem occurs in OmniBook laptops they have newer BIOSes as well.

I expect this is related to the Sony VAIO problem discussed this month on this list as well.[3]

Could you please test this patch?
The problem being that we power down some devices twice.

drivers/acpi/system.c +8 -1
@@ -31,6 +31,7 @@
 #include <linux/spinlock.h>
 #include <linux/poll.h>
 #include <linux/delay.h>
+#include <linux/interrupt.h>
 #include <linux/sysrq.h>
 #include <linux/compatmac.h>
 #include <linux/proc_fs.h>
@@ -92,7 +93,13 @@
 static void
 acpi_power_off (void)
 {
-	acpi_suspend(ACPI_STATE_S5);
+	if (unlikely(in_interrupt())) 
+		BUG();
+	acpi_enter_sleep_state_prep(ACPI_STATE_S5);
+	ACPI_DISABLE_IRQS();
+	acpi_enter_sleep_state(ACPI_STATE_S5);
+
+	printk(KERN_EMERG "ACPI: can not power off machine\n");
 }
 
 #endif /*CONFIG_PM*/
Signature · 11 lines
Ducrot Bruno

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw
Quoted 2 lines · Ducrot Bruno
Quoted 1 line

I am using force=acpi as required since I have an older BIOS. Apparently

You mean acpi=force, correct?

Yes, typo.

Quoted 2 lines

Could you please test this patch?
The problem being that we power down some devices twice.

Yes, this patch fixes the problem 100%. Thanks.

Quoted 25 lines
drivers/acpi/system.c +8 -1
@@ -31,6 +31,7 @@
 #include <linux/spinlock.h>
 #include <linux/poll.h>
 #include <linux/delay.h>
+#include <linux/interrupt.h>
 #include <linux/sysrq.h>
 #include <linux/compatmac.h>
 #include <linux/proc_fs.h>
@@ -92,7 +93,13 @@
 static void
 acpi_power_off (void)
 {
-	acpi_suspend(ACPI_STATE_S5);
+	if (unlikely(in_interrupt())) 
+		BUG();
+	acpi_enter_sleep_state_prep(ACPI_STATE_S5);
+	ACPI_DISABLE_IRQS();
+	acpi_enter_sleep_state(ACPI_STATE_S5);
+
+	printk(KERN_EMERG "ACPI: can not power off machine\n");
 }
 
 #endif /*CONFIG_PM*/
Signature · 9 lines
Adam Kessel
http://bostoncoop.net/adam


-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/