Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Oct 2023 19:24:34 +0000
From:      "titus_edc.ro (Titus  Manea)" <phabric-noreply@FreeBSD.org>
To:        freebsd-arm@freebsd.org
Subject:   [Differential] D42318: Support for rockchip serial flash controller
Message-ID:  <fdaf71f3e411f444ed98fb629687154f@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-yqt6x5iu76drw36u2czx-req@reviews.freebsd.org>
References:  <differential-rev-PHID-DREV-yqt6x5iu76drw36u2czx-req@reviews.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_fdaf71f3e411f444ed98fb629687154f
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

dGl0dXNfZWRjLnJvIGNyZWF0ZWQgdGhpcyByZXZpc2lvbi4KdGl0dXNfZWRjLnJvIGFkZGVkIGEg
cmV2aWV3ZXI6IGZyZWVic2QtYXJtLWxpc3QuCkhlcmFsZCBhZGRlZCBzdWJzY3JpYmVyczogZW1h
c3RlLCBpbXAuCkhlcmFsZCBhZGRlZCBhIHJldmlld2VyOiBhbmRyZXcuCkhlcmFsZCBhZGRlZCBh
IHJldmlld2VyOiBhbmRyZXcuCkhlcmFsZCBhZGRlZCBhIHJldmlld2VyOiBtYW51Lgp0aXR1c19l
ZGMucm8gcmVxdWVzdGVkIHJldmlldyBvZiB0aGlzIHJldmlzaW9uLgoKUkVWSVNJT04gU1VNTUFS
WQogIEl0cyBtb3N0bHkgYSBjbG9uZSBvZiB0aGUgbGludXggZHJpdmVyIGV4Y2x1ZGluZyBkbWEg
c3VwcG9ydC4KICBGcmVlYnNkJ3MgU1BJIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGhhdmUgcHJv
dmlzaW9uIGZvciBTUEkgdHJhbnNmZXIgZGlyZWN0aW9uIGFuZCBiZWNhdXNlIFNGQyBpcyBoYWxm
IGR1cGxleCB5b3UgaGF2ZSB0byBndWVzcyB0aGUgZGlyZWN0aW9uIGZyb20gdGhlIFNQSSBjb21t
YW5kIGNvZGUuCiAgQWxzbyB0aGUgY21kIGNvZGUsIGFkZHJlc3MgYW5kIGxlbmd0aCBhcmUgbm90
IHNlbnQgdmlhIHRoZSBidXMgYnV0IHZpYSBtbWlvLgogIAogIEkgYWRkZWQgdG8gZmxhc2ggZGV2
aWNlcyB0byBzeXMvZGV2L2ZsYXNoL214MjVsLmMgKHRoZSBvbmVzIGkgaGF2ZSBvbiBteSBib2Fy
ZHMpCgpURVNUIFBMQU4KICBpIHRlc3RlZCB3aXRoIGRkIGluIGFuZCBvdXQgYW5kIGl0IG1hZGUg
YW4gaWRlbnRpY2FsIGNvcHkgKG5vdCB0aGUgZmlyc3QgdGltZSA6KSkKClJFUE9TSVRPUlkKICBy
RyBGcmVlQlNEIHNyYyByZXBvc2l0b3J5CgpSRVZJU0lPTiBERVRBSUwKICBodHRwczovL3Jldmll
d3MuZnJlZWJzZC5vcmcvRDQyMzE4CgpBRkZFQ1RFRCBGSUxFUwogIHN5cy9hcm02NC9jb25mL3N0
ZC5yb2NrY2hpcAogIHN5cy9hcm02NC9yb2NrY2hpcC9ya19zZmMuYwogIHN5cy9jb25mL2ZpbGVz
LmFybTY0CiAgc3lzL2Rldi9mbGFzaC9teDI1bC5jCgpFTUFJTCBQUkVGRVJFTkNFUwogIGh0dHBz
Oi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9zZXR0aW5ncy9wYW5lbC9lbWFpbHByZWZlcmVuY2VzLwoK
VG86IHRpdHVzX2VkYy5ybywgZnJlZWJzZC1hcm0tbGlzdCwgYW5kcmV3LCBtYW51CkNjOiBpbXAs
IGVtYXN0ZSwgcHN0ZWYsIGRzbAo=

--b1_fdaf71f3e411f444ed98fb629687154f
Content-Type: text/x-patch; charset=utf-8; name="D42318.129174.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D42318.129174.patch"

ZGlmZiAtLWdpdCBhL3N5cy9jb25mL2ZpbGVzLmFybTY0IGIvc3lzL2NvbmYvZmlsZXMuYXJtNjQK
LS0tIGEvc3lzL2NvbmYvZmlsZXMuYXJtNjQKKysrIGIvc3lzL2NvbmYvZmlsZXMuYXJtNjQKQEAg
LTY3MCw2ICs2NzEsNyBAQAogYXJtNjQvcm9ja2NoaXAvcmtfZ3Bpby5jCQkJb3B0aW9uYWwgZmR0
IHJrX2dwaW8gc29jX3JvY2tjaGlwX3JrMzMyOCB8IGZkdCBya19ncGlvIHNvY19yb2NrY2hpcF9y
azMzOTkgfCBmZHQgc29jX3JvY2tjaGlwX3JrMzU2OAogYXJtNjQvcm9ja2NoaXAvcmtfaW9kb21h
aW4uYwkJCW9wdGlvbmFsIGZkdCBya19pb2RvbWFpbgogYXJtNjQvcm9ja2NoaXAvcmtfc3BpLmMJ
CQkJb3B0aW9uYWwgZmR0IHJrX3NwaQorYXJtNjQvcm9ja2NoaXAvcmtfc2ZjLmMJCQkJb3B0aW9u
YWwgZmR0IHJrX3NmYwogYXJtNjQvcm9ja2NoaXAvcmtfdXNiMnBoeS5jCQkJb3B0aW9uYWwgZmR0
IHJrX3VzYjJwaHkgc29jX3JvY2tjaGlwX3JrMzMyOCB8IGZkdCBya191c2IycGh5IHNvY19yb2Nr
Y2hpcF9yazMzOTkgfCBmZHQgcmtfdXNiMnBoeSBzb2Nfcm9ja2NoaXBfcmszNTY4CiBhcm02NC9y
b2NrY2hpcC9ya190eXBlY19waHkuYwkJCW9wdGlvbmFsIGZkdCBya190eXBlY19waHkgc29jX3Jv
Y2tjaGlwX3JrMzM5OQogYXJtNjQvcm9ja2NoaXAvaWZfZHdjX3JrLmMJCQlvcHRpb25hbCBmZHQg
ZHdjX3JrIHNvY19yb2NrY2hpcF9yazMzMjggfCBmZHQgZHdjX3JrIHNvY19yb2NrY2hpcF9yazMz
OTkKZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9jb25mL3N0ZC5yb2NrY2hpcCBiL3N5cy9hcm02NC9j
b25mL3N0ZC5yb2NrY2hpcAotLS0gYS9zeXMvYXJtNjQvY29uZi9zdGQucm9ja2NoaXAKKysrIGIv
c3lzL2FybTY0L2NvbmYvc3RkLnJvY2tjaGlwCkBAIC0yNyw2ICsyNyw3IEBACiAKICMgU1BJCiBk
ZXZpY2UJCXJrX3NwaQkJCSMgUm9ja0NoaXAgU1BJIGNvbnRyb2xsZXIKK2RldmljZQkJcmtfc2Zj
CQkJIyBSb2NrQ2hpcCBTRkMgY29udHJvbGxlcgogCiAjIFBXTQogZGV2aWNlCQlya19wd20KZGlm
ZiAtLWdpdCBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya19zZmMuYyBiL3N5cy9hcm02NC9yb2NrY2hp
cC9ya19zZmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9h
cm02NC9yb2NrY2hpcC9ya19zZmMuYwpAQCAtMCwwICsxLDc3NiBAQAorLyotCisgKiBTUERYLUxp
Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlCisgKi8KKworI2luY2x1ZGUgPHN5cy9jZGVm
cy5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorI2lu
Y2x1ZGUgPHN5cy9idXMuaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lz
L2xvY2suaD4KKyNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL211dGV4Lmg+
CisjaW5jbHVkZSA8c3lzL3JtYW4uaD4KKyNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KKyNpbmNs
dWRlIDxzeXMvdGltZS5oPgorI2luY2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisKKyNpbmNsdWRlIDxk
ZXYvb2Z3L29md19idXMuaD4KKyNpbmNsdWRlIDxkZXYvb2Z3L29md19idXNfc3Vici5oPgorCisj
aW5jbHVkZSA8ZGV2L3NwaWJ1cy9zcGkuaD4KKyNpbmNsdWRlIDxkZXYvc3BpYnVzL3NwaWJ1c3Zh
ci5oPgorCisjaW5jbHVkZSA8ZGV2L2V4dHJlcy9jbGsvY2xrLmg+CisjaW5jbHVkZSA8ZGV2L2V4
dHJlcy9od3Jlc2V0L2h3cmVzZXQuaD4KKworI2luY2x1ZGUgInNwaWJ1c19pZi5oIgorCisjZGVm
aW5lIFNGQ19DVFJMCQkJMHgwCisjZGVmaW5lICBTRkNfQ1RSTF9QSEFTRV9TRUxfTkVHQVRJVkUJ
ICgxIDw8IDEpCisjZGVmaW5lICBTRkNfQ1RSTF9DTURfQklUU19TSElGVAk4CisjZGVmaW5lICBT
RkNfQ1RSTF9BRERSX0JJVFNfU0hJRlQJMTAKKyNkZWZpbmUgIFNGQ19DVFJMX0RBVEFfQklUU19T
SElGVAkxMgorCisvKiBJbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBTRkNfSU1SCQkJCTB4NAor
I2RlZmluZSAgU0ZDX0lNUl9SWF9GVUxMCQkgKDEgPDwgMCkKKyNkZWZpbmUgIFNGQ19JTVJfUlhf
VUZMT1cJCSAoMSA8PCAxKQorI2RlZmluZSAgU0ZDX0lNUl9UWF9PRkxPVwkJICgxIDw8IDIpCisj
ZGVmaW5lICBTRkNfSU1SX1RYX0VNUFRZCQkgKDEgPDwgMykKKyNkZWZpbmUgIFNGQ19JTVJfVFJB
Tl9GSU5JU0gJCSAoMSA8PCA0KQorI2RlZmluZSAgU0ZDX0lNUl9CVVNfRVJSCQkgKDEgPDwgNSkK
KyNkZWZpbmUgIFNGQ19JTVJfTlNQSV9FUlIJCSAoMSA8PCA2KQorI2RlZmluZSAgU0ZDX0lNUl9E
TUEJCQkgKDEgPDwgNykKKworLyogSW50ZXJydXB0IGNsZWFyICovCisjZGVmaW5lIFNGQ19JQ0xS
CQkJMHg4CisjZGVmaW5lICBTRkNfSUNMUl9SWF9GVUxMCQkgKDEgPDwgMCkKKyNkZWZpbmUgIFNG
Q19JQ0xSX1JYX1VGTE9XCQkgKDEgPDwgMSkKKyNkZWZpbmUgIFNGQ19JQ0xSX1RYX09GTE9XCQkg
KDEgPDwgMikKKyNkZWZpbmUgIFNGQ19JQ0xSX1RYX0VNUFRZCQkgKDEgPDwgMykKKyNkZWZpbmUg
IFNGQ19JQ0xSX1RSQU5fRklOSVNICQkgKDEgPDwgNCkKKyNkZWZpbmUgIFNGQ19JQ0xSX0JVU19F
UlIJCSAoMSA8PCA1KQorI2RlZmluZSAgU0ZDX0lDTFJfTlNQSV9FUlIJCSAoMSA8PCA2KQorI2Rl
ZmluZSAgU0ZDX0lDTFJfRE1BCQkJICgxIDw8IDcpCisKKy8qIEZJRk8gdGhyZXNob2xkIGxldmVs
ICovCisjZGVmaW5lIFNGQ19GVExSCQkJMHhjCisjZGVmaW5lICBTRkNfRlRMUl9UWF9TSElGVAkJ
MAorI2RlZmluZSAgU0ZDX0ZUTFJfVFhfTUFTSwkJMHgxZgorI2RlZmluZSAgU0ZDX0ZUTFJfUlhf
U0hJRlQJCTgKKyNkZWZpbmUgIFNGQ19GVExSX1JYX01BU0sJCTB4MWYKKworLyogUmVzZXQgRlNN
IGFuZCBGSUZPICovCisjZGVmaW5lIFNGQ19SQ1ZSCQkJMHgxMAorI2RlZmluZSAgU0ZDX1JDVlJf
UkVTRVQJCQkgKDEgPDwgMCkKKworLyogRW5oYW5jZWQgbW9kZSAqLworI2RlZmluZSBTRkNfQVgJ
CQkJMHgxNAorCisvKiBBZGRyZXNzIEJpdCBudW1iZXIgKi8KKyNkZWZpbmUgU0ZDX0FCSVQJCQkw
eDE4CisKKy8qIEludGVycnVwdCBzdGF0dXMgKi8KKyNkZWZpbmUgU0ZDX0lTUgkJCQkweDFjCisj
ZGVmaW5lICBTRkNfSVNSX1JYX0ZVTExfU0hJRlQJCSAoMSA8PCAwKQorI2RlZmluZSAgU0ZDX0lT
Ul9SWF9VRkxPV19TSElGVAkJICgxIDw8IDEpCisjZGVmaW5lICBTRkNfSVNSX1RYX09GTE9XX1NI
SUZUCQkgKDEgPDwgMikKKyNkZWZpbmUgIFNGQ19JU1JfVFhfRU1QVFlfU0hJRlQJCSAoMSA8PCAz
KQorI2RlZmluZSAgU0ZDX0lTUl9UWF9GSU5JU0hfU0hJRlQJICgxIDw8IDQpCisjZGVmaW5lICBT
RkNfSVNSX0JVU19FUlJfU0hJRlQJCSAoMSA8PCA1KQorI2RlZmluZSAgU0ZDX0lTUl9OU1BJX0VS
Ul9TSElGVAkJICgxIDw8IDYpCisjZGVmaW5lICBTRkNfSVNSX0RNQV9TSElGVAkJICgxIDw8IDcp
CisKKy8qIEZJRk8gc3RhdHVzICovCisjZGVmaW5lIFNGQ19GU1IJCQkJMHgyMAorI2RlZmluZSAg
U0ZDX0ZTUl9UWF9JU19GVUxMCQkgKDEgPDwgMCkKKyNkZWZpbmUgIFNGQ19GU1JfVFhfSVNfRU1Q
VFkJCSAoMSA8PCAxKQorI2RlZmluZSAgU0ZDX0ZTUl9SWF9JU19FTVBUWQkJICgxIDw8IDIpCisj
ZGVmaW5lICBTRkNfRlNSX1JYX0lTX0ZVTEwJCSAoMSA8PCAzKQorI2RlZmluZSAgU0ZDX0ZTUl9U
WExWX01BU0sJCSgweDFmIDw8IDgpCisjZGVmaW5lICBTRkNfRlNSX1RYTFZfU0hJRlQJCTgKKyNk
ZWZpbmUgIFNGQ19GU1JfUlhMVl9NQVNLCQkoMHgxZiA8PCAxNikKKyNkZWZpbmUgIFNGQ19GU1Jf
UlhMVl9TSElGVAkJMTYKKworLyogRlNNIHN0YXR1cyAqLworI2RlZmluZSBTRkNfU1IJCQkJMHgy
NAorI2RlZmluZSAgU0ZDX1NSX0lTX0lETEUJCQkweDAKKyNkZWZpbmUgIFNGQ19TUl9JU19CVVNZ
CQkJMHgxCisKKy8qIFJhdyBpbnRlcnJ1cHQgc3RhdHVzICovCisjZGVmaW5lIFNGQ19SSVNSCQkJ
MHgyOAorI2RlZmluZSAgU0ZDX1JJU1JfUlhfRlVMTAkJICgxIDw8IDApCisjZGVmaW5lICBTRkNf
UklTUl9SWF9VTkRFUkZMT1cJCSAoMSA8PCAxKQorI2RlZmluZSAgU0ZDX1JJU1JfVFhfT1ZFUkZM
T1cJCSAoMSA8PCAyKQorI2RlZmluZSAgU0ZDX1JJU1JfVFhfRU1QVFkJCSAoMSA8PCAzKQorI2Rl
ZmluZSAgU0ZDX1JJU1JfVFJBTl9GSU5JU0gJCSAoMSA8PCA0KQorI2RlZmluZSAgU0ZDX1JJU1Jf
QlVTX0VSUgkJICgxIDw8IDUpCisjZGVmaW5lICBTRkNfUklTUl9OU1BJX0VSUgkJICgxIDw8IDYp
CisjZGVmaW5lICBTRkNfUklTUl9ETUEJCQkgKDEgPDwgNykKKworLyogVmVyc2lvbiAqLworI2Rl
ZmluZSBTRkNfVkVSCQkJCTB4MkMKKyNkZWZpbmUgIFNGQ19WRVJfMwkJCTB4MworI2RlZmluZSAg
U0ZDX1ZFUl80CQkJMHg0CisjZGVmaW5lICBTRkNfVkVSXzUJCQkweDUKKworLyogRGVsYXkgbGlu
ZSBjb250cm9sbGVyIHJlc2l0ZXIgKi8KKyNkZWZpbmUgU0ZDX0RMTF9DVFJMMAkJCTB4M0MKKyNk
ZWZpbmUgU0ZDX0RMTF9DVFJMMF9TQ0xLX1NNUF9ETEwJICgxIDw8IDE1KQorI2RlZmluZSBTRkNf
RExMX0NUUkwwX0RMTF9NQVhfVkVSNAkweEZGVQorI2RlZmluZSBTRkNfRExMX0NUUkwwX0RMTF9N
QVhfVkVSNQkweDFGRlUKKworLyogTWFzdGVyIHRyaWdnZXIgKi8KKyNkZWZpbmUgU0ZDX0RNQV9U
UklHR0VSCQkJMHg4MAorI2RlZmluZSBTRkNfRE1BX1RSSUdHRVJfU1RBUlQJCTEKKworLyogU3Jj
IG9yIERzdCBhZGRyIGZvciBtYXN0ZXIgKi8KKyNkZWZpbmUgU0ZDX0RNQV9BRERSCQkJMHg4NAor
CisvKiBMZW5ndGggY29udHJvbCByZWdpc3RlciBleHRlbnNpb24gMzJHQiAqLworI2RlZmluZSBT
RkNfTEVOX0NUUkwJCQkweDg4CisjZGVmaW5lIFNGQ19MRU5fQ1RSTF9UUkJfU0VMCQkxCisjZGVm
aW5lIFNGQ19MRU5fRVhUCQkJMHg4QworCisvKiBDb21tYW5kICovCisjZGVmaW5lIFNGQ19DTUQJ
CQkJMHgxMDAKKyNkZWZpbmUgIFNGQ19DTURfSURYX1NISUZUCQkwCisjZGVmaW5lICBTRkNfQ01E
X0RVTU1ZX1NISUZUCQk4CisjZGVmaW5lICBTRkNfQ01EX0RJUl9TSElGVAkJMTIKKyNkZWZpbmUg
IFNGQ19DTURfRElSX1JECQkJMAorI2RlZmluZSAgU0ZDX0NNRF9ESVJfV1IJCQkxCisjZGVmaW5l
ICBTRkNfQ01EX0FERFJfU0hJRlQJCTE0CisjZGVmaW5lICBTRkNfQ01EX0FERFJfMEJJVFMJCTAK
KyNkZWZpbmUgIFNGQ19DTURfQUREUl8yNEJJVFMJCTEKKyNkZWZpbmUgIFNGQ19DTURfQUREUl8z
MkJJVFMJCTIKKyNkZWZpbmUgIFNGQ19DTURfQUREUl9YQklUUwkJMworI2RlZmluZSAgU0ZDX0NN
RF9UUkFOX0JZVEVTX1NISUZUCTE2CisjZGVmaW5lICBTRkNfQ01EX0NTX1NISUZUCQkzMAorCisv
KiBBZGRyZXNzICovCisjZGVmaW5lIFNGQ19BRERSCQkJMHgxMDQKKworLyogRGF0YSAqLworI2Rl
ZmluZSBTRkNfREFUQQkJCTB4MTA4CisKKy8qIFRoZSBjb250cm9sbGVyIGFuZCBkb2N1bWVudGF0
aW9uIHJlcG9ydHMgdGhhdCBpdCBzdXBwb3J0cyB1cCB0byA0IENTCisgKiBkZXZpY2VzICgwLTMp
LCBob3dldmVyIEkgaGF2ZSBvbmx5IGJlZW4gYWJsZSB0byB0ZXN0IGEgc2luZ2xlIENTIChDUyAw
KQorICogZHVlIHRvIHRoZSBjb25maWd1cmF0aW9uIG9mIG15IGRldmljZS4KKyAqLworI2RlZmlu
ZSBTRkNfTUFYX0NISVBTRUxFQ1RfTlVNCQk0CisKKy8qIFRoZSBTRkMgY2FuIHRyYW5zZmVyIG1h
eCAxNktCIC0gMSBhdCBvbmUgdGltZQorICogd2Ugc2V0IGl0IHRvIDE1LjVLQiBoZXJlIGZvciBh
bGlnbm1lbnQuCisgKi8KKyNkZWZpbmUgU0ZDX01BWF9JT1NJWkVfVkVSMwkJKDUxMiAqIDMxKQor
CisvKiBETUEgaXMgb25seSBlbmFibGVkIGZvciBsYXJnZSBkYXRhIHRyYW5zbWlzc2lvbiAqLwor
I2RlZmluZSBTRkNfRE1BX1RSQU5TX1RIUkVUSE9MRAkJKDB4NDApCisKKy8qIE1heGltdW0gY2xv
Y2sgdmFsdWVzIGZyb20gZGF0YXNoZWV0IHN1Z2dlc3Qga2VlcGluZyBjbG9jayB2YWx1ZSB1bmRl
cgorICogMTUwTUh6LiBObyBtaW5pbXVtIG9yIGF2ZXJhZ2UgdmFsdWUgaXMgc3VnZ2VzdGVkLgor
ICovCisjZGVmaW5lIFNGQ19NQVhfU1BFRUQJCSgxNTAgKiAxMDAwICogMTAwMCkKKworI2RlZmlu
ZSBSS19TRkNfWEZFUl9PVVQgMAorI2RlZmluZSBSS19TRkNfWEZFUl9JTiAgMQorCisjZGVmaW5l
IENNRF9XUklURV9FTkFCTEUgICAgICAgIDB4MDYKKyNkZWZpbmUgQ01EX1dSSVRFX0RJU0FCTEUg
ICAgICAgMHgwNAorI2RlZmluZSBDTURfUkVBRF9JREVOVCAgICAgICAgICAweDlGCisjZGVmaW5l
IENNRF9SRUFEX1NUQVRVUyAgICAgICAgIDB4MDUKKyNkZWZpbmUgQ01EX1dSSVRFX1NUQVRVUyAg
ICAgICAgMHgwMQorI2RlZmluZSBDTURfUkVBRCAgICAgICAgICAgICAgICAweDAzCisjZGVmaW5l
IENNRF9GQVNUX1JFQUQgICAgICAgICAgIDB4MEIKKyNkZWZpbmUgQ01EX1JFQURfRFVBTF9JTyAg
ICAgICAgMHhCQgorI2RlZmluZSBDTURfUkVBRF9RVUFEX09VVFBVVCAgICAweDZCCisjZGVmaW5l
IENNRF9QQUdFX1BST0dSQU0gICAgICAgIDB4MDIKKyNkZWZpbmUgQ01EX1NFQ1RPUl9FUkFTRSAg
ICAgICAgMHhEOAorI2RlZmluZSBDTURfQlVMS19FUkFTRSAgICAgICAgICAweEM3CisjZGVmaW5l
IENNRF9CTE9DS180S19FUkFTRSAgICAgIDB4MjAKKyNkZWZpbmUgQ01EX0JMT0NLXzMyS19FUkFT
RSAgICAgMHg1MgorI2RlZmluZSBDTURfRU5URVJfNEJfTU9ERSAgICAgICAweEI3CisjZGVmaW5l
IENNRF9FWElUXzRCX01PREUgICAgICAgIDB4RTkKKworc3RydWN0IHJrX3NmY19jb25mIHsKKyB1
aW50OF90IGNtZCwgIGRpciwgYWRkcl9sZW4sIGR1bW15X2J5dGVzOworIHVpbnQzMl90IHhmZXJf
bGVuLCBhZGRyOworIH07CisKK3N0YXRpYyBzdHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9k
YXRhW10gPSB7CisJeyAicm9ja2NoaXAsc2ZjIiwJCTEgfSwKKwl7IE5VTEwsCQkJCQkwIH0KK307
CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Vfc3BlYyBya19zZmNfc3BlY1tdID0geworCXsgU1lT
X1JFU19NRU1PUlksCTAsCVJGX0FDVElWRSB9LAorCXsgU1lTX1JFU19JUlEsCQkwLAlSRl9BQ1RJ
VkUgfCBSRl9TSEFSRUFCTEUgfSwKKwl7IC0xLCAwIH0KK307CisKK3N0cnVjdCBya19zZmNfc29m
dGMgeworCWRldmljZV90CWRldjsKKwlkZXZpY2VfdAlzcGlidXM7CisJc3RydWN0IHJlc291cmNl
CSpyZXNbMl07CisJc3RydWN0IG10eAltdHg7CisJY2xrX3QJCWNsa19haGI7CisJY2xrX3QJCWNs
a19zZmM7CisJdWludDMyX3QJdmVyc2lvbjsKKwl2b2lkICoJCWludHJoYW5kOworCWludAkJdHJh
bnNmZXI7CisKKwl1aW50MzJfdAlpbnRyZWc7CisJdWludDhfdAkJKnJ4YnVmOworCXVpbnQzMl90
CXJ4aWR4OworCXVpbnQ4X3QJCSp0eGJ1ZjsKKwl1aW50MzJfdAl0eGlkeDsKKwl1aW50MzJfdAl0
eGxlbjsKKwl1aW50MzJfdAlyeGxlbjsKK307CisKKyNkZWZpbmUJUktfU0ZDX0xPQ0soc2MpCQkJ
bXR4X2xvY2soJihzYyktPm10eCkKKyNkZWZpbmUJUktfU0ZDX1VOTE9DSyhzYykJCW10eF91bmxv
Y2soJihzYyktPm10eCkKKyNkZWZpbmUJUktfU0ZDX1JFQURfNChzYywgcmVnKQkJYnVzX3JlYWRf
NCgoc2MpLT5yZXNbMF0sIChyZWcpKQorI2RlZmluZQlSS19TRkNfV1JJVEVfNChzYywgcmVnLCB2
YWwpCWJ1c193cml0ZV80KChzYyktPnJlc1swXSwgKHJlZyksICh2YWwpKQorCisjaWYgMAorICNk
ZWZpbmUgZHByaW50ZihkZXYsIGZvcm1hdCwgYXJnLi4uKSAgICAgZGV2aWNlX3ByaW50ZihkZXYs
ICIlczogIiBmb3JtYXQsIF9fZnVuY19fLCBhcmcpCisjZWxzZQorICNkZWZpbmUgZHByaW50Zihk
ZXYsIGZvcm1hdCwgYXJnLi4uKQorI2VuZGlmCisKK3N0YXRpYyBpbnQgcmtfc2ZjX3Byb2JlKGRl
dmljZV90IGRldik7CitzdGF0aWMgaW50IHJrX3NmY19hdHRhY2goZGV2aWNlX3QgZGV2KTsKK3N0
YXRpYyBpbnQgcmtfc2ZjX2RldGFjaChkZXZpY2VfdCBkZXYpOworc3RhdGljIHZvaWQgcmtfc2Zj
X2ludHIodm9pZCAqYXJnKTsKKworCitzdGF0aWMgaW50Citya19zZmNfcmVzZXQoc3RydWN0IHJr
X3NmY19zb2Z0YyAqc2MpCit7CisJaW50IGVycm9yLCBpOworCXVpbnQzMl90IHN0YXR1czsKKwor
CVJLX1NGQ19XUklURV80KHNjLCBTRkNfUkNWUiwgU0ZDX1JDVlJfUkVTRVQpOworCisJZm9yKGkg
PSAwOyBpIDwgMTAwMDA7aSsrKSB7CisJCXN0YXR1cyA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19S
Q1ZSKTsKKwkJaWYoIShzdGF0dXMgJiBTRkNfUkNWUl9SRVNFVCkpIGJyZWFrOworCQlERUxBWSgy
MCk7CisJfQorCisJZXJyb3IgPSBzdGF0dXMgJiBTRkNfUkNWUl9SRVNFVDsKKwlpZiAoZXJyb3Ip
CisJCWRldmljZV9wcmludGYoc2MtPmRldiwgIlNGQyByZXNldCBkaWQgbm90IGZpbmlzaFxuIik7
CisKKwkvKiBTdGlsbCBuZWVkIHRvIGNsZWFyIHRoZSBtYXNrZWQgaW50ZXJydXB0IGZyb20gUklT
UiAqLworCVJLX1NGQ19XUklURV80KHNjLCBTRkNfSUNMUiwgMHhGRkZGRkZGRik7CisKKwlkcHJp
bnRmKHNjLT5kZXYsICJyZXNldCAlc1xuIiwgIiIpOworCisJcmV0dXJuIGVycm9yOworfQorCitz
dGF0aWMgdWludDMyX3QKK3JrX3NmY19nZXRfdmVyc2lvbihzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpz
YykKK3sKKwlyZXR1cm4gIChSS19TRkNfUkVBRF80KHNjLCBTRkNfVkVSKSAmIDB4ZmZmZik7Cit9
CisKK3N0YXRpYyB1aW50MzJfdAorcmtfc2ZjX2dldF9tYXhfaW9zaXplKHN0cnVjdCBya19zZmNf
c29mdGMgKnNjKQoreworCXJldHVybiBTRkNfTUFYX0lPU0laRV9WRVIzOworfQorCisKK3N0YXRp
YyB2b2lkCitya19zZmNfaXJxX21hc2soc3RydWN0IHJrX3NmY19zb2Z0YyAqc2MsIHVpbnQzMl90
IG1hc2spCit7CisJdWludDMyX3QgcmVnOworCisJLyogRGlzYWJsZSB0cmFuc2ZlciBmaW5pc2gg
aW50ZXJydXB0ICovCisJcmVnID0gUktfU0ZDX1JFQURfNChzYywgU0ZDX0lNUik7CisJcmVnIHw9
IG1hc2s7CisJUktfU0ZDX1dSSVRFXzQoc2MsIFNGQ19JTVIsIHJlZyk7Cit9CisKK3N0YXRpYyB2
b2lkCitya19zZmNfaXJxX3VubWFzayhzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpzYywgdWludDMyX3Qg
bWFzaykKK3sKKwl1aW50MzJfdCByZWc7CisKKwkvKiBFbmFibGUgdHJhbnNmZXIgY29tcGxldGUg
aW50ZXJydXB0ICovCisJcmVnID0gUktfU0ZDX1JFQURfNChzYywgU0ZDX0lNUik7CisJcmVnICY9
IH5tYXNrOworCVJLX1NGQ19XUklURV80KHNjLCBTRkNfSU1SLCByZWcpOworfQorc3RhdGljIGlu
dAorcmtfc2ZjX2luaXQoc3RydWN0IHJrX3NmY19zb2Z0YyAqc2MpCit7CisJUktfU0ZDX1dSSVRF
XzQoc2MsIFNGQ19DVFJMLCAwKTsKKwlSS19TRkNfV1JJVEVfNChzYywgU0ZDX0lDTFIsIDB4RkZG
RkZGRkYpOworCXJrX3NmY19pcnFfbWFzayhzYywgMHhGRkZGRkZGRik7CisJaWYgKHJrX3NmY19n
ZXRfdmVyc2lvbihzYykgPj0gU0ZDX1ZFUl80KQorCQlSS19TRkNfV1JJVEVfNChzYywgU0ZDX0xF
Tl9DVFJMLCBTRkNfTEVOX0NUUkxfVFJCX1NFTCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj
IGludAorcmtfc2ZjX3hmZXJfZG9uZShzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpzYywgdWludDMyX3Qg
dGltZW91dF91cykKK3sKKwlpbnQgcmV0ID0gMCwgY3ljbGVzID0wOworCXVpbnQzMl90IHN0YXR1
czsKKwlzYmludGltZV90IHNidF9lbmQgPSBzYmludXB0aW1lKCkgKyA0Mjk0ICogdGltZW91dF91
czsKKworCXdoaWxlKDEpIHsKKwkJY3ljbGVzKys7CisJCXN0YXR1cyA9IFJLX1NGQ19SRUFEXzQo
c2MsIFNGQ19TUik7CisJCWlmKCEoc3RhdHVzICYgU0ZDX1NSX0lTX0JVU1kpKSBicmVhazsKKwkJ
aWYoZ2V0c2JpbnVwdGltZSgpID4gc2J0X2VuZCkgeworCQkJcmV0ID0gMTsKKwkJCWJyZWFrOwor
CQl9CisJfQorCWlmIChyZXQpIHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAid2FpdCBzZmMg
aWRsZSB0aW1lb3V0LCBjeWNsZXM9JWRcbiIsIGN5Y2xlcyk7CisJCXJrX3NmY19yZXNldChzYyk7
CisKKwkJcmV0ID0gRUlPOworCX0KKworCXJldHVybiAocmV0KTsKK30KK3N0YXRpYyBpbnQKK3Jr
X3NmY193YWl0X3R4Zmlmb19yZWFkeShzdHJ1Y3Qgcmtfc2ZjX3NvZnRjICpzYywgdWludDMyX3Qg
dGltZW91dF91cywgdWludDMyX3QgKmxldmVsKQoreworCWludCByZXQgPSAwLCBjeWNsZXMgPSAw
OworCXVpbnQzMl90IHN0YXR1czsKKwlzYmludGltZV90IHNidF9lbmQgPSBzYmludXB0aW1lKCkg
KyA0Mjk0ICogdGltZW91dF91czsKKwl3aGlsZSgxKSB7CisJCWN5Y2xlcysrOworCQlzdGF0dXMg
PSBSS19TRkNfUkVBRF80KHNjLCBTRkNfRlNSKTsKKwkJaWYoc3RhdHVzICYgU0ZDX0ZTUl9UWExW
X01BU0spIGJyZWFrOworCQlpZihnZXRzYmludXB0aW1lKCkgPiBzYnRfZW5kKSB7CisJCQlyZXQg
PSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAocmV0KSB7CisJCWRldmljZV9wcmludGYo
c2MtPmRldiwgInNmYyB3YWl0IHR4IGZpZm8gdGltZW91dCwgY3ljbGVzPSVkXG4iLCBjeWNsZXMp
OworCisJCXJldHVybiAoRVRJTUVET1VUKTsKKwl9CisKKwkqbGV2ZWwgPSAoc3RhdHVzICYgU0ZD
X0ZTUl9UWExWX01BU0spID4+IFNGQ19GU1JfVFhMVl9TSElGVDsKKwlyZXR1cm4gKDApOworfQor
CitzdGF0aWMgaW50Citya19zZmNfd2FpdF9yeGZpZm9fcmVhZHkoc3RydWN0IHJrX3NmY19zb2Z0
YyAqc2MsIHVpbnQzMl90IHRpbWVvdXRfdXMsIHVpbnQzMl90ICpsZXZlbCkKK3sKKwlpbnQgcmV0
ID0gMCwgY3ljbGVzID0gMDsKKwl1aW50MzJfdCBzdGF0dXM7CisgICAgICAgIHNiaW50aW1lX3Qg
c2J0X2VuZCA9IHNiaW51cHRpbWUoKSArIDQyOTQgKiB0aW1lb3V0X3VzOworCisgICAgICAgIHdo
aWxlKDEpIHsKKwkJY3ljbGVzKys7CisJCXN0YXR1cyA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19G
U1IpOworCQlpZihzdGF0dXMgJiBTRkNfRlNSX1JYTFZfTUFTSykgYnJlYWs7CisJCWlmKGdldHNi
aW51cHRpbWUoKSA+IHNidF9lbmQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IDE7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKwkJfQorICAgICAgICB9CisJaWYgKHJl
dCkgeworCQlkZXZpY2VfcHJpbnRmKHNjLT5kZXYsICJzZmMgd2FpdCByeCBmaWZvIHRpbWVvdXQs
IGN5Y2xlcz0lZFxuIiwgY3ljbGVzKTsKKworCQlyZXR1cm4gKEVUSU1FRE9VVCk7CisJfQorCisJ
KmxldmVsID0gKHN0YXR1cyAmIFNGQ19GU1JfUlhMVl9NQVNLKSA+PiBTRkNfRlNSX1JYTFZfU0hJ
RlQ7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludAorcmtfc2ZjX3dyaXRlX2ZpZm8oc3Ry
dWN0IHJrX3NmY19zb2Z0YyAqc2MsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKK3sKKwl1
aW50OF90IGJ5dGVzID0gbGVuICYgMHgzOworCXVpbnQzMl90IGR3b3JkczsKKwlpbnQgdHhfbGV2
ZWwsIGVycm9yOworCXVpbnQzMl90IHdyaXRlX3dvcmRzOworCXVpbnQzMl90IHRtcCA9IDA7CisK
Kwlkd29yZHMgPSBsZW4gPj4gMjsKKwl3aGlsZSAoZHdvcmRzKSB7CisJCWVycm9yID0gcmtfc2Zj
X3dhaXRfdHhmaWZvX3JlYWR5KHNjLCAxMDAwLCAmdHhfbGV2ZWwpOworCQlpZiAoZXJyb3IpCisJ
CQlyZXR1cm4gKGVycm9yKTsKKwkJd3JpdGVfd29yZHMgPXR4X2xldmVsIDwgZHdvcmRzID8gdHhf
bGV2ZWwgOiBkd29yZHM7CisJCXdoaWxlKHdyaXRlX3dvcmRzKSB7CisJCQlSS19TRkNfV1JJVEVf
NChzYywgU0ZDX0RBVEEsICooKGNvbnN0IHVpbnQzMl90ICopYnVmKSk7CisJCQlidWYgKz0gNDsK
KwkJCXdyaXRlX3dvcmRzLS07CisJCQlkd29yZHMtLTsKKwkJCX0KKwl9CisKKwkvKiB3cml0ZSB0
aGUgcmVzdCBub24gd29yZCBhbGlnbmVkIGJ5dGVzICovCisJaWYgKGJ5dGVzKSB7CisJCWVycm9y
ID0gcmtfc2ZjX3dhaXRfdHhmaWZvX3JlYWR5KHNjLCAxMDAwLCAmdHhfbGV2ZWwpOworCQlpZiAo
ZXJyb3IpCisJCQlyZXR1cm4gKGVycm9yKTsKKwkJbWVtY3B5KCZ0bXAsIGJ1ZiwgYnl0ZXMpOwor
CQlSS19TRkNfV1JJVEVfNChzYywgU0ZDX0RBVEEsIHRtcCk7CisJfQorCisJcmV0dXJuIChsZW4p
OworfQorCitzdGF0aWMgaW50Citya19zZmNfcmVhZF9maWZvKHN0cnVjdCBya19zZmNfc29mdGMg
KnNjLCB1aW50OF90ICpidWYsIGludCBsZW4pCit7CisJdWludDhfdCBieXRlcyA9IGxlbiAmIDB4
MzsKKwl1aW50MzJfdCBkd29yZHM7CisJdWludDhfdCByZWFkX3dvcmRzOworCWludCByeF9sZXZl
bDsKKwlpbnQgdG1wLCBlcnJvcjsKKworCS8qIHdvcmQgYWxpZ25lZCBhY2Nlc3Mgb25seSAqLwor
CWR3b3JkcyA9IGxlbiA+PiAyOworCXdoaWxlIChkd29yZHMpIHsKKwkJZXJyb3IgPSBya19zZmNf
d2FpdF9yeGZpZm9fcmVhZHkoc2MsIDEwMDAwLCAmcnhfbGV2ZWwpOworCQlpZiAoZXJyb3IpCisJ
CQlyZXR1cm4gKGVycm9yKTsKKwkJcmVhZF93b3JkcyA9IHJ4X2xldmVsIDwgZHdvcmRzID8gcnhf
bGV2ZWwgOiBkd29yZHM7CisJCXdoaWxlKHJlYWRfd29yZHMpIHsKKwkJICooKHVpbnQzMl90ICop
YnVmKSA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19EQVRBKTsKKwkJIGJ1ZiArPSA0OworCQkgcmVh
ZF93b3Jkcy0tOworCQkgZHdvcmRzLS07CisJCSB9CisJfQorCisJLyogcmVhZCB0aGUgcmVzdCBu
b24gd29yZCBhbGlnbmVkIGJ5dGVzICovCisJaWYgKGJ5dGVzKSB7CisJCWVycm9yID0gcmtfc2Zj
X3dhaXRfcnhmaWZvX3JlYWR5KHNjLCAxMDAwMCwgJnJ4X2xldmVsKTsKKwkJaWYgKGVycm9yKQor
CQkJcmV0dXJuIChlcnJvcik7CisJCXRtcCA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19EQVRBKTsK
KwkJbWVtY3B5KGJ1ZiwgJnRtcCwgYnl0ZXMpOworCX0KKworCXJldHVybiAobGVuKTsKK30KKwor
CitzdGF0aWMgaW50Citya19zZmNfeGZlcl9kYXRhX3BvbGwoc3RydWN0IHJrX3NmY19zb2Z0YyAq
c2MsIHZvaWQgKmJ1ZmZlciwgdWludDhfdCBkaXIsIHVpbnQzMl90IGxlbikKK3sKKworCWRwcmlu
dGYoc2MtPmRldiwgInNmYyB4ZmVyX3BvbGwgZGlyPSVkIGxlbj0leFxuIiwgZGlyLCBsZW4pOwor
CisJaWYgKGRpciA9PSBSS19TRkNfWEZFUl9PVVQpCisJCXJldHVybiBya19zZmNfd3JpdGVfZmlm
byhzYywgYnVmZmVyLCBsZW4pOworCWVsc2UKKwkJcmV0dXJuIHJrX3NmY19yZWFkX2ZpZm8oc2Ms
IGJ1ZmZlciwgIGxlbik7Cit9CitzdGF0aWMgaW50Citya19zZmNfcHJvYmUoZGV2aWNlX3QgZGV2
KQoreworCWlmICghb2Z3X2J1c19zdGF0dXNfb2theShkZXYpKQorCQlyZXR1cm4gKEVOWElPKTsK
KworCWlmICghb2Z3X2J1c19zZWFyY2hfY29tcGF0aWJsZShkZXYsIGNvbXBhdF9kYXRhKS0+b2Nk
X2RhdGEpCisJCXJldHVybiAoRU5YSU8pOworCisJZGV2aWNlX3NldF9kZXNjKGRldiwgIlJvY2tj
aGlwIFNlcmlhbCBGbGFzaCBDb250cm9sbGVyIik7CisJcmV0dXJuIChCVVNfUFJPQkVfREVGQVVM
VCk7Cit9CisKK3N0YXRpYyBpbnQKK3JrX3NmY19hdHRhY2goZGV2aWNlX3QgZGV2KQoreworCXN0
cnVjdCBya19zZmNfc29mdGMgKnNjOworCWludCBlcnJvcjsKKworCXNjID0gZGV2aWNlX2dldF9z
b2Z0YyhkZXYpOworCXNjLT5kZXYgPSBkZXY7CisKKwltdHhfaW5pdCgmc2MtPm10eCwgZGV2aWNl
X2dldF9uYW1ldW5pdChkZXYpLCBOVUxMLCBNVFhfREVGKTsKKworCWlmIChidXNfYWxsb2NfcmVz
b3VyY2VzKGRldiwgcmtfc2ZjX3NwZWMsIHNjLT5yZXMpICE9IDApIHsKKwkJZGV2aWNlX3ByaW50
ZihkZXYsICJjYW5ub3QgYWxsb2NhdGUgcmVzb3VyY2VzIGZvciBkZXZpY2VcbiIpOworCQllcnJv
ciA9IEVOWElPOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKGJ1c19zZXR1cF9pbnRyKGRldiwg
c2MtPnJlc1sxXSwKKwkgICAgSU5UUl9UWVBFX01JU0MgfCBJTlRSX01QU0FGRSwgTlVMTCwgcmtf
c2ZjX2ludHIsIHNjLAorCSAgICAmc2MtPmludHJoYW5kKSkgeworCQlidXNfcmVsZWFzZV9yZXNv
dXJjZXMoZGV2LCBya19zZmNfc3BlYywgc2MtPnJlcyk7CisJCWRldmljZV9wcmludGYoZGV2LCAi
Y2Fubm90IHNldHVwIGludGVycnVwdCBoYW5kbGVyXG4iKTsKKwkJcmV0dXJuIChFTlhJTyk7CisJ
fQorCisJLyogQWN0aXZhdGUgdGhlIG1vZHVsZSBjbG9jay4gKi8KKwllcnJvciA9IGNsa19nZXRf
Ynlfb2Z3X25hbWUoZGV2LCAwLCAiaGNsa19zZmMiLCAmc2MtPmNsa19haGIpOworCWlmIChlcnJv
ciAhPSAwKSB7CisJCWRldmljZV9wcmludGYoZGV2LCAiY2Fubm90IGdldCBzZmMgYWhiIGNsb2Nr
XG4iKTsKKwkJZ290byBmYWlsOworCX0KKwllcnJvciA9IGNsa19nZXRfYnlfb2Z3X25hbWUoZGV2
LCAwLCAiY2xrX3NmYyIsICZzYy0+Y2xrX3NmYyk7CisJaWYgKGVycm9yICE9IDApIHsKKwkJZGV2
aWNlX3ByaW50ZihkZXYsICJjYW5ub3QgZ2V0IGNsa19zZmMgY2xvY2tcbiIpOworCQlnb3RvIGZh
aWw7CisJfQorCWVycm9yID0gY2xrX2VuYWJsZShzYy0+Y2xrX2FoYik7CisJaWYgKGVycm9yICE9
IDApIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJjYW5ub3QgZW5hYmxlIGFoYiBjbG9ja1xuIik7
CisJCWdvdG8gZmFpbDsKKwl9CisJZXJyb3IgPSBjbGtfZW5hYmxlKHNjLT5jbGtfc2ZjKTsKKwlp
ZiAoZXJyb3IgIT0gMCkgeworCQlkZXZpY2VfcHJpbnRmKGRldiwgImNhbm5vdCBlbmFibGUgc2Zj
IGNsb2NrXG4iKTsKKwkJZ290byBmYWlsOworCX0KKworCXJrX3NmY19pbml0KHNjKTsKKwlzYy0+
dmVyc2lvbiA9IHJrX3NmY19nZXRfdmVyc2lvbihzYyk7CisJZGV2aWNlX3ByaW50ZihkZXYsICJS
b2NrY2hpcCBTRkMgdmVyc2lvbiAlZFxuIiwgc2MtPnZlcnNpb24pOworCXNjLT5zcGlidXMgPSBk
ZXZpY2VfYWRkX2NoaWxkKGRldiwgInNwaWJ1cyIsIC0xKTsKKworCXJldHVybiAoYnVzX2dlbmVy
aWNfYXR0YWNoKGRldikpOworCitmYWlsOgorCXJrX3NmY19kZXRhY2goZGV2KTsKKwlyZXR1cm4g
KGVycm9yKTsKK30KKworc3RhdGljIGludAorcmtfc2ZjX2RldGFjaChkZXZpY2VfdCBkZXYpCit7
CisJc3RydWN0IHJrX3NmY19zb2Z0YyAqc2M7CisKKwlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2
KTsKKworCWJ1c19nZW5lcmljX2RldGFjaChzYy0+ZGV2KTsKKwlpZiAoc2MtPnNwaWJ1cyAhPSBO
VUxMKQorCQlkZXZpY2VfZGVsZXRlX2NoaWxkKGRldiwgc2MtPnNwaWJ1cyk7CisKKwlpZiAoc2Mt
PmNsa19zZmMgIT0gTlVMTCkKKwkJY2xrX3JlbGVhc2Uoc2MtPmNsa19zZmMpOworCWlmIChzYy0+
Y2xrX2FoYikKKwkJY2xrX3JlbGVhc2Uoc2MtPmNsa19haGIpOworCisJaWYgKHNjLT5pbnRyaGFu
ZCAhPSBOVUxMKQorCQlidXNfdGVhcmRvd25faW50cihzYy0+ZGV2LCBzYy0+cmVzWzFdLCBzYy0+
aW50cmhhbmQpOworCisJYnVzX3JlbGVhc2VfcmVzb3VyY2VzKGRldiwgcmtfc2ZjX3NwZWMsIHNj
LT5yZXMpOworCW10eF9kZXN0cm95KCZzYy0+bXR4KTsKKworCXJldHVybiAoMCk7Cit9CisKK3N0
YXRpYyB2b2lkCitya19zZmNfaW50cih2b2lkICphcmcpCit7CisJc3RydWN0IHJrX3NmY19zb2Z0
YyAqc2M7CisJdWludDMyX3QgcmVnOworCisJc2MgPSBhcmc7CisJUktfU0ZDX0xPQ0soc2MpOwor
CXJlZyA9IFJLX1NGQ19SRUFEXzQoc2MsIFNGQ19SSVNSKTsKKwlSS19TRkNfV1JJVEVfNChzYywg
U0ZDX0lDTFIsIHJlZyk7CisJUktfU0ZDX1VOTE9DSyhzYyk7Cit9CisKK3N0YXRpYyBwaGFuZGxl
X3QKK3JrX3NmY19nZXRfbm9kZShkZXZpY2VfdCBidXMsIGRldmljZV90IGRldikKK3sKKworCXJl
dHVybiBvZndfYnVzX2dldF9ub2RlKGJ1cyk7Cit9CisKKworc3RhdGljIGludAorcmtfc2ZjX3hm
ZXJfc2V0dXAoc3RydWN0IHJrX3NmY19zb2Z0YyAqc2MsIHN0cnVjdCBya19zZmNfY29uZiAqb3As
IHVpbnQzMl90IGNzKQoreworCXVpbnQzMl90IGN0cmwgPSAwLCBjbWQgPSAwOworCisJLyogc2V0
IENNRCAqLworCWNtZCA9IG9wLT5jbWQ7CisKKwkvKiBzZXQgQUREUiAqLworCWlmIChvcC0+YWRk
cl9sZW4pIHsKKwkJaWYgKG9wLT5hZGRyX2xlbiA9PSA0KSB7CisJCQljbWQgfD0gU0ZDX0NNRF9B
RERSXzMyQklUUyA8PCBTRkNfQ01EX0FERFJfU0hJRlQ7CisJCX0gZWxzZSBpZiAob3AtPmFkZHJf
bGVuID09IDMpIHsKKwkJCWNtZCB8PSBTRkNfQ01EX0FERFJfMjRCSVRTIDw8IFNGQ19DTURfQURE
Ul9TSElGVDsKKwkJfSBlbHNlIHsKKwkJCWNtZCB8PSBTRkNfQ01EX0FERFJfWEJJVFMgPDwgU0ZD
X0NNRF9BRERSX1NISUZUOworCQkJUktfU0ZDX1dSSVRFXzQoc2MsIFNGQ19BQklULCBvcC0+YWRk
cl9sZW4gKiA4IC0gMSk7CisJCX0KKworCX0KKworCS8qIHNldCBEVU1NWSAqLworCWlmIChvcC0+
ZHVtbXlfYnl0ZXMpIHsKKwkJY21kIHw9IG9wLT5kdW1teV9ieXRlcyAqIDggPDwgU0ZDX0NNRF9E
VU1NWV9TSElGVDsKKwl9CisKKwkvKiBzZXQgREFUQSAqLworCWlmIChzYy0+dmVyc2lvbiA+PSBT
RkNfVkVSXzQpIC8qIENsZWFyIGl0IGlmIG5vIGRhdGEgdG8gdHJhbnNmZXIgKi8KKwkJUktfU0ZD
X1dSSVRFXzQoc2MsIFNGQ19MRU5fRVhULCBvcC0+eGZlcl9sZW4pOworCWVsc2UKKwkJY21kIHw9
IG9wLT54ZmVyX2xlbiA8PCBTRkNfQ01EX1RSQU5fQllURVNfU0hJRlQ7CisKKwlpZiAob3AtPnhm
ZXJfbGVuKSB7CisJCWlmIChvcC0+ZGlyID09IFJLX1NGQ19YRkVSX09VVCkKKwkJCWNtZCB8PSBT
RkNfQ01EX0RJUl9XUiA8PCBTRkNfQ01EX0RJUl9TSElGVDsKKworCX0KKwlpZiAoIW9wLT54ZmVy
X2xlbiAmJiBvcC0+YWRkcl9sZW4pCisJCWNtZCB8PSBTRkNfQ01EX0RJUl9XUiA8PCBTRkNfQ01E
X0RJUl9TSElGVDsKKworCS8qIHNldCB0aGUgQ29udHJvbGxlciAqLworCWN0cmwgfD0gU0ZDX0NU
UkxfUEhBU0VfU0VMX05FR0FUSVZFOworCWNtZCB8PSBjcyA8PCBTRkNfQ01EX0NTX1NISUZUOwor
CisJZHByaW50ZihzYy0+ZGV2LCAic2ZjIGFkZHIubmJ5dGVzPSV4KHglZCkgZHVtbXkubmJ5dGVz
PSV4KHglZClcbiIsCisJCW9wLT5hZGRyX2xlbiwgMSwKKwkJb3AtPmR1bW15X2J5dGVzLCAxKTsK
KwlkcHJpbnRmKHNjLT5kZXYsICJzZmMgY3RybD0leCBjbWQ9JXggYWRkcj0leCBsZW49JXhcbiIs
CisJCWN0cmwsIGNtZCwgb3AtPmFkZHIsIG9wLT54ZmVyX2xlbik7CisKKwlSS19TRkNfV1JJVEVf
NChzYywgU0ZDX0NUUkwsIGN0cmwpOworCVJLX1NGQ19XUklURV80KHNjLCBTRkNfQ01ELCBjbWQp
OworCisJaWYgKG9wLT5hZGRyX2xlbikKKwkJUktfU0ZDX1dSSVRFXzQoc2MsIFNGQ19BRERSLCBv
cC0+YWRkcik7CisKKwlyZXR1cm4gKDApOworfQorc3RhdGljIHVpbnQzMl90Citta19hZGRyKHVp
bnQ4X3QgKmIsIHVpbnQ4X3QgbGVuKQoreworS0FTU0VSVCgobGVuID09IDMpIHx8IChsZW4gPT0g
NCksICgiSW52YWxpZCBzZmMgYWRkcmVzcyBsZW5ndGgiKSk7CisgIGlmKGxlbiA9PSAzKQorICAg
cmV0dXJuIChiWzBdIDw8IDE2KSB8IChiWzFdIDw8IDgpIHwgYlsyXTsKKyAgZWxzZSAvKiBsZW4g
PT0gNCovCisgICByZXR1cm4gKGJbMF0gPDwgMjQpIHwgKGJbMV0gPDwgMTYpIHwgKGJbMl0gPDwg
OCkgfCBiWzNdOworfQorCitzdGF0aWMgaW50Citya19zZmNfdHJhbnNmZXIoZGV2aWNlX3QgZGV2
LCBkZXZpY2VfdCBjaGlsZCwgc3RydWN0IHNwaV9jb21tYW5kICpjbWQpCit7CisJc3RydWN0IHJr
X3NmY19zb2Z0YyAqc2M7CisJdWludDMyX3QgY3MsIG1vZGUsIGNsb2NrLCByZXQ7CisJdm9pZCAq
dGJ1ZjsKKwl1aW50OF90ICp0eF9jbWQgPSAodWludDhfdCAqKSBjbWQtPnR4X2NtZDsKKwlzdHJ1
Y3Qgcmtfc2ZjX2NvbmYgb3A7CisKKwltZW1zZXQoJm9wLCAwLCBzaXplb2Yob3ApKTsKKworCW9w
LmNtZCA9IHR4X2NtZFswXTsKKwlvcC5kaXIgPSAgUktfU0ZDX1hGRVJfT1VUOworCisJaW50IGVy
ciA9IDA7CisKKwlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwlzcGlidXNfZ2V0X2NzKGNo
aWxkLCAmY3MpOworCXNwaWJ1c19nZXRfY2xvY2soY2hpbGQsICZjbG9jayk7CisJc3BpYnVzX2dl
dF9tb2RlKGNoaWxkLCAmbW9kZSk7CisKKwlvcC54ZmVyX2xlbiA9IGNtZC0+dHhfZGF0YV9zejsK
Kwl0YnVmID0gY21kLT50eF9kYXRhOworCVJLX1NGQ19MT0NLKHNjKTsKKwllcnIgPSAwOworCWRw
cmludGYoc2MtPmRldiwgIkNNRFhYICVkICVkICVkXG4iLCB0eF9jbWRbMF0sIGNtZC0+dHhfY21k
X3N6LCBjbWQtPnR4X2RhdGFfc3opOworCWlmKGNtZC0+dHhfY21kX3N6ICE9IDEpIHsKKwkgc3dp
dGNoIChvcC5jbWQpIHsKKworCSAgY2FzZSBDTURfUkVBRF9TVEFUVVM6CisJICAgdGJ1ZiA9IChj
aGFyICopY21kLT5yeF9jbWQgKyAxOworCSAgIG9wLmRpciA9IFJLX1NGQ19YRkVSX0lOOworCSAg
IG9wLnhmZXJfbGVuID0gMTsKKwkgICBicmVhazsKKworCSAgY2FzZSBDTURfUkVBRF9JREVOVDoK
KwkgICBvcC54ZmVyX2xlbiA9IDM7CisJICAgb3AuZGlyID0gUktfU0ZDX1hGRVJfSU47CisJICAg
dGJ1ZiA9ICgoY2hhciAqKWNtZC0+cnhfY21kKSArIDE7CisJICAgYnJlYWs7CisKKwkgIGNhc2Ug
Q01EX0JMT0NLXzRLX0VSQVNFOgorCSAgY2FzZSBDTURfQkxPQ0tfMzJLX0VSQVNFOgorCSAgY2Fz
ZSBDTURfU0VDVE9SX0VSQVNFOgorCSAgIG9wLnhmZXJfbGVuID0gMDsKKwkgICBvcC5hZGRyX2xl
biA9IGNtZC0+dHhfY21kX3N6IC0gMTsKKwkgICBvcC5hZGRyID0gbWtfYWRkcih0eF9jbWQgKyAx
LCBvcC5hZGRyX2xlbik7CisJICAgIGRwcmludGYoZGV2LCAiQUREUiBEVU1QIGNtZD0lZCAlZCAl
ZCAlZCAlZFxuIiwgdHhfY21kWzBdLCB0eF9jbWRbMV0sIHR4X2NtZFsyXSwgdHhfY21kWzNdLCB0
eF9jbWRbNF0pOworCSAgICBkcHJpbnRmKGRldiwgIkFERFIgRk1UIGE9JWQgbD0lZFxuIixvcC5h
ZGRyLCBvcC5hZGRyX2xlbik7CisJICAgYnJlYWs7CisKKwkgIGNhc2UgQ01EX0ZBU1RfUkVBRDoK
KwkgICAgb3AuZHVtbXlfYnl0ZXMgPSAxOworCSAgICBvcC5kaXIgPSBSS19TRkNfWEZFUl9JTjsK
KwkgICAgb3AuYWRkcl9sZW4gPSBjbWQtPnR4X2NtZF9zeiAtIDI7CisJICAgIG9wLmFkZHIgPSBt
a19hZGRyKHR4X2NtZCArIDEsIG9wLmFkZHJfbGVuKTsKKwkgICAgZHByaW50ZihkZXYsICJBRERS
IERVTVAgY21kPSVkICVkICVkICVkICVkXG4iLCB0eF9jbWRbMF0sIHR4X2NtZFsxXSwgdHhfY21k
WzJdLCB0eF9jbWRbM10sIHR4X2NtZFs0XSk7CisJICAgIGRwcmludGYoZGV2LCAiQUREUiBGTVQg
YT0lZCBsPSVkXG4iLG9wLmFkZHIsIG9wLmFkZHJfbGVuKTsKKwkgICAgYnJlYWs7CisJICBjYXNl
IENNRF9QQUdFX1BST0dSQU06CisgICAgICAgICAgIG9wLmFkZHJfbGVuID0gY21kLT50eF9jbWRf
c3ogLSAxOworICAgICAgICAgICBvcC5hZGRyID0gbWtfYWRkcih0eF9jbWQgKyAxLCBvcC5hZGRy
X2xlbik7CisJICAgIGRwcmludGYoZGV2LCAiQUREUiBEVU1QIGNtZD0lZCAlZCAlZCAlZCAlZFxu
IiwgdHhfY21kWzBdLCB0eF9jbWRbMV0sIHR4X2NtZFsyXSwgdHhfY21kWzNdLCB0eF9jbWRbNF0p
OworCSAgICBkcHJpbnRmKGRldiwgIkFERFIgRk1UIGE9JWQgbD0lZFxuIixvcC5hZGRyLCBvcC5h
ZGRyX2xlbik7CisgICAgICAgICAgIGJyZWFrOworCSAgZGVmYXVsdDoKKwkgICBkZXZpY2VfcHJp
bnRmKGRldiwgInVua25vd24gY21kPSVkIHR4X2NtZF9zej0lZFxuIiwgb3AuY21kLCBjbWQtPnR4
X2NtZF9zeik7CisJICAgYnJlYWs7CisJICB9CisJIH0KKwkgcmtfc2ZjX3hmZXJfc2V0dXAoc2Ms
ICZvcCwgY3MpOworCSBpZihvcC54ZmVyX2xlbikgeworCSAgcmV0ID0gcmtfc2ZjX3hmZXJfZGF0
YV9wb2xsKHNjLCB0YnVmLCBvcC5kaXIsIG9wLnhmZXJfbGVuKTsKKwkgIGlmKHJldCAhPSBvcC54
ZmVyX2xlbikgeworCSAgIGRldmljZV9wcmludGYoc2MtPmRldiwiU2hvcnQgdHJhbnNmZXIgd2Fu
dD0ldSBkb25lPSV1XG4iLCBvcC54ZmVyX2xlbiwgcmV0KTsKKwkgICBlcnIgPSBFSU87CisJICAg
fQorCSAgfQorCVJLX1NGQ19VTkxPQ0soc2MpOworCWlmKCFlcnIpCisJIGVyciA9IHJrX3NmY194
ZmVyX2RvbmUoc2MsIDEwMDAwMCk7CisJcmV0dXJuIChlcnIpOworCit9CisKK3N0YXRpYyBkZXZp
Y2VfbWV0aG9kX3Qgcmtfc2ZjX21ldGhvZHNbXSA9IHsKKwkvKiBEZXZpY2UgaW50ZXJmYWNlICov
CisJREVWTUVUSE9EKGRldmljZV9wcm9iZSwJCXJrX3NmY19wcm9iZSksCisJREVWTUVUSE9EKGRl
dmljZV9hdHRhY2gsCXJrX3NmY19hdHRhY2gpLAorCURFVk1FVEhPRChkZXZpY2VfZGV0YWNoLAly
a19zZmNfZGV0YWNoKSwKKworICAgICAgICAvKiBzcGlidXNfaWYgICovCisJREVWTUVUSE9EKHNw
aWJ1c190cmFuc2ZlciwJcmtfc2ZjX3RyYW5zZmVyKSwKKworICAgICAgICAvKiBvZndfYnVzX2lm
ICovCisJREVWTUVUSE9EKG9md19idXNfZ2V0X25vZGUsCXJrX3NmY19nZXRfbm9kZSksCisKKwlE
RVZNRVRIT0RfRU5ECit9OworCitzdGF0aWMgZHJpdmVyX3Qgcmtfc2ZjX2RyaXZlciA9IHsKKwki
c3BpIiwKKwlya19zZmNfbWV0aG9kcywKKwlzaXplb2Yoc3RydWN0IHJrX3NmY19zb2Z0YyksCit9
OworCitEUklWRVJfTU9EVUxFKHJrX3NmYywgc2ltcGxlYnVzLCBya19zZmNfZHJpdmVyLCAwLCAw
KTsKK0RSSVZFUl9NT0RVTEUob2Z3X3NwaWJ1cywgcmtfc2ZjLCBvZndfc3BpYnVzX2RyaXZlciwg
MCwgMCk7CitNT0RVTEVfREVQRU5EKHJrX3NmYywgb2Z3X3NwaWJ1cywgMSwgMSwgMSk7CitPRldC
VVNfUE5QX0lORk8oY29tcGF0X2RhdGEpOwpkaWZmIC0tZ2l0IGEvc3lzL2Rldi9mbGFzaC9teDI1
bC5jIGIvc3lzL2Rldi9mbGFzaC9teDI1bC5jCi0tLSBhL3N5cy9kZXYvZmxhc2gvbXgyNWwuYwor
KysgYi9zeXMvZGV2L2ZsYXNoL214MjVsLmMKQEAgLTEyMiw2ICsxMjIsOCBAQAogCXsgImVuMjVx
NjQiLAkweDFjLCAweDMwMTcsIDY0ICogMTAyNCwgMTI4LCBGTF9FUkFTRV80SyB9LAogCXsgIm0y
NXAzMiIsCTB4MjAsIDB4MjAxNiwgNjQgKiAxMDI0LCA2NCwgRkxfTk9ORSB9LAogCXsgIm0yNXA2
NCIsCTB4MjAsIDB4MjAxNywgNjQgKiAxMDI0LCAxMjgsIEZMX05PTkUgfSwKKwl7ICJ4bTI1cXUx
MjhjIiwJMHgyMCwgMHg0MTE4LCA2NCAqIDEwMjQsIDI1NiwgRkxfRVJBU0VfNEsgfCBGTF9FUkFT
RV8zMksgfSwKKwogCXsgIm14MjVsMTYwNmUiLCAweGMyLCAweDIwMTUsIDY0ICogMTAyNCwgMzIs
IEZMX0VSQVNFXzRLfSwKIAl7ICJteDI1bGwzMiIsCTB4YzIsIDB4MjAxNiwgNjQgKiAxMDI0LCA2
NCwgRkxfTk9ORSB9LAogCXsgIm14MjVsbDY0IiwJMHhjMiwgMHgyMDE3LCA2NCAqIDEwMjQsIDEy
OCwgRkxfTk9ORSB9LApAQCAtMTU0LDYgKzE1NiwxMCBAQAogCiAJLyogSW50ZWdyYXRlZCBTaWxp
Y29uIFNvbHV0aW9uICovCiAJeyAiaXMyNXdwMjU2IiwJMHg5ZCwgMHg3MDE5LCA2NCAqIDEwMjQs
IDUxMiwgRkxfRVJBU0VfNEsgfCBGTF9FTkFCTEVfNEJfQUREUn0sCisKKyAgICAgICAgLyogemJp
dCAqLworICAgICAgICB7ICJ6YjI1dnExMjgiLCAgMHg1ZSwgMHg0MDE4LCA2NCAqIDEwMjQsIDI1
NiwgRkxfRVJBU0VfNEsgfSwKKwogfTsKIAogc3RhdGljIGludAoK


--b1_fdaf71f3e411f444ed98fb629687154f--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?fdaf71f3e411f444ed98fb629687154f>