Date: Sat, 16 Feb 2008 12:11:59 +0900 From: Hajimu UMEMOTO <ume@freebsd.org> To: "Alexandre \"Sunny\" Kovalenko" <alex.kovalenko@verizon.net> Cc: acpi@freebsd.org, Johannes Dieterich <dieterich.joh@googlemail.com>, Ian Smith <smithi@nimnet.asn.au> Subject: Re: [RFC] Patch to enable temperature ceiling in powerd Message-ID: <yger6fdk328.wl%ume@mahoroba.org> In-Reply-To: <1203126071.833.19.camel@RabbitsDen> References: <20080208045605.15C874500E@ptavv.es.net> <47ABF402.7030904@root.org> <1202475519.7014.7.camel@RabbitsDen> <yge1w7komar.wl%ume@mahoroba.org> <1203126071.833.19.camel@RabbitsDen>
index | next in thread | previous in thread | raw e-mail
Hi,
>>>>> On Fri, 15 Feb 2008 20:41:10 -0500
>>>>> "Alexandre \"Sunny\" Kovalenko" <alex.kovalenko@verizon.net> said:
alex> Thank you very much for pointing me in the right direction -- my system
alex> (ThinkPad X60 1709-73U) does provide _TSP, _TC1 and _TC2, just not in
alex> the tz0. All of that lives in tz1 and works perfectly -- as the matter
alex> of fact I am writing this E-mail after setting
alex> hw.acpi.thermal.tz1.passive_cooling: 1
alex> hw.acpi.thermal.user_override: 1
alex> hw.acpi.thermal.tz1._PSV: 55.0C
The current implementation attempts to enable passive cooling just for
tz0. Could you try the following patch? It should enable passive
cooling for tz1 on your laptop.
Index: sys/dev/acpica/acpi_thermal.c
diff -u -p sys/dev/acpica/acpi_thermal.c.orig sys/dev/acpica/acpi_thermal.c
--- sys/dev/acpica/acpi_thermal.c.orig Wed Aug 23 21:29:55 2006
+++ sys/dev/acpica/acpi_thermal.c Mon Aug 28 00:35:49 2006
@@ -172,6 +172,8 @@ static int acpi_tz_override;
static struct proc *acpi_tz_proc;
ACPI_LOCK_DECL(thermal, "ACPI thermal zone");
+static int acpi_tz_cooling_unit = -1;
+
static int
acpi_tz_probe(device_t dev)
{
@@ -205,17 +207,7 @@ acpi_tz_attach(device_t dev)
sc->tz_cooling_proc_running = FALSE;
sc->tz_cooling_active = FALSE;
sc->tz_cooling_updated = FALSE;
-
- /*
- * Always attempt to enable passive cooling for tz0. Users can enable
- * it for other zones manually for now.
- *
- * XXX We need to test if multiple zones conflict with each other
- * since cpufreq currently sets all CPUs to the given frequency whereas
- * it's possible for different thermal zones to specify independent
- * settings for multiple CPUs.
- */
- sc->tz_cooling_enabled = (device_get_unit(dev) == 0);
+ sc->tz_cooling_enabled = FALSE;
/*
* Parse the current state of the thermal zone and build control
@@ -309,16 +301,25 @@ acpi_tz_attach(device_t dev)
}
}
- /* Create a thread to handle passive cooling for each zone if enabled. */
+ /*
+ * Create a thread to handle passive cooling for 1st zone which
+ * has _PSV, _TSP, _TC1 and _TC2. Users can enable it for other
+ * zones manually for now.
+ *
+ * XXX We enable only one zone to avoid multiple zones conflict
+ * with each other since cpufreq currently sets all CPUs to the
+ * given frequency whereas it's possible for different thermal
+ * zones to specify independent settings for multiple CPUs.
+ */
+ if (acpi_tz_cooling_unit < 0 && acpi_tz_cooling_is_available(sc))
+ sc->tz_cooling_enabled = TRUE;
if (sc->tz_cooling_enabled) {
- if (acpi_tz_cooling_is_available(sc)) {
- error = acpi_tz_cooling_thread_start(sc);
- if (error != 0) {
- sc->tz_cooling_enabled = FALSE;
- goto out;
- }
- } else
+ error = acpi_tz_cooling_thread_start(sc);
+ if (error != 0) {
sc->tz_cooling_enabled = FALSE;
+ goto out;
+ }
+ acpi_tz_cooling_unit = device_get_unit(dev);
}
/*
Sincerely,
--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
ume@mahoroba.org ume@{,jp.}FreeBSD.org
http://www.imasy.org/~ume/
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?yger6fdk328.wl%ume>
