Subject: Re: ACPI in HEAD 4.9.42
To: None <current-users@netbsd.org>
From: Joerg Sonnenberger <joerg@britannica.bec.de>
List: current-users
Date: 12/14/2007 00:10:34
--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Mon, Dec 10, 2007 at 10:12:15PM +0000, Pavel Jirout wrote:
> after todays update of userland and kernel (GENERIC i386) I get these console messages
> Im using an IBM Thinkpad X24 (sorry, its old)

X24 is now considered old? I have an A20 that is certainly older :-)

The battery status methods are interesting. Can you try the attached
patch? Alternatively, try to increase EC_POLL_TIMEOUT to 1000 or so.

Joerg

--ibTvN161/egqYuK8
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="acpi_ec.c.diff"

Index: acpi_ec.c
===================================================================
RCS file: /data/repo/netbsd/src/sys/dev/acpi/acpi_ec.c,v
retrieving revision 1.44
diff -u -p -r1.44 acpi_ec.c
--- acpi_ec.c	9 Dec 2007 20:27:52 -0000	1.44
+++ acpi_ec.c	13 Dec 2007 23:08:09 -0000
@@ -537,7 +537,7 @@ retry:
 			delay(1);
 			acpiec_gpe_state_maschine(dv);
 		}
-	} else while (cv_timedwait(&sc->sc_cv, &sc->sc_mtx, hz)) {
+	} else while (cv_timedwait(&sc->sc_cv, &sc->sc_mtx, 5 * hz)) {
 		mutex_exit(&sc->sc_mtx);
 		AcpiClearGpe(sc->sc_gpeh, sc->sc_gpebit, ACPI_NOT_ISR);
 		mutex_enter(&sc->sc_mtx);
@@ -545,7 +545,7 @@ retry:
 			goto retry;
 		mutex_exit(&sc->sc_mtx);
 		acpiec_unlock(dv);
-		aprint_error_dev(dv, "command takes over 5sec...\n");
+		aprint_error_dev(dv, "command takes over 25 sec...\n");
 		return AE_ERROR;
 	}
 
@@ -583,7 +583,7 @@ retry:
 			delay(1);
 			acpiec_gpe_state_maschine(dv);
 		}
-	} else while (cv_timedwait(&sc->sc_cv, &sc->sc_mtx, hz)) {
+	} else while (cv_timedwait(&sc->sc_cv, &sc->sc_mtx, 5 * hz)) {
 		mutex_exit(&sc->sc_mtx);
 		AcpiClearGpe(sc->sc_gpeh, sc->sc_gpebit, ACPI_NOT_ISR);
 		mutex_enter(&sc->sc_mtx);
@@ -591,7 +591,7 @@ retry:
 			goto retry;
 		mutex_exit(&sc->sc_mtx);
 		acpiec_unlock(dv);
-		aprint_error_dev(dv, "command takes over 5sec...\n");
+		aprint_error_dev(dv, "command takes over 25 sec...\n");
 		return AE_ERROR;
 	}
 

--ibTvN161/egqYuK8--