From owner-FreeBSD-users-jp@jp.FreeBSD.org Sun Mar 15 01:04:50 2009
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id n2EG4o438989;
	Sun, 15 Mar 2009 01:04:50 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from ti-out-0910.google.com (ti-out-0910.google.com [209.85.142.188])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet id n2EG4mt38983
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 15 Mar 2009 01:04:48 +0900 (JST)
	(envelope-from annona2@gmail.com)
Received: by ti-out-0910.google.com with SMTP id a21so1833306tia.5
        for <FreeBSD-users-jp@jp.freebsd.org>; Sat, 14 Mar 2009 09:04:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:received:received:received:message-id:date:from
         :to:subject:in-reply-to:references:user-agent:mime-version
         :content-type;
        bh=/kdRkoDcXIQD19wcrd1+Gt1O14mzYM6qMrv1E492g3Y=;
        b=jDSdCPONrEwQfjsRxUS8js2LpyxToitDF5qrCsDKnYdEIrUJ/Q831XBz5zqxBU9cMU
         /j+vqQaIPne2FzuMCWjwRwec6c82Co0ym35g5WRWSzVo42WDrPXQ5ewyjXkgjOwa4XZl
         Mp8VcARY4p7K/PgjYMTg1/TnZ3TXKllqtU1QA=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=gamma;
        h=message-id:date:from:to:subject:in-reply-to:references:user-agent
         :mime-version:content-type;
        b=XfsXtyhoVURF7vDDImc8LKRZ7d8sE+eGNIwrbbmXXWnSSD8+ZhWhAtatcVRAhdgoeH
         8S9UkgkXMiuCP80tg17OkHGxcvzpX3CQMPah/p3/kkI52BEoKLEu2oNH/mNzdTbsc4PT
         4k8j3wTlBm0kmuz7PYr5naUkiiWOHrLqzJqbU=
Received: by 10.110.69.14 with SMTP id r14mr4128576tia.36.1237046687952;
        Sat, 14 Mar 2009 09:04:47 -0700 (PDT)
Received: from softbank219001162114.bbtec.net (softbank219001162114.bbtec.net [219.1.162.114])
        by mx.google.com with ESMTPS id b4sm5503644tic.16.2009.03.14.09.04.44
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Sat, 14 Mar 2009 09:04:46 -0700 (PDT)
Received: from softbank219001162114.bbtec.net (localhost [127.0.0.1])
	by softbank219001162114.bbtec.net (8.14.3/8.14.3) with ESMTP id n2EG4bXd018847
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Sun, 15 Mar 2009 01:04:37 +0900 (JST)
	(envelope-from annona2@gmail.com)
Message-Id: <200903141604.n2EG4bXd018847@softbank219001162114.bbtec.net>
From: "G .Otsuji" <annona2@gmail.com>
To: FreeBSD-users-jp@jp.FreeBSD.org
In-Reply-To: <200903131414.n2DEEdZW002029@softbank219001162114.bbtec.net>
References: <200811022251.mA2MpLwh001847@localhost>	<20090228170231.234ec102.nork@ninth-nine.com>	<20090228173619.cbaf83a7.nork@ninth-nine.com>	<200903010909.n21990Qb002967@localhost>	<20090301184041.596a5acd.nork@ninth-nine.com>	<20090301185737.296751b0.nork@ninth-nine.com>	<200903021056.n22AuoPu001805@softbank219001162114.bbtec.net>	<20090308150503.79193061.nork@ninth-nine.com>	<20090308155809.75f2efeb.nork@ninth-nine.com>	<200903110835.n2B8Zeg6015312@localhost>	<20090313031949.e4a29b67.nork@ninth-nine.com>	<200903131414.n2DEEdZW002029@softbank219001162114.bbtec.net>
User-Agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka)
 FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.7 Emacs/22.3
 (i386-portbld-freebsd7.1) MULE/5.0 (SAKAKI)
MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka")
Content-Type: multipart/mixed;
 boundary="Multipart_Sun_Mar_15_01:04:36_2009-1"
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Sun, 15 Mar 2009 01:04:37 +0900
X-Sequence: FreeBSD-users-jp 92185
Subject: [FreeBSD-users-jp 92185] Re: Phenom
 =?ISO-2022-JP?B?GyRCJEokSSROGyhC?= cpufreq
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: annona2@gmail.com
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+060209

--Multipart_Sun_Mar_15_01:04:36_2009-1
Content-Type: text/plain; charset=ISO-2022-JP

$BHxDT$G$9!#(B

$B$+$J$j(Bhwpstate.c$B$r$$$8$/$j$^$7$?!#(B
0) style(9)$B$K$G$-$k$@$1E:$C$F$_$^$7$?!#(B
1) $B29EY7OE}>C$7$^$7$?!#4s$jF;$@$C$?$G$9!#(B
2) sysctl debug.cnq_verbose=0$B$G(Bverbose$B%a%C%;!<%8$,=P$J$/$J$j$^$9!#(B
2) hwpstate.c$B$NL>A0$r(Bcnq.c$B$KJQ99$G$9!#JQ$($?J}$,$$$$$=$&$G$9!#(B
3) cpu$B%3%"$,(B4$B$D$G$b(Bcnq0$B0l8D$K$7$^$7$?!#$=$N$?$a!";d$N4D6-$G$O(Bacpi_throttle0$B$,(B
$B$"$C$F$b(Binvalid argument$B$,$G$J$/$J$j$^$7$?!#(B
$BB>$N4D6-$GAj@-$b$J$/$J$k$H$$$$$N$G$9$,!#!#!#$&$A$G$O(Bacpi_throttle$BM-8z$G;H$C$F$b$&$^$/(Bpowerd$B$,F0$$$F$^$9!#(B
3) acpi_perf$B$+$i>CHqEENO$J$I$r$b$i$&$h$&$KJQ$($^$7$?!#(Bacpidump -dt$B$G(B_PSS,_PCT$B$,$"$l$PBg>fIW$G$9!#(B
  $BL5$1$l$P(Bmsr$B>pJs$GF0$-$^$9!#(B
4) AMD Family 11h$B$N(B Turion X2,Sempron$B$J$I$G$b$?$V$s(BOK$B$G$9!#(B
5) 8-CURRENT$BMQ$G$9$,(B7.1R$B$G3+H/$7$F$k$N$G(B
7$B7O$G$b(Bvendor_id$B$d$i(BFAMILY$B$N$"$?$j$rE,59=hM}$7$?$i;H$($^$9!#(B
6) /sys/modules/cpufreq/Makefile$B$r=q$-49$($J$$$H$$$1$^$;$s!#(B

cnq.c$B$rE:IUCW$7$^$9$N$G!"$h$m$7$/$*4j$$CW$7$^$9!#(B

$BHxDT(B<annona2@gmail.com>

--Multipart_Sun_Mar_15_01:04:36_2009-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="cnq.c"
Content-Transfer-Encoding: base64

LyotCiAqIENvcHlyaWdodCAoYykgMjAwOC0yMDA5IEdlbiBPdHN1amkKICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRpbmcgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUmBg
QVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKICogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFO
WQogKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKICogT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCiAqIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwKICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HCiAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQogKiBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICovCgovKgogKiBSZWZlcmVuY2U6CiAqIEJJT1MgYW5kIEtlcm5lbCBEZXZlbG9w
ZXIncyBHdWlkZShCS0RHKSBmb3IgQU1EIEZhbWlseSAxMGggUHJvY2Vzc29ycwogKiAzMTExNiBS
ZXYgMy4yMCAgRmVicnVhcnkgMDQsIDIwMDkKICogQklPUyBhbmQgS2VybmVsIERldmVsb3Blcidz
IEd1aWRlKEJLREcpIGZvciBBTUQgRmFtaWx5IDExaCBQcm9jZXNzb3JzCiAqIDQxMjU2IFJldiAz
LjAwIC0gSnVseSAwNywgMjAwOAogKi8KCiNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KX19GQlNESUQo
IiRGcmVlQlNEJCIpOwoKI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgojaW5jbHVkZSA8c3lzL2J1cy5o
PgojaW5jbHVkZSA8c3lzL2NwdS5oPgojaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgojaW5jbHVkZSA8
c3lzL21vZHVsZS5oPgojaW5jbHVkZSA8c3lzL21hbGxvYy5oPgojaW5jbHVkZSA8c3lzL3Byb2Mu
aD4KI2luY2x1ZGUgPHN5cy9wY3B1Lmg+CiNpbmNsdWRlIDxzeXMvc21wLmg+CiNpbmNsdWRlIDxz
eXMvc2NoZWQuaD4KCiNpbmNsdWRlIDxtYWNoaW5lL21kX3Zhci5oPgojaW5jbHVkZSA8bWFjaGlu
ZS9jcHV0eXBlcy5oPgojaW5jbHVkZSA8bWFjaGluZS9zcGVjaWFscmVnLmg+CgojaW5jbHVkZSA8
Y29udHJpYi9kZXYvYWNwaWNhL2FjcGkuaD4KI2luY2x1ZGUgPGRldi9hY3BpY2EvYWNwaXZhci5o
PgoKI2luY2x1ZGUgImFjcGlfaWYuaCIKI2luY2x1ZGUgImNwdWZyZXFfaWYuaCIKCiNkZWZpbmUJ
TVNSX0FNRF8xMEhfMTFIX0xJTUlUCTB4YzAwMTAwNjEKI2RlZmluZQlNU1JfQU1EXzEwSF8xMUhf
Q09OVFJPTAkweGMwMDEwMDYyCiNkZWZpbmUJTVNSX0FNRF8xMEhfMTFIX1NUQVRVUwkweGMwMDEw
MDYzCiNkZWZpbmUJTVNSX0FNRF8xMEhfMTFIX0NPTkZJRwkweGMwMDEwMDY0CgojZGVmaW5lCUFN
RF8xMEhfMTFIX01BWF9TVEFURVMJMTYKCi8qIGZvciBNU1JfQU1EXzEwSF8xMUhfTElNSVQgQzAw
MV8wMDYxICovCiNkZWZpbmUJQU1EXzEwSF8xMUhfR0VUX1BTVEFURV9NQVhfVkFMKG1zcikJKCgo
bXNyKSA+PiA0KSAmIDB4NykKI2RlZmluZQlBTURfMTBIXzExSF9HRVRfUFNUQVRFX0xJTUlUKG1z
cikJKCgobXNyKSkgJiAweDcpCi8qIGZvciBNU1JfQU1EXzEwSF8xMUhfQ09ORklHIDEwaDpDMDAx
XzAwNjQ6NjggLyAxMWg6QzAwMV8wMDY0OjZCICovCiNkZWZpbmUJQU1EXzEwSF8xMUhfUFNUQVRF
X0VOKG1zcikJCSgobXNyKSAmIDB4ODAwMDAwMDAwMDAwMDAwMCkKI2RlZmluZQlBTURfMTBIXzEx
SF9DVVJfVklEKG1zcikJCSgoKG1zcikgPj4gOSkgJiAweDdGKQojZGVmaW5lCUFNRF8xMEhfMTFI
X0NVUl9ESUQobXNyKQkJKCgobXNyKSA+PiA2KSAmIDB4MDcpCiNkZWZpbmUJQU1EXzEwSF8xMUhf
Q1VSX0ZJRChtc3IpCQkoKG1zcikgJiAweDNGKQoKI2RlZmluZQlDTlFfREVCVUcobXNnLi4uKQkJ
CVwKCWRvewkJCQkJXAoJCWlmKGNucV92ZXJib3NlKQkJCVwKCQkJZGV2aWNlX3ByaW50Zihtc2cp
OwlcCgl9d2hpbGUoMCkKCnN0cnVjdCBjbnFfc2V0dGluZyB7CglpbnQJZnJlcTsJLyogQ1BVIGNs
b2NrIGluIE1oeiBvciAxMDB0aHMgb2YgYSBwZXJjZW50LiAqLwoJaW50CXZvbHRzOwkvKiBWb2x0
YWdlIGluIG1WLiAqLwoJaW50CXBvd2VyOwkvKiBQb3dlciBjb25zdW1lZCBpbiBtVy4gKi8KCWlu
dAlsYXQ7CS8qIFRyYW5zaXRpb24gbGF0ZW5jeSBpbiB1cy4gKi8KCWludAlwc3RhdGVfaWQ7Cn07
CgpzdHJ1Y3QgY25xX3NvZnRjIHsKCWRldmljZV90CQlkZXY7CglzdHJ1Y3QgY25xX3NldHRpbmcJ
Y25xX3NldHRpbmdzW0FNRF8xMEhfMTFIX01BWF9TVEFURVNdOwoJaW50CQkJY2ZudW07CglpbnQJ
CQljdXJwc3RhdGU7Cn07CgpzdGF0aWMgdm9pZAljbnFfaWRlbnRpZnkoZHJpdmVyX3QgKmRyaXZl
ciwgZGV2aWNlX3QgcGFyZW50KTsKc3RhdGljIGludAljbnFfcHJvYmUoZGV2aWNlX3QgZGV2KTsK
c3RhdGljIGludAljbnFfYXR0YWNoKGRldmljZV90IGRldik7CnN0YXRpYyBpbnQJY25xX2RldGFj
aChkZXZpY2VfdCBkZXYpOwpzdGF0aWMgaW50CWNucV9zZXQoZGV2aWNlX3QgZGV2LCBjb25zdCBz
dHJ1Y3QgY2Zfc2V0dGluZyAqY2YpOwpzdGF0aWMgaW50CWNucV9nZXQoZGV2aWNlX3QgZGV2LCBz
dHJ1Y3QgY2Zfc2V0dGluZyAqY2YpOwpzdGF0aWMgaW50CWNucV9zZXR0aW5ncyhkZXZpY2VfdCBk
ZXYsIHN0cnVjdCBjZl9zZXR0aW5nICpzZXRzLCBpbnQgKmNvdW50KTsKc3RhdGljIGludAljbnFf
dHlwZShkZXZpY2VfdCBkZXYsIGludCAqdHlwZSk7CnN0YXRpYyBpbnQJY25xX3NodXRkb3duKGRl
dmljZV90IGRldik7CnN0YXRpYyBpbnQJY25xX2ZlYXR1cmVzKGRyaXZlcl90ICpkcml2ZXIsIHVf
aW50ICpmZWF0dXJlcyk7CnN0YXRpYyBpbnQJY25xX2dldF9pbmZvKGRldmljZV90IGRldik7Cgpz
dGF0aWMgaW50CWNucV92ZXJib3NlID0gMTsvKiAwICovClNZU0NUTF9JTlQoX2RlYnVnLCBPSURf
QVVUTywgY25xX3ZlcmJvc2UsIENUTEZMQUdfUlcsIC8qIENUTEZMQUdfUkRUVU4gKi8KICAgICAg
ICZjbnFfdmVyYm9zZSwgMCwgIkRlYnVnIGNucSIpOwoKc3RhdGljIGRldmljZV9tZXRob2RfdCBj
bnFfbWV0aG9kc1tdID0gewoJLyogRGV2aWNlIGludGVyZmFjZSAqLwoJREVWTUVUSE9EKGRldmlj
ZV9pZGVudGlmeSwJY25xX2lkZW50aWZ5KSwKCURFVk1FVEhPRChkZXZpY2VfcHJvYmUsCQljbnFf
cHJvYmUpLAoJREVWTUVUSE9EKGRldmljZV9hdHRhY2gsCWNucV9hdHRhY2gpLAoJREVWTUVUSE9E
KGRldmljZV9kZXRhY2gsCWNucV9kZXRhY2gpLAoJREVWTUVUSE9EKGRldmljZV9zaHV0ZG93biwJ
Y25xX3NodXRkb3duKSwKCgkvKiBjcHVmcmVxIGludGVyZmFjZSAqLwoJREVWTUVUSE9EKGNwdWZy
ZXFfZHJ2X3NldCwJY25xX3NldCksCglERVZNRVRIT0QoY3B1ZnJlcV9kcnZfZ2V0LAljbnFfZ2V0
KSwKCURFVk1FVEhPRChjcHVmcmVxX2Rydl9zZXR0aW5ncywJY25xX3NldHRpbmdzKSwKCURFVk1F
VEhPRChjcHVmcmVxX2Rydl90eXBlLAljbnFfdHlwZSksCgoJLyogQUNQSSBpbnRlcmZhY2UgKi8K
CURFVk1FVEhPRChhY3BpX2dldF9mZWF0dXJlcywJY25xX2ZlYXR1cmVzKSwKCgl7MCwgMH0KfTsK
CnN0YXRpYyBkZXZjbGFzc190IGNucV9kZXZjbGFzczsKc3RhdGljIGRyaXZlcl90IGNucV9kcml2
ZXIgPSB7CgkiY25xIiwKCWNucV9tZXRob2RzLAoJc2l6ZW9mKHN0cnVjdCBjbnFfc29mdGMpLAp9
OwoKRFJJVkVSX01PRFVMRShjbnEsIGNwdSwgY25xX2RyaXZlciwgY25xX2RldmNsYXNzLCAwLCAw
KTsKCi8qCiAqIGdvdG8gUDAtc3RhdGUsIFAxLXN0YXRlLCBldGMuLi4KICogY29uc2lkZXJpbmcg
dGhlIGxpbWl0CiAqLwpzdGF0aWMgdm9pZApjbnFfZ290b19wc3RhdGUoZGV2aWNlX3QgZGV2LCBp
bnQgcHN0YXRlKQp7CglzdHJ1Y3QgY25xX3NvZnRjICpzYzsKCXN0cnVjdCBwY3B1ICpwYzsKCXVp
bnQ2NF90IG1zcjsKCWludCBpLCBqOwoJaW50IGxpbWl0OwoJaW50IGlkID0gcHN0YXRlOwoJCglz
YyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKCS8qIGdldCB0aGUgY3VycmVudCBwc3RhdGUgbGlt
aXQgKi8KCW1zciA9IHJkbXNyKE1TUl9BTURfMTBIXzExSF9MSU1JVCk7CglsaW1pdCA9IEFNRF8x
MEhfMTFIX0dFVF9QU1RBVEVfTElNSVQobXNyKTsKCWlmKGxpbWl0ID4gaWQpCgkJaWQgPSBsaW1p
dDsKCglmb3IgKGkgPSAwOyBpIDwgbXBfbmNwdXM7IGkrKykgewoJCS8qIEJpbmQgdG8gdGhlIHRh
cmdldCBDUFUgYmVmb3JlIHN3aXRjaGluZy4gKi8KCQlwYyA9IHBjcHVfZmluZChpKTsKCQl0aHJl
YWRfbG9jayhjdXJ0aHJlYWQpOwoJCXNjaGVkX2JpbmQoY3VydGhyZWFkLCBwYy0+cGNfY3B1aWQp
OwoJCXRocmVhZF91bmxvY2soY3VydGhyZWFkKTsKCQlDTlFfREVCVUcoZGV2LCAic2V0dGluZyBQ
JWQtc3RhdGUgb24gY3B1JWRcbiIsCgkJCWlkLCBQQ1BVX0dFVChjcHVpZCkpOwoJCS8qIEdvIFRv
IFB4LXN0YXRlICovCgkJd3Jtc3IoTVNSX0FNRF8xMEhfMTFIX0NPTlRST0wsIGlkKTsKCQkvKiB3
YWl0IGxvb3AgKDEwMCoxMDAgdXNlYyBpcyBlbm91Z2ggPykgKi8KCQlmb3IoaiA9IDA7IGogPCAx
MDA7IGorKyl7CgkJCW1zciA9IHJkbXNyKE1TUl9BTURfMTBIXzExSF9TVEFUVVMpOwoJCQlpZiht
c3IgPT0gaWQpewoJCQkJYnJlYWs7CgkJCX0KCQkJREVMQVkoMTAwKTsKCQl9CgkJLyogZ2V0IHRo
ZSByZXN1bHQuIG5vdCBhc3N1cmUgbXNyPWlkICovCgkJbXNyID0gcmRtc3IoTVNSX0FNRF8xMEhf
MTFIX1NUQVRVUyk7CgkJQ05RX0RFQlVHKGRldiwgInJlc3VsdCAgUCVkLXN0YXRlIG9uIGNwdSVk
XG4iLAoJCSAgICAoaW50KW1zciwgUENQVV9HRVQoY3B1aWQpKTsKCQlpZiAobXNyICE9IGlkKQoJ
CQlDTlFfREVCVUcoZGV2LCAid2FybmluZzogbG9vcCBpcyBub3QgZW5vdWdoP1xuIik7CgkJdGhy
ZWFkX2xvY2soY3VydGhyZWFkKTsKCQlzY2hlZF91bmJpbmQoY3VydGhyZWFkKTsKCQl0aHJlYWRf
dW5sb2NrKGN1cnRocmVhZCk7Cgl9CglzYy0+Y3VycHN0YXRlID0gaWQ7CglyZXR1cm47Cn0KCnN0
YXRpYyBpbnQKY25xX3NldChkZXZpY2VfdCBkZXYsIGNvbnN0IHN0cnVjdCBjZl9zZXR0aW5nICpj
ZikKewoJc3RydWN0IGNucV9zb2Z0YyAqc2M7CglzdHJ1Y3QgY25xX3NldHRpbmcgKnNldDsKCWlu
dCBpOwoKCWlmIChjZiA9PSBOVUxMKQoJCXJldHVybiAoRUlOVkFMKTsKCXNjID0gZGV2aWNlX2dl
dF9zb2Z0YyhkZXYpOwoJc2V0ID0gc2MtPmNucV9zZXR0aW5nczsKCWZvciAoaSA9IDA7IGkgPCBz
Yy0+Y2ZudW07IGkrKykKCQlpZiAoQ1BVRlJFUV9DTVAoY2YtPmZyZXEsIHNldFtpXS5mcmVxKSkK
CQkJYnJlYWs7CglpZiAoaSA9PSBzYy0+Y2ZudW0pCgkJcmV0dXJuIChFSU5WQUwpOwoKCWNucV9n
b3RvX3BzdGF0ZShkZXYsIHNldFtpXS5wc3RhdGVfaWQpOwoJcmV0dXJuICgwKTsKfQoKc3RhdGlj
IGludApjbnFfZ2V0KGRldmljZV90IGRldiwgc3RydWN0IGNmX3NldHRpbmcgKmNmKQp7CglzdHJ1
Y3QgY25xX3NvZnRjICpzYzsKCXN0cnVjdCBjbnFfc2V0dGluZyBzZXQ7Cgl1aW50NjRfdCBtc3I7
CgoJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CglpZiAoY2YgPT0gTlVMTCkKCQlyZXR1cm4g
KEVJTlZBTCk7Cgltc3IgPSByZG1zcihNU1JfQU1EXzEwSF8xMUhfU1RBVFVTKTsKCWlmKG1zciA+
PSBzYy0+Y2ZudW0pCgkJcmV0dXJuIChFSU5WQUwpOwoJc2V0ID0gc2MtPmNucV9zZXR0aW5nc1tt
c3JdOwoKCWNmLT5mcmVxID0gc2V0LmZyZXE7CgljZi0+dm9sdHMgPSBzZXQudm9sdHM7CgljZi0+
cG93ZXIgPSBzZXQucG93ZXI7CgljZi0+bGF0ID0gc2V0LmxhdDsKCWNmLT5kZXYgPSBkZXY7Cgly
ZXR1cm4gKDApOwp9CgpzdGF0aWMgaW50CmNucV9zZXR0aW5ncyhkZXZpY2VfdCBkZXYsIHN0cnVj
dCBjZl9zZXR0aW5nICpzZXRzLCBpbnQgKmNvdW50KQp7CglzdHJ1Y3QgY25xX3NvZnRjICpzYzsK
CXN0cnVjdCBjbnFfc2V0dGluZyBzZXQ7CglpbnQgaTsKCglpZiAoc2V0cyA9PSBOVUxMIHx8IGNv
dW50ID09IE5VTEwpCgkJcmV0dXJuIChFSU5WQUwpOwoJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRl
dik7CglpZiAoKmNvdW50IDwgc2MtPmNmbnVtKQoJCXJldHVybiAoRTJCSUcpOwoJZm9yIChpID0g
MDsgaSA8IHNjLT5jZm51bTsgaSsrLCBzZXRzKyspIHsKCQlzZXQgPSBzYy0+Y25xX3NldHRpbmdz
W2ldOwoJCXNldHMtPmZyZXEgPSBzZXQuZnJlcTsKCQlzZXRzLT52b2x0cyA9IHNldC52b2x0czsK
CQlzZXRzLT5wb3dlciA9IHNldC5wb3dlcjsKCQlzZXRzLT5sYXQgPSBzZXQubGF0OwoJCXNldHMt
PmRldiA9IGRldjsKCX0KCSpjb3VudCA9IHNjLT5jZm51bTsKCglyZXR1cm4gKDApOwp9CgpzdGF0
aWMgaW50CmNucV90eXBlKGRldmljZV90IGRldiwgaW50ICp0eXBlKQp7CgoJaWYgKHR5cGUgPT0g
TlVMTCkKCQlyZXR1cm4gKEVJTlZBTCk7CgoJKnR5cGUgPSBDUFVGUkVRX1RZUEVfQUJTT0xVVEU7
CglyZXR1cm4gKDApOwp9CgpzdGF0aWMgaW50CmNucV9pc19jYXBhYmxlKHZvaWQpCnsKCXVfaW50
IHJlZ3NbNF07CgoJaWYgKGNwdV92ZW5kb3JfaWQgIT0gQ1BVX1ZFTkRPUl9BTUQgfHwgQU1ENjRf
Q1BVX0ZBTUlMWShjcHVfaWQpIDwgMHgxMCkKIAkJcmV0dXJuIChGQUxTRSk7CgoJaWYgKGNwdV9l
eHRoaWdoIDwgMHg4MDAwMDAwNykKCQlyZXR1cm4gKEZBTFNFKTsKCglkb19jcHVpZCgweDgwMDAw
MDA3LCByZWdzKTsKCS8qIEh3UHN0YXRlIEVuYWJsZSBiaXQgKi8KCWlmIChyZWdzWzNdICYgMHg4
MCkgewoJCXJldHVybiAoVFJVRSk7Cgl9CglyZXR1cm4gKEZBTFNFKTsKfQoKc3RhdGljIHZvaWQK
Y25xX2lkZW50aWZ5KGRyaXZlcl90ICpkcml2ZXIsIGRldmljZV90IHBhcmVudCkKewoJZGV2aWNl
X3QgY2hpbGQ7CgoJaWYgKGRldmljZV9maW5kX2NoaWxkKHBhcmVudCwgImNucSIsIC0xKSAhPSBO
VUxMKQoJCXJldHVybjsKCglpZiAoKGNoaWxkID0gQlVTX0FERF9DSElMRChwYXJlbnQsIDEwLCAi
Y25xIiwgLTEpKSA9PSBOVUxMKQoJCWRldmljZV9wcmludGYocGFyZW50LCAiY25xOiBhZGQgY2hp
bGQgZmFpbGVkXG4iKTsKfQoKc3RhdGljIGludApjbnFfcHJvYmUoZGV2aWNlX3QgZGV2KQp7Cglk
ZXZpY2VfdCBwZXJmX2RldjsKCXVpbnQ2NF90IG1zcjsKCWludCBlcnJvciwgdHlwZTsKCglpZiAo
cmVzb3VyY2VfZGlzYWJsZWQoImNucSIsIDApKQoJCXJldHVybiAoRU5YSU8pOwoJCglpZiAoY25x
X2lzX2NhcGFibGUoKSA9PSBGQUxTRSkKCQlyZXR1cm4gKEVOWElPKTsKCglpZiAoZGV2aWNlX2dl
dF91bml0KGRldikgIT0gMCkKCQlyZXR1cm4gKEVOWElPKTsKCgkvKgoJICogSWYgdGhlIEFDUEkg
cGVyZiBkcml2ZXIgaGFzIGF0dGFjaGVkIGFuZCBpcyBub3QganVzdCBvZmZlcmluZwoJICogaW5m
bywgbGV0IGl0IG1hbmFnZSB0aGluZ3MuCgkgKi8KCXBlcmZfZGV2ID0gZGV2aWNlX2ZpbmRfY2hp
bGQoZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgImFjcGlfcGVyZiIsIC0xKTsKCWlmIChwZXJmX2Rl
diAmJiBkZXZpY2VfaXNfYXR0YWNoZWQocGVyZl9kZXYpKSB7CgkJZXJyb3IgPSBDUFVGUkVRX0RS
Vl9UWVBFKHBlcmZfZGV2LCAmdHlwZSk7CgkJaWYgKGVycm9yID09IDAgJiYgKHR5cGUgJiBDUFVG
UkVRX0ZMQUdfSU5GT19PTkxZKSA9PSAwKQoJCQlyZXR1cm4gKEVOWElPKTsKCX0KCgltc3IgPSBy
ZG1zcihNU1JfQU1EXzEwSF8xMUhfTElNSVQpOwoJaWYgKEFNRF8xMEhfMTFIX0dFVF9QU1RBVEVf
TUFYX1ZBTChtc3IpID09IDApIHsKCQlkZXZpY2VfcHJpbnRmKGRldiwgIm5vdCBzdXBwb3J0ZWQg
YnkgdGhlIGJpb3MuXG4iKTsKCQlyZXR1cm4gKEVOWElPKTsKCX0KCWRldmljZV9zZXRfZGVzYyhk
ZXYsICJDb29sYG4nUXVpZXQgMi4wIik7CglyZXR1cm4gKDApOwp9CgpzdGF0aWMgaW50CmNucV9h
dHRhY2goZGV2aWNlX3QgZGV2KQp7CglzdHJ1Y3QgY25xX3NvZnRjICpzYzsKCglzYyA9IGRldmlj
ZV9nZXRfc29mdGMoZGV2KTsKCXNjLT5kZXYgPSBkZXY7CgkKCS8qIENoZWNrIENQVSBmb3Igc3Vw
cG9ydGVkIHNldHRpbmdzLiAqLwoJaWYgKGNucV9nZXRfaW5mbyhkZXYpKQoJCXJldHVybiAoRU5Y
SU8pOwoKCWNwdWZyZXFfcmVnaXN0ZXIoZGV2KTsKCXJldHVybiAoMCk7Cn0KCnN0YXRpYyBpbnQK
Y25xX2dldF9pbmZvKGRldmljZV90IGRldikKewoJc3RydWN0IGNucV9zb2Z0YyAqc2M7CglzdHJ1
Y3QgY2Zfc2V0dGluZyAqcGVyZl9zZXQ7CglzdHJ1Y3QgY25xX3NldHRpbmcgKmNucV9zZXQ7Cglk
ZXZpY2VfdCBwZXJmX2RldjsKCXVpbnQ2NF90IG1zcjsKCWludCBjb3VudCwgZXJyb3IsIGksIGZh
bWlseSwgZmlkLCBkaWQ7CgoJZmFtaWx5ID0gQU1ENjRfQ1BVX0ZBTUlMWShjcHVfaWQpOwoKCW1z
ciA9IHJkbXNyKE1TUl9BTURfMTBIXzExSF9MSU1JVCk7CglzYyA9IGRldmljZV9nZXRfc29mdGMo
ZGV2KTsKCXNjLT5jZm51bSA9IDEgKyBBTURfMTBIXzExSF9HRVRfUFNUQVRFX01BWF9WQUwobXNy
KTsKCUNOUV9ERUJVRyhkZXYsICJjb3VudDogJWRcbiIsIHNjLT5jZm51bSk7CgljbnFfc2V0ID0g
c2MtPmNucV9zZXR0aW5nczsKCWZvciAoaSA9IDA7IGkgPCBzYy0+Y2ZudW07IGkrKykgewoJCW1z
ciA9IHJkbXNyKE1TUl9BTURfMTBIXzExSF9DT05GSUcgKyBpKTsKCQlpZiAoIUFNRF8xMEhfMTFI
X1BTVEFURV9FTihtc3IpKSB7CgkJCUNOUV9ERUJVRyhkZXYsICJtc3IgbWlzbWF0Y2guXG4iKTsK
CQkJcmV0dXJuIChFTlhJTyk7CgkJfQoJCWRpZCA9IEFNRF8xMEhfMTFIX0NVUl9ESUQobXNyKTsK
CQlmaWQgPSBBTURfMTBIXzExSF9DVVJfRklEKG1zcik7CgkJc3dpdGNoKGZhbWlseSkgewoJCWNh
c2UgMHgxMToKCQkJLyogZmlkL2RpZCB0byBmcmVxdWVuY3kgKi8KCQkJY25xX3NldFtpXS5mcmVx
ID0gMTAwICogKGZpZCArIDB4MDgpIC8gKDEgPDwgZGlkKTsKCQkJYnJlYWs7CgkJY2FzZSAweDEw
OgoJCQkvKiBmaWQvZGlkIHRvIGZyZXF1ZW5jeSAqLwoJCQljbnFfc2V0W2ldLmZyZXEgPSAxMDAg
KiAoZmlkICsgMHgxMCkgLyAoMSA8PCBkaWQpOwoJCQlicmVhazsKCQlkZWZhdWx0OgoJCQlyZXR1
cm4gKEVOWElPKTsKCQkJYnJlYWs7CgkJfQoJCWNucV9zZXRbaV0ucHN0YXRlX2lkID0gaTsKCQlj
bnFfc2V0W2ldLnZvbHRzID0gQ1BVRlJFUV9WQUxfVU5LTk9XTjsKCQljbnFfc2V0W2ldLnBvd2Vy
ID0gQ1BVRlJFUV9WQUxfVU5LTk9XTjsKCQljbnFfc2V0W2ldLmxhdCA9IDE2OwoJfQoKCXBlcmZf
ZGV2ID0gZGV2aWNlX2ZpbmRfY2hpbGQoZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgImFjcGlfcGVy
ZiIsIC0xKTsKCWlmIChwZXJmX2RldiA9PSBOVUxMIHx8ICFkZXZpY2VfaXNfYXR0YWNoZWQocGVy
Zl9kZXYpKSB7CgkJQ05RX0RFQlVHKGRldiwgImFjcGlfcGVyZiBub3QgZm91bmQuXG4iKTsKCQly
ZXR1cm4gKDApOwoJfQoKCS8qIEZldGNoIHNldHRpbmdzIGZyb20gYWNwaV9wZXJmLiAqLwoJcGVy
Zl9zZXQgPSBtYWxsb2MoTUFYX1NFVFRJTkdTICogc2l6ZW9mKCpwZXJmX3NldCksIE1fVEVNUCwg
TV9OT1dBSVQpOwoJaWYgKHBlcmZfc2V0ID09IE5VTEwpIHsKCQlDTlFfREVCVUcoZGV2LCAibm9t
ZW1cbiIpOwoJCXJldHVybiAoMCk7Cgl9Cgljb3VudCA9IE1BWF9TRVRUSU5HUzsKCWVycm9yID0g
Q1BVRlJFUV9EUlZfU0VUVElOR1MocGVyZl9kZXYsIHBlcmZfc2V0LCAmY291bnQpOwoJaWYgKGVy
cm9yKQoJCWdvdG8gb3V0OwoKCS8qIGNvbXBhcmUgY25xIGNvdW50IHdpdGggcGVyZiBjb3VudCAq
LwoJaWYgKHNjLT5jZm51bSAhPSBjb3VudCkgewoJCUNOUV9ERUJVRyhkZXYsICJBQ1BJIF9QU1Mg
b2JqZWN0IGRvZXMgbm90IG1hdGNoIHRoZSBtc3IuXG4iKTsKCQlnb3RvIG91dDsKCX0KCgkvKiBj
b3B5IGFjcGlfcGVyZiBzZXR0aW5nIHRvIGNucSBzZXR0aW5nICovCgljbnFfc2V0ID0gc2MtPmNu
cV9zZXR0aW5nczsKCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CgkJaWYgKGNucV9zZXRb
aV0ucHN0YXRlX2lkID09IHBlcmZfc2V0W2ldLnNwZWNbMF0pIHsKCQkJY25xX3NldFtpXS5mcmVx
ID0gcGVyZl9zZXRbaV0uZnJlcTsKCQkJY25xX3NldFtpXS52b2x0cyA9IHBlcmZfc2V0W2ldLnZv
bHRzOwoJCQljbnFfc2V0W2ldLnBvd2VyID0gcGVyZl9zZXRbaV0ucG93ZXI7CgkJCWNucV9zZXRb
aV0ubGF0ID0gcGVyZl9zZXRbaV0ubGF0OwoJCX0gZWxzZSB7CgkJCUNOUV9ERUJVRyhkZXYsICJB
Q1BJIF9QU1Mgb2JqZWN0IG1pc21hdGNoLlxuIik7CgkJCWdvdG8gb3V0OwoJCX0KCX0KCWVycm9y
ID0gMDsKCgljbnFfZ290b19wc3RhdGUoZGV2LCAwKTsKCm91dDoKCWlmIChwZXJmX3NldCkKCQlm
cmVlKHBlcmZfc2V0LCBNX1RFTVApOwoJcmV0dXJuICgwKTsKfQoKc3RhdGljIGludApjbnFfZGV0
YWNoKGRldmljZV90IGRldikKewoKCWNucV9nb3RvX3BzdGF0ZShkZXYsIDApOwoJcmV0dXJuIChj
cHVmcmVxX3VucmVnaXN0ZXIoZGV2KSk7Cn0KCnN0YXRpYyBpbnQKY25xX3NodXRkb3duKGRldmlj
ZV90IGRldikKewoKCWNucV9nb3RvX3BzdGF0ZShkZXYsIDApOwoJcmV0dXJuICgwKTsKfQoKc3Rh
dGljIGludApjbnFfZmVhdHVyZXMoZHJpdmVyX3QgKmRyaXZlciwgdV9pbnQgKmZlYXR1cmVzKQp7
CgoJLyogTm90aWZ5IHRoZSBBQ1BJIENQVSB0aGF0IHdlIHN1cHBvcnQgZGlyZWN0IGFjY2VzcyB0
byBNU1JzICovCgkqZmVhdHVyZXMgPSBBQ1BJX0NBUF9QRVJGX01TUlM7CglyZXR1cm4gKDApOwp9
Cg==

--Multipart_Sun_Mar_15_01:04:36_2009-1--
