From owner-acpi-jp@jp.FreeBSD.org Wed Sep 10 23:19:18 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id h8AEJIq94305;
	Wed, 10 Sep 2003 23:19:18 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from st68.arena.ne.jp (st68.arena.ne.jp [203.138.213.2])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id h8AEJIw94300
	for <acpi-jp@jp.FreeBSD.org>; Wed, 10 Sep 2003 23:19:18 +0900 (JST)
	(envelope-from aizu@navi.org)
Received: (qmail 13537 invoked by SAV 20030909.8); 10 Sep 2003 23:19:16 +0900
Received: from unknown (HELO localhost) (219.164.152.84)
  by st68.arena.ne.jp with SMTP; 10 Sep 2003 23:19:16 +0900
From: Hiroyuki Aizu <aizu@navi.org>
To: acpi-jp@jp.FreeBSD.org
Message-Id: <20030910231917.06276ec7.aizu@navi.org>
Organization: navi.org
X-Mailer: Sylpheed version 0.9.4 (GTK+ 1.2.10; i386-portbld-freebsd5.1)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Reply-To: acpi-jp@jp.FreeBSD.org
Precedence: list
Date: Wed, 10 Sep 2003 23:19:17 +0900
X-Sequence: acpi-jp 2659
Subject: [acpi-jp 2659] Patch to acpi_cmbat.c for TOSHIBA note PC.
Sender: owner-acpi-jp@jp.FreeBSD.org
X-Originator: aizu@navi.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+030902

Hi.

I was notice that when battery exchange normal battery to large battery,
battery information does not update.

If take battery off and attach, TOSHIBA notebook ACPI call
each method "Notify (\_SB.BAT1, 0x00)" "Notify (\_SB.BAT1, 0x01)".
So this patch is very usefull.

In addition acpi_acad.c has same workaround for FIVA.

--
Hiroyuki Aizu


--- acpi_cmbat.c.orig	Mon Aug 18 10:43:15 2003
+++ acpi_cmbat.c	Wed Sep  3 19:02:34 2003
@@ -296,9 +296,11 @@
 	return;
 
     switch (notify) {
+    case ACPI_NOTIFY_DEVICE_CHECK:
     case ACPI_BATTERY_BST_CHANGE:
 	timespecclear(&sc->bst_lastupdated);
 	break;
+    case ACPI_NOTIFY_BUS_CHECK:
     case ACPI_BATTERY_BIF_CHANGE:
 	timespecclear(&sc->bif_lastupdated);
 	AcpiOsQueueForExecution(OSD_PRIORITY_LO, acpi_cmbat_get_bif, dev);
@@ -331,6 +333,8 @@
 	return (ENXIO);
 
     handle = acpi_get_handle(dev);
+    AcpiInstallNotifyHandler(handle, ACPI_SYSTEM_NOTIFY,
+			     acpi_cmbat_notify_handler, dev);
     AcpiInstallNotifyHandler(handle, ACPI_DEVICE_NOTIFY,
 			     acpi_cmbat_notify_handler, dev);
 


