From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: Re: [PATCH v9 02/14] drm/mediatek: Add DRM Driver for Mediatek SoC
MT8173.
Date: Wed, 03 Feb 2016 15:31:00 +0100
Message-ID: <1454509860.3867.49.camel@pengutronix.de>
References: <1452611750-16283-1-git-send-email-p.zabel@pengutronix.de>
<1452611750-16283-3-git-send-email-p.zabel@pengutronix.de>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
In-Reply-To:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: Daniel Kurtz
Cc: Mark Rutland , Michael Turquette , dri-devel , Jie Qiu , Cawa Cheng , YT Shen , Yingjoe Chen , "open list:OPEN FIRMWARE AND..." , Jitao Shi , Sasha Hauer , Pawel Moll , Ian Campbell , Rob Herring , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , =?ISO-8859-1?Q?St=E9phane?= Marchesin , Paul Bolle , Stephen Boyd , Tomasz Figa , Kumar Gala
List-Id: devicetree@vger.kernel.org
SGkgRGFuaWVsLAoKQW0gTWl0dHdvY2gsIGRlbiAyMC4wMS4yMDE2LCAxNDoyMyAtMDgwMCBzY2hy
aWViIERhbmllbCBLdXJ0ejoKPiBIaSBQaGlsaXBwLAo+IAo+IFRoaXMgZHJpdmVyIGlzIGxvb2tp
bmcgdmVyeSBnb29kIG5vdyB0byBtZS4KPiAKPiBTb3JyeSBmb3IgdGhlIGRlbGF5IHJldmlld2lu
Zy4gICBTb21lIGNvbW1lbnRzIGlubGluZSBiZWxvdy4KWy4uLl0KPiA+IGRpZmYgLS1naXQgYS9k
cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMgYi9kcml2ZXJzL2dwdS9kcm0v
bWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRl
eCAwMDAwMDAwLi40NTVlNjJlCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dw
dS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bfb3ZsLmMKWy4uLl0KPiA+ICsvKioKPiA+ICsgKiBzdHJ1
Y3QgbXRrX2Rpc3Bfb3ZsIC0gRElTUF9PVkwgZHJpdmVyIHN0cnVjdHVyZQo+ID4gKyAqIEBkZHBf
Y29tcCAtIHN0cnVjdHVyZSBjb250YWluaW5nIHR5cGUgZW51bSBhbmQgaGFyZHdhcmUgcmVzb3Vy
Y2VzCj4gPiArICogQGRybV9kZXZpY2UgLSBiYWNrbGluayB0byBhbGxvdyB0aGUgaXJxIGhhbmRs
ZXIgdG8gZmluZCB0aGUgYXNzb2NpYXRlZCBjcnRjCj4gPiArICovCj4gPiArc3RydWN0IG10a19k
aXNwX292bCB7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGRwX2NvbXAgICAgICAgICAgICAgZGRw
X2NvbXA7Cj4gPiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICAgICAgICAgICAgICAgKmRybV9k
ZXY7Cj4gCj4gU3RvcmluZyB0aGUgY3J0YyBoZXJlIHdvdWxkIGJlIG1vcmUgY29uc2lzdGVudCB3
aXRoIHRoZSBjb21tZW50IGFib3ZlLgoKT2suCgo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGly
cXJldHVybl90IG10a19kaXNwX292bF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQp
Cj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2Rpc3Bfb3ZsICpwcml2ID0gZGV2X2lkOwo+
ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2RkcF9jb21wICpvdmwgPSAmcHJpdi0+ZGRwX2NvbXA7Cj4g
PiArCj4gPiArICAgICAgIC8qIENsZWFyIGZyYW1lIGNvbXBsZXRpb24gaW50ZXJydXB0ICovCj4g
PiArICAgICAgIHdyaXRlbCgweDAsIG92bC0+cmVncyArIERJU1BfUkVHX09WTF9JTlRTVEEpOwo+
ID4gKwo+ID4gKyAgICAgICBtdGtfY3J0Y19kZHBfaXJxKHByaXYtPmRybV9kZXYsIG92bCk7Cj4g
Cj4gTGlrZXdpc2UsIHBhc3NpbmcgdGhlIGNydGMgaGVyZSB3b3VsZCBiZSBhIGJpdCBtb3JlIGNv
bnNpc3RlbnQgd2l0aCB0aGUgbmFtZQo+IG9mIHRoaXMgZnVuY3Rpb24gbXRrX2NydGNfZGRwX2ly
cSgpLiAgQWxzbywgc2VlIGJlbG93OyBpZiB0aGUgQ1JUQyBpcyBub3QgZm91bmQsCj4gd2UgY2Fu
IHJldHVybiBJUlFfTk9ORSBoZXJlIHRvIGluZGljYXRlIHRoYXQgdGhpcyB3YXMgYSBzcHVyaW91
cwo+ICh1bmhhbmRsZWQpIGludGVycnVwdC4KCk9rLgoKPiA+ICsKPiA+ICsgICAgICAgcmV0dXJu
IElSUV9IQU5ETEVEOwo+ID4gK30KPiAKPiBbc25pcC4uLl0KPiAKPiA+ICtzdGF0aWMgdm9pZCBt
dGtfb3ZsX2xheWVyX2NvbmZpZyhzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLCB1bnNpZ25lZCBp
bnQgaWR4LAo+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnN0YXRl
KQo+ID4gK3sKPiA+ICsgICAgICAgc3RydWN0IG10a19wbGFuZV9wZW5kaW5nX3N0YXRlICpwZW5k
aW5nID0gJnN0YXRlLT5wZW5kaW5nOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgYWRkciA9IHBl
bmRpbmctPmFkZHI7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBwaXRjaCA9IHBlbmRpbmctPnBp
dGNoICYgMHhmZmZmOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgZm10ID0gcGVuZGluZy0+Zm9y
bWF0Owo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gKHBlbmRpbmctPnkgPDwgMTYp
IHwgcGVuZGluZy0+eDsKPiA+ICsgICAgICAgdW5zaWduZWQgaW50IHNyY19zaXplID0gKHBlbmRp
bmctPmhlaWdodCA8PCAxNikgfCBwZW5kaW5nLT53aWR0aDsKPiA+ICsgICAgICAgdW5zaWduZWQg
aW50IGNvbjsKPiA+ICsKPiA+ICsgICAgICAgY29uID0gaGFzX3JiX3N3YXBwZWQoZm10KSA8PCAy
NCB8IG92bF9mbXRfY29udmVydChmbXQpIDw8IDEyOwo+IAo+IFNpbmNlIGhhc19yYl9zd2FwcGVk
KCkgYW5kIG92bF9mbXRfY29udmVydCgpIGNhbiB0aGVvcmV0aWNhbGx5IGZhaWwsIGJ1dCB3ZQo+
IGNhbid0IGZhaWwgaGVyZSBkdXJpbmcgLmxheWVyX2NvbmZpZywgY2FuIHdlIGluc3RlYWQgZG8g
dGhpcyBpbiBhbiBhdG9taWMgc3RhdGUKPiBjaGVjayBwaGFzZSwgYW5kIGp1c3Qgc3RvcmUgdGhl
IHJlc3VsdGluZyAuaGFzX3JiX3N3YXBwZWQgYW5kIC5vdmxfaW5mbXQgdmFsdWVzCj4gdG8gbXRr
X3BsYW5lX3BlbmRpbmdfc3RhdGUgZm9yIGxhdGVyIGFwcGxpY2F0aW9uIGR1cmluZyAubGF5ZXJf
Y29uZmlnPwoKSSdkIHJhdGhlciBrZWVwIHRoZSBPVkwgc3BlY2lmaWMgYml0ZmllbGRzIGNvbnRh
aW5lZCBpbiBtdGtfZGlzcF9vdmwuYwppbiBjYXNlIHdlIHdhbnQgdG8gdXNlIFJETUEgcGxhbmVz
IGxhdGVyLgoKQnV0IEkgY2FuIGNoYW5nZSB0aGUgY29udmVyc2lvbiBmdW5jdGlvbnMgbm90IHRv
IHRocm93IGFuIGVycm9yIGFuZCBtb3ZlCnRoZSBjaGVjayB1cCBpbnRvIHRoZSBhdG9taWMgcGxh
bmUgY2hlY2sgY29kZS4KCj4gPiArICAgICAgIGlmIChpZHggIT0gMCkKPiA+ICsgICAgICAgICAg
ICAgICBjb24gfD0gT1ZMX0FFTiB8IE9WTF9BTFBIQTsKPiA+ICsKPiA+ICsgICAgICAgd3JpdGVs
KGNvbiwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9DT04oaWR4KSk7Cj4gPiArICAgICAgIHdy
aXRlbChwaXRjaCwgY29tcC0+cmVncyArIERJU1BfUkVHX09WTF9QSVRDSChpZHgpKTsKPiA+ICsg
ICAgICAgd3JpdGVsKHNyY19zaXplLCBjb21wLT5yZWdzICsgRElTUF9SRUdfT1ZMX1NSQ19TSVpF
KGlkeCkpOwo+ID4gKyAgICAgICB3cml0ZWwob2Zmc2V0LCBjb21wLT5yZWdzICsgRElTUF9SRUdf
T1ZMX09GRlNFVChpZHgpKTsKPiA+ICsgICAgICAgd3JpdGVsKGFkZHIsIGNvbXAtPnJlZ3MgKyBE
SVNQX1JFR19PVkxfQUREUihpZHgpKTsKPiAKPiBDYW4gdGhlIGFib3ZlIGFsbCBiZSB3cml0ZWxf
cmVsYXhlZCgpID8KClllcy4KClsuLi5dCj4gPiArc3RhdGljIGludCBtdGtfY3J0Y19kZHBfaHdf
aW5pdChzdHJ1Y3QgbXRrX2RybV9jcnRjICptdGtfY3J0YykKPiA+ICt7ClsuLi5dCj4gPiArICAg
ICAgIG10a19kaXNwX211dGV4X2FkZF9jb21wKG10a19jcnRjLT5tdXRleCwgbXRrX2NydGMtPmRk
cF9jb21wW2ldLT5pZCk7Cj4gPiArICAgICAgIG10a19kaXNwX211dGV4X2VuYWJsZShtdGtfY3J0
Yy0+bXV0ZXgpOwo+ID4gKwo+ID4gKyAgICAgICBEUk1fREVCVUdfRFJJVkVSKCJkZHBfZGlzcF9w
YXRoX3Bvd2VyX29uICVkeCVkXG4iLCB3aWR0aCwgaGVpZ2h0KTsKPiAKPiBJIHRoaW5rIHRoaXMg
ZGVidWcgbWVzc2FnZSBpcyBub3cgc3RhbGU/CgpJJ2xsIHJlbW92ZSBpdC4KClsuLi5dCj4gPiAr
dm9pZCBtdGtfZHJtX2NydGNfY2hlY2tfZmx1c2goc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4g
K3sKPiA+ICsgICAgICAgc3RydWN0IG10a19kcm1fY3J0YyAqbXRrX2NydGMgPSB0b19tdGtfY3J0
YyhjcnRjKTsKPiA+ICsgICAgICAgaW50IGk7Cj4gPiArCj4gPiArICAgICAgIGlmIChtdGtfY3J0
Yy0+ZG9fZmx1c2gpIHsKPiA+ICsgICAgICAgICAgICAgICBpZiAobXRrX2NydGMtPmV2ZW50KQo+
ID4gKyAgICAgICAgICAgICAgICAgICAgICAgbXRrX2NydGMtPnBlbmRpbmdfbmVlZHNfdmJsYW5r
ID0gdHJ1ZTsKPiA+ICsgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgT1ZMX0xBWUVSX05S
OyBpKyspIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcGxhbmUgKnBs
YW5lID0gJm10a19jcnRjLT5wbGFuZXNbaV0uYmFzZTsKPiA+ICsgICAgICAgICAgICAgICAgICAg
ICAgIHN0cnVjdCBtdGtfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ID4gKwo+ID4gKyAgICAg
ICAgICAgICAgICAgICAgICAgcGxhbmVfc3RhdGUgPSB0b19tdGtfcGxhbmVfc3RhdGUocGxhbmUt
PnN0YXRlKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFuZV9zdGF0ZS0+cGVu
ZGluZy5kaXJ0eSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9z
dGF0ZS0+cGVuZGluZy5jb25maWcgPSB0cnVlOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwbGFuZV9zdGF0ZS0+cGVuZGluZy5kaXJ0eSA9IGZhbHNlOwo+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgfQo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICsgICAgICAgICAgICAg
ICBtdGtfY3J0Yy0+cGVuZGluZ19wbGFuZXMgPSB0cnVlOwo+IAo+IE9ubHkgc2V0IHBlbmRpbmdf
cGxhbmVzIGlzIHRydWUgaWZmIGF0IGxlYXN0IDEgb2YgdGhlIG92bCB3YXMKPiBwZW5kaW5nLmRp
cnR5LCByaWdodD8KClJpZ2h0LgoKWy4uLl0KPiA+ICtzdGF0aWMgdm9pZCBtdGtfZHJtX2NydGNf
YXRvbWljX2ZsdXNoKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0
ZSkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZHJtX2NydGMgKm10a19jcnRjID0gdG9f
bXRrX2NydGMoY3J0Yyk7Cj4gPiArCj4gPiArICAgICAgIG10a19jcnRjLT5kb19mbHVzaCA9IHRy
dWU7Cj4gPiArICAgICAgIG10a19kcm1fY3J0Y19jaGVja19mbHVzaChjcnRjKTsKPiAKPiBJIGNh
bid0IGZpZ3VyZSBvdXQgaG93IHRoaXMgaXMgc3VwcG9zZWQgdG8gd29yay4KPiBtdGtfZHJtX2Ny
dGNfY2hlY2tfZmx1c2goKSBvbmx5IGRvZXMgc29tZXRoaW5nIGlmIGRvX2ZsdXNoIGlzIHNldC4K
PiBBbmQsIGRvX2ZsdXNoIGlzIG9ubHkgc2V0IGhlcmUgaW4gbXRrX2RybV9jcnRjX2F0b21pY19m
bHVzaCgpLCBqdXN0Cj4gYWJvdmUgbXRrX2RybV9jcnRjX2NoZWNrX2ZsdXNoKCksIGFuZCBpdCBp
cyBjbGVhcmVkIGJ5IHRoYXQgZnVuY3Rpb24uCj4gCj4gU28sIHdoeSBkbyB3ZSBhbHNvIGNhbGwg
bXRrX2RybV9jcnRjX2NoZWNrX2ZsdXNoKCkgZnJvbQo+IG10a19wbGFuZV9hdG9taWNfdXBkYXRl
KCk/Cj4gSW4gd2hhdCBjb25kaXRpb24gd2lsbCB0aGUgY2FsbCB0byBtdGtfZHJtX2NydGNfY2hl
Y2tfZmx1c2goKSBmcm9tCj4gbXRrX3BsYW5lX2F0b21pY191cGRhdGUoKSBoYXZlIGRvX2ZsdXNo
ID09IHRydWU/CgpIbSwgbWUgbmVpdGhlci4gV2l0aCB0aGUgQ01EUSB1cGRhdGUgdGhpcyB3aWxs
IGFsbCB2YW5pc2ggYW55d2F5LiBJJ2xsCmNoZWNrIGlmIEkgY2FuIGp1c3QgbWVyZ2UgdGhpcyBp
bnRvIG10a19kcm1fY3J0Y19hdG9taWNfZmx1c2goKSBhbmQgZ2V0CnJpZCBvZiB0aGUgY2FsbCBm
cm9tIG10a19wbGFuZV9hdG9taWNfdXBkYXRlKCkuCgpbLi4uXQo+ID4gK3ZvaWQgbXRrX2NydGNf
ZGRwX2lycShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rldiwgc3RydWN0IG10a19kZHBfY29tcCAq
b3ZsKQo+ID4gK3sKPiA+ICsgICAgICAgc3RydWN0IG10a19kcm1fcHJpdmF0ZSAqcHJpdiA9IGRy
bV9kZXYtPmRldl9wcml2YXRlOwo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX2RybV9jcnRjICptdGtf
Y3J0YzsKPiA+ICsgICAgICAgc3RydWN0IG10a19jcnRjX3N0YXRlICpzdGF0ZTsKPiA+ICsgICAg
ICAgdW5zaWduZWQgaW50IGk7Cj4gPiArCj4gPiArICAgICAgIG10a19jcnRjID0gbXRrX2NydGNf
Ynlfc3JjX2NvbXAocHJpdiwgb3ZsKTsKPiAKPiBIbW0uICBDYW4gd2UgZG8gdGhpcyBsb29rdXAg
b25jZSBhbmQgc3RvcmUgaXQgc29tZXdoZXJlIHRvIGF2b2lkIHRoaXMKPiBsb29rdXAgZHVyaW5n
IGV2ZXJ5IElSUT8KClllcy4gSSdsbCBzdG9yZSB0aGUgY3J0YyBpbiBtdGtfZGlzcF9vdmwgYXMg
eW91IHN1Z2dlc3RlZCBhYm92ZS4KCj4gPiArICAgICAgIGlmIChXQVJOX09OKCFtdGtfY3J0Yykp
Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+IAo+IEkgdGhpbmsgdGhlIHR5cGljYWwgdGhp
bmcgdG8gZG8gaWYgd2UgY2FuJ3QgaGFuZGxlIGFuIGludGVycnVwdCBpcyB0bwo+IHJldHVybiBJ
UlFfTk9ORSwgc28gdGhhdCBpdCBjYW4gYmUgdHJhY2tlZCBieSB0aGUga2VybmVsJ3Mgc3B1cmlv
dXMKPiBpbnRlcnJ1cHQgaW5mcmFzdHJ1Y3R1cmUuICBXZSBjYW4gcHJvYmFibHkgcmVtb3ZlIHRo
ZSBXQVJOX09OLCB0b28uCgpBY2suCgpbLi4uXQo+ID4gKyAgICAgICBpZiAobXRrX2NydGMtPnBl
bmRpbmdfcGxhbmVzKSB7Cj4gPiArICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IE9WTF9M
QVlFUl9OUjsgaSsrKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Bs
YW5lICpwbGFuZSA9ICZtdGtfY3J0Yy0+cGxhbmVzW2ldLmJhc2U7Cj4gPiArICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgbXRrX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiA+ICsKPiA+
ICsgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX3N0YXRlID0gdG9fbXRrX3BsYW5lX3N0YXRl
KHBsYW5lLT5zdGF0ZSk7Cj4gPiArCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocGxh
bmVfc3RhdGUtPnBlbmRpbmcuY29uZmlnKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghcGxhbmVfc3RhdGUtPnBlbmRpbmcuZW5hYmxlKQo+ID4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10a19kZHBfY29tcF9sYXllcl9vZmYob3ZsLCBp
KTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRrX2RkcF9jb21w
X2xheWVyX2NvbmZpZyhvdmwsIGksIHBsYW5lX3N0YXRlKTsKPiA+ICsKPiA+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBsYW5lX3N0YXRlLT5wZW5kaW5nLmVuYWJsZSkKPiA+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGtfZGRwX2NvbXBfbGF5
ZXJfb24ob3ZsLCBpKTsKPiAKPiAubGF5ZXJfb2ZmKCkgYW5kIC5sYXllcl9vbigpIGFyZSByZWR1
bmRhbnQsIGFuZCBjYW4ganVzdCBiZSBoYW5kbGVkIGluc2lkZQo+IC5sYXllcl9jb25maWcoKSwg
c2luY2Ugd2UgcGFzcyBwbGFuZV9zdGF0ZSB0byAubGF5ZXJfY29uZmlnKCkgYW55d2F5Lgo+IAo+
IFRoYXQgd2lsbCBhbHNvIGJlIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LCBzaW5jZSB0aGUgbXRr
X2RkcF9jb21wX2xheWVyKigpIHdpbGwKPiB0aGVuIGFsbCBiZSBzdGF0aWMgZnVuY3Rpb25zIGlu
IHRoZSBzYW1lIGZpbGUgYW5kIG9uL29mZiBjYW4gYmUgaW5saW5lZC4KCk9rLgoKWy4uLl0KPiA+
ICtzdGF0aWMgc3RydWN0IG10a19kZHBfY29tcF9tYXRjaCBtdGtfZGRwX21hdGNoZXNbRERQX0NP
TVBPTkVOVF9JRF9NQVhdID0gewo+IAo+IHN0YXRpYyBjb25zdCBzdHJ1Y3QgLi4uCgpPay4KClsu
Li5dCj4gPiAraW50IG10a19kZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0
IGRldmljZV9ub2RlICpub2RlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtdGtf
ZGRwX2NvbXAgKmNvbXAsIGVudW0gbXRrX2RkcF9jb21wX2lkIGNvbXBfaWQsCj4gPiArICAgICAg
ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyAqZnVuY3MpCj4g
PiArewpbLi4uXQo+ID4gKyAgICAgICBsYXJiX25vZGUgPSBvZl9wYXJzZV9waGFuZGxlKG5vZGUs
ICJtZWRpYXRlayxsYXJiIiwgMCk7Cj4gCj4gTmVlZCB0byBjYWxsIG9mX25vZGVfcHV0KCkgZm9y
IGxhcmJfbm9kZSBzb21ld2hlcmUuCgpPay4KClsuLi5dCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy
cy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZmIuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl
ay9tdGtfZHJtX2ZiLmgKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAw
Li5hODljN2FmCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVk
aWF0ZWsvbXRrX2RybV9mYi5oCj4gPiBAQCAtMCwwICsxLDI5IEBAClsuLi5dCj4gPiArI2RlZmlu
ZSBNQVhfRkJfT0JKICAgICAzCj4gCj4gUmVtb3ZlIGZyb20gdGhpcyBwYXRjaAoKT2suCgo+ID4g
Kwo+ID4gK3N0cnVjdCBkcm1fZ2VtX29iamVjdCAqbXRrX2ZiX2dldF9nZW1fb2JqKHN0cnVjdCBk
cm1fZnJhbWVidWZmZXIgKmZiKTsKPiA+ICtpbnQgbXRrX2ZiX3dhaXQoc3RydWN0IGRybV9mcmFt
ZWJ1ZmZlciAqZmIpOwo+ID4gK3N0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm10a19kcm1fbW9kZV9m
Yl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlLAo+ID4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX21v
ZGVfZmJfY21kMiAqY21kKTsKPiA+ICsKPiA+ICt2b2lkIG10a19kcm1fbW9kZV9vdXRwdXRfcG9s
bF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gK2ludCBtdGtfZmJkZXZfY3Jl
YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gK3ZvaWQgbXRrX2ZiZGV2X2Rlc3Ryb3ko
c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gCj4gUmVtb3ZlIHRoZXNlIGxhc3QgdGhyZWUgZnVu
Y3Rpb24gcHJvdG90eXBlcyBmcm9tIHRoaXMgcGF0Y2guCgpPay4KClsuLi5dCj4gPiBkaWZmIC0t
Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZ2VtLmMgYi9kcml2ZXJzL2dw
dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9nZW0uYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+
IGluZGV4IDAwMDAwMDAuLjk2Y2M5ODAKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZl
cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2dlbS5jCj4gPiBAQCAtMCwwICsxLDIyNyBAQApb
Li4uXQo+ID4gK3N0YXRpYyBzdHJ1Y3QgbXRrX2RybV9nZW1fb2JqICptdGtfZHJtX2dlbV9pbml0
KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUpCj4gCj4gbml0OiBJIHRoaW5r
IHRoZXNlICJzaXplIGluIGJ5dGVzIiBwYXJhbWV0ZXJzIHNob3VsZCB1c2Ugc2l6ZV90LgoKT2su
CgpbLi4uXQo+ID4gK3N0cnVjdCBtdGtfZHJtX2dlbV9vYmogKm10a19kcm1fZ2VtX2NyZWF0ZShz
dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgYm9vbCBhbGxvY19rbWFwKQo+ID4gK3sK
Wy4uLl0KPiA+ICsgICAgICAgbXRrX2dlbS0+Y29va2llID0gZG1hX2FsbG9jX2F0dHJzKGRldi0+
ZGV2LCBvYmotPnNpemUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkbWFf
YWRkcl90ICopJm10a19nZW0tPmRtYV9hZGRyLCBHRlBfS0VSTkVMLAo+IAo+IENhc3QgaGVyZSBp
cyBub3QgbmVjZXNzYXJ5LCBzaW5jZSBkbWFfYWRkciBpcyBkbWFfYWRkcl90LgoKT2suCgo+ID4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbXRrX2dlbS0+ZG1hX2F0dHJzKTsKPiA+
ICsgICAgICAgaWYgKCFtdGtfZ2VtLT5jb29raWUpIHsKPiA+ICsgICAgICAgICAgICAgICBEUk1f
RVJST1IoImZhaWxlZCB0byBhbGxvY2F0ZSAlenggYnl0ZSBkbWEgYnVmZmVyIiwgb2JqLT5zaXpl
KTsKPiA+ICsgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOwo+ID4gKyAgICAgICAgICAgICAg
IGdvdG8gZXJyX2dlbV9mcmVlOwo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIGlmIChh
bGxvY19rbWFwKQo+ID4gKyAgICAgICAgICAgICAgIG10a19nZW0tPmt2YWRkciA9IG10a19nZW0t
PmNvb2tpZTsKPiA+ICsKPiA+ICsgICAgICAgRFJNX0RFQlVHX0RSSVZFUigiY29va2llID0gJXAg
ZG1hX2FkZHIgPSAlcGFkXG4iLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIG10a19nZW0t
PmNvb2tpZSwgJm10a19nZW0tPmRtYV9hZGRyKTsKPiAKPiBQcmludCBzaXplIHRvby4KCk9rLgoK
Wy4uLl0KPiA+ICtpbnQgbXRrX2RybV9nZW1fZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpm
aWxlX3ByaXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKQo+ID4gK3sKPiA+ICsg
ICAgICAgc3RydWN0IG10a19kcm1fZ2VtX29iaiAqbXRrX2dlbTsKPiA+ICsgICAgICAgaW50IHJl
dDsKPiA+ICsKPiA+ICsgICAgICAgYXJncy0+cGl0Y2ggPSBhcmdzLT53aWR0aCAqIERJVl9ST1VO
RF9VUChhcmdzLT5icHAsIDgpOwo+IAo+IFBlcmhhcHMgdGhpcyBtb3JlIGNvcnJlY3RseSBhbGln
bnMgdGhlIHBpdGNoICh0aGlzIGlzIHdoYXQgY21hIGRvZXMpOgo+ICAgYXJncy0+cGl0Y2ggPSBE
SVZfUk9VTkRfVVAoYXJncy0+d2lkdGggKiBhcmdzLT5icHAsIDgpOwoKT2suCgpbLi4uXQo+ID4g
K2ludCBtdGtfZHJtX2dlbV9kdW1iX21hcF9vZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlX3By
aXYsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZGV2aWNl
ICpkZXYsIHVpbnQzMl90IGhhbmRsZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDY0X3QgKm9mZnNldCkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBkcm1fZ2VtX29i
amVjdCAqb2JqOwo+ID4gKyAgICAgICBpbnQgcmV0Owo+ID4gKwo+IAo+IFRoZSBjbWEgaGVscGVy
IGxvY2tzIHN0cnVjdF9tdXRleCBoZXJlLgoKU2VlIGNvbW1pdCAxNDE1MThiNjRmNjEgKCJkcm0v
Y21hLWhlbHBlcjogRG9uJ3QgZ3JhYiBkZXYtPnN0cnVjdF9tdXRleApmb3IgaW4gbW1hcCBvZmZz
ZXQgaW9jdGwiKQoKWy4uLl0KPiA+ICsvKgo+ID4gKyAqIEFsbG9jYXRlIGEgc2dfdGFibGUgZm9y
IHRoaXMgR0VNIG9iamVjdC4KPiA+ICsgKiBOb3RlOiBCb3RoIHRoZSB0YWJsZSdzIGNvbnRlbnRz
LCBhbmQgdGhlIHNnX3RhYmxlIGl0c2VsZiBtdXN0IGJlIGZyZWVkIGJ5Cj4gPiArICogICAgICAg
dGhlIGNhbGxlci4KPiA+ICsgKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV3bHkgYWxsb2Nh
dGVkIHNnX3RhYmxlLCBvciBhbiBFUlJfUFRSKCkgZXJyb3IuCj4gPiArICovCj4gPiArc3RydWN0
IHNnX3RhYmxlICptdGtfZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9vYmpl
Y3QgKm9iaikKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZHJtX2dlbV9vYmogKm10a19n
ZW0gPSB0b19tdGtfZ2VtX29iaihvYmopOwo+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAq
ZHJtID0gb2JqLT5kZXY7Cj4gPiArICAgICAgIHN0cnVjdCBzZ190YWJsZSAqc2d0Owo+ID4gKyAg
ICAgICBpbnQgcmV0Owo+ID4gKwo+ID4gKyAgICAgICBzZ3QgPSBremFsbG9jKHNpemVvZigqc2d0
KSwgR0ZQX0tFUk5FTCk7Cj4gPiArICAgICAgIGlmICghc2d0KQo+ID4gKyAgICAgICAgICAgICAg
IHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ID4gKwo+ID4gKyAgICAgICByZXQgPSBkbWFfZ2V0
X3NndGFibGVfYXR0cnMoZHJtLT5kZXYsIHNndCwgbXRrX2dlbS0+Y29va2llLAo+ID4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRrX2dlbS0+ZG1hX2FkZHIsIG9iai0+c2l6
ZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtdGtfZ2VtLT5kbWFf
YXR0cnMpOwo+ID4gKyAgICAgICBpZiAocmV0KSB7Cj4gPiArICAgICAgICAgICAgICAgRFJNX0VS
Uk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgc2d0LCAlZFxuIiwgcmV0KTsKPiA+ICsgICAgICAgICAg
ICAgICBrZnJlZShzZ3QpOwo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKHJldCk7
Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgcmV0dXJuIHNndDsKPiA+ICt9Cj4gCj4g
RG8gd2UgYWxzbyB3YW50IGEgcHJpbWVfaW1wb3J0X3NnX3RhYmxlKCkgaGVyZSBmb3IgaW1wb3J0
aW5nIGZvcmVpZ24gYWxsb2NhdGVkCj4gZG1hIGJ1ZnMgZm9yIGRpc3BsYXk/CgpJJ2xsIGluY2x1
ZGUgdGhlIHBhdGNoIGJ5IE1hbyBIdWFuZyBuZXh0IHJvdW5kLgoKWy4uLl0KPiA+IGRpZmYgLS1n
aXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jIGIvZHJpdmVycy9n
cHUvZHJtL21lZGlhdGVrL210a19kcm1fcGxhbmUuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK
PiA+IGluZGV4IDAwMDAwMDAuLmU5YjZiZjYKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2Ry
aXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX3BsYW5lLmMKPiA+IEBAIC0wLDAgKzEsMjQy
IEBAClsuLi5dCj4gPiArc3RhdGljIHZvaWQgbXRrX3BsYW5lX2VuYWJsZShzdHJ1Y3QgbXRrX2Ry
bV9wbGFuZSAqbXRrX3BsYW5lLCBib29sIGVuYWJsZSwKPiA+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG1hX2FkZHJfdCBhZGRyLCBzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QpCj4gPiArewpb
Li4uXQo+ID4gKyAgICAgICBzdGF0ZS0+cGVuZGluZy5lbmFibGUgPSBlbmFibGU7Cj4gPiArICAg
ICAgIHN0YXRlLT5wZW5kaW5nLnBpdGNoID0gcGl0Y2g7Cj4gPiArICAgICAgIHN0YXRlLT5wZW5k
aW5nLmZvcm1hdCA9IGZvcm1hdDsKPiA+ICsgICAgICAgc3RhdGUtPnBlbmRpbmcuYWRkciA9IGFk
ZHI7Cj4gPiArICAgICAgIHN0YXRlLT5wZW5kaW5nLnggPSB4Owo+ID4gKyAgICAgICBzdGF0ZS0+
cGVuZGluZy55ID0geTsKPiA+ICsgICAgICAgc3RhdGUtPnBlbmRpbmcud2lkdGggPSBkZXN0LT54
MiAtIGRlc3QtPngxOwo+ID4gKyAgICAgICBzdGF0ZS0+cGVuZGluZy5oZWlnaHQgPSBkZXN0LT55
MiAtIGRlc3QtPnkxOwo+IAo+IHdtYigpOyA/Cj4gCj4gQlRXLCBpdCBpcyBhIGdvb2QgaWRlYSB0
byBkb2N1bWVudCBhbGwgd21iKCkgY2FsbHMuCj4gSWYgeW91IGZvcmdldCwgSSBiZWxpZXZlIGNo
ZWNrcGF0Y2gucGwgd2lsbCByZW1pbmQgeW91LgoKT2suCgo+IFRoYXQncyBpdCEKCnRoYW5rcwpQ
aGlsaXBwCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk
cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0
cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=