ACPI and Gateway 400sd4 laptop
Nate Lawson
nate at root.org
Fri Jan 16 10:23:05 PST 2004
On Thu, 8 Jan 2004, Sean Lazar wrote:
> >> I have a Gateway 400SD4 laptop that I am having thermal issues with in
> >> FreeBSD-CURRENT. The two-speed fan dosen't seem to come on. With ACPI on,
> >> after the system has been running a little while and has warmed up, if I
> >> turn off acpi with "acpiconf -d" the fan will kick on immediately. After
> >> that the fan appears to behave normally, turning on and off when
> >> necessary.
> >> If the laptop boots warm with the fan on, it will shut off when it gets
> >> cool but it won't come back on again.
> >
> >Output from sysctl hw.acpi would help. You can also play with values from
> >0-2 for hw.acpi.tz0.active. That should manually turn the fan on at
> >various speeds.
> >
> >-Nate
>
> very interesting, it dosen't want to turn on the fan:
>
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=0
> hw.acpi.thermal.tz0.active: -1 -> -1
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=0
> hw.acpi.thermal.tz0.active: -1 -> -1
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=1
> hw.acpi.thermal.tz0.active: -1 -> -1
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=2
> hw.acpi.thermal.tz0.active: -1 -> -1
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=3
> hw.acpi.thermal.tz0.active: -1 -> 3
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=6
> hw.acpi.thermal.tz0.active: 3 -> 6
> freebsd-5_2# sysctl hw.acpi.thermal.tz0.active=0
> hw.acpi.thermal.tz0.active: 6 -> -1
Your ASL has something strange. Your ThermalZone has an _INI method.
Try the following patch:
Index: sys/dev/acpica/acpi_thermal.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpi_thermal.c,v
retrieving revision 1.35
diff -u -r1.35 acpi_thermal.c
--- sys/dev/acpica/acpi_thermal.c 12 Jan 2004 17:59:10 -0000 1.35
+++ sys/dev/acpica/acpi_thermal.c 16 Jan 2004 18:21:53 -0000
@@ -306,6 +306,9 @@
AcpiOsFree(sc->tz_zone.psl.Pointer);
bzero(&sc->tz_zone, sizeof(sc->tz_zone));
+ /* XXX Call _INI if it exists */
+ AcpiEvaluateObject(sc->tz_handle, "_INI", NULL, NULL);
+
/* Evaluate thermal zone parameters. */
for (i = 0; i < TZ_NUMLEVELS; i++) {
sprintf(nbuf, "_AC%d", i);
-Nate
More information about the freebsd-current
mailing list