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>
next in thread | previous in thread | raw e-mail | index | archive | help
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/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?yger6fdk328.wl%ume>