From owner-acpi-jp@jp.freebsd.org  Thu Jul 26 00:49:55 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id AAA18995;
	Thu, 26 Jul 2001 00:49:55 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from tasogare.imasy.or.jp (root@tasogare.imasy.or.jp [202.227.24.5])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id AAA18990
	for <acpi-jp@jp.freebsd.org>; Thu, 26 Jul 2001 00:49:55 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
Received: from localhost (iwasaki.imasy.or.jp [202.227.24.92])
	by tasogare.imasy.or.jp (8.11.3+3.4W/8.11.3/tasogare) with ESMTP/inet id f6PFnrI47155;
	Thu, 26 Jul 2001 00:49:53 +0900 (JST)
	(envelope-from iwasaki@jp.FreeBSD.org)
To: acpi-jp@jp.freebsd.org, andrew.grover@intel.com
Cc: msmith@freebsd.org
In-Reply-To: <4148FEAAD879D311AC5700A0C969E89006CDDFAB@orsmsx35.jf.intel.com>
References: <4148FEAAD879D311AC5700A0C969E89006CDDFAB@orsmsx35.jf.intel.com>
X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20010726004950X.iwasaki@jp.FreeBSD.org>
Date: Thu, 26 Jul 2001 00:49:50 +0900
From: Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
X-Dispatcher: imput version 20000228(IM140)
Lines: 40
Reply-To: acpi-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: acpi-jp 1192
Subject: [acpi-jp 1192] Re: ACPICA 20010717: S1 causes power-off 
Errors-To: owner-acpi-jp@jp.freebsd.org
Sender: owner-acpi-jp@jp.freebsd.org
X-Originator: iwasaki@jp.freebsd.org

Hi,

> I'm sure it is. I'll apply this to our tree right now.

Sorry, I've found that my TOSHIBA PORTEGE 3110CT have another problem
with previous patch; got `kernel trap 12 with interrupts disabled' 
on wakeup from S3 state.
# yes, FreeBSD has experimental S[2-4] sleep support.

I think calling AcpiOsStall() causes this problem.  Following is new
fix for this.

Thanks

Index: hwsleep.c
===================================================================
RCS file: /home/ncvs/src/sys/contrib/dev/acpica/hwsleep.c,v
retrieving revision 1.1.1.5
diff -u -r1.1.1.5 hwsleep.c
--- hwsleep.c	2001/07/21 03:55:15	1.1.1.5
+++ hwsleep.c	2001/07/25 15:26:25
@@ -295,11 +296,13 @@
     AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl);
     AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl);
 
-    /* wait a second, then try again */
-    AcpiOsStall(1000000);
-
-    AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1_CONTROL,
-        (1 << AcpiHwGetBitShift (SLP_EN_MASK)));
+    if (SleepState > ACPI_STATE_S3) {
+        /* wait a second, then try again */
+        AcpiOsStall(1000000);
+
+        AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1_CONTROL,
+            (1 << AcpiHwGetBitShift (SLP_EN_MASK)));
+    }
 
     enable();
 
