From owner-freebsd-acpi@FreeBSD.ORG Sun Jul 29 01:21:20 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D0EB16A417; Sun, 29 Jul 2007 01:21:20 +0000 (UTC) (envelope-from joao@matik.com.br) Received: from msrv.matik.com.br (msrv.matik.com.br [200.152.83.14]) by mx1.freebsd.org (Postfix) with ESMTP id 5A4B513C483; Sun, 29 Jul 2007 01:21:18 +0000 (UTC) (envelope-from joao@matik.com.br) Received: from ap-h.matik.com.br (ap-h.matik.com.br [200.152.83.36]) by msrv.matik.com.br (8.14.1/8.13.1) with ESMTP id l6T1LJ3a030525; Sat, 28 Jul 2007 22:21:19 -0300 (BRT) (envelope-from joao@matik.com.br) From: JoaoBR Organization: Infomatik To: freebsd-stable@freebsd.org Date: Sat, 28 Jul 2007 22:21:15 -0300 User-Agent: KMail/1.9.7 References: <200707271109.51334.joao@matik.com.br> <200707290833.56202.joao@matik.com.br> <46AB48A7.8060103@freebsd.org> In-Reply-To: <46AB48A7.8060103@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200707282221.15879.joao@matik.com.br> X-Virus-Scanned: ClamAV version 0.90.3, clamav-milter version 0.90.3 on msrv.matik.com.br X-Virus-Status: Clean Cc: bruno@freebsd.org, freebsd-acpi@freebsd.org, Michael Nottebrock Subject: Re: powerd freeze with amd 5000 X2 but not with lower cpus X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jul 2007 01:21:20 -0000 On Saturday 28 July 2007 10:46:15 Michael Nottebrock wrote: > >> > >> Good to hear. Unfortunately my Mobo's BIOS is already up-to-date, the > >> CPU is officially supported and Cool'n'Quiet works dandy in Windows XP > >> ... =3D/ > > > > my ok msg was too fast, after some time my video starts flickering and > > stays so and the PC is freezed up, disabling powerd and works stable > > Meanwhile I found a workaround for my system: I had SCHED_ULE configured > in my kernel - switching to SCHED_4BSD gets rid of the freezes. Should > have thought of that sooner, ISTR having problems with powerd and > SCHED_ULE even on single cpu P4s. > I spend some time here on different MBs with the same 5000+ cpu, comparing= =20 i386 and amd64 I cvsuped both sources and compiled world and kernel an hour ago firstable, smp (either 4BSD or ULE) with powerd_enable (cpufreq in kernel)= =20 works as long as no xorg is started (GENERIC, no sysctl, no loader.conf=20 options) nevertheless strange, on all MBs, same CPU: i386: dev.cpu.0.freq_levels: 2600/100000 2400/85596 2200/72544 2000/60778 1800/50= 237=20 1575/43957 1350/37677 1125/31398 1000/25535 875/22343 750/19151 625/15959=20 500/12767 375/9575 250/6383 125/3191 amd64:dev.cpu.0.freq_levels: 2600/100000 2400/85596 2200/72544 2000/60778=20 1800/50237 1000/25535 both, amd64 and i386 with same ports and up to date wether 4BSD or ULE on i386 freeze soon as xorg starts when powerd is enabled ULE freeze on xorg start before coming up and 4BSD comes up and works for a= =20 certain time on amd64 (5-30 minutes)=20 all kernels are compiled with make.conf option "CPUTYPE?=3Dathlon64" beeing= =20 translated appearently to the same "athlon-mp" option when available somebody knows why I get different frequencies under i386 and amd64 for the= =20 same hardware? =2D-=20 Jo=E3o A mensagem foi scaneada pelo sistema de e-mail e pode ser considerada segura. Service fornecido pelo Datacenter Matik https://datacenter.matik.com.br From owner-freebsd-acpi@FreeBSD.ORG Sun Jul 29 22:41:56 2007 Return-Path: Delivered-To: freebsd-acpi@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27F3216A420; Sun, 29 Jul 2007 22:41:56 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 0196913C442; Sun, 29 Jul 2007 22:41:55 +0000 (UTC) (envelope-from linimon@FreeBSD.org) Received: from freefall.freebsd.org (linimon@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l6TMftvO092344; Sun, 29 Jul 2007 22:41:55 GMT (envelope-from linimon@freefall.freebsd.org) Received: (from linimon@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l6TMft8K092340; Sun, 29 Jul 2007 22:41:55 GMT (envelope-from linimon) Date: Sun, 29 Jul 2007 22:41:55 GMT Message-Id: <200707292241.l6TMft8K092340@freefall.freebsd.org> To: linimon@FreeBSD.org, freebsd-amd64@FreeBSD.org, freebsd-acpi@FreeBSD.org From: linimon@FreeBSD.org Cc: Subject: Re: amd64/115011: ACPI problem ,reboot system down. X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jul 2007 22:41:56 -0000 Synopsis: ACPI problem ,reboot system down. Responsible-Changed-From-To: freebsd-amd64->freebsd-acpi Responsible-Changed-By: linimon Responsible-Changed-When: Sun Jul 29 22:41:42 UTC 2007 Responsible-Changed-Why: Over to maintainer(s). http://www.freebsd.org/cgi/query-pr.cgi?pr=115011 From owner-freebsd-acpi@FreeBSD.ORG Mon Jul 30 09:39:27 2007 Return-Path: Delivered-To: freebsd-acpi@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 878F116A469; Mon, 30 Jul 2007 09:39:27 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 6348813C46A; Mon, 30 Jul 2007 09:39:27 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from freefall.freebsd.org (gavin@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l6U9dROI031476; Mon, 30 Jul 2007 09:39:27 GMT (envelope-from gavin@freefall.freebsd.org) Received: (from gavin@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l6U9dRpk031472; Mon, 30 Jul 2007 09:39:27 GMT (envelope-from gavin) Date: Mon, 30 Jul 2007 09:39:27 GMT Message-Id: <200707300939.l6U9dRpk031472@freefall.freebsd.org> To: merlin.germany@gmx.net, gavin@FreeBSD.org, freebsd-acpi@FreeBSD.org From: gavin@FreeBSD.org Cc: Subject: Re: i386/67273: [hang] system hangs with acpi and Xfree X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2007 09:39:27 -0000 Synopsis: [hang] system hangs with acpi and Xfree State-Changed-From-To: feedback->closed State-Changed-By: gavin State-Changed-When: Mon Jul 30 09:38:20 UTC 2007 State-Changed-Why: Feedback timeout (1 month), not enough info in PR to investigate further http://www.freebsd.org/cgi/query-pr.cgi?pr=67273 From owner-freebsd-acpi@FreeBSD.ORG Mon Jul 30 11:08:08 2007 Return-Path: Delivered-To: freebsd-acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BF20716A421 for ; Mon, 30 Jul 2007 11:08:08 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 974D913C45D for ; Mon, 30 Jul 2007 11:08:08 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id l6UB88qK040508 for ; Mon, 30 Jul 2007 11:08:08 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.1/8.14.1/Submit) id l6UB87jm040504 for freebsd-acpi@FreeBSD.org; Mon, 30 Jul 2007 11:08:07 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 30 Jul 2007 11:08:07 GMT Message-Id: <200707301108.l6UB87jm040504@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-acpi@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2007 11:08:08 -0000 Current FreeBSD problem reports Critical problems Serious problems S Tracker Resp. Description -------------------------------------------------------------------------------- o i386/54756 acpi ACPI suspend/resume problem on CF-W2 laptop o i386/55661 acpi ACPI suspend/resume problem on ARMADA M700 o kern/56024 acpi ACPI suspend drains battery while in S3 o i386/72566 acpi ACPI, FreeBSD disables fan on Compaq Armada 1750 s i386/79080 acpi acpi thermal changes freezes HP nx6110 o i386/79081 acpi ACPI suspend/resume not working on HP nx6110 s i386/91748 acpi acpi problem on Acer TravelMare 4652LMi (nvidia panic, o kern/102252 acpi acpi thermal does not work on Abit AW8D (intel 975) o kern/104625 acpi ACPI on ASUS A8N-32 SLI/ASUS P4P800 does not show ther o kern/106924 acpi [acpi] ACPI resume returns g_vfs_done() errors and ker o kern/114113 acpi [patch] ACPI kernel panic during S3 suspend / resume o i386/114562 acpi [acpi] cardbus is dead after s3 on Thinkpad T43 with a o amd64/115011 acpi ACPI problem ,reboot system down. 13 problems total. Non-critical problems S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/67309 acpi zzz reboot computer (ACPI S3) o i386/69750 acpi Boot without ACPI failed on ASUS L5 o i386/72179 acpi [acpi] [patch] Inconsistent apm(8) output regarding th o kern/73823 acpi [feature request] acpi / power-on by timer support o kern/76950 acpi ACPI wrongly blacklisted on Micron ClientPro 766Xi sys o kern/89411 acpi [acpi] acpiconf bug o kern/97383 acpi Volume buttons on IBM Thinkpad crash system with ACPI o kern/98171 acpi [acpi] ACPI 1304 / 0501 errors on Acer 5024WLMi Laptop o kern/103365 acpi [acpi] acpi poweroff doesn't work with geli device att o kern/105537 acpi [acpi] problems in acpi on HP Compaq nc6320 o kern/108017 acpi [acpi]: Acer Aspire 5600 o kern/108488 acpi [acpi] ACPI-1304: *** Error: Method execution failed o kern/108581 acpi [sysctl] sysctl: hw.acpi.cpu.cx_lowest: Invalid argume o kern/108695 acpi [acpi]: Fatal trap 9: general protection fault when in o kern/111591 acpi [acpi] dev.acpi_ibm.0.events returns I/O error (regres o kern/112544 acpi [acpi] [patch] Add High Precision Event Timer Driver f o kern/114165 acpi Dell C810 - ACPI problem o kern/114722 acpi [acpi] [patch] Nearly duplicate p-state entries report 18 problems total. From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 01:21:36 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6753416A41F; Tue, 31 Jul 2007 01:21:36 +0000 (UTC) (envelope-from ume@mahoroba.org) Received: from ameno.mahoroba.org (ent.mahoroba.org [IPv6:2001:2f0:104:8010::1]) by mx1.freebsd.org (Postfix) with ESMTP id 2AC3D13C494; Tue, 31 Jul 2007 01:21:36 +0000 (UTC) (envelope-from ume@mahoroba.org) Received: from localhost (IDENT:Rj5/VaKa3xTe9rXavv+HMHAffYHAeeMNXv6uO7M5nKRLb1DCakDgE5mTh6GZlmWd@localhost [IPv6:::1]) (user=ume mech=CRAM-MD5 bits=0) by ameno.mahoroba.org (8.13.8/8.13.8) with ESMTP/inet6 id l6V1LOKj077311 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 31 Jul 2007 10:21:28 +0900 (JST) (envelope-from ume@mahoroba.org) Date: Tue, 31 Jul 2007 10:21:24 +0900 Message-ID: From: Hajimu UMEMOTO To: Pietro Cerutti In-Reply-To: <46AE58B5.3080506@gahr.ch> References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> User-Agent: xcite1.57> Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.7 Emacs/22.1 (i386-pc-freebsd) MULE/5.0 (SAKAKI) X-Operating-System: FreeBSD 6.2-RELEASE-p4 X-PGP-Key: http://www.imasy.or.jp/~ume/publickey.asc X-PGP-Fingerprint: 1F00 0B9E 2164 70FC 6DC5 BF5F 04E9 F086 BF90 71FE Organization: Internet Mutual Aid Society, YOKOHAMA MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-3.0 (ameno.mahoroba.org [IPv6:::1]); Tue, 31 Jul 2007 10:21:28 +0900 (JST) X-Virus-Scanned: by amavisd-new X-Virus-Status: Clean X-Spam-Status: No, score=-0.5 required=5.0 tests=AWL,BAYES_00, DKIM_POLICY_SIGNSOME,DK_POLICY_SIGNSOME,HELO_LOCALHOST autolearn=no version=3.2.1 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on ameno.mahoroba.org Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 01:21:36 -0000 Hi, >>>>> On Mon, 30 Jul 2007 23:31:33 +0200 >>>>> Pietro Cerutti said: gahr> I can't test it, since I can't use passive cooling, but how do not these gahr> two systems interfere with each other wrt setting the CPU frequency? gahr> What if, for example, my CPU temperature rises above _PSV but the CPU gahr> usage drops below 65%? Do you mean that your hw.acpi.thermal.tz0._PSV has reasonable value? If so, perhaps, your ACPI BIOS is broken, and _TC1, _TC2 and _TSP are not defined correctly. Please show me the output of `sysctl hw.acpi' and `acpidump -dt'. gahr> In this case, the CPU frequency should be increased according to gahr> powerd's algorithm and should be decreased according to passive gahr> cooling's algorithm. gahr> Wouldn't it be better to have one subsystem deal with both usage and gahr> temperature in order to decide which is the best next frequency to be set? No, we have a priority to control a cpufreq in our kernel, to deal with conflict between kernel and userland. Controlling cpufreq within our kernel is considered as high proirity. So, during our kernel is controlling a cpufreq, we cannot change cpufreq from userland. And, our kernel releasing the control, a cpufreq is back to the value before our kernel changed it. gahr> My patch is really just a first draft that I wrote in order to have gahr> feedbacks on the general idea to implement a temperature controlling gahr> system inside powerd, and doesn't implement hysteresis as you noted, and gahr> your feedback is that it's not a good idea, which I respect. It is rather backward, IMHO. I did implement a passive cooling feature as an enhancement of powerd(8) like you did, during initial phases. Then, I implemented it in our kernel as a result. Sincerely, -- Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan ume@mahoroba.org ume@{,jp.}FreeBSD.org http://www.imasy.org/~ume/ From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 01:25:18 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DFAFC16A419 for ; Tue, 31 Jul 2007 01:25:18 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id B5E9613C45D for ; Tue, 31 Jul 2007 01:25:18 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 22231 invoked from network); 31 Jul 2007 01:25:20 -0000 Received: from ppp-71-139-42-13.dsl.snfc21.pacbell.net (HELO ?10.0.0.15?) (nate-mail@71.139.42.13) by root.org with ESMTPA; 31 Jul 2007 01:25:20 -0000 Message-ID: <46AE8F78.1060203@root.org> Date: Mon, 30 Jul 2007 18:25:12 -0700 From: Nate Lawson User-Agent: Thunderbird 2.0.0.4 (X11/20070620) MIME-Version: 1.0 To: Hajimu UMEMOTO References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> In-Reply-To: X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, Pietro Cerutti Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 01:25:19 -0000 Hajimu UMEMOTO wrote: >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 >>>>>> Pietro Cerutti said: > gahr> My patch is really just a first draft that I wrote in order to have > gahr> feedbacks on the general idea to implement a temperature controlling > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and > gahr> your feedback is that it's not a good idea, which I respect. > > It is rather backward, IMHO. I did implement a passive cooling > feature as an enhancement of powerd(8) like you did, during initial > phases. Then, I implemented it in our kernel as a result. I'll take a look at your patch. Umemoto-san is right in that you really want the kernel to control cooling. What happens if powerd dies/hangs and your system burns up? Passive cooling is often a last resort to keep the system from overheating. -Nate From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 06:01:07 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E1CC16A417; Tue, 31 Jul 2007 06:01:07 +0000 (UTC) (envelope-from ports@fsck.ch) Received: from secure.socket.ch (secure.socket.ch [212.103.70.36]) by mx1.freebsd.org (Postfix) with ESMTP id 1F17813C457; Tue, 31 Jul 2007 06:01:07 +0000 (UTC) (envelope-from ports@fsck.ch) Received: from localhost ([127.0.0.1] helo=secure.socket.ch) by secure.socket.ch with esmtp (Exim 4.67 (FreeBSD)) (envelope-from ) id 1IFkO8-000A7S-Jv; Tue, 31 Jul 2007 07:35:22 +0200 Received: from 62.2.233.2 (SquirrelMail authenticated user roth@fsck.ch) by secure.socket.ch with HTTP; Tue, 31 Jul 2007 07:35:20 +0200 (CEST) Message-ID: <46976.62.2.233.2.1185860120.squirrel@secure.socket.ch> In-Reply-To: <46AE8F78.1060203@root.org> References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> Date: Tue, 31 Jul 2007 07:35:20 +0200 (CEST) From: ports@fsck.ch To: "Nate Lawson" User-Agent: SquirrelMail/1.4.10a MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Spam-Score: -1.4 (-) X-Spam-Report: Spam detection software, running on the system "secure.socket.ch", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see The administrator of that system for details. Content preview: > I'll take a look at your patch. Umemoto-san is right in that you really > want the kernel to control cooling. What happens if powerd dies/hangs > and your system burns up? Passive cooling is often a last resort to > keep the system from overheating. [...] Content analysis details: (-1.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.4 ALL_TRUSTED Passed through trusted hosts only via SMTP 0.0 DK_POLICY_SIGNSOME Domain Keys: policy says domain signs some mails 0.0 DKIM_POLICY_SIGNSOME Domain Keys Identified Mail: policy says domain signs some mails X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ports@fsck.ch X-SA-Exim-Scanned: No (on secure.socket.ch); SAEximRunCond expanded to false Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, Pietro Cerutti Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 06:01:07 -0000 > I'll take a look at your patch. Umemoto-san is right in that you really > want the kernel to control cooling. What happens if powerd dies/hangs > and your system burns up? Passive cooling is often a last resort to > keep the system from overheating. Something like that happened to me once. I was playing around with the thinkpad fancontrol utility and I turned the fan off. I started a buildworld, forgot to turn the fan back on, and went to bed. The next morning, the laptop was shut down, and I had a syslogged message along the lines "CPU temp is 100 dec c, emergency shutdown". I don't know the exact wording, but the 100 dec C was in there. No noticable impact to the system. Whew. From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 06:43:22 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1DBE16A41F; Tue, 31 Jul 2007 06:43:22 +0000 (UTC) (envelope-from ume@mahoroba.org) Received: from ameno.mahoroba.org (ent.mahoroba.org [IPv6:2001:2f0:104:8010::1]) by mx1.freebsd.org (Postfix) with ESMTP id 53FDF13C469; Tue, 31 Jul 2007 06:43:22 +0000 (UTC) (envelope-from ume@mahoroba.org) Received: from localhost (IDENT:FZKfqFv3g++qtGkPOqHiavm6VLIN5pwq+vG6LHHbw4ciD+d4aYjVzlnZy/n/vMP/@localhost [IPv6:::1]) (user=ume mech=CRAM-MD5 bits=0) by ameno.mahoroba.org (8.13.8/8.13.8) with ESMTP/inet6 id l6V6hFWC005744 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 31 Jul 2007 15:43:15 +0900 (JST) (envelope-from ume@mahoroba.org) Date: Tue, 31 Jul 2007 15:43:15 +0900 Message-ID: From: Hajimu UMEMOTO To: Pietro Cerutti In-Reply-To: <46AECE8C.8000500@gahr.ch> References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> User-Agent: xcite1.57> Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.7 Emacs/22.1 (i386-pc-freebsd) MULE/5.0 (SAKAKI) X-Operating-System: FreeBSD 6.2-RELEASE-p4 X-PGP-Key: http://www.imasy.or.jp/~ume/publickey.asc X-PGP-Fingerprint: 1F00 0B9E 2164 70FC 6DC5 BF5F 04E9 F086 BF90 71FE Organization: Internet Mutual Aid Society, YOKOHAMA MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-3.0 (ameno.mahoroba.org [IPv6:::1]); Tue, 31 Jul 2007 15:43:15 +0900 (JST) X-Virus-Scanned: by amavisd-new X-Virus-Status: Clean X-Spam-Status: No, score=-0.5 required=5.0 tests=AWL,BAYES_00, DKIM_POLICY_SIGNSOME,DK_POLICY_SIGNSOME,HELO_LOCALHOST autolearn=no version=3.2.1 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on ameno.mahoroba.org Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 06:43:22 -0000 Hi, >>>>> On Tue, 31 Jul 2007 07:54:20 +0200 >>>>> Pietro Cerutti said: gahr> Thanks for your help! I cannot see _TC1, _TC2 nor _TSP in your `acpidump -dt' output. Further, there is no _PSV definition in anywhere, in the first place. It seems to me that your ACPI BIOS doesn't support passive cooling at all. gahr> hw.acpi.thermal.user_override: 1 gahr> hw.acpi.thermal.tz0._PSV: 80.0C I suspect that you set hw.acpi.thermal.tz0._PSV manually. Of cource, it is insufficient to make passive cooling work with your ACPI BIOS, and you need the definition of _TC1, _TC2 and _TSP as well. If you define apropreate definition of them, passive cooling will work. But, we don't provide overriding the values of them. Perhaps, modifying your ASL (`acpidump -dt' output) to add the definitions of _TC1, _TC2, _TSP and _PSV, and loading it from loader will make passive cooling work. Sincerely, -- Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan ume@mahoroba.org ume@{,jp.}FreeBSD.org http://www.imasy.org/~ume/ From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 06:47:28 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAFAF16A41F; Tue, 31 Jul 2007 06:47:28 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from cpanel03.rubas-s03.net (cpanel03.rubas-s03.net [195.182.222.73]) by mx1.freebsd.org (Postfix) with ESMTP id 3C45613C457; Tue, 31 Jul 2007 06:47:28 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from 80-218-187-205.dclient.hispeed.ch ([80.218.187.205] helo=gahrtop.localhost) by cpanel03.rubas-s03.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1IFlVv-0000X6-Bq; Tue, 31 Jul 2007 08:47:27 +0200 Message-ID: <46AEDB0C.6070706@gahr.ch> Date: Tue, 31 Jul 2007 08:47:40 +0200 From: Pietro Cerutti User-Agent: Thunderbird 2.0.0.5 (X11/20070723) MIME-Version: 1.0 To: Hajimu UMEMOTO References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> In-Reply-To: X-Enigmail-Version: 0.95.2 OpenPGP: id=9571F78E; url=http://www.gahr.ch/pgp Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enigF419CFEE4ABAC2D2F27EBF18" X-Antivirus-Scanner: Clean mail though you should still use an Antivirus X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cpanel03.rubas-s03.net X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - gahr.ch X-Source: X-Source-Args: X-Source-Dir: Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 06:47:28 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigF419CFEE4ABAC2D2F27EBF18 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hajimu UMEMOTO wrote: > Hi, >=20 >>>>>> On Tue, 31 Jul 2007 07:54:20 +0200 >>>>>> Pietro Cerutti said: >=20 > gahr> Thanks for your help! >=20 > I cannot see _TC1, _TC2 nor _TSP in your `acpidump -dt' output. > Further, there is no _PSV definition in anywhere, in the first place. > It seems to me that your ACPI BIOS doesn't support passive cooling at > all. Yep that's what I suspected. >=20 > gahr> hw.acpi.thermal.user_override: 1 > gahr> hw.acpi.thermal.tz0._PSV: 80.0C >=20 > I suspect that you set hw.acpi.thermal.tz0._PSV manually. Yes I did.. > Of cource, it is insufficient to make passive cooling work with your AC= PI BIOS, > and you need the definition of _TC1, _TC2 and _TSP as well. > If you define apropreate definition of them, passive cooling will > work. But, we don't provide overriding the values of them. Perhaps, > modifying your ASL (`acpidump -dt' output) to add the definitions of > _TC1, _TC2, _TSP and _PSV, and loading it from loader will make > passive cooling work. Do you have an example? I'm really far from being familiar with the ASL code... > Sincerely, Thank you >=20 > -- > Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan > ume@mahoroba.org ume@{,jp.}FreeBSD.org > http://www.imasy.org/~ume/ --=20 Pietro Cerutti PGP Public Key: http://gahr.ch/pgp --------------enigF419CFEE4ABAC2D2F27EBF18 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGrtsQwMJqmJVx944RCvDYAJ98sXtowbk7/HRVnBlab8hTkhSNYgCgtn0L 2+dEDcQgi0eFe/FFENws/Go= =cz6e -----END PGP SIGNATURE----- --------------enigF419CFEE4ABAC2D2F27EBF18-- From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 07:28:13 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C526B16A418 for ; Tue, 31 Jul 2007 07:28:13 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from cpanel03.rubas-s03.net (cpanel03.rubas-s03.net [195.182.222.73]) by mx1.freebsd.org (Postfix) with ESMTP id 71E1313C465 for ; Tue, 31 Jul 2007 07:28:12 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from 80-218-187-205.dclient.hispeed.ch ([80.218.187.205] helo=gahrtop.localhost) by cpanel03.rubas-s03.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1IFkgK-0006Yg-4k; Tue, 31 Jul 2007 07:54:10 +0200 Message-ID: <46AECE8C.8000500@gahr.ch> Date: Tue, 31 Jul 2007 07:54:20 +0200 From: Pietro Cerutti User-Agent: Thunderbird 2.0.0.5 (X11/20070723) MIME-Version: 1.0 To: Hajimu UMEMOTO References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> In-Reply-To: X-Enigmail-Version: 0.95.2 OpenPGP: id=9571F78E; url=http://www.gahr.ch/pgp Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enig4CA6C2FBD4CDF6A051529EB3" X-Antivirus-Scanner: Clean mail though you should still use an Antivirus X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cpanel03.rubas-s03.net X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - gahr.ch X-Source: X-Source-Args: X-Source-Dir: Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 07:28:13 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig4CA6C2FBD4CDF6A051529EB3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hajimu UMEMOTO wrote: > Hi, >=20 >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 >>>>>> Pietro Cerutti said: >=20 > gahr> I can't test it, since I can't use passive cooling, but how do no= t these > gahr> two systems interfere with each other wrt setting the CPU frequen= cy? > gahr> What if, for example, my CPU temperature rises above _PSV but the= CPU > gahr> usage drops below 65%? >=20 > Do you mean that your hw.acpi.thermal.tz0._PSV has reasonable value? > If so, perhaps, your ACPI BIOS is broken, and _TC1, _TC2 and _TSP are > not defined correctly. Please show me the output of `sysctl hw.acpi' > and `acpidump -dt'. Thanks for your help! > sysctl hw.acpi hw.acpi.supported_sleep_state: S1 S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S1 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 0 hw.acpi.verbose: 1 hw.acpi.disable_on_reboot: 0 hw.acpi.handle_reboot: 0 hw.acpi.reset_video: 0 hw.acpi.cpu.cx_lowest: C1 hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.user_override: 1 hw.acpi.thermal.tz0.temperature: 59.8C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 0 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 80.0C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 99.8C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.acline: 1 hw.acpi.battery.life: 97 hw.acpi.battery.time: -1 hw.acpi.battery.state: 0 hw.acpi.battery.units: 1 hw.acpi.battery.info_expire: 5 > sudo acpidump -dt /* RSD PTR: OEM=3DMSI, ACPI_Rev=3D1.0x (0) RSDT=3D0x7f7c0000, cksum=3D157 */ /* RSDT: Length=3D60, Revision=3D1, Checksum=3D212, OEMID=3DMSI_NB, OEM Table ID=3DMEGABOOK, OEM Revision=3D0x3262007, Creator ID=3DMSFT, Creator Revision=3D0x97 Entries=3D{ 0x7f7c0200, 0x7f7c0390, 0x7f7c03f0, 0x7f7c0430, 0x7f7ce040, 0x7f7c4670 } */ /* FACP: Length=3D132, Revision=3D2, Checksum=3D98, OEMID=3DMSI, OEM Table ID=3D1034, OEM Revision=3D0x3262007, Creator ID=3DMSFT, Creator Revision=3D0x97 FACS=3D0x7f7ce000, DSDT=3D0x7f7c05b0 INT_MODEL=3DAPIC Preferred_PM_Profile=3DUnspecified (0) SCI_INT=3D9 SMI_CMD=3D0xb2, ACPI_ENABLE=3D0xe1, ACPI_DISABLE=3D0x1e, S4BIOS_REQ=3D0x0= PSTATE_CNT=3D0xe2 PM1a_EVT_BLK=3D0x800-0x803 PM1a_CNT_BLK=3D0x804-0x805 PM2_CNT_BLK=3D0x820-0x81f PM_TMR_BLK=3D0x808-0x80b GPE0_BLK=3D0x828-0x82f CST_CNT=3D0xe3 P_LVL2_LAT=3D1 us, P_LVL3_LAT=3D85 us FLUSH_SIZE=3D1024, FLUSH_STRIDE=3D16 DUTY_OFFSET=3D1, DUTY_WIDTH=3D0 DAY_ALRM=3D13, MON_ALRM=3D0, CENTURY=3D0 IAPC_BOOT_ARCH=3D{8042} Flags=3D{WBINVD,PROC_C1,SLP_BUTTON,RTC_S4} */ /* FACS:Length=3D64, HwSig=3D0x00000000, Firm_Wake_Vec=3D0x00000000 Global_Lock=3D Flags=3D Version=3D1 */ /* DSDT: Length=3D16571, Revision=3D1, Checksum=3D254, OEMID=3DMSI_NB, OEM Table ID=3DMEGABOOK, OEM Revision=3D0x3262007, Creator ID=3DINTL, Creator Revision=3D0x20051117 */ /* APIC: Length=3D92, Revision=3D1, Checksum=3D3, OEMID=3DMSI, OEM Table ID=3DOEMAPIC, OEM Revision=3D0x3262007, Creator ID=3DMSFT, Creator Revision=3D0x97 Local APIC ADDR=3D0xfee00000 Flags=3D{PC-AT} Type=3DLocal APIC ACPI CPU=3D1 Flags=3D{ENABLED} APIC ID=3D0 Type=3DLocal APIC ACPI CPU=3D2 Flags=3D{ENABLED} APIC ID=3D1 Type=3DIO APIC APIC ID=3D2 INT BASE=3D0 ADDR=3D0x00000000fec00000 Type=3DINT Override BUS=3D0 IRQ=3D0 INTR=3D2 Flags=3D{Polarity=3Dconforming, Trigger=3Dconforming} Type=3DINT Override BUS=3D0 IRQ=3D9 INTR=3D9 Flags=3D{Polarity=3Dactive-hi, Trigger=3Dlevel} */ /* MCFG: Length=3D60, Revision=3D1, Checksum=3D63, OEMID=3DMSI, OEM Table ID=3DOEMMCFG, OEM Revision=3D0x3262007, Creator ID=3DMSFT, Creator Revision=3D0x97 Base Address=3D 0x00000000e0000000 Segment Group=3D 0x0000 Start Bus=3D 0 End Bus=3D 255 */ /* SLIC: Length=3D374, Revision=3D1, Checksum=3D213, OEMID=3DMSI_NB, OEM Table ID=3DMEGABOOK, OEM Revision=3D0x3262007, Creator ID=3DMSFT, Creator Revision=3D0x97 */ acpidump: RSDT entry 4 (sig OEMB) is corrupt /* HPET: Length=3D56, Revision=3D1, Checksum=3D3, OEMID=3DMSI, OEM Table ID=3DOEMHPET, OEM Revision=3D0x3262007, Creator ID=3DMSFT, Creator Revision=3D0x97 HPET Number=3D0 ADDR=3D0xfed00000:0[8] (Memory) HW Rev=3D0xff Comparitors=3D31 Counter Size=3D1 Legacy IRQ routing capable=3D{TRUE} PCI Vendor ID=3D0xffff Minimal Tick=3D14318 */ /* * Intel ACPI Component Architecture * AML Disassembler version 20041119 * * Disassembly of /tmp/acpidump.l8hiOT, Tue Jul 31 07:50:26 2007 */ DefinitionBlock ("DSDT.aml", "DSDT", 1, "MSI_NB", "MEGABOOK", 52830215) { Scope (_PR) { Processor (CPU1, 0x01, 0x00000810, 0x06) { OperationRegion (STBL, SystemMemory, 0x7F7CE0C0, 0x06CA) Name (NCPU, 0x02) Name (TYPE, 0x80000000) Name (HNDL, 0x80000000) Name (CFGD, 0x010061F1) Name (TBLD, 0x80) Method (_PDC, 1, NotSerialized) { CreateDWordField (Arg0, Zero, REVS) CreateDWordField (Arg0, 0x04, SIZE) Store (SizeOf (Arg0), Local0) Store (Subtract (Local0, 0x08), Local1) CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP) Name (STS0, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 }) Concatenate (STS0, TEMP, Local2) _OSC (Buffer (0x10) { 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 }, REVS, SIZE, Local2) } Method (_OSC, 4, NotSerialized) { CreateDWordField (Arg3, Zero, STS0) CreateDWordField (Arg3, 0x04, CAP0) CreateDWordField (Arg0, Zero, IID0) CreateDWordField (Arg0, 0x04, IID1) CreateDWordField (Arg0, 0x08, IID2) CreateDWordField (Arg0, 0x0C, IID3) Name (UID0, Buffer (0x10) { 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 }) CreateDWordField (UID0, Zero, EID0) CreateDWordField (UID0, 0x04, EID1) CreateDWordField (UID0, 0x08, EID2) CreateDWordField (UID0, 0x0C, EID3) If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3))))) { Store (0x06, STS0) Return (Arg3) } If (LNot (LEqual (Arg1, One))) { Store (0x0A, STS0) Return (Arg3) } Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE) If (And (CFGD, One)) { If (LAnd (LEqual (And (TYPE, 0x09), 0x09), LNot (And (TBLD, One)))) { Or (TBLD, One, TBLD) Load (STBL, HNDL) } } If (And (CFGD, 0xF0)) { If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18)), LNot (And (TBLD, 0x02)))) { Or (TBLD, 0x02, TBLD) } } Return (Arg3) } } } Scope (_PR) { Processor (CPU2, 0x02, 0x00000810, 0x06) { OperationRegion (STBL, SystemMemory, 0x7F7CE790, 0x0120) Name (NCPU, 0x02) Name (TYPE, 0x80000000) Name (HNDL, 0x80000000) Name (CFGD, 0x010061F1) Name (TBLD, 0x80) Method (_PDC, 1, NotSerialized) { CreateDWordField (Arg0, Zero, REVS) CreateDWordField (Arg0, 0x04, SIZE) Store (SizeOf (Arg0), Local0) Store (Subtract (Local0, 0x08), Local1) CreateField (Arg0, 0x40, Multiply (Local1, 0x08), TEMP) Name (STS0, Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 }) Concatenate (STS0, TEMP, Local2) _OSC (Buffer (0x10) { 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 }, REVS, SIZE, Local2) } Method (_OSC, 4, NotSerialized) { CreateDWordField (Arg3, Zero, STS0) CreateDWordField (Arg3, 0x04, CAP0) CreateDWordField (Arg0, Zero, IID0) CreateDWordField (Arg0, 0x04, IID1) CreateDWordField (Arg0, 0x08, IID2) CreateDWordField (Arg0, 0x0C, IID3) Name (UID0, Buffer (0x10) { 0x16, 0xA6, 0x77, 0x40, 0x0C, 0x29, 0xBE, 0x47, 0x9E, 0xBD, 0xD8, 0x70, 0x58, 0x71, 0x39, 0x53 }) CreateDWordField (UID0, Zero, EID0) CreateDWordField (UID0, 0x04, EID1) CreateDWordField (UID0, 0x08, EID2) CreateDWordField (UID0, 0x0C, EID3) If (LNot (LAnd (LAnd (LEqual (IID0, EID0), LEqual (IID1, EID1)), LAnd (LEqual (IID2, EID2), LEqual (IID3, EID3))))) { Store (0x06, STS0) Return (Arg3) } If (LNot (LEqual (Arg1, One))) { Store (0x0A, STS0) Return (Arg3) } Or (And (TYPE, 0x7FFFFFFF), CAP0, TYPE) If (And (CFGD, One)) { If (LAnd (LAnd (And (CFGD, 0x01000000), LEqual (And (TYPE, 0x09), 0x09)), LNot (And (TBLD, One)))) { Or (TBLD, One, TBLD) Load (STBL, HNDL) } } If (And (CFGD, 0xF0)) { If (LAnd (LAnd (And (CFGD, 0x01000000), And (TYPE, 0x18)), LNot (And (TBLD, 0x02)))) { Or (TBLD, 0x02, TBLD) } } Return (Arg3) } } } Name (DP80, 0x80) Name (DP90, 0x90) Name (APIC, One) Name (PMBS, 0x0800) Name (PMLN, 0x80) Name (GPBS, 0x0480) Name (GPLN, 0x40) Name (SMBS, Zero) Name (SMBL, Zero) Name (PM30, 0x0830) Name (SUSW, 0xFF) Name (SMIR, 0xB2) Name (TPBA, 0xFED40000) Name (TPBL, Zero) Name (SMIP, 0xB2) Name (PCIB, 0xE0000000) Name (PCIL, 0x04000000) OperationRegion (BIOS, SystemMemory, 0x7F7CE064, 0xFF) Field (BIOS, ByteAcc, NoLock, Preserve) { SS1, 1, SS2, 1, SS3, 1, SS4, 1, Offset (0x01), IOST, 16, TOPM, 32, ROMS, 32, MG1B, 32, MG1L, 32, MG2B, 32, MG2L, 32, SPEE, 8, DMAX, 8, HPTA, 32, CPB0, 32, CPB1, 32, CPB2, 32, CPB3, 32, ASSB, 8, AOTB, 8, AAXB, 32, DTSF, 8, DTSE, 8, DTS1, 8, DTS2, 8, MPEN, 8, TPMF, 8, MG3B, 32, MG3L, 32, MH1B, 32, MH1L, 32 } Method (RRIO, 4, NotSerialized) { Store ("RRIO", Debug) } Method (RDMA, 3, NotSerialized) { Store ("rDMA", Debug) } Name (PICM, Zero) Method (_PIC, 1, NotSerialized) { If (Arg0) { Store (0xAA, DBG8) } Else { Store (0xAC, DBG8) } Store (Arg0, PICM) } Name (OSVR, Ones) Method (OSFL, 0, NotSerialized) { If (LNot (LEqual (OSVR, Ones))) { Return (OSVR) } If (LEqual (PICM, Zero)) { Store (0xAC, DBG8) } Store (One, OSVR) If (CondRefOf (_OSI, Local1)) { If (_OSI ("Windows 2000")) { Store (0x04, OSVR) } If (_OSI ("Windows 2001")) { Store (Zero, OSVR) } If (_OSI ("Windows 2001 SP1")) { Store (Zero, OSVR) } If (_OSI ("Windows 2001 SP2")) { Store (Zero, OSVR) } If (_OSI ("Windows 2001.1")) { Store (Zero, OSVR) } If (_OSI ("Windows 2001.1 SP1")) { Store (Zero, OSVR) } If (_OSI ("Windows 2006")) { Store (Zero, OSVR) } } Else { If (MCTH (_OS, "Microsoft Windows NT")) { Store (0x04, OSVR) } Else { If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition")= ) { Store (0x02, OSVR) } If (MCTH (_OS, "Linux")) { Store (0x03, OSVR) } } } Return (OSVR) } Method (MCTH, 2, NotSerialized) { If (LLess (SizeOf (Arg0), SizeOf (Arg1))) { Return (Zero) } Add (SizeOf (Arg0), One, Local0) Name (BUF0, Buffer (Local0) {}) Name (BUF1, Buffer (Local0) {}) Store (Arg0, BUF0) Store (Arg1, BUF1) While (Local0) { Decrement (Local0) If (LNot (LEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (BUF1, Local0))))) { Return (Zero) } } Return (One) } Name (PRWP, Package (0x02) { Zero, Zero }) Method (GPRW, 2, NotSerialized) { Store (Arg0, Index (PRWP, Zero)) Store (ShiftLeft (SS1, One), Local0) Or (Local0, ShiftLeft (SS2, 0x02), Local0) Or (Local0, ShiftLeft (SS3, 0x03), Local0) Or (Local0, ShiftLeft (SS4, 0x04), Local0) If (And (ShiftLeft (One, Arg1), Local0)) { Store (Arg1, Index (PRWP, One)) } Else { ShiftRight (Local0, One, Local0) If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { FindSetLeftBit (Local0, Index (PRWP, One)) } Else { FindSetRightBit (Local0, Index (PRWP, One)) } } Return (PRWP) } Name (WAKP, Package (0x02) { Zero, Zero }) OperationRegion (DEB0, SystemIO, DP80, One) Field (DEB0, ByteAcc, NoLock, Preserve) { DBG8, 8 } OperationRegion (DEB1, SystemIO, DP90, 0x02) Field (DEB1, WordAcc, NoLock, Preserve) { DBG9, 16 } Scope (_SB) { Name (PR00, Package (0x12) { Package (0x04) { 0x0001FFFF, Zero, LNKA, Zero }, Package (0x04) { 0x0001FFFF, One, LNKB, Zero }, Package (0x04) { 0x0001FFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x0001FFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x001FFFFF, Zero, LNKC, Zero }, Package (0x04) { 0x001FFFFF, One, LNKD, Zero }, Package (0x04) { 0x001DFFFF, Zero, LNKH, Zero }, Package (0x04) { 0x001DFFFF, One, LNKD, Zero }, Package (0x04) { 0x001DFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001DFFFF, 0x03, LNKA, Zero }, Package (0x04) { 0x001EFFFF, Zero, LNKB, Zero }, Package (0x04) { 0x001EFFFF, One, LNKE, Zero }, Package (0x04) { 0x001BFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001CFFFF, Zero, LNKA, Zero }, Package (0x04) { 0x001CFFFF, One, LNKB, Zero }, Package (0x04) { 0x001CFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0x001CFFFF, 0x03, LNKD, Zero }, Package (0x04) { 0x0002FFFF, Zero, LNKA, Zero } }) Name (AR00, Package (0x12) { Package (0x04) { 0x0001FFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x0001FFFF, One, Zero, 0x11 }, Package (0x04) { 0x0001FFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x0001FFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x001FFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0x001FFFFF, One, Zero, 0x13 }, Package (0x04) { 0x001DFFFF, Zero, Zero, 0x17 }, Package (0x04) { 0x001DFFFF, One, Zero, 0x13 }, Package (0x04) { 0x001DFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001DFFFF, 0x03, Zero, 0x10 }, Package (0x04) { 0x001EFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0x001EFFFF, One, Zero, 0x14 }, Package (0x04) { 0x001BFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001CFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0x001CFFFF, One, Zero, 0x11 }, Package (0x04) { 0x001CFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0x001CFFFF, 0x03, Zero, 0x13 }, Package (0x04) { 0x0002FFFF, Zero, Zero, 0x10 } }) Name (PR04, Package (0x01) { Package (0x04) { 0x0004FFFF, Zero, LNKA, Zero } }) Name (AR04, Package (0x01) { Package (0x04) { 0x0004FFFF, Zero, Zero, 0x10 } }) Name (PR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) Name (AR02, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) Name (PR03, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKC, Zero }, Package (0x04) { 0xFFFF, One, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKB, Zero } }) Name (AR03, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x12 }, Package (0x04) { 0xFFFF, One, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x11 } }) Name (PR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKD, Zero }, Package (0x04) { 0xFFFF, One, LNKA, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKC, Zero } }) Name (AR07, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x13 }, Package (0x04) { 0xFFFF, One, Zero, 0x10 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x12 } }) Name (PR08, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKA, Zero }, Package (0x04) { 0xFFFF, One, LNKB, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKD, Zero } }) Name (AR08, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x10 }, Package (0x04) { 0xFFFF, One, Zero, 0x11 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x13 } }) Name (PR09, Package (0x04) { Package (0x04) { 0xFFFF, Zero, LNKB, Zero }, Package (0x04) { 0xFFFF, One, LNKC, Zero }, Package (0x04) { 0xFFFF, 0x02, LNKD, Zero }, Package (0x04) { 0xFFFF, 0x03, LNKA, Zero } }) Name (AR09, Package (0x04) { Package (0x04) { 0xFFFF, Zero, Zero, 0x11 }, Package (0x04) { 0xFFFF, One, Zero, 0x12 }, Package (0x04) { 0xFFFF, 0x02, Zero, 0x13 }, Package (0x04) { 0xFFFF, 0x03, Zero, 0x10 } }) Name (PRSA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,10,11,12,14,15} }) Alias (PRSA, PRSB) Alias (PRSA, PRSC) Alias (PRSA, PRSD) Alias (PRSA, PRSE) Alias (PRSA, PRSF) Alias (PRSA, PRSG) Alias (PRSA, PRSH) Device (PCI0) { Name (_HID, EisaId ("PNP0A08")) Name (_ADR, Zero) Method (^BN00, 0, NotSerialized) { Return (Zero) } Method (_BBN, 0, NotSerialized) { Return (BN00 ()) } Name (_UID, Zero) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR00) } Return (PR00) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02))) { Return (0x02) } Else { Return (0x03) } } Name (_CID, 0x030AD041) Device (MCH) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, 0x0A) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0xFED13000, 0x00007000) }) } Method (NPTS, 1, NotSerialized) { } Method (NWAK, 1, NotSerialized) { } Device (P0PC) { Name (_ADR, 0x00010000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } } Device (P0P4) { Name (_ADR, 0x001E0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR04) } Return (PR04) } Device (CBC0) { Name (_ADR, 0x00040000) OperationRegion (CBR0, PCI_Config, Zero, 0xE4) Field (CBR0, DWordAcc, NoLock, Preserve) { Offset (0x44), C044, 32, Offset (0x91), C091, 8, Offset (0xA4), C0A4, 8, C0A5, 8, Offset (0xE0), C0E0, 8, C0E1, 8 } Method (_STA, 0, NotSerialized) { Return (0x0F) } Method (_S3D, 0, NotSerialized) { Return (0x03) } Method (_INI, 0, NotSerialized) { Or (C0A5, 0x81, C0A5) And (C091, 0x7F, C091) Store (Zero, C0A4) } Method (CEV0, 0, NotSerialized) { And (C0A5, 0x80, Local0) Store (0xCB, DBG8) If (Local0) { Notify (CBC0, 0x02) Sleep (0x0BB8) And (C0A5, 0xFE, Local1) Store (Local1, C0A5) Or (Local1, One, Local1) Store (Local1, C0A5) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0B, 0x03)) } } Device (CBC2) { Name (_ADR, 0x00040002) } Device (CBC3) { Name (_ADR, 0x00040003) } Device (CBC4) { Name (_ADR, 0x00040004) } } Device (SBRG) { Name (_ADR, 0x001F0000) Device (IELK) { Name (_HID, "AWY0001") OperationRegion (RXA0, PCI_Config, 0xA0, 0x20) Field (RXA0, ByteAcc, NoLock, Preserve) { , 9, PBLV, 1, Offset (0x10), , 1, PBMS, 1, , 1, PMCS, 1, ECNS, 1, Offset (0x11), ECT1, 16, ELEN, 1, Offset (0x14) } Method (\_GPE._L0A, 0, NotSerialized) { Notify (\_SB.PCI0.SBRG.IELK, 0x81) Store (One, \_SB.PCI0.SBRG.IELK.PMCS) } Method (_STA, 0, NotSerialized) { If (ELEN) { Return (0x0F) } Else { Return (Zero) } } Method (SMOD, 1, NotSerialized) { } Method (GPBS, 0, NotSerialized) { Return (XOr (PBLV, One)) } } Method (SPTS, 1, NotSerialized) { Store (One, PS1S) Store (One, PS1E) Store (One, SLPS) } Method (SWAK, 1, NotSerialized) { Store (Zero, SLPS) Store (Zero, PS1E) If (BRTC) {} Else { Notify (PWRB, 0x02) } } OperationRegion (APMP, SystemIO, SMIR, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } Field (APMP, ByteAcc, NoLock, Preserve) { Offset (0x01), , 1, BRTC, 1 } OperationRegion (PMS0, SystemIO, PMBS, 0x04) Field (PMS0, ByteAcc, NoLock, Preserve) { , 10, RTCS, 1, , 4, WAKS, 1, Offset (0x03), PWBT, 1, Offset (0x04) } OperationRegion (SMIE, SystemIO, PM30, 0x08) Field (SMIE, ByteAcc, NoLock, Preserve) { , 4, PS1E, 1, , 31, PS1S, 1, Offset (0x08) } Scope (\_SB) { } Device (PIC) { Name (_HID, EisaId ("PNP0000")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0020, 0x0020, 0x00, 0x02) IO (Decode16, 0x00A0, 0x00A0, 0x00, 0x02) IRQNoFlags () {2} }) } Device (DMAD) { Name (_HID, EisaId ("PNP0200")) Name (_CRS, ResourceTemplate () { DMA (Compatibility, BusMaster, Transfer8) {4} IO (Decode16, 0x0000, 0x0000, 0x00, 0x10) IO (Decode16, 0x0081, 0x0081, 0x00, 0x03) IO (Decode16, 0x0087, 0x0087, 0x00, 0x01) IO (Decode16, 0x0089, 0x0089, 0x00, 0x03) IO (Decode16, 0x008F, 0x008F, 0x00, 0x01) IO (Decode16, 0x00C0, 0x00C0, 0x00, 0x20) }) } Device (TMR) { Name (_HID, EisaId ("PNP0100")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0040, 0x0040, 0x00, 0x04) IRQNoFlags () {0} }) } Device (RTC0) { Name (_HID, EisaId ("PNP0B00")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0070, 0x0070, 0x00, 0x02) IRQNoFlags () {8} }) } Device (PS2K) { Name (_HID, EisaId ("PNP0303")) Name (_CID, 0x0B03D041) Method (_STA, 0, NotSerialized) { ShiftLeft (One, 0x0A, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (Zero) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0060, 0x0060, 0x00, 0x01) IO (Decode16, 0x0064, 0x0064, 0x00, 0x01) IRQNoFlags () {1} }) } Device (PS2M) { Name (_HID, EisaId ("PNP0F03")) Name (_CID, 0x130FD041) Method (_STA, 0, NotSerialized) { ShiftLeft (One, 0x0C, Local0) If (And (IOST, Local0)) { Return (0x0F) } Return (Zero) } Name (_CRS, ResourceTemplate () { IRQNoFlags () {12} }) } Device (SPKR) { Name (_HID, EisaId ("PNP0800")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0061, 0x0061, 0x00, 0x01) }) } Device (COPR) { Name (_HID, EisaId ("PNP0C04")) Name (_CRS, ResourceTemplate () { IO (Decode16, 0x00F0, 0x00F0, 0x00, 0x10) IRQNoFlags () {13} }) } Device (RMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x10) Name (CRS, ResourceTemplate () { IO (Decode16, 0x0010, 0x0010, 0x00, 0x10) IO (Decode16, 0x0022, 0x0022, 0x00, 0x1E) IO (Decode16, 0x0044, 0x0044, 0x00, 0x1C) IO (Decode16, 0x0063, 0x0063, 0x00, 0x01) IO (Decode16, 0x0065, 0x0065, 0x00, 0x01) IO (Decode16, 0x0067, 0x0067, 0x00, 0x09) IO (Decode16, 0x0072, 0x0072, 0x00, 0x0E) IO (Decode16, 0x0080, 0x0080, 0x00, 0x01) IO (Decode16, 0x0084, 0x0084, 0x00, 0x03) IO (Decode16, 0x0088, 0x0088, 0x00, 0x01) IO (Decode16, 0x008C, 0x008C, 0x00, 0x03) IO (Decode16, 0x0090, 0x0090, 0x00, 0x10) IO (Decode16, 0x00A2, 0x00A2, 0x00, 0x1E) IO (Decode16, 0x00E0, 0x00E0, 0x00, 0x10) IO (Decode16, 0x04D0, 0x04D0, 0x00, 0x02) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) IO (Decode16, 0x0000, 0x0000, 0x00, 0x00) Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000) Memory32Fixed (ReadOnly, 0xFFB80000, 0x0017D000) Memory32Fixed (ReadWrite, 0xFED1C000, 0x00004000)= Memory32Fixed (ReadWrite, 0xFED20000, 0x00070000)= Memory32Fixed (ReadOnly, 0xFFF80000, 0x00080000) }) Method (_CRS, 0, NotSerialized) { CreateWordField (CRS, 0x7A, GP00) CreateWordField (CRS, 0x7C, GP01) CreateByteField (CRS, 0x7F, GP0L) Store (PMBS, GP00) Store (PMBS, GP01) Store (PMLN, GP0L) If (SMBS) { CreateWordField (CRS, 0x82, GP10) CreateWordField (CRS, 0x84, GP11) CreateByteField (CRS, 0x87, GP1L) Store (SMBS, GP10) Store (SMBS, GP11) Store (SMBL, GP1L) } If (GPBS) { CreateWordField (CRS, 0x8A, GP20) CreateWordField (CRS, 0x8C, GP21) CreateByteField (CRS, 0x8F, GP2L) Store (GPBS, GP20) Store (GPBS, GP21) Store (GPLN, GP2L) } Return (CRS) } } Device (HPET) { Name (_HID, EisaId ("PNP0103")) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xFED00000, 0x00000400) }) OperationRegion (^LPCR, SystemMemory, 0xFED1F404, 0x0= 4) Field (LPCR, AnyAcc, NoLock, Preserve) { HPTS, 2, , 5, HPTE, 1, Offset (0x04) } Method (_STA, 0, NotSerialized) { If (LEqual (OSFL (), Zero)) { If (HPTE) { Return (0x0F) } } Else { If (HPTE) { Return (0x0B) } } Return (Zero) } Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x04, HPT) Multiply (HPTS, 0x1000, Local0) Add (Local0, 0xFED00000, HPT) Return (CRS) } } OperationRegion (RX80, PCI_Config, Zero, 0xFF) Field (RX80, ByteAcc, NoLock, Preserve) { Offset (0x80), LPCD, 16, LPCE, 16 } Name (DBPT, Package (0x04) { Package (0x08) { 0x03F8, 0x02F8, 0x0220, 0x0228, 0x0238, 0x02E8, 0x0338, 0x03E8 }, Package (0x08) { 0x03F8, 0x02F8, 0x0220, 0x0228, 0x0238, 0x02E8, 0x0338, 0x03E8 }, Package (0x03) { 0x0378, 0x0278, 0x03BC }, Package (0x02) { 0x03F0, 0x0370 } }) Name (DDLT, Package (0x04) { Package (0x02) { Zero, 0xFFF8 }, Package (0x02) { 0x04, 0xFF8F }, Package (0x02) { 0x08, 0xFCFF }, Package (0x02) { 0x0C, 0xEFFF } }) Method (RRIO, 4, NotSerialized) { If (LAnd (LNot (LGreater (Arg0, 0x03)), LNot (LLess (Arg0, Zero)))) { Store (Match (DerefOf (Index (DBPT, Arg0)), MEQ, Arg2, MTR, Zero, Zero), Local0) If (LNot (LEqual (Local0, Ones))) { Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), Zero)), Local1) Store (DerefOf (Index (DerefOf (Index (DDLT, Arg0)), One)), Local2) ShiftLeft (Local0, Local1, Local0) And (LPCD, Local2, LPCD) Or (LPCD, Local0, LPCD) WX82 (Arg0, Arg1) } } If (LEqual (Arg0, 0x08)) { If (LEqual (Arg2, 0x0200)) { WX82 (0x08, Arg0) } Else { If (LEqual (Arg2, 0x0208)) { WX82 (0x09, Arg0) } } } If (LAnd (LNot (LGreater (Arg0, 0x0D)), LNot (LLess (Arg0, 0x0A)))) { WX82 (Arg0, Arg1) } } Method (WX82, 2, NotSerialized) { ShiftLeft (One, Arg0, Local0) If (Arg1) { Or (LPCE, Local0, LPCE) } Else { Not (Local0, Local0) And (LPCE, Local0, LPCE) } } Method (RDMA, 3, NotSerialized) { } Scope (\) { Field (BIOS, ByteAcc, NoLock, Preserve) { Offset (0x22), OSYS, 16, SMIF, 8, BLID, 8, ACPR, 32, CADL, 16, PADL, 16, IGDS, 8, CSTE, 16, NSTE, 16, SSTE, 16, CTID, 8 } } Device (EC) { Name (_HID, EisaId ("PNP0C09")) Name (_GPE, 0x19) Name (MYEC, Zero) Name (CTSD, Zero) Name (\PPCL, Zero) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x03)) { Store (Arg1, MYEC) } Store (Zero, CTSD) Store (Zero, PPCL) } Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0062, 0x0062, 0x00, 0x01) IO (Decode16, 0x0066, 0x0066, 0x00, 0x01) }) OperationRegion (EC, EmbeddedControl, Zero, 0xFF) Field (EC, ByteAcc, NoLock, Preserve) { SMPR, 8, SMST, 8, SMAD, 8, SMCM, 8, SMD0, 264, SMAA, 8, Offset (0x30), POWS, 1, LIDS, 1, KBCS, 1, Offset (0x31), MBTS, 1, MBCS, 1, MBDS, 1, MBFS, 1, MBWS, 1, MBLS, 1, MBCL, 1, MBFL, 1, Offset (0x38), MDCL, 8, MDCH, 8, MDVL, 8, MDVH, 8, MCAL, 8, MCAH, 8, MSTL, 8, MSTH, 8, MCCL, 8, MCCH, 8, MPOL, 8, MPOH, 8, MFCL, 8, MFCH, 8, MCUL, 8, MCUH, 8, MRCL, 8, MRCH, 8, MVOL, 8, MVOH, 8, MTEL, 8, MTEH, 8, RSV1, 8, RSV2, 8, SDCL, 8, SDCH, 8, SDVL, 8, SDVH, 8, SCAL, 8, SCAH, 8, SSTL, 8, SSTH, 8, SCCL, 8, SCCH, 8, SPOL, 8, SPOH, 8, SFCL, 8, SFCH, 8, SCUL, 8, SCUH, 8, SRCL, 8, SRCH, 8, SVOL, 8, SVOH, 8, STEL, 8, STEH, 8, Offset (0x68), CPUT, 8, Offset (0x7E), RES1, 3, CHET, 1, RES2, 4, Offset (0x80), SYST, 8 } OperationRegion (APMP, SystemIO, 0xB2, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } Device (ADP1) { Name (_HID, "ACPI0003") Name (BFLG, One) Name (ACP, One) Name (INIT, One) Method (_PSR, 0, NotSerialized) { If (ACP) { Return (One) } Else { Return (Zero) } } Method (_STA, 0, NotSerialized) { If (MYEC) { If (INIT) { Store (MBTS, Local0) If (LEqual (Local0, One)) { Store (One, BFLG) } Else { Store (Zero, BFLG) } Store (POWS, Local0) If (LEqual (Local0, One)) { Store (One, ACP) } Else { Store (Zero, ACP) } } Store (Zero, INIT) } Return (0x0F) } Name (_PCL, Package (0x01) { _SB }) } Name (BIF0, Package (0x0D) { One, 0x1130, 0x1130, One, 0x39D0, Zero, Zero, One, One, "BAT1", "1234", "LION", "MSI Corp." }) Name (STAT, Package (0x04) { 0x02, 0x0500, 0x0800, 0x03E8 }) Device (BAT1) { Name (_HID, EisaId ("PNP0C0A")) Name (_UID, One) Name (_PCL, Package (0x01) { _SB }) Method (_STA, 0, NotSerialized) { If (^^ADP1.BFLG) { Return (0x1F) } Else { Return (0x0F) } } Method (_BIF, 0, NotSerialized) { If (MYEC) { UPBI () } Else { IVBI () Store (0x99, DBG8) Sleep (0x03E8) } Return (BIF0) } Method (_BST, 0, NotSerialized) { If (MYEC) { UPBS () } Else { IVBS () } Return (STAT) } Method (IVBI, 0, NotSerialized) { Store (Ones, Index (BIF0, One)) Store (Ones, Index (BIF0, 0x02)) Store (Ones, Index (BIF0, 0x04)) Store ("Wrong", Index (BIF0, 0x09)) Store (" ", Index (BIF0, 0x0A)) Store ("Wrong", Index (BIF0, 0x0B)) Store ("Wrong", Index (BIF0, 0x0C)) } Method (IVBS, 0, NotSerialized) { Store (Zero, Index (STAT, Zero)) Store (Ones, Index (STAT, One)) Store (Ones, Index (STAT, 0x02)) Store (0x2710, Index (STAT, 0x03)) } Method (UPBI, 0, NotSerialized) { Store (Zero, Local0) Store (Zero, Local1) Store (Zero, Local2) Store (Zero, Local3) Store (MDCH, Local0) Store (MDCL, Local1) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local1, Local0) Store (Local0, Index (BIF0, One)) Store (MFCH, Local0) Store (MFCL, Local1) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local1, Local1) Store (Local1, Index (BIF0, 0x02)) Store (MDVH, Local0) Store (MDVL, Local2) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local2, Local2) Store (Local2, Index (BIF0, 0x04)) If (LEqual (CTID, One)) { Store (CTID, DBG8) Sleep (0x0BB8) Store (" LG ", Index (BIF0, 0x0C)) } } Method (UPBS, 0, NotSerialized) { Store (Zero, Local0) Store (Zero, Local1) Store (Zero, Local2) Store (Zero, Local3) Store (Zero, Local4) Store (Zero, Local7) Store (MBTS, Local0) If (LEqual (Local0, One)) { Store (POWS, Local0) If (LEqual (Local0, One)) { Store (MBCS, Local1) If (LEqual (Local1, One)) { Or (Local4, 0x02, Local4) } } Else { Or (Local4, One, Local4) Store (MBLS, Local0) If (LEqual (Local0, One)) { Or (Local4, 0x04, Local4) } } Store (POWS, Local0) If (LEqual (Local0, One)) { Store (MBCS, Local0) If (LEqual (Local0, One)) { Store (MCUH, Local0) Store (MCUL, Local1) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local1, Local1) If (LEqual (Local1, 0xFFFF)) { Store (Ones, Local1) } Store (Local1, Index (STAT, One))= } Else { Store (Zero, Index (STAT, One)) } } Else { Store (MCUH, Local0) Store (MCUL, Local1) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local1, Local1) XOr (Local1, 0xFFFF, Local1) If (LEqual (Local1, Zero)) { Store (Ones, Local1) } Store (Local1, Index (STAT, One)) } Store (MRCH, Local0) Store (MRCL, Local2) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local2, Local2) Store (Local2, Index (STAT, 0x02)) Store (MVOH, Local0) Store (MVOL, Local3) ShiftLeft (Local0, 0x08, Local0) Or (Local0, Local3, Local3) Store (Local3, Index (STAT, 0x03)) Store (Local4, Index (STAT, Zero)) Sleep (0x64) } Else { IVBS () } } } Method (_Q80, 0, NotSerialized) { Store (0x80, DBG8) } Method (_Q81, 0, NotSerialized) { If (LEqual (SPEE, Zero)) { Store (0x68, DBG8) Store (0x68, APMC) } Else { Store (0x81, DBG8) Or (One, PPCL, PPCL) Notify (\_PR.CPU1, 0x80) Notify (\_PR.CPU2, 0x80) } Store (One, CHET) } Method (_Q82, 0, NotSerialized) { If (LEqual (SPEE, Zero)) { Store (0x69, DBG8) Store (0x69, APMC) } Else { Store (0x82, DBG8) And (0xFE, PPCL, PPCL) Notify (\_PR.CPU1, 0x80) Notify (\_PR.CPU2, 0x80) } Store (One, CHET) } Method (_Q83, 0, NotSerialized) { Store (0x83, DBG8) Store (Zero, Local0) Store (POWS, Local0) If (LEqual (Local0, One)) { Store (One, ^ADP1.ACP) } Else { Store (Zero, ^ADP1.ACP) } Notify (ADP1, 0x80) } Method (_Q84, 0, NotSerialized) { Store (0x84, DBG8) Notify (LID0, 0x80) } Method (_Q85, 0, NotSerialized) { Store (0x85, DBG8) Store (One, CTSD) Notify (\_TZ.THRM, 0x80) } Method (_Q86, 0, NotSerialized) { Store (0x86, DBG8) } Method (_Q87, 0, NotSerialized) { Store (0x87, DBG8) Store (Zero, Local0) Store (MBTS, Local0) If (LEqual (Local0, One)) { Store (One, ^ADP1.BFLG) Notify (BAT1, 0x80) } Else { Store (Zero, ^ADP1.BFLG) Notify (ADP1, 0x80) Sleep (0x19) Notify (BAT1, 0x81) } Notify (ADP1, 0x80) } Method (_Q88, 0, NotSerialized) { Store (0x88, DBG8) } Method (_Q89, 0, NotSerialized) { Store (0x89, DBG8) } Method (_Q8A, 0, NotSerialized) { Store (0x8A, DBG8) Store (One, CTSD) Notify (\_TZ.THRM, 0x80) } Method (_Q8B, 0, NotSerialized) { Store (0x8B, DBG8) } Method (_Q8C, 0, NotSerialized) { Store (0x8C, DBG8) } Method (_Q90, 0, NotSerialized) { Store (0x90, DBG8) } Method (_QB4, 0, NotSerialized) { Store (0xB4, DBG8) If (LEqual (DSEN, Zero)) { Store (0x10, SMIF) Store (0x70, APMC) If (LEqual (SMIF, Zero)) { Store (CADL, PADL) If (LEqual (OSFL (), Zero)) { Notify (PCI0, Zero) } Else { Notify (IGFX, Zero) } Sleep (0x02EE) Notify (IGFX, 0x80) } } If (LEqual (DSEN, One)) { Store (0x11, SMIF) Store (0x70, APMC) If (LEqual (SMIF, Zero)) { Notify (IGFX, 0x81) } } } Method (_QB5, 0, NotSerialized) { Store (0xB5, DBG8) } Method (_QB6, 0, NotSerialized) { Store (0xB6, DBG8) } Method (_QB7, 0, NotSerialized) { Store (0xB7, DBG8) } Method (_QB8, 0, NotSerialized) { Store (0xB8, DBG8) } Method (_QB9, 0, NotSerialized) { Store (0xB9, DBG8) } Scope (\_SB) { Name (SLPS, Zero) Device (SLPB) { Name (_HID, EisaId ("PNP0C0E")) } Device (LID0) { Name (_HID, EisaId ("PNP0C0D")) Method (_LID, 0, NotSerialized) { If (^^PCI0.SBRG.EC.MYEC) { Store (^^PCI0.SBRG.EC.LIDS, Local0) } Else { Store (One, Local0) } Return (Local0) } } } Scope (\_GPE) { Method (_L01, 0, NotSerialized) { Sleep (0xC8) Store (One, \_SB.PCI0.WAWA.PDC1) Store (One, \_SB.PCI0.WAWA.HPCS) } } Scope (^^^PCI0) { Device (WAWA) { Name (_ADR, 0x001C0000) OperationRegion (P1CS, PCI_Config, 0x40, 0x01= 00) Field (P1CS, AnyAcc, NoLock, WriteAsZeros) { Offset (0x1A), ABP1, 1, , 2, PDC1, 1, , 2, PDS1, 1, Offset (0x20), Offset (0x22), PSP1, 1, Offset (0x9C), , 30, HPCS, 1, PMCS, 1 } Device (PECA) { Name (_ADR, Zero) Method (_RMV, 0, NotSerialized) { Return (One) } } } } } Scope (^^PCI0) { Device (IGFX) { Name (\DSEN, One) Name (_ADR, 0x00020000) OperationRegion (APMP, SystemIO, 0xB2, 0x02) Field (APMP, ByteAcc, NoLock, Preserve) { APMC, 8, APMS, 8 } Method (_DOS, 1, NotSerialized) { Store (And (Arg0, 0x03), DSEN) } Method (_DOD, 0, NotSerialized) { Return (Package (0x03) { 0x00010100, 0x00010240, 0x00010410 }) } Device (CRT) { Name (_ADR, 0x0100) Method (_DCS, 0, NotSerialized) { Store (One, SMIF) Store (0x68, APMC) If (And (CSTE, 0x0101)) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) { If (And (NSTE, 0x0101)) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) { If (LEqual (And (Arg0, 0xC0000000), 0xC0000000)) { Store (NSTE, CSTE) } } } Device (DTV1) { Name (_ADR, 0x0240) Method (_DCS, 0, NotSerialized) { Store (One, SMIF) Store (0x68, APMC) If (And (CSTE, 0x0202)) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) { If (And (NSTE, 0x0202)) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) { If (LEqual (And (Arg0, 0xC0000000), 0xC0000000)) { Store (NSTE, CSTE) } } } Device (LCD) { Name (_ADR, 0x0410) Method (_DCS, 0, NotSerialized) { Store (One, SMIF) Store (0x68, APMC) If (And (CSTE, 0x0808)) { Return (0x1F) } Return (0x1D) } Method (_DGS, 0, NotSerialized) { If (And (NSTE, 0x0808)) { Return (One) } Return (Zero) } Method (_DSS, 1, NotSerialized) { If (LEqual (And (Arg0, 0xC0000000), 0xC0000000)) { Store (NSTE, CSTE) } } } } } Device (^PCIE) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, 0x11) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0xE0000000, 0x10000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x04, BAS1) CreateDWordField (CRS, 0x08, LEN1) Store (PCIB, BAS1) Store (PCIL, LEN1) Return (CRS) } } Scope (\_TZ) { ThermalZone (THRM) { Method (KLV, 1, NotSerialized) { Add (Arg0, 0x0111, Local0) Multiply (Local0, 0x0A, Local0) Return (Local0) } Method (_TMP, 0, NotSerialized) { If (\_SB.PCI0.SBRG.EC.MYEC) { If (\_SB.PCI0.SBRG.EC.CTSD) { Store (Zero, \_SB.PCI0.SBRG.EC.CTSD) Return (KLV (0x6E)) } Else { Store (\_SB.PCI0.SBRG.EC.CPUT, Local0= ) Store (Local0, DBG8) Return (KLV (Local0)) } } Else { Return (KLV (0x1E)) } } Method (_CRT, 0, NotSerialized) { Return (KLV (0x64)) } } } Device (OMSC) { Name (_HID, EisaId ("PNP0C02")) Name (_UID, Zero) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { If (APIC) { CreateDWordField (CRS, 0x08, ML01) CreateDWordField (CRS, 0x04, MB01) CreateDWordField (CRS, 0x14, ML02) CreateDWordField (CRS, 0x10, MB02) Store (0xFEC00000, MB01) Store (0x1000, ML01) Store (0xFEE00000, MB02) Store (0x1000, ML02) } Return (CRS) } } Device (^^RMEM) { Name (_HID, EisaId ("PNP0C01")) Name (_UID, One) Name (CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, 0x00000000, 0x000A0000)= Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) Memory32Fixed (ReadOnly, 0x000E0000, 0x00020000) Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)= Memory32Fixed (ReadOnly, 0x00000000, 0x00000000) }) Method (_CRS, 0, NotSerialized) { CreateDWordField (CRS, 0x10, BAS1) CreateDWordField (CRS, 0x14, LEN1) CreateDWordField (CRS, 0x1C, BAS2) CreateDWordField (CRS, 0x20, LEN2) CreateDWordField (CRS, 0x2C, LEN3) CreateDWordField (CRS, 0x34, BAS4) CreateDWordField (CRS, 0x38, LEN4) If (OSFL ()) {} Else { If (MG1B) { If (LGreater (MG1B, 0x000C0000)) { Store (0x000C0000, BAS1) Subtract (MG1B, BAS1, LEN1) } } Else { Store (0x000C0000, BAS1) Store (0x00020000, LEN1) } If (Add (MG1B, MG1L, Local0)) { Store (Local0, BAS2) Subtract (0x00100000, BAS2, LEN2) } } Subtract (MG2B, 0x00100000, LEN3) Store (MH1B, BAS4) Subtract (Zero, BAS4, LEN4) Return (CRS) } } } Device (IDE0) { Name (_ADR, 0x001F0002) Name (^NATA, Package (0x01) { 0x001F0002 }) Name (REGF, One) Method (_REG, 2, NotSerialized) { If (LEqual (Arg0, 0x02)) { Store (Arg1, REGF) } } Name (TIM0, Package (0x08) { Package (0x04) { 0x78, 0xB4, 0xF0, 0x0384 }, Package (0x04) { 0x23, 0x21, 0x10, Zero }, Package (0x04) { 0x0B, 0x09, 0x04, Zero }, Package (0x06) { 0x70, 0x49, 0x36, 0x27, 0x19, 0x0F }, Package (0x06) { Zero, One, 0x02, One, 0x02, One }, Package (0x06) { Zero, Zero, Zero, One, One, One }, Package (0x04) { 0x04, 0x03, 0x02, Zero }, Package (0x04) { 0x02, One, Zero, Zero } }) Name (TMD0, Buffer (0x14) {}) CreateDWordField (TMD0, Zero, PIO0) CreateDWordField (TMD0, 0x04, DMA0) CreateDWordField (TMD0, 0x08, PIO1) CreateDWordField (TMD0, 0x0C, DMA1) CreateDWordField (TMD0, 0x10, CHNF) OperationRegion (CFG2, PCI_Config, 0x40, 0x20) Field (CFG2, DWordAcc, NoLock, Preserve) { PMPT, 4, PSPT, 4, PMRI, 6, Offset (0x02), SMPT, 4, SSPT, 4, SMRI, 6, Offset (0x04), PSRI, 4, SSRI, 4, Offset (0x08), PM3E, 1, PS3E, 1, SM3E, 1, SS3E, 1, Offset (0x0A), PMUT, 2, , 2, PSUT, 2, Offset (0x0B), SMUT, 2, , 2, SSUT, 2, Offset (0x0C), Offset (0x14), PM6E, 1, PS6E, 1, SM6E, 1, SS6E, 1, PMCR, 1, PSCR, 1, SMCR, 1, SSCR, 1, , 4, PMAE, 1, PSAE, 1, SMAE, 1, SSAE, 1 } Name (GMPT, Zero) Name (GMUE, Zero) Name (GMUT, Zero) Name (GMCR, Zero) Name (GSPT, Zero) Name (GSUE, Zero) Name (GSUT, Zero) Name (GSCR, Zero) Device (CHN0) { Name (_ADR, Zero) Method (_GTM, 0, NotSerialized) { ShiftLeft (PSCR, One, Local1) Or (PMCR, Local1, Local0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, One, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local1) ShiftLeft (PMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, One, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local2) ShiftLeft (PSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (PMRI, Local1, PMUT, PSRI, Local2, PSUT, Local0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) ShiftLeft (PMAE, 0x02, Local3) ShiftLeft (PM6E, One, Local4) Or (Local3, Local4, Local3) Or (PM3E, Local3, Local0) ShiftLeft (PMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (PSAE, 0x02, Local3) ShiftLeft (PS6E, One, Local4) Or (Local3, Local4, Local3) Or (PS3E, Local3, Local1) ShiftLeft (PSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (PMRI, GMPT) Store (Local0, GMUE) Store (PMUT, GMUT) Store (PMCR, GMCR) Store (PSRI, GSPT) Store (Local1, GSUE) Store (PSUT, GSUT) Store (PSCR, GSCR) STM () Store (GMPT, PMRI) Store (GMUE, Local0) Store (GMUT, PMUT) Store (GMCR, PMCR) Store (GSUE, Local1) Store (GSUT, PSUT) Store (GSCR, PSCR) If (And (Local0, One)) { Store (One, PM3E) } Else { Store (Zero, PM3E) } If (And (Local0, 0x02)) { Store (One, PM6E) } Else { Store (Zero, PM6E) } If (And (Local0, 0x04)) { Store (One, PMAE) } Else { Store (Zero, PMAE) } If (And (Local1, One)) { Store (One, PS3E) } Else { Store (Zero, PS3E) } If (And (Local1, 0x02)) { Store (One, PS6E) } Else { Store (Zero, PS6E) } If (And (Local1, 0x04)) { Store (One, PSAE) } Else { Store (Zero, PSAE) } Store (GTF (Zero, Arg1), ATA0) Store (GTF (One, Arg2), ATA1) } Device (DRV0) { Name (_ADR, Zero) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA0)) } } Device (DRV1) { Name (_ADR, One) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA1)) } } } Device (CHN1) { Name (_ADR, One) Method (_GTM, 0, NotSerialized) { ShiftLeft (SSCR, One, Local1) Or (SMCR, Local1, Local0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, One, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local1) ShiftLeft (SMPT, 0x04, Local3) Or (Local1, Local3, Local1) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, One, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local2) ShiftLeft (SSPT, 0x04, Local3) Or (Local2, Local3, Local2) Return (GTM (SMRI, Local1, SMUT, SSRI, Local2, SSUT, Local0)) } Method (_STM, 3, NotSerialized) { Store (Arg0, Debug) Store (Arg0, TMD0) ShiftLeft (SMAE, 0x02, Local3) ShiftLeft (SM6E, One, Local4) Or (Local3, Local4, Local3) Or (SM3E, Local3, Local0) ShiftLeft (SMPT, 0x04, Local3) Or (Local0, Local3, Local0) ShiftLeft (SSAE, 0x02, Local3) ShiftLeft (SS6E, One, Local4) Or (Local3, Local4, Local3) Or (SS3E, Local3, Local1) ShiftLeft (SSPT, 0x04, Local3) Or (Local1, Local3, Local1) Store (SMRI, GMPT) Store (Local0, GMUE) Store (SMUT, GMUT) Store (SMCR, GMCR) Store (SSRI, GSPT) Store (Local1, GSUE) Store (SSUT, GSUT) Store (SSCR, GSCR) STM () Store (GMPT, SMRI) Store (GMUE, Local0) Store (GMUT, SMUT) Store (GMCR, SMCR) Store (GSUE, Local1) Store (GSUT, SSUT) Store (GSCR, SSCR) If (And (Local0, One)) { Store (One, SM3E) } Else { Store (Zero, SM3E) } If (And (Local0, 0x02)) { Store (One, SM6E) } Else { Store (Zero, SM6E) } If (And (Local0, 0x04)) { Store (One, SMAE) } Else { Store (Zero, SMAE) } If (And (Local1, One)) { Store (One, SS3E) } Else { Store (Zero, SS3E) } If (And (Local1, 0x02)) { Store (One, SS6E) } Else { Store (Zero, SS6E) } If (And (Local1, 0x04)) { Store (One, SSAE) } Else { Store (Zero, SSAE) } Store (GTF (Zero, Arg1), ATA2) Store (GTF (One, Arg2), ATA3) } Device (DRV0) { Name (_ADR, Zero) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA2)) } } Device (DRV1) { Name (_ADR, One) Method (_GTF, 0, NotSerialized) { Return (RATA (ATA3)) } } } Method (GTM, 7, Serialized) { Store (Ones, PIO0) Store (Ones, PIO1) Store (Ones, DMA0) Store (Ones, DMA1) Store (0x10, CHNF) If (REGF) {} Else { Return (TMD0) } If (And (Arg1, 0x20)) { Or (CHNF, 0x02, CHNF) } Store (Match (DerefOf (Index (TIM0, One)), MEQ, Arg0, MTR, Zero, Zero), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) Store (Local7, DMA0) Store (Local7, PIO0) If (And (Arg4, 0x20)) { Or (CHNF, 0x08, CHNF) } Store (Match (DerefOf (Index (TIM0, 0x02)), MEQ, Arg3, MTR, Zero, Zero), Local6) Store (DerefOf (Index (DerefOf (Index (TIM0, Zero)), Local6)), Local7) Store (Local7, DMA1) Store (Local7, PIO1) If (And (Arg1, 0x07)) { Store (Arg2, Local5) If (And (Arg1, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg1, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA0) Or (CHNF, One, CHNF) } If (And (Arg4, 0x07)) { Store (Arg5, Local5) If (And (Arg4, 0x02)) { Add (Local5, 0x02, Local5) } If (And (Arg4, 0x04)) { Add (Local5, 0x04, Local5) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x03)), Local5)), DMA1) Or (CHNF, 0x04, CHNF) } Store (TMD0, Debug) Return (TMD0) } Method (STM, 0, Serialized) { If (REGF) {} Else { Store (Zero, GMUE) Store (Zero, GMUT) Store (Zero, GSUE) Store (Zero, GSUT) If (And (CHNF, One)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA0, MTR, Zero, Zero), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GMUT) Or (GMUE, One, GMUE) If (LGreater (Local0, 0x02)) { Or (GMUE, 0x02, GMUE) } If (LGreater (Local0, 0x04)) { And (GMUE, 0xFD, GMUE) Or (GMUE, 0x04, GMUE) } } Else { If (Or (LEqual (PIO0, Ones), LEqual (PIO0, Zero))) { If (And (LLess (DMA0, Ones), LGreater (DMA0, Zero))) { Store (DMA0, PIO0) Or (GMUE, 0x80, GMUE) } } } If (And (CHNF, 0x04)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMA1, MTR, Zero, Zero), Local0) If (LGreater (Local0, 0x05)) { Store (0x05, Local0) } Store (DerefOf (Index (DerefOf (Index (TIM0, 0x04)), Local0)), GSUT) Or (GSUE, One, GSUE) If (LGreater (Local0, 0x02)) { Or (GSUE, 0x02, GSUE) } If (LGreater (Local0, 0x04)) { And (GSUE, 0xFD, GSUE) Or (GSUE, 0x04, GSUE) } } Else { If (Or (LEqual (PIO1, Ones), LEqual (PIO1, Zero))) { If (And (LLess (DMA1, Ones), LGreater (DMA1, Zero))) { Store (DMA1, PIO1) Or (GSUE, 0x80, GSUE) } } } If (And (CHNF, 0x02)) { Or (GMUE, 0x20, GMUE) } If (And (CHNF, 0x08)) { Or (GSUE, 0x20, GSUE) } And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO0, MTR, Zero, Zero), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, One)), Local0)), Local1) Store (Local1, GMPT) If (LLess (Local0, 0x03)) { Or (GMUE, 0x50, GMUE) } And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIO1, MTR, Zero, Zero), 0x07, Local0) Store (DerefOf (Index (DerefOf (Index (TIM0, 0x02)), Local0)), Local1) Store (Local1, GSPT) If (LLess (Local0, 0x03)) { Or (GSUE, 0x50, GSUE) } } } Name (AT01, Buffer (0x07) { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF }) Name (AT02, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90 }) Name (AT03, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6 }) Name (AT04, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91 }) Name (ATA0, Buffer (0x1D) {}) Name (ATA1, Buffer (0x1D) {}) Name (ATA2, Buffer (0x1D) {}) Name (ATA3, Buffer (0x1D) {}) Name (ATAB, Buffer (0x1D) {}) CreateByteField (ATAB, Zero, CMDC) Method (GTFB, 3, Serialized) { Multiply (CMDC, 0x38, Local0) Add (Local0, 0x08, Local1) CreateField (ATAB, Local1, 0x38, CMDX) Multiply (CMDC, 0x07, Local0) CreateByteField (ATAB, Add (Local0, 0x02), A001) CreateByteField (ATAB, Add (Local0, 0x06), A005) Store (Arg0, CMDX) Store (Arg1, A001) Store (Arg2, A005) Increment (CMDC) } Method (GTF, 2, Serialized) { Store (Arg1, Debug) Store (Zero, CMDC) Name (ID49, 0x0C00) Name (ID59, Zero) Name (ID53, 0x04) Name (ID63, 0x0F00) Name (ID88, 0x0F00) Name (IRDY, One) Name (PIOT, Zero) Name (DMAT, Zero) If (LEqual (SizeOf (Arg1), 0x0200)) { CreateWordField (Arg1, 0x62, IW49) Store (IW49, ID49) CreateWordField (Arg1, 0x6A, IW53) Store (IW53, ID53) CreateWordField (Arg1, 0x7E, IW63) Store (IW63, ID63) CreateWordField (Arg1, 0x76, IW59) Store (IW59, ID59) CreateWordField (Arg1, 0xB0, IW88) Store (IW88, ID88) } Store (0xA0, Local7) If (Arg0) { Store (0xB0, Local7) And (CHNF, 0x08, IRDY) If (And (CHNF, 0x10)) { Store (PIO1, PIOT) } Else { Store (PIO0, PIOT) } If (And (CHNF, 0x04)) { If (And (CHNF, 0x10)) { Store (DMA1, DMAT) } Else { Store (DMA0, DMAT) } } } Else { And (CHNF, 0x02, IRDY) Store (PIO0, PIOT) If (And (CHNF, One)) { Store (DMA0, DMAT) } } If (LAnd (LAnd (And (ID53, 0x04), And (ID88, 0xFF00)), DMAT)) { Store (Match (DerefOf (Index (TIM0, 0x03)), MLE, DMAT, MTR, Zero, Zero), Local1) If (LGreater (Local1, 0x05)) { Store (0x05, Local1) } GTFB (AT01, Or (0x40, Local1), Local7) } Else { If (LAnd (And (ID63, 0xFF00), PIOT)) { And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x03, Local0) Or (0x20, DerefOf (Index (DerefOf (Index (TIM0, 0x07)), Local0)), Local1) GTFB (AT01, Local1, Local7) } } If (IRDY) { And (Match (DerefOf (Index (TIM0, Zero)), MGE, PIOT, MTR, Zero, Zero), 0x07, Local0) Or (0x08, DerefOf (Index (DerefOf (Index (TIM0, 0x06)), Local0)), Local1) GTFB (AT01, Local1, Local7) } Else { If (And (ID49, 0x0400)) { GTFB (AT01, One, Local7) } } If (LAnd (And (ID59, 0x0100), And (ID59, 0xFF))) { GTFB (AT03, And (ID59, 0xFF), Local7) } Store (ATAB, Debug) Return (ATAB) } Method (RATA, 1, NotSerialized) { CreateByteField (Arg0, Zero, CMDN) Multiply (CMDN, 0x38, Local0) CreateField (Arg0, 0x08, Local0, RETB) Store (RETB, Debug) Concatenate (RETB, FZTF, RETB) Return (RETB) } Name (FZTF, Buffer (0x07) { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 }) } Device (IDE1) { Name (_ADR, 0x001F0001) } Device (USB0) { Name (_ADR, 0x001D0000) OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02= ))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (Zero, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x03, 0x03)) } } Device (USB1) { Name (_ADR, 0x001D0001) OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02= ))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (Zero, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x04, 0x03)) } } Device (USB2) { Name (_ADR, 0x001D0002) OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02= ))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (Zero, USBW) } } Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0C, 0x03)) } } Device (USB3) { Name (_ADR, 0x001D0003) OperationRegion (BAR0, PCI_Config, 0xC4, One) Field (BAR0, ByteAcc, NoLock, Preserve) { USBW, 2, Offset (0x01) } Method (_S3D, 0, NotSerialized) { If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02= ))) { Return (0x02) } Else { Return (0x03) } } Method (_PSW, 1, NotSerialized) { If (Arg0) { Store (0x03, USBW) } Else { Store (Zero, USBW) } } } Device (EUSB) { Name (_ADR, 0x001D0007) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x0D, 0x03)) } } Device (MC97) { Name (_ADR, 0x001E0003) } Device (AZAL) { Name (_ADR, 0x001B0000) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x05, 0x04)) } } Device (P0PD) { Name (_ADR, 0x001C0000) } Device (P0P2) { Name (_ADR, 0x001C0001) Method (_PRW, 0, NotSerialized) { Return (GPRW (0x09, 0x04)) } Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR02) } Return (PR02) } } Device (P0P3) { Name (_ADR, 0x001C0002) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR03) } Return (PR03) } } Device (P0P7) { Name (_ADR, 0x001C0003) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR07) } Return (PR07) } } Device (P0P8) { Name (_ADR, 0x001C0004) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR08) } Return (PR08) } } Device (P0P9) { Name (_ADR, 0x001C0005) Method (_PRT, 0, NotSerialized) { If (PICM) { Return (AR09) } Return (PR09) } } } Scope (\_GPE) { Method (_L09, 0, NotSerialized) { Notify (\_SB.PCI0.P0PC, 0x02) Notify (\_SB.PCI0.P0P2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0B, 0, NotSerialized) { Notify (\_SB.PCI0.P0P4, 0x02) Notify (\_SB.PCI0.P0P4.CBC0, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L03, 0, NotSerialized) { Notify (\_SB.PCI0.USB0, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L04, 0, NotSerialized) { Notify (\_SB.PCI0.USB1, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0C, 0, NotSerialized) { Notify (\_SB.PCI0.USB2, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L0D, 0, NotSerialized) { Notify (\_SB.PCI0.EUSB, 0x02) Notify (\_SB.PWRB, 0x02) } Method (_L05, 0, NotSerialized) { Notify (\_SB.PCI0.AZAL, 0x02) Notify (\_SB.PWRB, 0x02) } } Device (PWRB) { Name (_HID, EisaId ("PNP0C0C")) Name (_UID, 0xAA) Name (_STA, 0x0B) } } OperationRegion (_SB.PCI0.SBRG.PIX0, PCI_Config, 0x60, 0x0C) Field (\_SB.PCI0.SBRG.PIX0, ByteAcc, NoLock, Preserve) { PIRA, 8, PIRB, 8, PIRC, 8, PIRD, 8, Offset (0x08), PIRE, 8, PIRF, 8, PIRG, 8, PIRH, 8 } Scope (_SB) { Name (BUFA, ResourceTemplate () { IRQ (Level, ActiveLow, Shared) {15} }) CreateWordField (BUFA, One, IRA0) Device (LNKA) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, One) Method (_STA, 0, NotSerialized) { And (PIRA, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSA) } Method (_DIS, 0, NotSerialized) { Or (PIRA, 0x80, PIRA) } Method (_CRS, 0, NotSerialized) { And (PIRA, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRA) } } Device (LNKB) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x02) Method (_STA, 0, NotSerialized) { And (PIRB, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSB) } Method (_DIS, 0, NotSerialized) { Or (PIRB, 0x80, PIRB) } Method (_CRS, 0, NotSerialized) { And (PIRB, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRB) } } Device (LNKC) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x03) Method (_STA, 0, NotSerialized) { And (PIRC, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSC) } Method (_DIS, 0, NotSerialized) { Or (PIRC, 0x80, PIRC) } Method (_CRS, 0, NotSerialized) { And (PIRC, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRC) } } Device (LNKD) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x04) Method (_STA, 0, NotSerialized) { And (PIRD, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSD) } Method (_DIS, 0, NotSerialized) { Or (PIRD, 0x80, PIRD) } Method (_CRS, 0, NotSerialized) { And (PIRD, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRD) } } Device (LNKE) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x05) Method (_STA, 0, NotSerialized) { And (PIRE, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSE) } Method (_DIS, 0, NotSerialized) { Or (PIRE, 0x80, PIRE) } Method (_CRS, 0, NotSerialized) { And (PIRE, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRE) } } Device (LNKF) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x06) Method (_STA, 0, NotSerialized) { And (PIRF, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSF) } Method (_DIS, 0, NotSerialized) { Or (PIRF, 0x80, PIRF) } Method (_CRS, 0, NotSerialized) { And (PIRF, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRF) } } Device (LNKG) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x07) Method (_STA, 0, NotSerialized) { And (PIRG, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSG) } Method (_DIS, 0, NotSerialized) { Or (PIRG, 0x80, PIRG) } Method (_CRS, 0, NotSerialized) { And (PIRG, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRG) } } Device (LNKH) { Name (_HID, EisaId ("PNP0C0F")) Name (_UID, 0x08) Method (_STA, 0, NotSerialized) { And (PIRH, 0x80, Local0) If (Local0) { Return (0x09) } Else { Return (0x0B) } } Method (_PRS, 0, NotSerialized) { Return (PRSH) } Method (_DIS, 0, NotSerialized) { Or (PIRH, 0x80, PIRH) } Method (_CRS, 0, NotSerialized) { And (PIRH, 0x0F, Local0) ShiftLeft (One, Local0, IRA0) Return (BUFA) } Method (_SRS, 1, NotSerialized) { CreateWordField (Arg0, One, IRA) FindSetRightBit (IRA, Local0) Decrement (Local0) Store (Local0, PIRH) } } } Scope (_SB) { Name (XCPD, Zero) Name (XNPT, One) Name (XCAP, 0x02) Name (XDCP, 0x04) Name (XDCT, 0x08) Name (XDST, 0x0A) Name (XLCP, 0x0C) Name (XLCT, 0x10) Name (XLST, 0x12) Name (XSCP, 0x14) Name (XSCT, 0x18) Name (XSST, 0x1A) Name (XRCT, 0x1C) Mutex (MUTE, 0x00) Method (RBPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, One) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Release (MUTE) Return (XCFG) } Method (RWPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Release (MUTE) Return (XCFG) } Method (RDPE, 1, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Release (MUTE) Return (XCFG) } Method (WBPE, 2, NotSerialized) { Acquire (MUTE, 0x0FFF) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, One) Field (PCFG, ByteAcc, NoLock, Preserve) { XCFG, 8 } Store (Arg1, XCFG) Release (MUTE) } Method (WWPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFE, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x02) Field (PCFG, WordAcc, NoLock, Preserve) { XCFG, 16 } Store (Arg1, XCFG) Release (MUTE) } Method (WDPE, 2, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } Store (Arg1, XCFG) Release (MUTE) } Method (RWDP, 3, NotSerialized) { Acquire (MUTE, 0x03E8) And (Arg0, 0xFFFFFFFC, Arg0) Add (Arg0, PCIB, Local0) OperationRegion (PCFG, SystemMemory, Local0, 0x04) Field (PCFG, DWordAcc, NoLock, Preserve) { XCFG, 32 } And (XCFG, Arg2, Local1) Or (Local1, Arg1, XCFG) Release (MUTE) } Method (RPME, 1, NotSerialized) { Add (Arg0, 0x84, Local0) Store (RDPE (Local0), Local1) If (LEqual (Local1, Ones)) { Return (Zero) } Else { If (LAnd (Local1, 0x00010000)) { WDPE (Local0, And (Local1, 0x00010000)) Return (One) } Return (Zero) } } } Scope (_SB) { Scope (PCI0) { Name (CRS, ResourceTemplate () { WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 0x0000, 0x0000, 0x00FF, 0x0000, 0x0100) IO (Decode16, 0x0CF8, 0x0CF8, 0x01, 0x08) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0000, 0x0CF7, 0x0000, 0x0CF8) WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 0x0000, 0x0D00, 0xFFFF, 0x0000, 0xF300) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000A0000, 0x000BFFFF, 0x00000000, 0x00020000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x000C0000, 0x000DFFFF, 0x00000000, 0x00020000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000) }) CreateDWordField (CRS, 0x5C, MIN5) CreateDWordField (CRS, 0x60, MAX5) CreateDWordField (CRS, 0x68, LEN5) CreateDWordField (CRS, 0x76, MIN6) CreateDWordField (CRS, 0x7A, MAX6) CreateDWordField (CRS, 0x82, LEN6) CreateDWordField (CRS, 0x90, MIN7) CreateDWordField (CRS, 0x94, MAX7) CreateDWordField (CRS, 0x9C, LEN7) Method (_CRS, 0, NotSerialized) { Store (MG1L, Local0) If (Local0) { Store (MG1B, MIN5) Store (MG1L, LEN5) Add (MIN5, Decrement (Local0), MAX5) } Store (MG2B, MIN6) Store (MG2L, LEN6) Store (MG2L, Local0) Add (MIN6, Decrement (Local0), MAX6) Store (MG3B, MIN7) Store (MG3L, LEN7) Store (MG3L, Local0) Add (MIN7, Decrement (Local0), MAX7) Return (CRS) } } } Name (WOTB, Zero) Name (WSSB, Zero) Name (WAXB, Zero) Method (_PTS, 1, NotSerialized) { Store (Arg0, DBG8) PTS (Arg0) Store (Zero, Index (WAKP, Zero)) Store (Zero, Index (WAKP, One)) If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02))) { Sleep (0x0BB8) } Store (ASSB, WSSB) Store (AOTB, WOTB) Store (AAXB, WAXB) Store (Arg0, ASSB) Store (OSFL (), AOTB) Store (Zero, AAXB) } Name (SLID, One) Method (_WAK, 1, NotSerialized) { ShiftLeft (Arg0, 0x04, DBG8) Store (One, SLID) WAK (Arg0) If (ASSB) { Store (WSSB, ASSB) Store (WOTB, AOTB) Store (WAXB, AAXB) } If (DerefOf (Index (WAKP, Zero))) { Store (Zero, Index (WAKP, One)) } Else { Store (Arg0, Index (WAKP, One)) } Store (\_SB.PCI0.SBRG.EC.POWS, Local0) If (LEqual (Local0, One)) { Store (One, \_SB.PCI0.SBRG.EC.ADP1.ACP) } Else { Store (Zero, \_SB.PCI0.SBRG.EC.ADP1.ACP) } Store (\_SB.PCI0.SBRG.EC.MBTS, Local0) If (LEqual (Local0, One)) { Store (One, \_SB.PCI0.SBRG.EC.ADP1.BFLG) } Else { Store (Zero, \_SB.PCI0.SBRG.EC.ADP1.BFLG) } Notify (\_SB.PCI0.SBRG.EC.ADP1, Zero) Notify (\_SB.PCI0.SBRG.EC.BAT1, Zero) Store (One, \_SB.PCI0.WAWA.PDC1) Store (One, \_SB.PCI0.WAWA.HPCS) If (MCTH (_OS, "Microsoft Windows")) { If (LEqual (Arg0, 0x04)) { Notify (\_SB.PWRB, 0x02) } } Return (WAKP) } Name (_S0, Package (0x04) { Zero, Zero, Zero, Zero }) If (SS1) { Name (_S1, Package (0x04) { One, Zero, Zero, Zero }) } If (SS3) { Name (_S3, Package (0x04) { 0x05, Zero, Zero, Zero }) } If (SS4) { Name (_S4, Package (0x04) { 0x06, Zero, Zero, Zero }) } Name (_S5, Package (0x04) { 0x07, Zero, Zero, Zero }) Method (PTS, 1, NotSerialized) { If (Arg0) { \_SB.PCI0.NPTS (Arg0) \_SB.PCI0.SBRG.SPTS (Arg0) } } Method (WAK, 1, NotSerialized) { \_SB.PCI0.NWAK (Arg0) \_SB.PCI0.SBRG.SWAK (Arg0) } } >=20 > gahr> In this case, the CPU frequency should be increased according to > gahr> powerd's algorithm and should be decreased according to passive > gahr> cooling's algorithm. >=20 > gahr> Wouldn't it be better to have one subsystem deal with both usage = and > gahr> temperature in order to decide which is the best next frequency t= o be set? >=20 > No, we have a priority to control a cpufreq in our kernel, to deal > with conflict between kernel and userland. Controlling cpufreq within > our kernel is considered as high proirity. So, during our kernel is > controlling a cpufreq, we cannot change cpufreq from userland. And, > our kernel releasing the control, a cpufreq is back to the value > before our kernel changed it. >=20 > gahr> My patch is really just a first draft that I wrote in order to ha= ve > gahr> feedbacks on the general idea to implement a temperature controll= ing > gahr> system inside powerd, and doesn't implement hysteresis as you not= ed, and > gahr> your feedback is that it's not a good idea, which I respect. >=20 > It is rather backward, IMHO. I did implement a passive cooling > feature as an enhancement of powerd(8) like you did, during initial > phases. Then, I implemented it in our kernel as a result. >=20 > Sincerely, >=20 > -- > Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan > ume@mahoroba.org ume@{,jp.}FreeBSD.org > http://www.imasy.org/~ume/ --=20 Pietro Cerutti PGP Public Key: http://gahr.ch/pgp --------------enig4CA6C2FBD4CDF6A051529EB3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGrs6RwMJqmJVx944RCnpaAKDkeS6b0P11uqE9wqgEqRgYXFMh6ACeIGiH fW2BmCjMGANdMUoqvBKArmk= =wl32 -----END PGP SIGNATURE----- --------------enig4CA6C2FBD4CDF6A051529EB3-- From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 10:43:59 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 231FE16A417; Tue, 31 Jul 2007 10:43:59 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from cpanel03.rubas-s03.net (cpanel03.rubas-s03.net [195.182.222.73]) by mx1.freebsd.org (Postfix) with ESMTP id 9E11F13C459; Tue, 31 Jul 2007 10:43:58 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from gahrtop.bfh.ch ([147.87.108.141] helo=gahrtop.localhost) by cpanel03.rubas-s03.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1IFpCm-0007Hm-2g; Tue, 31 Jul 2007 12:43:56 +0200 Message-ID: <46AF1276.8070808@gahr.ch> Date: Tue, 31 Jul 2007 12:44:06 +0200 From: Pietro Cerutti User-Agent: Thunderbird 2.0.0.5 (X11/20070723) MIME-Version: 1.0 To: Hajimu UMEMOTO , freebsd-hackers@freebsd.org, freebsd-acpi@freebsd.org References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> <46AEDB0C.6070706@gahr.ch> In-Reply-To: <46AEDB0C.6070706@gahr.ch> X-Enigmail-Version: 0.95.2 OpenPGP: id=9571F78E; url=http://www.gahr.ch/pgp Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enigDD61C1913061BBF31FCF3179" X-Antivirus-Scanner: Clean mail though you should still use an Antivirus X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cpanel03.rubas-s03.net X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - gahr.ch X-Source: X-Source-Args: X-Source-Dir: Cc: Subject: [SOLVED] Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 10:43:59 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigDD61C1913061BBF31FCF3179 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Pietro Cerutti wrote: > Hajimu UMEMOTO wrote: >> Hi, >> >>>>>>> On Tue, 31 Jul 2007 07:54:20 +0200 >>>>>>> Pietro Cerutti said: >> gahr> Thanks for your help! >> >> I cannot see _TC1, _TC2 nor _TSP in your `acpidump -dt' output. >> Further, there is no _PSV definition in anywhere, in the first place. >> It seems to me that your ACPI BIOS doesn't support passive cooling at >> all. >=20 > Yep that's what I suspected. >=20 >> gahr> hw.acpi.thermal.user_override: 1 >> gahr> hw.acpi.thermal.tz0._PSV: 80.0C >> >> I suspect that you set hw.acpi.thermal.tz0._PSV manually. >=20 > Yes I did.. >=20 >> Of cource, it is insufficient to make passive cooling work with your A= CPI BIOS, >> and you need the definition of _TC1, _TC2 and _TSP as well. >> If you define apropreate definition of them, passive cooling will >> work. But, we don't provide overriding the values of them. Perhaps, >> modifying your ASL (`acpidump -dt' output) to add the definitions of >> _TC1, _TC2, _TSP and _PSV, and loading it from loader will make >> passive cooling work. >=20 > Do you have an example? I'm really far from being familiar with the ASL= > code... Nevermind, I finally got my passive cooling working. Here's the diff against my acpidump -dt: --- MSI1034.asl.orig 2007-07-31 12:37:55.000000000 +0200 +++ MSI1034.asl 2007-07-31 12:37:57.000000000 +0200 @@ -2612,6 +2612,10 @@ { Return (KLV (0x64)) } + Name (_TC1, 0x00) + Name (_TC2, 0x0C) + Name (_TSP, 0x28) + } } @@ -4425,8 +4429,11 @@ Zero, Zero }) + + /* If (SS1) { + */ Name (_S1, Package (0x04) { One, @@ -4434,10 +4441,14 @@ Zero, Zero }) + /* } + */ + /* If (SS3) { + */ Name (_S3, Package (0x04) { 0x05, @@ -4445,10 +4456,14 @@ Zero, Zero }) + /* } + */ + /* If (SS4) { + */ Name (_S4, Package (0x04) { 0x06, @@ -4456,7 +4471,9 @@ Zero, Zero }) + /* } + */ Name (_S5, Package (0x04) { I don't know if the values of _TC1, _TC2 and TSP are meaningful, but it seems to work for me, having a _PSV value of 65C. Any suggestions on those values are welcome. acpi_tz0: temperature 65.8C: decreasing clock speed from 1743 MHz to 1452 MHz acpi_tz0: temperature 65.8C: decreasing clock speed from 1452 MHz to 1162 MHz acpi_tz0: temperature 63.8C: increasing clock speed from 1162 MHz to 1452 MHz acpi_tz0: temperature 64.8C: increasing clock speed from 1452 MHz to 1660 MHz acpi_tz0: temperature 64.8C: increasing clock speed from 1660 MHz to 1743 MHz acpi_tz0: temperature 65.8C: decreasing clock speed from 1743 MHz to 1452 MHz acpi_tz0: temperature 64.8C: increasing clock speed from 1452 MHz to 1660 MHz acpi_tz0: temperature 64.8C: increasing clock speed from 1660 MHz to 1743 MHz acpi_tz0: temperature 66.8C: decreasing clock speed from 1743 MHz to 1162 MHz acpi_tz0: temperature 64.8C: increasing clock speed from 1162 MHz to 1328 MHz =2E.............. This seems to keep my laptop's temperature around 65C. Thanks again, >=20 >> Sincerely, >=20 > Thank you >=20 >> -- >> Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan >> ume@mahoroba.org ume@{,jp.}FreeBSD.org >> http://www.imasy.org/~ume/ >=20 --=20 Pietro Cerutti PGP Public Key: http://gahr.ch/pgp --------------enigDD61C1913061BBF31FCF3179 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGrxJ7wMJqmJVx944RChyeAKC2xMayD3+AjeNep4cAlOLOjHoMsQCgpVKe Ol49oKNSUsxW7TUxVyOUyFA= =4dwn -----END PGP SIGNATURE----- --------------enigDD61C1913061BBF31FCF3179-- From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 14:43:20 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77FAF16A419; Tue, 31 Jul 2007 14:43:20 +0000 (UTC) (envelope-from ume@mahoroba.org) Received: from ameno.mahoroba.org (ent.mahoroba.org [IPv6:2001:2f0:104:8010::1]) by mx1.freebsd.org (Postfix) with ESMTP id 2733613C45B; Tue, 31 Jul 2007 14:43:20 +0000 (UTC) (envelope-from ume@mahoroba.org) Received: from kasuga.mahoroba.org (IDENT:3BvvWCs2DIIHpDvEJv4X+asnJ7j9r03ys2zc0TNfUk7g7oPoedCZiqZBua7HPjZf@kasuga.mahoroba.org [IPv6:2001:2f0:104:8010:20b:97ff:fe2e:b521]) (user=ume mech=CRAM-MD5 bits=0) by ameno.mahoroba.org (8.13.8/8.13.8) with ESMTP/inet6 id l6VEhA28054785 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 31 Jul 2007 23:43:13 +0900 (JST) (envelope-from ume@mahoroba.org) Date: Tue, 31 Jul 2007 23:43:10 +0900 Message-ID: From: Hajimu UMEMOTO To: Pietro Cerutti In-Reply-To: <46AF1276.8070808@gahr.ch> References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> <46AEDB0C.6070706@gahr.ch> <46AF1276.8070808@gahr.ch> User-Agent: xcite1.57> Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.7 Emacs/22.1 (i386-pc-freebsd) MULE/5.0 (SAKAKI) X-Operating-System: FreeBSD 6.2-STABLE X-PGP-Key: http://www.imasy.or.jp/~ume/publickey.asc X-PGP-Fingerprint: 1F00 0B9E 2164 70FC 6DC5 BF5F 04E9 F086 BF90 71FE Organization: Internet Mutual Aid Society, YOKOHAMA MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-3.0 (ameno.mahoroba.org [IPv6:2001:2f0:104:8010::1]); Tue, 31 Jul 2007 23:43:13 +0900 (JST) X-Virus-Scanned: by amavisd-new X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00, DKIM_POLICY_SIGNSOME,DK_POLICY_SIGNSOME autolearn=ham version=3.2.1 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on ameno.mahoroba.org Cc: freebsd-hackers@freebsd.org, freebsd-acpi@freebsd.org Subject: Re: [SOLVED] Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 14:43:20 -0000 Hi, >>>>> On Tue, 31 Jul 2007 12:44:06 +0200 >>>>> Pietro Cerutti said: gahr> Nevermind, I finally got my passive cooling working. Congratulation! gahr> I don't know if the values of _TC1, _TC2 and TSP are meaningful, but it gahr> seems to work for me, having a _PSV value of 65C. gahr> Any suggestions on those values are welcome. The cpufreq is controlled according to the following formula: P [%] = _TC1 * ( Tn - Tn-1 ) + _TC2 * ( Tn - _PSV ) Pn = Pn-1 + HW[ - P ] where 0% <= Pn <= 100% And, this evaluation is examined every _TSP / 10 second. I'm not sure which values are appropriate for your box, but my laptop has the following values: Name (_TC1, Zero) Name (_TC2, 0x0C) Name (_TSP, 0x28) The values are same as you chose. Please refer the following document for detail: http://www.acpi.info/DOWNLOADS/ACPIspec-2-0c.pdf Sincerely, -- Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan ume@mahoroba.org ume@{,jp.}FreeBSD.org http://www.imasy.org/~ume/ From owner-freebsd-acpi@FreeBSD.ORG Tue Jul 31 14:55:03 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C830016A417; Tue, 31 Jul 2007 14:55:03 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from cpanel03.rubas-s03.net (cpanel03.rubas-s03.net [195.182.222.73]) by mx1.freebsd.org (Postfix) with ESMTP id 4B8EB13C481; Tue, 31 Jul 2007 14:55:03 +0000 (UTC) (envelope-from gahr@gahr.ch) Received: from 80-218-187-205.dclient.hispeed.ch ([80.218.187.205] helo=gahrtop.localhost) by cpanel03.rubas-s03.net with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1IFt7l-0002qV-EY; Tue, 31 Jul 2007 16:55:01 +0200 Message-ID: <46AF4D52.4020500@gahr.ch> Date: Tue, 31 Jul 2007 16:55:14 +0200 From: Pietro Cerutti User-Agent: Thunderbird 2.0.0.5 (X11/20070723) MIME-Version: 1.0 To: Hajimu UMEMOTO References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> <46AEDB0C.6070706@gahr.ch> <46AF1276.8070808@gahr.ch> In-Reply-To: X-Enigmail-Version: 0.95.2 OpenPGP: id=9571F78E; url=http://www.gahr.ch/pgp Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="------------enig66366DA221C765B65C236613" X-Antivirus-Scanner: Clean mail though you should still use an Antivirus X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cpanel03.rubas-s03.net X-AntiAbuse: Original Domain - freebsd.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - gahr.ch X-Source: X-Source-Args: X-Source-Dir: Cc: freebsd-hackers@freebsd.org, freebsd-acpi@freebsd.org Subject: Re: [SOLVED] Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 31 Jul 2007 14:55:03 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig66366DA221C765B65C236613 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hajimu UMEMOTO wrote: > Hi, >=20 >>>>>> On Tue, 31 Jul 2007 12:44:06 +0200 >>>>>> Pietro Cerutti said: >=20 > gahr> Nevermind, I finally got my passive cooling working. >=20 > Congratulation! Thanx ;-) >=20 > gahr> I don't know if the values of _TC1, _TC2 and TSP are meaningful, = but it > gahr> seems to work for me, having a _PSV value of 65C. > gahr> Any suggestions on those values are welcome. >=20 > The cpufreq is controlled according to the following formula: >=20 > P [%] =3D _TC1 * ( Tn - Tn-1 ) + _TC2 * ( Tn - _PSV ) > Pn =3D Pn-1 + HW[ - P ] where 0% <=3D Pn <=3D 100% Been there, done that ;-) I saw this formula on the ACPI specs, but I feel like I don't have the knowledge to tailor _TC1 and _TC2 to my >=20 > And, this evaluation is examined every _TSP / 10 second. > I'm not sure which values are appropriate for your box, but my laptop > has the following values: >=20 > Name (_TC1, Zero) > Name (_TC2, 0x0C) > Name (_TSP, 0x28) >=20 > The values are same as you chose. ;-) I took the first two values I found in an ACPI asl on the net. > Please refer the following document for detail: >=20 > http://www.acpi.info/DOWNLOADS/ACPIspec-2-0c.pdf Maybe during vacation :-) >=20 > Sincerely, Thanks for your help! >=20 > -- > Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan > ume@mahoroba.org ume@{,jp.}FreeBSD.org > http://www.imasy.org/~ume/ --=20 Pietro Cerutti PGP Public Key: http://gahr.ch/pgp --------------enig66366DA221C765B65C236613 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) iD8DBQFGr01WwMJqmJVx944RCuJLAJ9l7Ne8jdc2HpeJVDC2sOk9GlAISwCgp2WF W59zWuVPomltDSfHcH7GvPU= =S5ca -----END PGP SIGNATURE----- --------------enig66366DA221C765B65C236613-- From owner-freebsd-acpi@FreeBSD.ORG Wed Aug 1 08:04:24 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40D6216A417; Wed, 1 Aug 2007 08:04:24 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (tim.des.no [194.63.250.121]) by mx1.freebsd.org (Postfix) with ESMTP id EFAB813C45A; Wed, 1 Aug 2007 08:04:23 +0000 (UTC) (envelope-from des@des.no) Received: from tim.des.no (localhost [127.0.0.1]) by spam.des.no (Postfix) with ESMTP id BDDBC2089; Wed, 1 Aug 2007 09:47:19 +0200 (CEST) X-Spam-Tests: AWL X-Spam-Learn: disabled X-Spam-Score: 0.0/3.0 X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on tim.des.no Received: from ds4.des.no (des.no [80.203.243.180]) by smtp.des.no (Postfix) with ESMTP id 3DF4E2085; Wed, 1 Aug 2007 09:47:19 +0200 (CEST) Received: by ds4.des.no (Postfix, from userid 1001) id 2B3A18447A; Wed, 1 Aug 2007 09:47:19 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Hajimu UMEMOTO References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> Date: Wed, 01 Aug 2007 09:47:19 +0200 In-Reply-To: (Hajimu UMEMOTO's message of "Tue\, 31 Jul 2007 15\:43\:15 +0900") Message-ID: <86hcnjn1bs.fsf@ds4.des.no> User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.1 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, Pietro Cerutti Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Aug 2007 08:04:24 -0000 Hajimu UMEMOTO writes: > I cannot see _TC1, _TC2 nor _TSP in your `acpidump -dt' output. > Further, there is no _PSV definition in anywhere, in the first place. > It seems to me that your ACPI BIOS doesn't support passive cooling at > all. Going off on a tangent, I too have several motherboards (965P-based) which do not define any ACPI thermal zones, which leads me to wonder: what is the preferred way to access thermal data these days? IPMI? Do we have IPMI support in base or ports? DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 02:30:56 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4110D16A41A for ; Thu, 2 Aug 2007 02:30:56 +0000 (UTC) (envelope-from matheusber@gmail.com) Received: from rv-out-0910.google.com (rv-out-0910.google.com [209.85.198.191]) by mx1.freebsd.org (Postfix) with ESMTP id 1BC6A13C48D for ; Thu, 2 Aug 2007 02:30:56 +0000 (UTC) (envelope-from matheusber@gmail.com) Received: by rv-out-0910.google.com with SMTP id f1so247733rvb for ; Wed, 01 Aug 2007 19:30:55 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=O79iyLnedSy07yKaSUfPecwfTZyNkMYK8IVyv9l7WpFkjFQ73SAz7Vw48y6OGe1PAl2mhZMa5SmI1L58reDJodEJkdm/j0azr/oCrZQEhXWWffciUxtjS0jH12JgDx5BlH/QaFDIe/eSCoKwpoTQzepAGDkA/hLPawtfK4cB/xE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=kJfqTKicS9sRsUp5OWWvsoGdgZK916FH0MBux0NNPdVoO9NrkiE28S5l7d2SJGm8C5Vgwyxi35UxPcy55UcEuj++S91ssO7ZD5kdvA3l3YQKre+XuUoNvdEUIUcCFNs31Dqy6F8pa6z+Qrq8wLmMzSXorbq5dbyNbPsaUMHY6ag= Received: by 10.114.108.15 with SMTP id g15mr1314426wac.1186020164685; Wed, 01 Aug 2007 19:02:44 -0700 (PDT) Received: by 10.115.78.4 with HTTP; Wed, 1 Aug 2007 19:02:44 -0700 (PDT) Message-ID: <4956a5e50708011902ra84c2ddx2f865be551b93d06@mail.gmail.com> Date: Wed, 1 Aug 2007 23:02:44 -0300 From: Nenhum_de_Nos To: freebsd-acpi@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: acpi_asus on F3T X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 02:30:56 -0000 hail, I have an Asus F3T and when looking for how to change LCD brightness and control sound volume, I read acpi_asus.c and with some little thinking, I can now change brightness through sysctl. ( diff included) As I really didnt understood all I did, I'd like to know how could I finish what I started :) any help would be apreciated :) thanks matheus -- We will call you cygnus, The God of balance you shall be From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 03:20:41 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C108816A41A; Thu, 2 Aug 2007 03:20:40 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 68E4013C48D; Thu, 2 Aug 2007 03:20:40 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.8/8.13.4) with ESMTP id l723HBVw048128; Wed, 1 Aug 2007 21:17:12 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 01 Aug 2007 21:17:18 -0600 (MDT) Message-Id: <20070801.211718.1683324313.imp@bsdimp.com> To: nate@root.org From: "M. Warner Losh" In-Reply-To: <46AE8F78.1060203@root.org> References: <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Wed, 01 Aug 2007 21:17:13 -0600 (MDT) Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, ume@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 03:20:41 -0000 In message: <46AE8F78.1060203@root.org> Nate Lawson writes: : Hajimu UMEMOTO wrote: : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 : >>>>>> Pietro Cerutti said: : > gahr> My patch is really just a first draft that I wrote in order to have : > gahr> feedbacks on the general idea to implement a temperature controlling : > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and : > gahr> your feedback is that it's not a good idea, which I respect. : > : > It is rather backward, IMHO. I did implement a passive cooling : > feature as an enhancement of powerd(8) like you did, during initial : > phases. Then, I implemented it in our kernel as a result. : : I'll take a look at your patch. Umemoto-san is right in that you really : want the kernel to control cooling. What happens if powerd dies/hangs : and your system burns up? Passive cooling is often a last resort to : keep the system from overheating. I keep getting the system shutting down on my HP by FreeBSD because the temperature exceeds the _CRT value. Maybe there's something wrong with my values, since it happens a lot: hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.user_override: 0 hw.acpi.thermal.tz0.temperature: 0.0C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 90.0C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 94.0C hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 Note: temperature is always 0.0C. What can I do to help my situation, if I really want the kernel doing the cooling? Warner From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 03:26:56 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93BCE16A418; Thu, 2 Aug 2007 03:26:56 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from mxout7.cac.washington.edu (mxout7.cac.washington.edu [140.142.32.178]) by mx1.freebsd.org (Postfix) with ESMTP id 6CA3413C468; Thu, 2 Aug 2007 03:26:56 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from smtp.washington.edu (smtp.washington.edu [140.142.33.7] (may be forged)) by mxout7.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW07.06) with ESMTP id l723QrCp007390 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 1 Aug 2007 20:26:53 -0700 X-Auth-Received: from [192.168.10.45] (c-24-10-12-194.hsd1.ca.comcast.net [24.10.12.194]) (authenticated authid=youshi10) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW07.03) with ESMTP id l723Qrle028909 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 1 Aug 2007 20:26:53 -0700 Message-ID: <46B14EFB.6010207@u.washington.edu> Date: Wed, 01 Aug 2007 20:26:51 -0700 From: Garrett Cooper User-Agent: Thunderbird 2.0.0.5 (Windows/20070716) MIME-Version: 1.0 To: "M. Warner Losh" References: <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> In-Reply-To: <20070801.211718.1683324313.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Version: 5.3.3.310218, Antispam-Engine: 2.5.1.298604, Antispam-Data: 2007.8.1.200229 X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='__CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __USER_AGENT 0' Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, gahr@gahr.ch, ume@freebsd.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 03:26:56 -0000 M. Warner Losh wrote: > In message: <46AE8F78.1060203@root.org> > Nate Lawson writes: > : Hajimu UMEMOTO wrote: > : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 > : >>>>>> Pietro Cerutti said: > : > gahr> My patch is really just a first draft that I wrote in order to have > : > gahr> feedbacks on the general idea to implement a temperature controlling > : > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and > : > gahr> your feedback is that it's not a good idea, which I respect. > : > > : > It is rather backward, IMHO. I did implement a passive cooling > : > feature as an enhancement of powerd(8) like you did, during initial > : > phases. Then, I implemented it in our kernel as a result. > : > : I'll take a look at your patch. Umemoto-san is right in that you really > : want the kernel to control cooling. What happens if powerd dies/hangs > : and your system burns up? Passive cooling is often a last resort to > : keep the system from overheating. > > I keep getting the system shutting down on my HP by FreeBSD because > the temperature exceeds the _CRT value. Maybe there's something wrong > with my values, since it happens a lot: > > hw.acpi.thermal.min_runtime: 0 > hw.acpi.thermal.polling_rate: 10 > hw.acpi.thermal.user_override: 0 > hw.acpi.thermal.tz0.temperature: 0.0C > hw.acpi.thermal.tz0.active: -1 > hw.acpi.thermal.tz0.passive_cooling: 1 > hw.acpi.thermal.tz0.thermal_flags: 0 > hw.acpi.thermal.tz0._PSV: 90.0C > hw.acpi.thermal.tz0._HOT: -1 > hw.acpi.thermal.tz0._CRT: 94.0C > hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 > > Note: temperature is always 0.0C. > > What can I do to help my situation, if I really want the kernel doing > the cooling? > > Warner > Wow, something's really wrong with those calculated temperatures. At that value most of the plastic and weaker circuitry should have fused together =\. -Garrett From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 03:47:11 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 92F6A16A41B for ; Thu, 2 Aug 2007 03:47:11 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outA.internet-mail-service.net (outA.internet-mail-service.net [216.240.47.224]) by mx1.freebsd.org (Postfix) with ESMTP id 6F9BE13C468 for ; Thu, 2 Aug 2007 03:47:11 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.32) with ESMTP; Wed, 01 Aug 2007 20:36:29 -0700 Received: from julian-mac.elischer.org (nat.ironport.com [63.251.108.100]) by idiom.com (Postfix) with ESMTP id 8E55D125B11; Wed, 1 Aug 2007 20:36:28 -0700 (PDT) Message-ID: <46B15166.1070305@elischer.org> Date: Wed, 01 Aug 2007 20:37:10 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.5 (Macintosh/20070716) MIME-Version: 1.0 To: Garrett Cooper References: <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> <46B14EFB.6010207@u.washington.edu> In-Reply-To: <46B14EFB.6010207@u.washington.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ume@freebsd.org, acpi@freebsd.org, freebsd-hackers@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 03:47:11 -0000 Garrett Cooper wrote: > M. Warner Losh wrote: >> In message: <46AE8F78.1060203@root.org> >> Nate Lawson writes: >> : Hajimu UMEMOTO wrote: >> : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 >> : >>>>>> Pietro Cerutti said: >> : > gahr> My patch is really just a first draft that I wrote in order >> to have >> : > gahr> feedbacks on the general idea to implement a temperature >> controlling >> : > gahr> system inside powerd, and doesn't implement hysteresis as >> you noted, and >> : > gahr> your feedback is that it's not a good idea, which I respect. >> : > : > It is rather backward, IMHO. I did implement a passive cooling >> : > feature as an enhancement of powerd(8) like you did, during initial >> : > phases. Then, I implemented it in our kernel as a result. >> : : I'll take a look at your patch. Umemoto-san is right in that you >> really >> : want the kernel to control cooling. What happens if powerd dies/hangs >> : and your system burns up? Passive cooling is often a last resort to >> : keep the system from overheating. >> >> I keep getting the system shutting down on my HP by FreeBSD because >> the temperature exceeds the _CRT value. Maybe there's something wrong >> with my values, since it happens a lot: >> >> hw.acpi.thermal.min_runtime: 0 >> hw.acpi.thermal.polling_rate: 10 >> hw.acpi.thermal.user_override: 0 >> hw.acpi.thermal.tz0.temperature: 0.0C >> hw.acpi.thermal.tz0.active: -1 >> hw.acpi.thermal.tz0.passive_cooling: 1 >> hw.acpi.thermal.tz0.thermal_flags: 0 >> hw.acpi.thermal.tz0._PSV: 90.0C >> hw.acpi.thermal.tz0._HOT: -1 >> hw.acpi.thermal.tz0._CRT: 94.0C >> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 >> >> Note: temperature is always 0.0C. >> >> What can I do to help my situation, if I really want the kernel doing >> the cooling? >> >> Warner >> > > Wow, something's really wrong with those calculated temperatures. At > that value most of the plastic and weaker circuitry should have fused > together =\. It would be interesting to see what the values are just after booting, or even earlier if you can get the bios to give temperatures (some MBs have that possibility) > -Garrett > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 04:16:50 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D041B16A420 for ; Thu, 2 Aug 2007 04:16:50 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outF.internet-mail-service.net (outF.internet-mail-service.net [216.240.47.229]) by mx1.freebsd.org (Postfix) with ESMTP id ADC6013C465 for ; Thu, 2 Aug 2007 04:16:50 +0000 (UTC) (envelope-from julian@elischer.org) Received: from mx0.idiom.com (HELO idiom.com) (216.240.32.160) by out.internet-mail-service.net (qpsmtpd/0.32) with ESMTP; Wed, 01 Aug 2007 21:16:49 -0700 Received: from julian-mac.elischer.org (nat.ironport.com [63.251.108.100]) by idiom.com (Postfix) with ESMTP id F1F13125B14; Wed, 1 Aug 2007 21:16:48 -0700 (PDT) Message-ID: <46B15AD9.60406@elischer.org> Date: Wed, 01 Aug 2007 21:17:29 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.5 (Macintosh/20070716) MIME-Version: 1.0 To: Garrett Cooper References: <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> <46B14EFB.6010207@u.washington.edu> <46B15166.1070305@elischer.org> In-Reply-To: <46B15166.1070305@elischer.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, ume@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 04:16:50 -0000 Julian Elischer wrote: > Garrett Cooper wrote: >> M. Warner Losh wrote: >>> In message: <46AE8F78.1060203@root.org> >>> Nate Lawson writes: >>> : Hajimu UMEMOTO wrote: >>> : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 >>> : >>>>>> Pietro Cerutti said: >>> : > gahr> My patch is really just a first draft that I wrote in order >>> to have >>> : > gahr> feedbacks on the general idea to implement a temperature >>> controlling >>> : > gahr> system inside powerd, and doesn't implement hysteresis as >>> you noted, and >>> : > gahr> your feedback is that it's not a good idea, which I respect. >>> : > : > It is rather backward, IMHO. I did implement a passive cooling >>> : > feature as an enhancement of powerd(8) like you did, during initial >>> : > phases. Then, I implemented it in our kernel as a result. >>> : : I'll take a look at your patch. Umemoto-san is right in that you >>> really >>> : want the kernel to control cooling. What happens if powerd dies/hangs >>> : and your system burns up? Passive cooling is often a last resort to >>> : keep the system from overheating. >>> >>> I keep getting the system shutting down on my HP by FreeBSD because >>> the temperature exceeds the _CRT value. Maybe there's something wrong >>> with my values, since it happens a lot: >>> >>> hw.acpi.thermal.min_runtime: 0 >>> hw.acpi.thermal.polling_rate: 10 >>> hw.acpi.thermal.user_override: 0 >>> hw.acpi.thermal.tz0.temperature: 0.0C >>> hw.acpi.thermal.tz0.active: -1 >>> hw.acpi.thermal.tz0.passive_cooling: 1 >>> hw.acpi.thermal.tz0.thermal_flags: 0 >>> hw.acpi.thermal.tz0._PSV: 90.0C >>> hw.acpi.thermal.tz0._HOT: -1 >>> hw.acpi.thermal.tz0._CRT: 94.0C >>> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 >>> >>> Note: temperature is always 0.0C. >>> >>> What can I do to help my situation, if I really want the kernel doing >>> the cooling? >>> >>> Warner >>> >> >> Wow, something's really wrong with those calculated temperatures. At >> that value most of the plastic and weaker circuitry should have fused >> together =\. > > It would be interesting to see what the values are just after booting, > or even earlier if you can get the bios to give temperatures (some MBs > have that possibility) I might add, after all cooling down to room temperature over night. > From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 04:50:15 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4258916A419; Thu, 2 Aug 2007 04:50:15 +0000 (UTC) (envelope-from SRS0=4a0cb565816d8f22be5eec8a588eb547e0885b96=414=es.net=oberman@es.net) Received: from postal1.es.net (postal4.es.net [IPv6:2001:400:6000:1::66]) by mx1.freebsd.org (Postfix) with ESMTP id 51E8413C465; Thu, 2 Aug 2007 04:50:12 +0000 (UTC) (envelope-from SRS0=4a0cb565816d8f22be5eec8a588eb547e0885b96=414=es.net=oberman@es.net) Received: from ptavv.es.net (ptavv.es.net [198.128.4.29]) by postal4.es.net (Postal Node 4) with ESMTP (SSL) id HMA95610; Wed, 01 Aug 2007 21:50:10 -0700 Received: from ptavv.es.net (ptavv.es.net [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id 0A6B045047; Wed, 1 Aug 2007 21:50:09 -0700 (PDT) X-Mailer: exmh version 2.7.2 01/07/2005 with nmh-1.2 To: Julian Elischer In-Reply-To: Your message of "Wed, 01 Aug 2007 21:17:29 PDT." <46B15AD9.60406@elischer.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1186030209_19060P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Wed, 01 Aug 2007 21:50:09 -0700 From: "Kevin Oberman" Message-Id: <20070802045009.0A6B045047@ptavv.es.net> Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, Garrett Cooper , ume@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 04:50:15 -0000 --==_Exmh_1186030209_19060P Content-Type: text/plain; charset=us-ascii > > Garrett Cooper wrote: > >> M. Warner Losh wrote: > >>> In message: <46AE8F78.1060203@root.org> > >>> Nate Lawson writes: > >>> : Hajimu UMEMOTO wrote: > >>> : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 > >>> : >>>>>> Pietro Cerutti said: > >>> : > gahr> My patch is really just a first draft that I wrote in order > >>> to have > >>> : > gahr> feedbacks on the general idea to implement a temperature > >>> controlling > >>> : > gahr> system inside powerd, and doesn't implement hysteresis as > >>> you noted, and > >>> : > gahr> your feedback is that it's not a good idea, which I respect. > >>> : > : > It is rather backward, IMHO. I did implement a passive cooling > >>> : > feature as an enhancement of powerd(8) like you did, during initial > >>> : > phases. Then, I implemented it in our kernel as a result. > >>> : : I'll take a look at your patch. Umemoto-san is right in that you > >>> really > >>> : want the kernel to control cooling. What happens if powerd dies/hangs > >>> : and your system burns up? Passive cooling is often a last resort to > >>> : keep the system from overheating. > >>> > >>> I keep getting the system shutting down on my HP by FreeBSD because > >>> the temperature exceeds the _CRT value. Maybe there's something wrong > >>> with my values, since it happens a lot: > >>> > >>> hw.acpi.thermal.min_runtime: 0 > >>> hw.acpi.thermal.polling_rate: 10 > >>> hw.acpi.thermal.user_override: 0 > >>> hw.acpi.thermal.tz0.temperature: 0.0C > >>> hw.acpi.thermal.tz0.active: -1 > >>> hw.acpi.thermal.tz0.passive_cooling: 1 > >>> hw.acpi.thermal.tz0.thermal_flags: 0 > >>> hw.acpi.thermal.tz0._PSV: 90.0C > >>> hw.acpi.thermal.tz0._HOT: -1 > >>> hw.acpi.thermal.tz0._CRT: 94.0C > >>> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 > >>> > >>> Note: temperature is always 0.0C. > >>> > >>> What can I do to help my situation, if I really want the kernel doing > >>> the cooling? > >>> > >>> Warner > >>> > >> > >> Wow, something's really wrong with those calculated temperatures. At > >> that value most of the plastic and weaker circuitry should have fused > >> together =\. > > > > It would be interesting to see what the values are just after booting, > > or even earlier if you can get the bios to give temperatures (some MBs > > have that possibility) Not really. My ThinkPad shows even higher values and I am convinced that they are correct: hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.user_override: 0 hw.acpi.thermal.tz0.temperature: 55.0C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: 94.5C hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 99.0C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 These are correct. During heavy compute use, I have seen my laptop CPU at 86C. Nothing melts. According to the other five sensors, nothing ouside of the CPU is anywhere near that hot. (It does get hot enough under the heat pipes and sink to be very uncomfortable when used as a literal laptop.) The CPU temperature is measured by a junction in the chip and it is the hottest point in the machine (unless you have a hot GPU). The days of sensors on the mobo that show an external temp are pretty much over as all recent AMD and Intel chips have internal sensors. If you check the spec sheets, many recent chips are rated for operating at internal temps of 100C and higher. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751 --==_Exmh_1186030209_19060P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFGsWKBkn3rs5h7N1ERAnbhAJ94mMCqYNxn6ri58Gid74e+JPS+EACgqhBq LZBAaIomMGA++VmiOv52dwE= =dCnc -----END PGP SIGNATURE----- --==_Exmh_1186030209_19060P-- From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 04:53:34 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DDFAD16A4A6; Thu, 2 Aug 2007 04:53:34 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 7A10B13C465; Thu, 2 Aug 2007 04:53:34 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.8/8.13.4) with ESMTP id l724olgS048881; Wed, 1 Aug 2007 22:50:47 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 01 Aug 2007 22:50:55 -0600 (MDT) Message-Id: <20070801.225055.-345495092.imp@bsdimp.com> To: julian@elischer.org From: "M. Warner Losh" In-Reply-To: <46B15166.1070305@elischer.org> References: <20070801.211718.1683324313.imp@bsdimp.com> <46B14EFB.6010207@u.washington.edu> <46B15166.1070305@elischer.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Wed, 01 Aug 2007 22:50:48 -0600 (MDT) Cc: ume@freebsd.org, acpi@freebsd.org, freebsd-hackers@freebsd.org, youshi10@u.washington.edu, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 04:53:35 -0000 In message: <46B15166.1070305@elischer.org> Julian Elischer writes: : Garrett Cooper wrote: : > M. Warner Losh wrote: : >> In message: <46AE8F78.1060203@root.org> : >> Nate Lawson writes: : >> : Hajimu UMEMOTO wrote: : >> : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 : >> : >>>>>> Pietro Cerutti said: : >> : > gahr> My patch is really just a first draft that I wrote in order : >> to have : >> : > gahr> feedbacks on the general idea to implement a temperature : >> controlling : >> : > gahr> system inside powerd, and doesn't implement hysteresis as : >> you noted, and : >> : > gahr> your feedback is that it's not a good idea, which I respect. : >> : > : > It is rather backward, IMHO. I did implement a passive cooling : >> : > feature as an enhancement of powerd(8) like you did, during initial : >> : > phases. Then, I implemented it in our kernel as a result. : >> : : I'll take a look at your patch. Umemoto-san is right in that you : >> really : >> : want the kernel to control cooling. What happens if powerd dies/hangs : >> : and your system burns up? Passive cooling is often a last resort to : >> : keep the system from overheating. : >> : >> I keep getting the system shutting down on my HP by FreeBSD because : >> the temperature exceeds the _CRT value. Maybe there's something wrong : >> with my values, since it happens a lot: : >> : >> hw.acpi.thermal.min_runtime: 0 : >> hw.acpi.thermal.polling_rate: 10 : >> hw.acpi.thermal.user_override: 0 : >> hw.acpi.thermal.tz0.temperature: 0.0C : >> hw.acpi.thermal.tz0.active: -1 : >> hw.acpi.thermal.tz0.passive_cooling: 1 : >> hw.acpi.thermal.tz0.thermal_flags: 0 : >> hw.acpi.thermal.tz0._PSV: 90.0C : >> hw.acpi.thermal.tz0._HOT: -1 : >> hw.acpi.thermal.tz0._CRT: 94.0C : >> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 : >> : >> Note: temperature is always 0.0C. : >> : >> What can I do to help my situation, if I really want the kernel doing : >> the cooling? : >> : >> Warner : >> : > : > Wow, something's really wrong with those calculated temperatures. At : > that value most of the plastic and weaker circuitry should have fused : > together =\. : : It would be interesting to see what the values are just after booting, : or even earlier if you can get the bios to give temperatures : (some MBs have that possibility) The values are always the same. ACx is always 40C -1 ... and temperature is always 0. Warner From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 04:58:10 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D91516A419; Thu, 2 Aug 2007 04:58:10 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from mxout1.cac.washington.edu (mxout1.cac.washington.edu [140.142.32.134]) by mx1.freebsd.org (Postfix) with ESMTP id E9BD513C442; Thu, 2 Aug 2007 04:58:09 +0000 (UTC) (envelope-from youshi10@u.washington.edu) Received: from smtp.washington.edu (smtp.washington.edu [140.142.32.139]) by mxout1.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW07.06) with ESMTP id l724w6E6017345 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 1 Aug 2007 21:58:06 -0700 X-Auth-Received: from [192.168.10.45] (c-24-10-12-194.hsd1.ca.comcast.net [24.10.12.194]) (authenticated authid=youshi10) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW07.03) with ESMTP id l724w5LL018340 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 1 Aug 2007 21:58:06 -0700 Message-ID: <46B1645B.5070108@u.washington.edu> Date: Wed, 01 Aug 2007 21:58:03 -0700 From: Garrett Cooper User-Agent: Thunderbird 2.0.0.5 (Windows/20070716) MIME-Version: 1.0 To: "M. Warner Losh" References: <20070801.211718.1683324313.imp@bsdimp.com> <46B14EFB.6010207@u.washington.edu> <46B15166.1070305@elischer.org> <20070801.225055.-345495092.imp@bsdimp.com> In-Reply-To: <20070801.225055.-345495092.imp@bsdimp.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Version: 5.3.3.310218, Antispam-Engine: 2.5.1.298604, Antispam-Data: 2007.8.1.214323 X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='__CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __USER_AGENT 0' Cc: ume@freebsd.org, acpi@freebsd.org, freebsd-hackers@freebsd.org, gahr@gahr.ch, julian@elischer.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 04:58:10 -0000 M. Warner Losh wrote: > In message: <46B15166.1070305@elischer.org> > Julian Elischer writes: > : Garrett Cooper wrote: > : > M. Warner Losh wrote: > : >> In message: <46AE8F78.1060203@root.org> > : >> Nate Lawson writes: > : >> : Hajimu UMEMOTO wrote: > : >> : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 > : >> : >>>>>> Pietro Cerutti said: > : >> : > gahr> My patch is really just a first draft that I wrote in order > : >> to have > : >> : > gahr> feedbacks on the general idea to implement a temperature > : >> controlling > : >> : > gahr> system inside powerd, and doesn't implement hysteresis as > : >> you noted, and > : >> : > gahr> your feedback is that it's not a good idea, which I respect. > : >> : > : > It is rather backward, IMHO. I did implement a passive cooling > : >> : > feature as an enhancement of powerd(8) like you did, during initial > : >> : > phases. Then, I implemented it in our kernel as a result. > : >> : : I'll take a look at your patch. Umemoto-san is right in that you > : >> really > : >> : want the kernel to control cooling. What happens if powerd dies/hangs > : >> : and your system burns up? Passive cooling is often a last resort to > : >> : keep the system from overheating. > : >> > : >> I keep getting the system shutting down on my HP by FreeBSD because > : >> the temperature exceeds the _CRT value. Maybe there's something wrong > : >> with my values, since it happens a lot: > : >> > : >> hw.acpi.thermal.min_runtime: 0 > : >> hw.acpi.thermal.polling_rate: 10 > : >> hw.acpi.thermal.user_override: 0 > : >> hw.acpi.thermal.tz0.temperature: 0.0C > : >> hw.acpi.thermal.tz0.active: -1 > : >> hw.acpi.thermal.tz0.passive_cooling: 1 > : >> hw.acpi.thermal.tz0.thermal_flags: 0 > : >> hw.acpi.thermal.tz0._PSV: 90.0C > : >> hw.acpi.thermal.tz0._HOT: -1 > : >> hw.acpi.thermal.tz0._CRT: 94.0C > : >> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 > : >> > : >> Note: temperature is always 0.0C. > : >> > : >> What can I do to help my situation, if I really want the kernel doing > : >> the cooling? > : >> > : >> Warner > : >> > : > > : > Wow, something's really wrong with those calculated temperatures. At > : > that value most of the plastic and weaker circuitry should have fused > : > together =\. > : > : It would be interesting to see what the values are just after booting, > : or even earlier if you can get the bios to give temperatures > : (some MBs have that possibility) > > The values are always the same. ACx is always 40C -1 ... and > temperature is always 0. > > Warner > Not all temperature sensors report accurate values, just like fans' rpm levels. -Garrett From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 09:14:37 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E106216A418 for ; Thu, 2 Aug 2007 09:14:37 +0000 (UTC) (envelope-from yasir27@mail.ru) Received: from mx4.mail.ru (fallback.mail.ru [194.67.57.14]) by mx1.freebsd.org (Postfix) with ESMTP id 07F6313C47E for ; Thu, 2 Aug 2007 09:14:36 +0000 (UTC) (envelope-from yasir27@mail.ru) Received: from mx33.mail.ru (mx33.mail.ru [194.67.23.194]) by mx4.mail.ru (mPOP.Fallback_MX) with ESMTP id F0E4C3920AF for ; Wed, 1 Aug 2007 17:23:06 +0400 (MSD) Received: from [80.81.208.67] (port=19541 helo=[80.81.208.67]) by mx33.mail.ru with esmtp id 1IGEAH-000HyP-00 for freebsd-acpi@freebsd.org; Wed, 01 Aug 2007 17:23:03 +0400 Date: Thu, 2 Aug 2007 00:21:52 +1100 From: yasir27@mail.ru X-Mailer: The Bat! (v3.0.1.33) Professional X-Priority: 3 (Normal) Message-ID: <1236775778.20070802002152@mail.ru> To: freebsd-acpi@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Issue sysctl hw.acpi.thermal, W83627THF, ICH5 X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: yasir27@mail.ru List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 09:14:38 -0000 Hello! I have MSI 865PE Neo2 motherboard with Intel ICH5 and Winbond W83627THF chipsets. I'd like to control CPU fan speed but I'm unable to do that in the way manuals recommend because I can't see hw.acpi.thermal.* variables in the sysctl notwithstanding I have compiled the kernel with 'device acpi' in config file. However everything goes OK when I use MSI's CoreCenter utility which comes with their motherboard and a few other tools for MS Windows and Linux (lm-sensors, gkrellm). Also mbmon -I works good for FreeBSD but it's just monitoring, not a controlling. Next you can see outputs of the following commands: dmesg -a sysctl hw.acpi kldstat -v mbmon -d # dmesg -a Copyright (c) 1992-2007 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 6.2-RELEASE #0: Wed Aug 1 21:51:38 VLAST 2007 root@:/usr/obj/usr/src/sys/SMBUS ACPI APIC Table: Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2400.10-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0xf29 Stepping = 9 Features=0xbfebfbff Features2=0x4400> Logical CPUs per core: 2 real memory = 536805376 (511 MB) avail memory = 519954432 (495 MB) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0 irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: on motherboard acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0 cpu0: on acpi0 acpi_throttle0: on cpu0 cpu1: on acpi0 acpi_throttle1: on cpu1 acpi_throttle1: failed to attach P_CNT device_attach: acpi_throttle1 attach returned 6 acpi_button0: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 agp0: mem 0xf8000000-0xfbffffff at device 0.0 on pci0 pcib1: at device 1.0 on pci0 pci1: on pcib1 pci1: at device 0.0 (no driver attached) uhci0: port 0xcc00-0xcc1f irq 16 at device 29.0 on pci0 uhci0: [GIANT-LOCKED] usb0: on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered uhci1: port 0xd000-0xd01f irq 19 at device 29.1 on pci0 uhci1: [GIANT-LOCKED] usb1: on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered uhci2: port 0xd400-0xd41f irq 18 at device 29.2 on pci0 uhci2: [GIANT-LOCKED] usb2: on uhci2 usb2: USB revision 1.0 uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub2: 2 ports with 2 removable, self powered uhci3: port 0xd800-0xd81f irq 16 at device 29.3 on pci0 uhci3: [GIANT-LOCKED] usb3: on uhci3 usb3: USB revision 1.0 uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub3: 2 ports with 2 removable, self powered ehci0: mem 0xfebff800-0xfebffbff irq 23 at device 29.7 on pci0 ehci0: [GIANT-LOCKED] usb4: EHCI version 1.0 usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3 usb4: on ehci0 usb4: USB revision 2.0 uhub4: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1 uhub4: 8 ports with 8 removable, self powered pcib2: at device 30.0 on pci0 pci2: on pcib2 pci2: at device 3.0 (no driver attached) pci2: at device 3.1 (no driver attached) isab0: at device 31.0 on pci0 isa0: on isab0 atapci0: port 0xec00-0xec07,0xe800-0xe803,0xe400-0xe407,0xe000-0xe003,0xdc00-0xdc0f irq 18 at device 31.1 on pci0 ata2: on atapci0 ata3: on atapci0 atapci1: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 31.2 on pci0 ata0: on atapci1 ata1: on atapci1 pci0: at device 31.3 (no driver attached) pci0: at device 31.5 (no driver attached) atkbdc0: port 0x60,0x64 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 sio1: type 16550A orm0: at iomem 0xe0000-0xe0fff on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 ums0: KYE Genius USB Wheel Mouse, rev 1.00/2.42, addr 2, iclass 3/1 ums0: 5 buttons and Z dir. Timecounters tick every 1.000 msec ipfw2 (+ipv6) initialized, divert loadable, rule-based forwarding disabled, default to accept, logging limited to 10 packets/entry by default ad0: 110602MB at ata0-master SATA150 acd0: DVDR at ata2-master UDMA66 SMP: AP CPU #1 Launched! Trying to mount root from ufs:/dev/ad0s3a Loading configuration files. Entropy harvesting: interrupts ethernet point_to_point kickstart . swapon: adding /dev/ad0s3b as swap device Starting file system checks: /dev/ad0s3a: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s3a: clean, 224600 free (112 frags, 28061 blocks, 0.0% fragmentation) /dev/ad0s3g: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s3g: clean, 24661 free (21 frags, 3080 blocks, 0.1% fragmentation) /dev/ad0s3h: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s3h: clean, 24089 free (25 frags, 3008 blocks, 0.1% fragmentation) /dev/ad0s3e: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s3e: clean, 253804 free (36 frags, 31721 blocks, 0.0% fragmentation) /dev/ad0s3f: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s3f: clean, 3717118 free (70942 frags, 455772 blocks, 1.3% fragmentation) /dev/ad0s3d: FILE SYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s3d: clean, 745085 free (861 frags, 93028 blocks, 0.1% fragmentation) Mounting local file systems: . Setting hostname: . lo0: flags=8049 mtu 16384 inet 127.0.0.1 netmask 0xff000000 Additional routing options: . Starting devd. Starting ums0 moused: . hw.acpi.cpu.cx_lowest: C1 -> C1 Mounting NFS file systems: . ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib /usr/local/lib/mysql a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout Creating and/or trimming log files: . Starting syslogd. Initial i386 initialization: . Additional ABI support: linux . Starting local daemons: . Updating motd . Mounting late file systems: . Starting usbd. Configuring syscons: keymap blanktime . Starting cron. Local package initialization: . Additional TCP options: . Starting default moused: moused: unable to open /dev/ums0: Device busy . Starting background file system checks in 60 seconds. Wed Aug 1 23:38:52 VLAST 2007 Aug 1 23:39:03 login: ROOT LOGIN (root) ON ttyv0 # sysctl hw.acpi hw.acpi.supported_sleep_state: S1 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S1 hw.acpi.lid_switch_state: NONE hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 1 hw.acpi.s4bios: 0 hw.acpi.verbose: 0 hw.acpi.disable_on_reboot: 0 hw.acpi.handle_reboot: 0 hw.acpi.reset_video: 0 hw.acpi.cpu.cx_supported: C1/0 hw.acpi.cpu.cx_lowest: C1 hw.acpi.cpu.cx_usage: 100.00% # kldstat -v Id Refs Address Size Name 1 5 0xc0400000 371eb4 kernel Contains modules: Id Name 1 xpt 2 probe 3 cam 4 da 5 nexus/acpi 6 acpi/acpi_acad 7 acpi/acpi_button 8 acpi/acpi_cmbat 9 acpi/cpu 10 acpi/acpi_ec 11 acpi/acpi_isab 12 acpi/acpi_lid 13 pcib/acpi_pci 14 acpi/acpi_pci_link 15 acpi/acpi_pcib 16 pci/acpi_pcib 17 cpu/acpi_perf 18 acpi/acpi_sysresource 19 acpi/acpi_smbat 20 acpi/acpi_tz 21 cpu/acpi_throttle 22 acpi/acpi_timer 23 ata 24 ata/ad 25 isa/ata 26 pci/atapci 27 atapci/ata 28 ata/acd 29 bktr/iicbb 30 lpbb/iicbb 31 viapm/iicbb 32 pcf/iicbus 33 envctrl/iicbus 34 iicbb/iicbus 35 bti2c/iicbus 36 iicbus/iicsmb 37 iicsmb/smbus 38 kbdmux 39 g_md 40 mem 41 miibus/acphy 42 miibus/amphy 43 miibus/bmtphy 44 miibus/brgphy 45 miibus/ciphy 46 miibus/e1000phy 47 miibus/xlphy 48 miibus/gentbi 49 miibus/inphy 50 miibus/ip1000phy 51 miibus/lxtphy 52 miibus/mlphy 53 miibus/nsgphy 54 miibus/nsphy 55 miibus/pnaphy 56 miibus/pnphy 57 miibus/qsphy 58 miibus/rgephy 59 miibus/rlphy 60 miibus/ruephy 61 miibus/tdkphy 62 miibus/tlphy 63 miibus/ukphy 64 miibus/xmphy 65 null 66 pci/fixup_pci 67 pci/ignore_pci 68 pci/isab 69 pcib/pci 70 pci/pcib 71 random 72 pci/sio 73 cardbus/sio 74 smbus/smb 75 pci/ehci 76 cardbus/ehci 77 pci/ohci 78 cardbus/ohci 79 uhub/ugen 80 pci/uhci 81 cardbus/uhci 82 uhub/uhid 83 usb/uhub 84 uhub/uhub 85 uhub/umass 86 uhub/ums 87 ohci/usb 88 uhci/usb 89 ehci/usb 90 watchdog 91 devfs 92 msdosfs 93 procfs 94 pseudofs 95 g_dev 96 g_disk 97 g_gpt 98 g_vfs 99 isab/isa 100 eisab/isa 101 isa/isahint 102 isa/orm 103 isa/pnp 104 cd9660 105 elf32 106 shell 107 cpu/cpufreq 108 rootbus 109 msgsys 110 msgctl 111 msgget 112 msgsnd 113 msgrcv 114 sysvmsg 115 semsys 116 __semctl 117 semget 118 semop 119 sysvsem 120 shmsys 121 shmat 122 shmctl 123 shmdt 124 shmget 125 sysvshm 126 ether 127 if_faith 128 if_gif 129 loop 130 if_ppp 131 if_sl 132 if_tun 133 ipdivert 134 dummynet 135 ipfw 136 intpm/intsmb 137 pci/intpm 138 intsmb/smbus 139 ufs 140 g_class 141 atkbdc/atkbd 142 isa/atkbdc 143 acpi/atkbdc 144 atkbdc/psm 145 isa/psmcpnp 146 acpi/psmcpnp 147 io 148 isa/sio 149 acpi/sio 150 scterm-sc 151 scrndr-vga 152 g_bsd 153 g_mbr 154 g_mbrext 155 isa/pnpbios 156 nexus/legacy 157 legacy/cpu 158 pci/piix 159 legacy/mptable_pcib 160 pci/mptable_pcib 161 root/nexus 162 isa/sysresource 163 isa/atpic 164 acpi/atpic 165 isa/attimer 166 acpi/attimer 167 legacy/isa 168 isa/atdma 169 acpi/atdma 170 nexus/npx 171 isa/npxisa 172 acpi/npxisa 173 legacy/pcib 174 pci/hostb 175 isa/pcibus_pnp 176 pci/pcibios_pcib 177 legacy/pir 178 isa/sc 179 isa/vga 180 pci/agp_ali 181 pci/agp_amd 182 pci/agp_amd64 183 pci/agp_ati 184 pci/agp_i810 185 pci/agp_intel 186 pci/agp_nvidia 187 pci/agp_sis 188 pci/agp_via 2 1 0xc3365000 16000 linux.ko Contains modules: Id Name 189 linuxelf 190 linuxaout # mbmon -d ioctl(smb0:open): No such file or directory SMBus[Intel8XX(ICH/ICH2/ICH3/ICH4/ICH5/ICH6)] found, but No HWM available on it!! Using ISA-IO access method!! * Winbond Chip W83627HF/THF/THF-A found. Thanks! From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 12:13:15 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 243AE16A41F; Thu, 2 Aug 2007 12:13:15 +0000 (UTC) (envelope-from ohartman@zedat.fu-berlin.de) Received: from outpost1.zedat.fu-berlin.de (outpost1.zedat.fu-berlin.de [130.133.4.66]) by mx1.freebsd.org (Postfix) with ESMTP id C3E9C13C45E; Thu, 2 Aug 2007 12:13:14 +0000 (UTC) (envelope-from ohartman@zedat.fu-berlin.de) Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) by outpost1.zedat.fu-berlin.de (Exim 4.66) with esmtp (envelope-from ) id <1IGZ8C-0006ju-29>; Thu, 02 Aug 2007 13:46:16 +0200 Received: from telesto.geoinf.fu-berlin.de ([130.133.86.198]) by inpost2.zedat.fu-berlin.de (Exim 4.66) with esmtpsa (envelope-from ) id <1IGZ8C-0004FK-16>; Thu, 02 Aug 2007 13:46:16 +0200 Message-ID: <46B1C40A.20208@zedat.fu-berlin.de> Date: Thu, 02 Aug 2007 11:46:18 +0000 From: "O. Hartmann" Organization: Freie =?ISO-8859-15?Q?Universit=E4t_Berlin?= User-Agent: Thunderbird 2.0.0.5 (X11/20070726) MIME-Version: 1.0 To: =?ISO-8859-15?Q?Dag-Erling_Sm=F8rgrav?= References: <46AA0491.5000203@gahr.ch> <46ADAF5B.6050602@gahr.ch> <20070730180355.GA7355@rot26.obsecurity.org> <46AE58B5.3080506@gahr.ch> <46AECE8C.8000500@gahr.ch> <86hcnjn1bs.fsf@ds4.des.no> In-Reply-To: <86hcnjn1bs.fsf@ds4.des.no> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: quoted-printable X-Originating-IP: 130.133.86.198 Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, Hajimu UMEMOTO , Pietro Cerutti Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 12:13:15 -0000 Dag-Erling Sm=F8rgrav wrote: > Hajimu UMEMOTO writes: >> I cannot see _TC1, _TC2 nor _TSP in your `acpidump -dt' output. >> Further, there is no _PSV definition in anywhere, in the first place. >> It seems to me that your ACPI BIOS doesn't support passive cooling at >> all. >=20 > Going off on a tangent, I too have several motherboards (965P-based) > which do not define any ACPI thermal zones, which leads me to wonder: > what is the preferred way to access thermal data these days? IPMI? Do= > we have IPMI support in base or ports? >=20 > DES Well, At our lab we have a lot of i965-based Intel boxes as well as some=20 nForce-4 based ones. I use at home also a nForce4-based one and I=20 realized that none of them equipted qith an AMI BIOS does not show up=20 temperature zones in ACPI. I had an ASUS A8N-SLI motherboard with AWARD BIOS where I definitely had = those temperature zones, when I changed the motherboard to an A8M32-SLI, = BIOS came from AMI and the temperature-zones informations via ACPI has=20 gone. It seemes to me to be an BISO-vendor issue, due to the super IO=20 chip is of the same brand and only a more modern version in the newer MoB= o. Oliver From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 17:08:53 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C98816A41B for ; Thu, 2 Aug 2007 17:08:53 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id BCC4F13C465 for ; Thu, 2 Aug 2007 17:08:49 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 78036 invoked from network); 2 Aug 2007 17:08:49 -0000 Received: from pni-128-64-133-147.prioritynetworks.net (HELO ?10.0.0.78?) (nate-mail@128.64.133.147) by root.org with ESMTPA; 2 Aug 2007 17:08:49 -0000 Message-ID: <46B20F91.5080709@root.org> Date: Thu, 02 Aug 2007 10:08:33 -0700 From: Nate Lawson User-Agent: Thunderbird 2.0.0.4 (X11/20070617) MIME-Version: 1.0 To: "M. Warner Losh" References: <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> In-Reply-To: <20070801.211718.1683324313.imp@bsdimp.com> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, ume@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 17:08:53 -0000 M. Warner Losh wrote: > In message: <46AE8F78.1060203@root.org> > Nate Lawson writes: > : Hajimu UMEMOTO wrote: > : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 > : >>>>>> Pietro Cerutti said: > : > gahr> My patch is really just a first draft that I wrote in order to have > : > gahr> feedbacks on the general idea to implement a temperature controlling > : > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and > : > gahr> your feedback is that it's not a good idea, which I respect. > : > > : > It is rather backward, IMHO. I did implement a passive cooling > : > feature as an enhancement of powerd(8) like you did, during initial > : > phases. Then, I implemented it in our kernel as a result. > : > : I'll take a look at your patch. Umemoto-san is right in that you really > : want the kernel to control cooling. What happens if powerd dies/hangs > : and your system burns up? Passive cooling is often a last resort to > : keep the system from overheating. > > I keep getting the system shutting down on my HP by FreeBSD because > the temperature exceeds the _CRT value. Maybe there's something wrong > with my values, since it happens a lot: > > hw.acpi.thermal.min_runtime: 0 > hw.acpi.thermal.polling_rate: 10 > hw.acpi.thermal.user_override: 0 > hw.acpi.thermal.tz0.temperature: 0.0C > hw.acpi.thermal.tz0.active: -1 > hw.acpi.thermal.tz0.passive_cooling: 1 > hw.acpi.thermal.tz0.thermal_flags: 0 > hw.acpi.thermal.tz0._PSV: 90.0C > hw.acpi.thermal.tz0._HOT: -1 > hw.acpi.thermal.tz0._CRT: 94.0C > hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 > > Note: temperature is always 0.0C. > > What can I do to help my situation, if I really want the kernel doing > the cooling? Your embedded controller is timing out. Thus you're getting a bogus value for _TMP. Those settings for _CRT appear correct. It's the "measured" temperature that is wrong. -Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 17:35:35 2007 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B8D716A418 for ; Thu, 2 Aug 2007 17:35:35 +0000 (UTC) (envelope-from matheusber@gmail.com) Received: from rv-out-0910.google.com (rv-out-0910.google.com [209.85.198.188]) by mx1.freebsd.org (Postfix) with ESMTP id 379CA13C47E for ; Thu, 2 Aug 2007 17:35:35 +0000 (UTC) (envelope-from matheusber@gmail.com) Received: by rv-out-0910.google.com with SMTP id f1so387403rvb for ; Thu, 02 Aug 2007 10:35:34 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=eM640ZmtEJHLCxmFJCtqTP1hgCJsxrCftfIPqbFWG5kf3BJ0Z8Tm7Q28PCzeib+HHc70gKcA+DXqo7fMhB3Vl/E/7EpRKWheaBu8pV6jaTAWZ8OQSdaNaB+dKIgR86MuCbnq8oICs7XVZzzgr4pXTktw4oTzQdamI8CTFqWoL+c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=LvujFTZAJD5DsJuPnI6zzPvU9tLYnS2gf+VX/bl9NBZP3xi0K82UYIm8jFgxi8GS2gK80EPOIkCRZ5eHqoNWrsEaKbyKvnlaOhK4gIXZMp7WvHAjdtFOVddwI/djB0+5nl8My97z7S+aMJBG4XewU+/zqZzhHd1FNGWifbuhPVQ= Received: by 10.115.32.1 with SMTP id k1mr2056506waj.1186076134849; Thu, 02 Aug 2007 10:35:34 -0700 (PDT) Received: by 10.115.78.4 with HTTP; Thu, 2 Aug 2007 10:35:34 -0700 (PDT) Message-ID: <4956a5e50708021035y29a95a0g9576282d5b4d8a4b@mail.gmail.com> Date: Thu, 2 Aug 2007 14:35:34 -0300 From: Nenhum_de_Nos To: "Nate Lawson" , freebsd-acpi@freebsd.org In-Reply-To: <46B20FAF.5010408@root.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_68997_18712290.1186076134791" References: <4956a5e50708011902ra84c2ddx2f865be551b93d06@mail.gmail.com> <46B20FAF.5010408@root.org> Cc: Subject: Re: acpi_asus on F3T X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 17:35:35 -0000 ------=_Part_68997_18712290.1186076134791 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline does the list blocks attached files ? here goes again matheus On 8/2/07, Nate Lawson wrote: > Nenhum_de_Nos wrote: > > hail, > > > > I have an Asus F3T and when looking for how to change LCD brightness > > and control sound volume, I read acpi_asus.c and with some little > > thinking, I can now change brightness through sysctl. ( diff included) > > > > As I really didnt understood all I did, I'd like to know how could I > > finish what I started :) > > > > any help would be apreciated :) > > > > thanks > > > > matheus > > > > No diff was included. > -- We will call you cygnus, The God of balance you shall be ------=_Part_68997_18712290.1186076134791 Content-Type: application/octet-stream; name="acpi_asus.c.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="acpi_asus.c.diff" X-Attachment-Id: f_f4vj2wsk MjU4YTI1OSwyNjYKPiAJCQkvKiBUZXN0ICEhISAqLwo+IAkJLm5hbWUJCT0gIkYzVCIsCj4gCQku YnJuX3VwCQk9ICJcXFEwQyIsCj4gCQkuYnJuX2RuCQk9ICJcXFEwRCIsCj4gCQkuYnJuX2dldAk9 ICJHUExWIiwKPiAJCS5icm5fc2V0CT0gIlNQTFYiLAo+IAl9LAo+IAl7Cg== ------=_Part_68997_18712290.1186076134791-- From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 17:59:32 2007 Return-Path: Delivered-To: acpi@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1E4E16A41F; Thu, 2 Aug 2007 17:59:32 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 468D613C4CA; Thu, 2 Aug 2007 17:59:32 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.8/8.13.4) with ESMTP id l72HvDJ7061335; Thu, 2 Aug 2007 11:57:15 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Thu, 02 Aug 2007 11:57:13 -0600 (MDT) Message-Id: <20070802.115713.71149193.imp@bsdimp.com> To: nate@root.org From: Warner Losh In-Reply-To: <46B20F91.5080709@root.org> References: <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> <46B20F91.5080709@root.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Thu, 02 Aug 2007 11:57:16 -0600 (MDT) Cc: acpi@FreeBSD.ORG, freebsd-hackers@FreeBSD.ORG, ume@FreeBSD.ORG, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 17:59:32 -0000 From: Nate Lawson Subject: Re: [patch] enhance powerd(8) to handle max temperature Date: Thu, 02 Aug 2007 10:08:33 -0700 > M. Warner Losh wrote: > > In message: <46AE8F78.1060203@root.org> > > Nate Lawson writes: > > : Hajimu UMEMOTO wrote: > > : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 > > : >>>>>> Pietro Cerutti said: > > : > gahr> My patch is really just a first draft that I wrote in order to have > > : > gahr> feedbacks on the general idea to implement a temperature controlling > > : > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and > > : > gahr> your feedback is that it's not a good idea, which I respect. > > : > > > : > It is rather backward, IMHO. I did implement a passive cooling > > : > feature as an enhancement of powerd(8) like you did, during initial > > : > phases. Then, I implemented it in our kernel as a result. > > : > > : I'll take a look at your patch. Umemoto-san is right in that you really > > : want the kernel to control cooling. What happens if powerd dies/hangs > > : and your system burns up? Passive cooling is often a last resort to > > : keep the system from overheating. > > > > I keep getting the system shutting down on my HP by FreeBSD because > > the temperature exceeds the _CRT value. Maybe there's something wrong > > with my values, since it happens a lot: > > > > hw.acpi.thermal.min_runtime: 0 > > hw.acpi.thermal.polling_rate: 10 > > hw.acpi.thermal.user_override: 0 > > hw.acpi.thermal.tz0.temperature: 0.0C > > hw.acpi.thermal.tz0.active: -1 > > hw.acpi.thermal.tz0.passive_cooling: 1 > > hw.acpi.thermal.tz0.thermal_flags: 0 > > hw.acpi.thermal.tz0._PSV: 90.0C > > hw.acpi.thermal.tz0._HOT: -1 > > hw.acpi.thermal.tz0._CRT: 94.0C > > hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 > > > > Note: temperature is always 0.0C. > > > > What can I do to help my situation, if I really want the kernel doing > > the cooling? > > Your embedded controller is timing out. Thus you're getting a bogus > value for _TMP. > > Those settings for _CRT appear correct. It's the "measured" temperature > that is wrong. So how do I track down the problem? I'm tired of the system just shutting down when I'm building OOO or even something simpler like doing a buildworld... Warner From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 22:29:44 2007 Return-Path: Delivered-To: acpi@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F04316A41B for ; Thu, 2 Aug 2007 22:29:44 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id 4B7D113C442 for ; Thu, 2 Aug 2007 22:29:44 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 94511 invoked from network); 2 Aug 2007 22:29:45 -0000 Received: from pni-128-64-133-147.prioritynetworks.net (HELO ?10.0.0.78?) (nate-mail@128.64.133.147) by root.org with ESMTPA; 2 Aug 2007 22:29:45 -0000 Message-ID: <46B25AD0.70706@root.org> Date: Thu, 02 Aug 2007 15:29:36 -0700 From: Nate Lawson User-Agent: Thunderbird 2.0.0.4 (X11/20070617) MIME-Version: 1.0 To: Warner Losh References: <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> <46B20F91.5080709@root.org> <20070802.115713.71149193.imp@bsdimp.com> In-Reply-To: <20070802.115713.71149193.imp@bsdimp.com> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: acpi@FreeBSD.ORG, freebsd-hackers@FreeBSD.ORG, ume@FreeBSD.ORG, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 22:29:44 -0000 Warner Losh wrote: > From: Nate Lawson > Subject: Re: [patch] enhance powerd(8) to handle max temperature > Date: Thu, 02 Aug 2007 10:08:33 -0700 > >> M. Warner Losh wrote: >>> I keep getting the system shutting down on my HP by FreeBSD because >>> the temperature exceeds the _CRT value. Maybe there's something wrong >>> with my values, since it happens a lot: >>> >>> hw.acpi.thermal.min_runtime: 0 >>> hw.acpi.thermal.polling_rate: 10 >>> hw.acpi.thermal.user_override: 0 >>> hw.acpi.thermal.tz0.temperature: 0.0C >>> hw.acpi.thermal.tz0.active: -1 >>> hw.acpi.thermal.tz0.passive_cooling: 1 >>> hw.acpi.thermal.tz0.thermal_flags: 0 >>> hw.acpi.thermal.tz0._PSV: 90.0C >>> hw.acpi.thermal.tz0._HOT: -1 >>> hw.acpi.thermal.tz0._CRT: 94.0C >>> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 >>> >>> Note: temperature is always 0.0C. >>> >>> What can I do to help my situation, if I really want the kernel doing >>> the cooling? >> Your embedded controller is timing out. Thus you're getting a bogus >> value for _TMP. >> >> Those settings for _CRT appear correct. It's the "measured" temperature >> that is wrong. > > So how do I track down the problem? I'm tired of the system just > shutting down when I'm building OOO or even something simpler like > doing a buildworld... You do what's #1 on my list, which is rewrite the EC driver event model (yet again) and figure out if it's possible to automatically detect which workarounds are needed. Linux requires you to specify boot-time flags to select polled or event-driven work. -Nate From owner-freebsd-acpi@FreeBSD.ORG Thu Aug 2 22:41:41 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B60316A417; Thu, 2 Aug 2007 22:41:41 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 3660213C49D; Thu, 2 Aug 2007 22:41:41 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.8/8.13.4) with ESMTP id l72Mf9re064933; Thu, 2 Aug 2007 16:41:09 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Thu, 02 Aug 2007 16:41:16 -0600 (MDT) Message-Id: <20070802.164116.-1894448262.imp@bsdimp.com> To: nate@root.org From: "M. Warner Losh" In-Reply-To: <46B25AD0.70706@root.org> References: <46B20F91.5080709@root.org> <20070802.115713.71149193.imp@bsdimp.com> <46B25AD0.70706@root.org> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Thu, 02 Aug 2007 16:41:10 -0600 (MDT) Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, ume@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2007 22:41:41 -0000 In message: <46B25AD0.70706@root.org> Nate Lawson writes: : Warner Losh wrote: : > From: Nate Lawson : > Subject: Re: [patch] enhance powerd(8) to handle max temperature : > Date: Thu, 02 Aug 2007 10:08:33 -0700 : > : >> M. Warner Losh wrote: : >>> I keep getting the system shutting down on my HP by FreeBSD because : >>> the temperature exceeds the _CRT value. Maybe there's something wrong : >>> with my values, since it happens a lot: : >>> : >>> hw.acpi.thermal.min_runtime: 0 : >>> hw.acpi.thermal.polling_rate: 10 : >>> hw.acpi.thermal.user_override: 0 : >>> hw.acpi.thermal.tz0.temperature: 0.0C : >>> hw.acpi.thermal.tz0.active: -1 : >>> hw.acpi.thermal.tz0.passive_cooling: 1 : >>> hw.acpi.thermal.tz0.thermal_flags: 0 : >>> hw.acpi.thermal.tz0._PSV: 90.0C : >>> hw.acpi.thermal.tz0._HOT: -1 : >>> hw.acpi.thermal.tz0._CRT: 94.0C : >>> hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 : >>> : >>> Note: temperature is always 0.0C. : >>> : >>> What can I do to help my situation, if I really want the kernel doing : >>> the cooling? : >> Your embedded controller is timing out. Thus you're getting a bogus : >> value for _TMP. : >> : >> Those settings for _CRT appear correct. It's the "measured" temperature : >> that is wrong. : > : > So how do I track down the problem? I'm tired of the system just : > shutting down when I'm building OOO or even something simpler like : > doing a buildworld... : : You do what's #1 on my list, which is rewrite the EC driver event model : (yet again) and figure out if it's possible to automatically detect : which workarounds are needed. Linux requires you to specify boot-time : flags to select polled or event-driven work. Hmmm. OK. Warner From owner-freebsd-acpi@FreeBSD.ORG Fri Aug 3 00:36:15 2007 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E27E616A41A; Fri, 3 Aug 2007 00:36:15 +0000 (UTC) (envelope-from alex.kovalenko@verizon.net) Received: from vms044pub.verizon.net (vms044pub.verizon.net [206.46.252.44]) by mx1.freebsd.org (Postfix) with ESMTP id C360013C46C; Fri, 3 Aug 2007 00:36:15 +0000 (UTC) (envelope-from alex.kovalenko@verizon.net) Received: from [10.0.3.231] ([138.89.60.152]) by vms044.mailsrvcs.net (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPA id <0JM6003X49O6RYT5@vms044.mailsrvcs.net>; Thu, 02 Aug 2007 19:36:07 -0500 (CDT) Date: Thu, 02 Aug 2007 20:35:59 -0400 From: "Alexandre \"Sunny\" Kovalenko" In-reply-to: <46B20F91.5080709@root.org> To: Nate Lawson Message-id: <1186101359.846.12.camel@RabbitsDen> MIME-version: 1.0 X-Mailer: Evolution 2.10.3 FreeBSD GNOME Team Port Content-type: text/plain Content-transfer-encoding: 7bit References: <46AE58B5.3080506@gahr.ch> <46AE8F78.1060203@root.org> <20070801.211718.1683324313.imp@bsdimp.com> <46B20F91.5080709@root.org> Cc: acpi@freebsd.org, freebsd-hackers@freebsd.org, ume@freebsd.org, gahr@gahr.ch Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2007 00:36:16 -0000 On Thu, 2007-08-02 at 10:08 -0700, Nate Lawson wrote: > M. Warner Losh wrote: > > In message: <46AE8F78.1060203@root.org> > > Nate Lawson writes: > > : Hajimu UMEMOTO wrote: > > : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 > > : >>>>>> Pietro Cerutti said: > > : > gahr> My patch is really just a first draft that I wrote in order to have > > : > gahr> feedbacks on the general idea to implement a temperature controlling > > : > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and > > : > gahr> your feedback is that it's not a good idea, which I respect. > > : > > > : > It is rather backward, IMHO. I did implement a passive cooling > > : > feature as an enhancement of powerd(8) like you did, during initial > > : > phases. Then, I implemented it in our kernel as a result. > > : > > : I'll take a look at your patch. Umemoto-san is right in that you really > > : want the kernel to control cooling. What happens if powerd dies/hangs > > : and your system burns up? Passive cooling is often a last resort to > > : keep the system from overheating. > > > > I keep getting the system shutting down on my HP by FreeBSD because > > the temperature exceeds the _CRT value. Maybe there's something wrong > > with my values, since it happens a lot: > > > > hw.acpi.thermal.min_runtime: 0 > > hw.acpi.thermal.polling_rate: 10 > > hw.acpi.thermal.user_override: 0 > > hw.acpi.thermal.tz0.temperature: 0.0C > > hw.acpi.thermal.tz0.active: -1 > > hw.acpi.thermal.tz0.passive_cooling: 1 > > hw.acpi.thermal.tz0.thermal_flags: 0 > > hw.acpi.thermal.tz0._PSV: 90.0C > > hw.acpi.thermal.tz0._HOT: -1 > > hw.acpi.thermal.tz0._CRT: 94.0C > > hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 > > > > Note: temperature is always 0.0C. > > > > What can I do to help my situation, if I really want the kernel doing > > the cooling? > > Your embedded controller is timing out. Thus you're getting a bogus > value for _TMP. I have sort of picked up this thread in the middle... was it determined that EC is timing out? The reason for asking is -- I used to have a laptop where _TMP would just read value from the memory location, which was never populated anywhere else in ASL. Call to _PSV method would go figure current temperature and start fan, if necessary. Ugly... Dumping ASL (using instructions from handbook) and looking for something like Method (_TMP, 0, NotSerialized) might be a real eye opener. If you would like me to take a look at your ASL, send it to me privately -- I've only done it for one laptop, so no claims of the great skill there, but maybe it is as simple as the other one ;) -- Alexandre "Sunny" Kovalenko From owner-freebsd-acpi@FreeBSD.ORG Fri Aug 3 04:14:22 2007 Return-Path: Delivered-To: acpi@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43D6716A41B; Fri, 3 Aug 2007 04:14:22 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id E466513C46E; Fri, 3 Aug 2007 04:14:21 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.8/8.13.4) with ESMTP id l734DKTt067828; Thu, 2 Aug 2007 22:13:20 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Thu, 02 Aug 2007 22:13:27 -0600 (MDT) Message-Id: <20070802.221327.1783981813.imp@bsdimp.com> To: alex.kovalenko@verizon.net From: "M. Warner Losh" In-Reply-To: <1186101359.846.12.camel@RabbitsDen> References: <20070801.211718.1683324313.imp@bsdimp.com> <46B20F91.5080709@root.org> <1186101359.846.12.camel@RabbitsDen> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Thu, 02 Aug 2007 22:13:21 -0600 (MDT) Cc: acpi@FreeBSD.org, freebsd-hackers@FreeBSD.org, gahr@gahr.ch, ume@FreeBSD.org Subject: Re: [patch] enhance powerd(8) to handle max temperature X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Aug 2007 04:14:22 -0000 In message: <1186101359.846.12.camel@RabbitsDen> "Alexandre \"Sunny\" Kovalenko" writes: : On Thu, 2007-08-02 at 10:08 -0700, Nate Lawson wrote: : > M. Warner Losh wrote: : > > In message: <46AE8F78.1060203@root.org> : > > Nate Lawson writes: : > > : Hajimu UMEMOTO wrote: : > > : >>>>>> On Mon, 30 Jul 2007 23:31:33 +0200 : > > : >>>>>> Pietro Cerutti said: : > > : > gahr> My patch is really just a first draft that I wrote in order to have : > > : > gahr> feedbacks on the general idea to implement a temperature controlling : > > : > gahr> system inside powerd, and doesn't implement hysteresis as you noted, and : > > : > gahr> your feedback is that it's not a good idea, which I respect. : > > : > : > > : > It is rather backward, IMHO. I did implement a passive cooling : > > : > feature as an enhancement of powerd(8) like you did, during initial : > > : > phases. Then, I implemented it in our kernel as a result. : > > : : > > : I'll take a look at your patch. Umemoto-san is right in that you really : > > : want the kernel to control cooling. What happens if powerd dies/hangs : > > : and your system burns up? Passive cooling is often a last resort to : > > : keep the system from overheating. : > > : > > I keep getting the system shutting down on my HP by FreeBSD because : > > the temperature exceeds the _CRT value. Maybe there's something wrong : > > with my values, since it happens a lot: : > > : > > hw.acpi.thermal.min_runtime: 0 : > > hw.acpi.thermal.polling_rate: 10 : > > hw.acpi.thermal.user_override: 0 : > > hw.acpi.thermal.tz0.temperature: 0.0C : > > hw.acpi.thermal.tz0.active: -1 : > > hw.acpi.thermal.tz0.passive_cooling: 1 : > > hw.acpi.thermal.tz0.thermal_flags: 0 : > > hw.acpi.thermal.tz0._PSV: 90.0C : > > hw.acpi.thermal.tz0._HOT: -1 : > > hw.acpi.thermal.tz0._CRT: 94.0C : > > hw.acpi.thermal.tz0._ACx: 40.0C -1 -1 -1 -1 -1 -1 -1 -1 -1 : > > : > > Note: temperature is always 0.0C. : > > : > > What can I do to help my situation, if I really want the kernel doing : > > the cooling? : > : > Your embedded controller is timing out. Thus you're getting a bogus : > value for _TMP. : I have sort of picked up this thread in the middle... was it determined : that EC is timing out? The reason for asking is -- I used to have a : laptop where _TMP would just read value from the memory location, which : was never populated anywhere else in ASL. Call to _PSV method would go : figure current temperature and start fan, if necessary. Ugly... : : Dumping ASL (using instructions from handbook) and looking for something : like : : Method (_TMP, 0, NotSerialized) : : might be a real eye opener. : : If you would like me to take a look at your ASL, send it to me privately : -- I've only done it for one laptop, so no claims of the great skill : there, but maybe it is as simple as the other one ;) Method (_TMP, 0, NotSerialized) { If (\_SB.PCI0.LPC0.ECOK ()) { Multiply (\_SB.PCI0.LPC0.EC0.THEM, 0x0A, Local0) Add (Local0, 0x0AAC, Local0) Return (Local0) } Return (DTMP) }