From owner-acpi-jp@jp.FreeBSD.org Sat Jul 12 12:21:12 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id h6C3LCG35104;
	Sat, 12 Jul 2003 12:21:12 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from rootlabs.com (root.org [67.118.192.226])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with SMTP/inet id h6C3LBT35099
	for <acpi-jp@jp.freebsd.org>; Sat, 12 Jul 2003 12:21:11 +0900 (JST)
	(envelope-from nate@rootlabs.com)
Received: (qmail 9230 invoked by uid 1000); 12 Jul 2003 03:21:07 -0000
From: Nate Lawson <nate@root.org>
To: acpi-jp@jp.FreeBSD.org
cc: andrew.grover@intel.com
Message-ID: <20030711201532.P9216@root.org>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="0-1372354428-1057980067=:9216"
Reply-To: acpi-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 11 Jul 2003 20:21:07 -0700
X-Sequence: acpi-jp 2408
Subject: [acpi-jp 2408] Problems with 0619 and battery support
Sender: owner-acpi-jp@jp.FreeBSD.org
X-Originator: nate@root.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+030702

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1372354428-1057980067=:9216
Content-Type: TEXT/PLAIN; charset=US-ASCII

I am attempting to import acpica-0619 into FreeBSD.  The basic changes I
made to get things working was to change calls to AcpiGetObjectInfo to use
an ACPI_BUFFER and AcpiEnableGpe instead of AcpiEnableEvent for enabling
our GPE handlers for the EC.  With my changes, it compiles and boots fine.
But it seems battery support is broken.  Here is the dmesg output.

acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat1: battery initialization failed, giving up
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_acad0: Notify 128
system power profile changed to 'economy'
acpi_acad0: Off Line
acpi_acad0: Notify 128
system power profile changed to 'performance'
acpi_acad0: On Line
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.GBST] (
Node 0xc32daa40), AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.BAT0._B
ST] (Node 0xc32da900), AE_AML_INTERNAL
acpi_cmbat0: error fetching current battery status -- AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.GBST] (
Node 0xc32daa40), AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.BAT0._B
ST] (Node 0xc32da900), AE_AML_INTERNAL
acpi_cmbat0: error fetching current battery status -- AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.GBST] (
Node 0xc32daa40), AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.BAT0._B
ST] (Node 0xc32da900), AE_AML_INTERNAL
acpi_cmbat0: error fetching current battery status -- AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.GBST] (
Node 0xc32daa40), AE_AML_INTERNAL
    ACPI-1287: *** Error: Method execution failed
[\\_SB_.PCI0.LPC_.EC__.BAT0._B
ST] (Node 0xc32da900), AE_AML_INTERNAL
acpi_cmbat0: error fetching current battery status -- AE_AML_INTERNAL
acpi_cmbat0: error fetching current battery status -- AE_TYPE
acpi_cmbat0: error fetching current battery status -- AE_TYPE

I've attached the diff.  Please let me know if there's something I should
be aware of that changed calling _BIF.

-Nate
--0-1372354428-1057980067=:9216
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="acpi-0619.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <20030711202107.S9216@root.org>
Content-Description: 
Content-Disposition: attachment; filename="acpi-0619.diff"

SW5kZXg6IGFjcGkuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZp
bGU6IC9ob21lL25jdnMvc3JjL3N5cy9kZXYvYWNwaWNhL2FjcGkuYyx2DQpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuODkNCmRpZmYgLXUgLXIxLjg5IGFjcGku
Yw0KLS0tIGFjcGkuYwkxIE1heSAyMDAzIDE4OjUxOjQzIC0wMDAwCTEuODkN
CisrKyBhY3BpLmMJMTAgSnVsIDIwMDMgMDM6NTA6MDMgLTAwMDANCkBAIC03
MDEsNiArNzAxLDcgQEANCiB7DQogICAgIEFDUElfSEFORExFCQloOw0KICAg
ICBBQ1BJX0RFVklDRV9JTkZPCWRldmluZm87DQorICAgIEFDUElfQlVGRkVS
CQlidWYgPSB7c2l6ZW9mKGRldmluZm8pLCAmZGV2aW5mb307DQogICAgIEFD
UElfU1RBVFVTCQllcnJvcjsNCiAgICAgdV9pbnQzMl90CQlwbnBpZDsNCiAg
ICAgQUNQSV9MT0NLX0RFQ0w7DQpAQCAtNzEwLDE1ICs3MTEsMTYgQEANCiAg
ICAgcG5waWQgPSAwOw0KICAgICBBQ1BJX0xPQ0s7DQogICAgIA0KLSAgICAv
KiBmZXRjaCBhbmQgdmFsaWRhdGUgdGhlIEhJRCAqLw0KKyAgICAvKiBGZXRj
aCBhbmQgdmFsaWRhdGUgdGhlIEhJRC4gKi8NCiAgICAgaWYgKChoID0gYWNw
aV9nZXRfaGFuZGxlKGRldikpID09IE5VTEwpDQogCWdvdG8gb3V0Ow0KLSAg
ICBpZiAoQUNQSV9GQUlMVVJFKGVycm9yID0gQWNwaUdldE9iamVjdEluZm8o
aCwgJmRldmluZm8pKSkNCisgICAgZXJyb3IgPSBBY3BpR2V0T2JqZWN0SW5m
byhoLCAmYnVmKTsNCisgICAgaWYgKEFDUElfRkFJTFVSRShlcnJvcikpDQog
CWdvdG8gb3V0Ow0KLSAgICBpZiAoIShkZXZpbmZvLlZhbGlkICYgQUNQSV9W
QUxJRF9ISUQpKQ0KKyAgICBpZiAoKGRldmluZm8uVmFsaWQgJiBBQ1BJX1ZB
TElEX0hJRCkgPT0gMCkNCiAJZ290byBvdXQ7DQogDQotICAgIHBucGlkID0g
UE5QX0VJU0FJRChkZXZpbmZvLkhhcmR3YXJlSWQpOw0KKyAgICBwbnBpZCA9
IFBOUF9FSVNBSUQoZGV2aW5mby5IYXJkd2FyZUlkLlZhbHVlKTsNCiBvdXQ6
DQogICAgIEFDUElfVU5MT0NLOw0KICAgICByZXR1cm5fVkFMVUUocG5waWQp
Ow0KQEAgLTcyOCw3ICs3MzAsNiBAQA0KIGFjcGlfaXNhX2dldF9jb21wYXRp
ZChkZXZpY2VfdCBkZXYpDQogew0KICAgICBBQ1BJX0hBTkRMRQkJaDsNCi0g
ICAgQUNQSV9ERVZJQ0VfSU5GTwlkZXZpbmZvOw0KICAgICBBQ1BJX1NUQVRV
UwkJZXJyb3I7DQogICAgIHVfaW50MzJfdAkJcG5waWQ7DQogICAgIEFDUElf
TE9DS19ERUNMOw0KQEAgLTc0MSw4ICs3NDIsNiBAQA0KICAgICAvKiBmZXRj
aCBhbmQgdmFsaWRhdGUgdGhlIEhJRCAqLw0KICAgICBpZiAoKGggPSBhY3Bp
X2dldF9oYW5kbGUoZGV2KSkgPT0gTlVMTCkNCiAJZ290byBvdXQ7DQotICAg
IGlmIChBQ1BJX0ZBSUxVUkUoZXJyb3IgPSBBY3BpR2V0T2JqZWN0SW5mbyho
LCAmZGV2aW5mbykpKQ0KLQlnb3RvIG91dDsNCiAgICAgaWYgKEFDUElfRkFJ
TFVSRShlcnJvciA9IGFjcGlfRXZhbHVhdGVJbnRlZ2VyKGgsICJfQ0lEIiwg
JnBucGlkKSkpDQogCWdvdG8gb3V0Ow0KIA0KQEAgLTk1Myw4ICs5NTIsNiBA
QA0KIA0KICAgICAvKiBFbmFibGUgYW5kIGNsZWFyIGZpeGVkIGV2ZW50cyBh
bmQgaW5zdGFsbCBoYW5kbGVycy4gKi8NCiAgICAgaWYgKChBY3BpR2JsX0ZB
RFQgIT0gTlVMTCkgJiYgKEFjcGlHYmxfRkFEVC0+UHdyQnV0dG9uID09IDAp
KSB7DQotCUFjcGlFbmFibGVFdmVudChBQ1BJX0VWRU5UX1BPV0VSX0JVVFRP
TiwgQUNQSV9FVkVOVF9GSVhFRCwgMCk7DQotCUFjcGlDbGVhckV2ZW50KEFD
UElfRVZFTlRfUE9XRVJfQlVUVE9OLCBBQ1BJX0VWRU5UX0ZJWEVEKTsNCiAJ
QWNwaUluc3RhbGxGaXhlZEV2ZW50SGFuZGxlcihBQ1BJX0VWRU5UX1BPV0VS
X0JVVFRPTiwNCiAJCQkJICAgICBhY3BpX2V2ZW50aGFuZGxlcl9wb3dlcl9i
dXR0b25fZm9yX3NsZWVwLCBzYyk7DQogCWlmIChmaXJzdF90aW1lKSB7DQpA
QCAtOTYyLDggKzk1OSw2IEBADQogCX0NCiAgICAgfQ0KICAgICBpZiAoKEFj
cGlHYmxfRkFEVCAhPSBOVUxMKSAmJiAoQWNwaUdibF9GQURULT5TbGVlcEJ1
dHRvbiA9PSAwKSkgew0KLQlBY3BpRW5hYmxlRXZlbnQoQUNQSV9FVkVOVF9T
TEVFUF9CVVRUT04sIEFDUElfRVZFTlRfRklYRUQsIDApOw0KLQlBY3BpQ2xl
YXJFdmVudChBQ1BJX0VWRU5UX1NMRUVQX0JVVFRPTiwgQUNQSV9FVkVOVF9G
SVhFRCk7DQogCUFjcGlJbnN0YWxsRml4ZWRFdmVudEhhbmRsZXIoQUNQSV9F
VkVOVF9TTEVFUF9CVVRUT04sDQogCQkJCSAgICAgYWNwaV9ldmVudGhhbmRs
ZXJfc2xlZXBfYnV0dG9uX2Zvcl9zbGVlcCwgc2MpOw0KIAlpZiAoZmlyc3Rf
dGltZSkgew0KQEAgLTk4NCwxNiArOTc5LDE4IEBADQogew0KICAgICBBQ1BJ
X0hBTkRMRQkJaDsNCiAgICAgQUNQSV9ERVZJQ0VfSU5GTwlkZXZpbmZvOw0K
KyAgICBBQ1BJX0JVRkZFUgkJYnVmID0ge3NpemVvZihkZXZpbmZvKSwgJmRl
dmluZm99Ow0KICAgICBBQ1BJX1NUQVRVUwkJZXJyb3I7DQogDQogICAgIEFD
UElfQVNTRVJUTE9DSzsNCiAgICAgDQogICAgIGlmICgoaCA9IGFjcGlfZ2V0
X2hhbmRsZShkZXYpKSA9PSBOVUxMKQ0KIAlyZXR1cm4oRkFMU0UpOw0KLSAg
ICBpZiAoQUNQSV9GQUlMVVJFKGVycm9yID0gQWNwaUdldE9iamVjdEluZm8o
aCwgJmRldmluZm8pKSkNCisgICAgZXJyb3IgPSBBY3BpR2V0T2JqZWN0SW5m
byhoLCAmYnVmKTsNCisgICAgaWYgKEFDUElfRkFJTFVSRShlcnJvcikpDQog
CXJldHVybihGQUxTRSk7DQogICAgIC8qIGlmIG5vIF9TVEEgbWV0aG9kLCBt
dXN0IGJlIHByZXNlbnQgKi8NCi0gICAgaWYgKCEoZGV2aW5mby5WYWxpZCAm
IEFDUElfVkFMSURfU1RBKSkNCisgICAgaWYgKChkZXZpbmZvLlZhbGlkICYg
QUNQSV9WQUxJRF9TVEEpID09IDApDQogCXJldHVybihUUlVFKTsNCiAgICAg
LyogcmV0dXJuIHRydWUgZm9yICdwcmVzZW50JyBhbmQgJ2Z1bmN0aW9uaW5n
JyAqLw0KICAgICBpZiAoKGRldmluZm8uQ3VycmVudFN0YXR1cyAmIDB4OSkg
PT0gMHg5KQ0KQEAgLTEwMDksMTYgKzEwMDYsMTggQEANCiB7DQogICAgIEFD
UElfSEFORExFCQloOw0KICAgICBBQ1BJX0RFVklDRV9JTkZPCWRldmluZm87
DQorICAgIEFDUElfQlVGRkVSCQlidWYgPSB7c2l6ZW9mKGRldmluZm8pLCAm
ZGV2aW5mb307DQogICAgIEFDUElfU1RBVFVTCQllcnJvcjsNCiANCiAgICAg
QUNQSV9BU1NFUlRMT0NLOw0KICAgICANCiAgICAgaWYgKChoID0gYWNwaV9n
ZXRfaGFuZGxlKGRldikpID09IE5VTEwpDQogCXJldHVybihGQUxTRSk7DQot
ICAgIGlmIChBQ1BJX0ZBSUxVUkUoZXJyb3IgPSBBY3BpR2V0T2JqZWN0SW5m
byhoLCAmZGV2aW5mbykpKQ0KKyAgICBlcnJvciA9IEFjcGlHZXRPYmplY3RJ
bmZvKGgsICZidWYpOw0KKyAgICBpZiAoQUNQSV9GQUlMVVJFKGVycm9yKSkN
CiAJcmV0dXJuKEZBTFNFKTsNCiAgICAgLyogaWYgbm8gX1NUQSBtZXRob2Qs
IG11c3QgYmUgcHJlc2VudCAqLw0KLSAgICBpZiAoIShkZXZpbmZvLlZhbGlk
ICYgQUNQSV9WQUxJRF9TVEEpKQ0KKyAgICBpZiAoKGRldmluZm8uVmFsaWQg
JiBBQ1BJX1ZBTElEX1NUQSkgPT0gMCkNCiAJcmV0dXJuKFRSVUUpOw0KICAg
ICAvKiByZXR1cm4gdHJ1ZSBmb3IgJ3ByZXNlbnQnIGFuZCAnZnVuY3Rpb25p
bmcnICovDQogICAgIGlmICgoZGV2aW5mby5DdXJyZW50U3RhdHVzICYgMHgx
OSkgPT0gMHgxOSkNCkBAIC0xMDM0LDYgKzEwMzMsNyBAQA0KIHsNCiAgICAg
QUNQSV9IQU5ETEUJCWg7DQogICAgIEFDUElfREVWSUNFX0lORk8JZGV2aW5m
bzsNCisgICAgQUNQSV9CVUZGRVIJCWJ1ZiA9IHtzaXplb2YoZGV2aW5mbyks
ICZkZXZpbmZvfTsNCiAgICAgQUNQSV9TVEFUVVMJCWVycm9yOw0KICAgICBp
bnQJCQljaWQ7DQogDQpAQCAtMTA0Myw5ICsxMDQzLDExIEBADQogCXJldHVy
bihGQUxTRSk7DQogICAgIGlmICgoaCA9IGFjcGlfZ2V0X2hhbmRsZShkZXYp
KSA9PSBOVUxMKQ0KIAlyZXR1cm4oRkFMU0UpOw0KLSAgICBpZiAoQUNQSV9G
QUlMVVJFKGVycm9yID0gQWNwaUdldE9iamVjdEluZm8oaCwgJmRldmluZm8p
KSkNCisgICAgZXJyb3IgPSBBY3BpR2V0T2JqZWN0SW5mbyhoLCAmYnVmKTsN
CisgICAgaWYgKEFDUElfRkFJTFVSRShlcnJvcikpDQogCXJldHVybihGQUxT
RSk7DQotICAgIGlmICgoZGV2aW5mby5WYWxpZCAmIEFDUElfVkFMSURfSElE
KSAmJiAhc3RyY21wKGhpZCwgZGV2aW5mby5IYXJkd2FyZUlkKSkNCisgICAg
aWYgKChkZXZpbmZvLlZhbGlkICYgQUNQSV9WQUxJRF9ISUQpICE9IDAgJiYN
CisJc3RyY21wKGhpZCwgZGV2aW5mby5IYXJkd2FyZUlkLlZhbHVlKSA9PSAw
KQ0KIAlyZXR1cm4oVFJVRSk7DQogICAgIGlmIChBQ1BJX0ZBSUxVUkUoZXJy
b3IgPSBhY3BpX0V2YWx1YXRlSW50ZWdlcihoLCAiX0NJRCIsICZjaWQpKSkN
CiAJcmV0dXJuKEZBTFNFKTsNCkBAIC0xMzkzLDcgKzEzOTUsNyBAQA0KIAkg
ICAgYWNwaV9zbGVlcF9tYWNoZGVwKHNjLCBzdGF0ZSk7DQogDQogCSAgICAv
KiBBY3BpRW50ZXJTbGVlcFN0YXRlKCkgbWF5YmUgaW5jb21wbGV0ZWQsIHVu
bG9jayBoZXJlIGlmIGxvY2tlZC4gKi8NCi0JICAgIGlmIChBY3BpR2JsX0Fj
cGlNdXRleEluZm9bQUNQSV9NVFhfSEFSRFdBUkVdLk93bmVySWQgIT0gQUNQ
SV9NVVRFWF9OT1RfQUNRVUlSRUQpIHsNCisJICAgIGlmICgxLypBY3BpR2Js
X0FjcGlNdXRleEluZm9bQUNQSV9NVFhfSEFSRFdBUkVdLk93bmVySWQgIT0g
QUNQSV9NVVRFWF9OT1RfQUNRVUlSRUQqLykgew0KIAkJQWNwaVV0UmVsZWFz
ZU11dGV4KEFDUElfTVRYX0hBUkRXQVJFKTsNCiAJICAgIH0NCiANCkBAIC0x
NzQwLDggKzE3NDIsOCBAQA0KIAkgKiBlbmFibGVkIGZvciB0aGUgd2FrZSBl
dmVudC4NCiAJICovDQogDQotCXN0YXR1cyA9IEFjcGlFbmFibGVFdmVudChy
ZXMtPlBhY2thZ2UuRWxlbWVudHNbMF0uSW50ZWdlci5WYWx1ZSwNCi0JCQkJ
IEFDUElfRVZFTlRfR1BFLCBBQ1BJX0VWRU5UX1dBS0VfRU5BQkxFKTsNCisJ
c3RhdHVzID0gQWNwaUVuYWJsZUdwZShOVUxMLCByZXMtPlBhY2thZ2UuRWxl
bWVudHNbMF0uSW50ZWdlci5WYWx1ZSwNCisJCQkgICAgICAgQUNQSV9FVkVO
VF9XQUtFX0VOQUJMRSk7DQogCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkN
CiAgICAgICAgICAgICBwcmludGYoIiVzOiBFbmFibGVFdmVudCBGYWlsZWRc
biIsIF9fZnVuY19fKTsNCiAJYnJlYWs7DQpJbmRleDogYWNwaV9wY2lfbGlu
ay5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUv
bmN2cy9zcmMvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2lfbGluay5jLHYNCnJl
dHJpZXZpbmcgcmV2aXNpb24gMS41DQpkaWZmIC11IC1yMS41IGFjcGlfcGNp
X2xpbmsuYw0KLS0tIGFjcGlfcGNpX2xpbmsuYwkxIEphbiAyMDAzIDE4OjQ4
OjQ5IC0wMDAwCTEuNQ0KKysrIGFjcGlfcGNpX2xpbmsuYwk5IEp1bCAyMDAz
IDE4OjIxOjExIC0wMDAwDQpAQCAtMTY5LDYgKzE2OSw3IEBADQogYWNwaV9w
Y2lfbGlua19nZXRfb2JqZWN0X3N0YXR1cyhBQ1BJX0hBTkRMRSBoYW5kbGUs
IFVJTlQzMiAqc3RhKQ0KIHsNCiAJQUNQSV9ERVZJQ0VfSU5GTwlkZXZpbmZv
Ow0KKwlBQ1BJX0JVRkZFUgkJYnVmID0ge3NpemVvZihkZXZpbmZvKSwgJmRl
dmluZm99Ow0KIAlBQ1BJX1NUQVRVUwkJZXJyb3I7DQogDQogCUFDUElfRlVO
Q1RJT05fVFJBQ0UoKGNoYXIgKikodWludHB0cl90KV9fZnVuY19fKTsNCkBA
IC0xNzksNyArMTgwLDcgQEANCiAJCXJldHVybl9BQ1BJX1NUQVRVUyAoQUVf
QkFEX1BBUkFNRVRFUik7DQogCX0NCiANCi0JZXJyb3IgPSBBY3BpR2V0T2Jq
ZWN0SW5mbyhoYW5kbGUsICZkZXZpbmZvKTsNCisJZXJyb3IgPSBBY3BpR2V0
T2JqZWN0SW5mbyhoYW5kbGUsICZidWYpOw0KIAlpZiAoQUNQSV9GQUlMVVJF
KGVycm9yKSkgew0KIAkJQUNQSV9ERUJVR19QUklOVCgoQUNQSV9EQl9FUlJP
UiwNCiAJCSAgICAiY291bGRuJ3QgZ2V0IG9iamVjdCBpbmZvICVzIC0gJXNc
biIsDQpAQCAtMTg4LDEzICsxODksMTMgQEANCiAJfQ0KIA0KIAlpZiAoKGRl
dmluZm8uVmFsaWQgJiBBQ1BJX1ZBTElEX0hJRCkgPT0gMCB8fA0KLQkgICAg
c3RyY21wKGRldmluZm8uSGFyZHdhcmVJZCwgIlBOUDBDMEYiKSAhPSAwKSB7
DQorCSAgICBzdHJjbXAoZGV2aW5mby5IYXJkd2FyZUlkLlZhbHVlLCAiUE5Q
MEMwRiIpICE9IDApIHsNCiAJCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJf
RVJST1IsICJpbnZhbGlkIGhhcmR3YXJlIElEIC0gJXNcbiIsDQogCQkgICAg
YWNwaV9uYW1lKGhhbmRsZSkpKTsNCiAJCXJldHVybl9BQ1BJX1NUQVRVUyAo
QUVfVFlQRSk7DQogCX0NCiANCi0JaWYgKGRldmluZm8uVmFsaWQgJiBBQ1BJ
X1ZBTElEX1NUQSkgew0KKwlpZiAoKGRldmluZm8uVmFsaWQgJiBBQ1BJX1ZB
TElEX1NUQSkgIT0gMCkgew0KIAkJKnN0YSA9IGRldmluZm8uQ3VycmVudFN0
YXR1czsNCiAJfSBlbHNlIHsNCiAJCUFDUElfREVCVUdfUFJJTlQoKEFDUElf
REJfV0FSTiwgImludmFsaWQgc3RhdHVzIC0gJXNcbiIsDQpJbmRleDogYWNw
aV9wY2liLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv
aG9tZS9uY3ZzL3NyYy9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWIuYyx2DQpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkNCmRpZmYgLXUgLXIxLjI5IGFjcGlf
cGNpYi5jDQotLS0gYWNwaV9wY2liLmMJMjkgT2N0IDIwMDIgMTk6MDg6NTUg
LTAwMDAJMS4yOQ0KKysrIGFjcGlfcGNpYi5jCTkgSnVsIDIwMDMgMDI6MzU6
NDggLTAwMDANCkBAIC0xMTMsNyArMTEzLDggQEANCiAgICAgQUNQSV9IQU5E
TEUJCQlsbmtkZXY7DQogICAgIEFDUElfQlVGRkVSCQkJY3JzYnVmLCBwcnNi
dWY7DQogICAgIEFDUElfUkVTT1VSQ0UJCSpjcnNyZXMsICpwcnNyZXMsIHJl
c2J1ZjsNCi0gICAgQUNQSV9ERVZJQ0VfSU5GTwkJZGV2aW5mbzsNCisgICAg
QUNQSV9ERVZJQ0VfSU5GTwkJKmRldmluZm87DQorICAgIEFDUElfQlVGRkVS
CQkJYnVmID0ge0FDUElfQUxMT0NBVEVfQlVGRkVSLCBOVUxMfTsNCiAgICAg
QUNQSV9TVEFUVVMJCQlzdGF0dXM7DQogICAgIHVfaW50OF90CQkJKnBydHA7
DQogICAgIGludAkJCQlpbnRlcnJ1cHQ7DQpAQCAtMTgyLDE3ICsxODMsMTgg
QEANCiAgICAgLyoNCiAgICAgICogVmVyaWZ5IHRoYXQgdGhpcyBpcyBhIFBD
SSBsaW5rIGRldmljZSwgYW5kIHRoYXQgaXQncyBwcmVzZW50Lg0KICAgICAg
Ki8NCi0gICAgaWYgKEFDUElfRkFJTFVSRShBY3BpR2V0T2JqZWN0SW5mbyhs
bmtkZXYsICZkZXZpbmZvKSkpIHsNCisgICAgaWYgKEFDUElfRkFJTFVSRShB
Y3BpR2V0T2JqZWN0SW5mbyhsbmtkZXYsICZidWYpKSkgew0KIAlkZXZpY2Vf
cHJpbnRmKHBjaWIsICJjb3VsZG4ndCB2YWxpZGF0ZSBQQ0kgaW50ZXJydXB0
IGxpbmsgZGV2aWNlICVzXG4iLA0KIAkgICAgcHJ0LT5Tb3VyY2UpOw0KIAln
b3RvIG91dDsNCiAgICAgfQ0KLSAgICBpZiAoIShkZXZpbmZvLlZhbGlkICYg
QUNQSV9WQUxJRF9ISUQpIHx8IHN0cmNtcCgiUE5QMEMwRiIsIGRldmluZm8u
SGFyZHdhcmVJZCkpIHsNCisgICAgZGV2aW5mbyA9IChBQ1BJX0RFVklDRV9J
TkZPICopYnVmLlBvaW50ZXI7DQorICAgIGlmICghKGRldmluZm8tPlZhbGlk
ICYgQUNQSV9WQUxJRF9ISUQpIHx8IHN0cmNtcCgiUE5QMEMwRiIsIGRldmlu
Zm8tPkhhcmR3YXJlSWQuVmFsdWUpKSB7DQogCWRldmljZV9wcmludGYocGNp
YiwgIlBDSSBpbnRlcnJ1cHQgbGluayBkZXZpY2UgJXMgaGFzIHdyb25nIF9I
SUQgKCVzKVxuIiwNCi0JCSAgICAgIHBydC0+U291cmNlLCBkZXZpbmZvLkhh
cmR3YXJlSWQpOw0KKwkJICAgICAgcHJ0LT5Tb3VyY2UsIGRldmluZm8tPkhh
cmR3YXJlSWQuVmFsdWUpOw0KIAlnb3RvIG91dDsNCiAgICAgfQ0KLSAgICBp
ZiAoZGV2aW5mby5WYWxpZCAmIEFDUElfVkFMSURfU1RBICYmIChkZXZpbmZv
LkN1cnJlbnRTdGF0dXMgJiAweDkpICE9IDB4OSkgew0KKyAgICBpZiAoZGV2
aW5mby0+VmFsaWQgJiBBQ1BJX1ZBTElEX1NUQSAmJiAoZGV2aW5mby0+Q3Vy
cmVudFN0YXR1cyAmIDB4OSkgIT0gMHg5KSB7DQogCWRldmljZV9wcmludGYo
cGNpYiwgIlBDSSBpbnRlcnJ1cHQgbGluayBkZXZpY2UgJXMgbm90IHByZXNl
bnRcbiIsDQogCQkgICAgICBwcnQtPlNvdXJjZSk7DQogCWdvdG8gb3V0Ow0K
SW5kZXg6IE9zZC9Pc2RIYXJkd2FyZS5jDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2Rldi9hY3BpY2Ev
T3NkL09zZEhhcmR3YXJlLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjkN
CmRpZmYgLXUgLXIxLjkgT3NkSGFyZHdhcmUuYw0KLS0tIE9zZC9Pc2RIYXJk
d2FyZS5jCTMxIE1heSAyMDAzIDA2OjQ1OjI4IC0wMDAwCTEuOQ0KKysrIE9z
ZC9Pc2RIYXJkd2FyZS5jCTkgSnVsIDIwMDMgMDI6Mzk6MzAgLTAwMDANCkBA
IC02OSw3ICs2OSw3IEBADQogQUNQSV9TVEFUVVMNCiBBY3BpT3NSZWFkUG9y
dCAoDQogICAgIEFDUElfSU9fQUREUkVTUwlJblBvcnQsDQotICAgIHZvaWQJ
CSpWYWx1ZSwNCisgICAgVUlOVDMyCQkqVmFsdWUsDQogICAgIFVJTlQzMgkJ
V2lkdGgpDQogew0KICAgICBzd2l0Y2ggKFdpZHRoKSB7DQpAQCAtOTMsNyAr
OTMsNyBAQA0KIEFDUElfU1RBVFVTDQogQWNwaU9zV3JpdGVQb3J0ICgNCiAg
ICAgQUNQSV9JT19BRERSRVNTCU91dFBvcnQsDQotICAgIEFDUElfSU5URUdF
UglWYWx1ZSwNCisgICAgVUlOVDMyCQlWYWx1ZSwNCiAgICAgVUlOVDMyCQlX
aWR0aCkNCiB7DQogICAgIHN3aXRjaCAoV2lkdGgpIHsNCkluZGV4OiBPc2Qv
T3NkTWVtb3J5LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxl
OiAvaG9tZS9uY3ZzL3NyYy9zeXMvZGV2L2FjcGljYS9Pc2QvT3NkTWVtb3J5
LmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjgNCmRpZmYgLXUgLXIxLjgg
T3NkTWVtb3J5LmMNCi0tLSBPc2QvT3NkTWVtb3J5LmMJMTkgTWFyIDIwMDIg
MTE6MDE6NTIgLTAwMDAJMS44DQorKysgT3NkL09zZE1lbW9yeS5jCTkgSnVs
IDIwMDMgMDI6Mzk6NTIgLTAwMDANCkBAIC05NCw3ICs5NCw3IEBADQogQUNQ
SV9TVEFUVVMNCiBBY3BpT3NSZWFkTWVtb3J5ICgNCiAgICAgQUNQSV9QSFlT
SUNBTF9BRERSRVNTCUFkZHJlc3MsDQotICAgIHZvaWQJCQkqVmFsdWUsDQor
ICAgIFVJTlQzMgkJCSpWYWx1ZSwNCiAgICAgVUlOVDMyCQkJV2lkdGgpDQog
ew0KICAgICB2b2lkCSpMb2dpY2FsQWRkcmVzczsNCkBAIC0xMjksNyArMTI5
LDcgQEANCiBBQ1BJX1NUQVRVUw0KIEFjcGlPc1dyaXRlTWVtb3J5ICgNCiAg
ICAgQUNQSV9QSFlTSUNBTF9BRERSRVNTCUFkZHJlc3MsDQotICAgIEFDUElf
SU5URUdFUgkJVmFsdWUsDQorICAgIFVJTlQzMgkJCVZhbHVlLA0KICAgICBV
SU5UMzIJCQlXaWR0aCkNCiB7DQogICAgIHZvaWQJKkxvZ2ljYWxBZGRyZXNz
Ow0KSW5kZXg6IE9zZC9Pc2RTeW5jaC5jDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2Rldi9hY3BpY2Ev
T3NkL09zZFN5bmNoLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE2DQpk
aWZmIC11IC1yMS4xNiBPc2RTeW5jaC5jDQotLS0gT3NkL09zZFN5bmNoLmMJ
MjcgTm92IDIwMDIgMTg6MDk6MjAgLTAwMDAJMS4xNg0KKysrIE9zZC9Pc2RT
eW5jaC5jCTkgSnVsIDIwMDMgMTc6NDQ6MDMgLTAwMDANCkBAIC0zMzgsMyAr
MzM4LDU0IEBADQogICAgIHJldHVybihBRV9PSyk7DQogI2VuZGlmDQogfQ0K
Kw0KK0FDUElfU1RBVFVTDQorQWNwaU9zQ3JlYXRlTG9jayAoQUNQSV9IQU5E
TEUgKk91dEhhbmRsZSkNCit7DQorICAgIHN0cnVjdCBtdHggKm07DQorDQor
ICAgIGlmIChPdXRIYW5kbGUgPT0gTlVMTCkNCisJcmV0dXJuIChBRV9CQURf
UEFSQU1FVEVSKTsNCisgICAgTUFMTE9DKG0sIHN0cnVjdCBtdHggKiwgc2l6
ZW9mKCptKSwgTV9BQ1BJU0VNLCBNX05PV0FJVCB8IE1fWkVSTyk7DQorICAg
IGlmIChtID09IE5VTEwpDQorCXJldHVybiAoQUVfTk9fTUVNT1JZKTsNCisN
CisgICAgbXR4X2luaXQobSwgImFjcGljYSBzdWJzeXN0ZW0gbG9jayIsIE5V
TEwsIE1UWF9ERUYpOw0KKyAgICAqT3V0SGFuZGxlID0gKEFDUElfSEFORExF
KW07DQorICAgIHJldHVybiAoQUVfT0spOw0KK30NCisNCit2b2lkDQorQWNw
aU9zRGVsZXRlTG9jayAoQUNQSV9IQU5ETEUgSGFuZGxlKQ0KK3sNCisgICAg
c3RydWN0IG10eCAqbSA9IChzdHJ1Y3QgbXR4ICopSGFuZGxlOw0KKw0KKyAg
ICBpZiAoSGFuZGxlID09IE5VTEwpDQorICAgICAgICByZXR1cm47DQorICAg
IG10eF9kZXN0cm95KG0pOw0KK30NCisNCisvKg0KKyAqIFRoZSBGbGFncyBw
YXJhbWV0ZXIgc2VlbXMgdG8gc3RhdGUgd2hldGhlciBvciBub3QgY2FsbGVy
IGlzIGFuIElTUg0KKyAqIChhbmQgdGh1cyBjYW4ndCBibG9jaykgYnV0IHNp
bmNlIHdlIGhhdmUgaXRocmVhZHMsIHdlIGRvbid0IHdvcnJ5DQorICogYWJv
dXQgcG90ZW50aWFsbHkgYmxvY2tpbmcuDQorICovDQordm9pZA0KK0FjcGlP
c0FjcXVpcmVMb2NrIChBQ1BJX0hBTkRMRSBIYW5kbGUsIFVJTlQzMiBGbGFn
cykNCit7DQorICAgIHN0cnVjdCBtdHggKm0gPSAoc3RydWN0IG10eCAqKUhh
bmRsZTsNCisNCisgICAgaWYgKEhhbmRsZSA9PSBOVUxMKQ0KKyAgICAgICAg
cmV0dXJuOw0KKyAgICBtdHhfbG9jayhtKTsNCit9DQorDQordm9pZA0KK0Fj
cGlPc1JlbGVhc2VMb2NrIChBQ1BJX0hBTkRMRSBIYW5kbGUsIFVJTlQzMiBG
bGFncykNCit7DQorICAgIHN0cnVjdCBtdHggKm0gPSAoc3RydWN0IG10eCAq
KUhhbmRsZTsNCisNCisgICAgaWYgKEhhbmRsZSA9PSBOVUxMKQ0KKyAgICAg
ICAgcmV0dXJuOw0KKyAgICBtdHhfdW5sb2NrKG0pOw0KK30NCi0tLSAvaG9t
ZS9uYXRlL2VjLW5ldy5jCVdlZCBKdWwgIDkgMjE6MTI6NTEgMjAwMw0KKysr
IGFjcGlfZWMuYwlXZWQgSnVsICA5IDIxOjMxOjQ4IDIwMDMNCkBAIC00MjEs
OCArNDIxLDggQEANCiAgICAgICogYmVoYXZpb3IuDQogICAgICAqLw0KICAg
ICBBQ1BJX0RFQlVHX1BSSU5UKChBQ1BJX0RCX1JFU09VUkNFUywgImF0dGFj
aGluZyBHUEUgaGFuZGxlclxuIikpOw0KLSAgICBTdGF0dXMgPSBBY3BpSW5z
dGFsbEdwZUhhbmRsZXIoc2MtPmVjX2dwZWJpdCwgQUNQSV9FVkVOVF9FREdF
X1RSSUdHRVJFRCwgDQotCQkmRWNHcGVIYW5kbGVyLCBzYyk7DQorICAgIFN0
YXR1cyA9IEFjcGlJbnN0YWxsR3BlSGFuZGxlcihOVUxMLCBzYy0+ZWNfZ3Bl
Yml0LA0KKwkJQUNQSV9FVkVOVF9FREdFX1RSSUdHRVJFRCwgJkVjR3BlSGFu
ZGxlciwgc2MpOw0KICAgICBpZiAoQUNQSV9GQUlMVVJFKFN0YXR1cykpIHsN
CiAJZGV2aWNlX3ByaW50ZihkZXYsICJjYW4ndCBpbnN0YWxsIEdQRSBoYW5k
bGVyIGZvciAlcyAtICVzXG4iLA0KIAkJICAgICAgYWNwaV9uYW1lKHNjLT5l
Y19oYW5kbGUpLCBBY3BpRm9ybWF0RXhjZXB0aW9uKFN0YXR1cykpOw0KQEAg
LTQzOSw3ICs0MzksOCBAQA0KICAgICBpZiAoQUNQSV9GQUlMVVJFKFN0YXR1
cykpIHsNCiAJZGV2aWNlX3ByaW50ZihkZXYsICJjYW4ndCBpbnN0YWxsIGFk
ZHJlc3Mgc3BhY2UgaGFuZGxlciBmb3IgJXMgLSAlc1xuIiwNCiAJCSAgICAg
IGFjcGlfbmFtZShzYy0+ZWNfaGFuZGxlKSwgQWNwaUZvcm1hdEV4Y2VwdGlv
bihTdGF0dXMpKTsNCi0JU3RhdHVzID0gQWNwaVJlbW92ZUdwZUhhbmRsZXIo
c2MtPmVjX2dwZWJpdCwgJkVjR3BlSGFuZGxlcik7DQorCVN0YXR1cyA9IEFj
cGlSZW1vdmVHcGVIYW5kbGVyKHNjLT5lY19oYW5kbGUsIHNjLT5lY19ncGVi
aXQsDQorCQkJCSAgICAgICZFY0dwZUhhbmRsZXIpOw0KIAlpZiAoQUNQSV9G
QUlMVVJFKFN0YXR1cykpDQogCSAgICBwYW5pYygiQWRkZWQgR1BFIGhhbmRs
ZXIgYnV0IGNhbid0IHJlbW92ZSBpdCIpOw0KIAllcnJ2YWwgPSBFTlhJTzsN
CkBAIC01MzgsNyArNTM5LDcgQEANCiANCiByZV9lbmFibGU6DQogICAgIC8q
IFJlLWVuYWJsZSB0aGUgR1BFIGV2ZW50IHNvIHdlJ2xsIGdldCBmdXR1cmUg
cmVxdWVzdHMuICovDQotICAgIFN0YXR1cyA9IEFjcGlFbmFibGVFdmVudChz
Yy0+ZWNfZ3BlYml0LCBBQ1BJX0VWRU5UX0dQRSwgMCk7DQorICAgIFN0YXR1
cyA9IEFjcGlFbmFibGVHcGUoTlVMTCwgc2MtPmVjX2dwZWJpdCwgQUNQSV9O
T1RfSVNSKTsNCiAgICAgaWYgKEFDUElfRkFJTFVSRShTdGF0dXMpKQ0KIAlw
cmludGYoIkVjR3BlUXVlcnlIYW5kbGVyOiBBY3BpRW5hYmxlRXZlbnQgZmFp
bGVkXG4iKTsNCiB9DQpAQCAtNTU3LDE0ICs1NTgsMTQgQEANCiAgICAgS0FT
U0VSVChDb250ZXh0ICE9IE5VTEwsICgiRWNHcGVIYW5kbGVyIGNhbGxlZCB3
aXRoIE5VTEwiKSk7DQogDQogICAgIC8qIERpc2FibGUgZnVydGhlciBHUEVz
IHdoaWxlIHdlIGhhbmRsZSB0aGlzIG9uZS4gKi8NCi0gICAgQWNwaURpc2Fi
bGVFdmVudChzYy0+ZWNfZ3BlYml0LCBBQ1BJX0VWRU5UX0dQRSwgMCk7DQor
ICAgIEFjcGlEaXNhYmxlR3BlKE5VTEwsIHNjLT5lY19ncGViaXQsIEFDUElf
SVNSKTsNCiANCiAgICAgLyogU2NoZWR1bGUgdGhlIEdQRSBxdWVyeSBoYW5k
bGVyLiAqLw0KICAgICBTdGF0dXMgPSBBY3BpT3NRdWV1ZUZvckV4ZWN1dGlv
bihPU0RfUFJJT1JJVFlfR1BFLCBFY0dwZVF1ZXJ5SGFuZGxlciwNCiAJCUNv
bnRleHQpOw0KICAgICBpZiAoQUNQSV9GQUlMVVJFKFN0YXR1cykpIHsNCiAJ
cHJpbnRmKCJRdWV1aW5nIEdQRSBxdWVyeSBoYW5kbGVyIGZhaWxlZC5cbiIp
Ow0KLQlTdGF0dXMgPSBBY3BpRW5hYmxlRXZlbnQoc2MtPmVjX2dwZWJpdCwg
QUNQSV9FVkVOVF9HUEUsIDApOw0KKwlTdGF0dXMgPSBBY3BpRW5hYmxlR3Bl
KE5VTEwsIHNjLT5lY19ncGViaXQsIEFDUElfSVNSKTsNCiAJaWYgKEFDUElf
RkFJTFVSRShTdGF0dXMpKQ0KIAkgICAgcHJpbnRmKCJFY0dwZUhhbmRsZXI6
IEFjcGlFbmFibGVFdmVudCBmYWlsZWRcbiIpOw0KICAgICB9DQo=

--0-1372354428-1057980067=:9216--
