From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Subject: RE: [PATCH 1/2] drm/fsl-dcu: Add HDMI driver for freescale DCU Date: Sun, 12 Jun 2016 15:00:35 -0700 Message-ID: <6c515eb9a401523fb1bf6c9211cd44d5@agner.ch> References: <1463301285-48584-1-git-send-email-meng.yi@nxp.com> <89d9a0708f974e9c89294bb84244a0b2@agner.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kmu-office.ch (mail.kmu-office.ch [IPv6:2a02:418:6a02::a2]) by gabe.freedesktop.org (Postfix) with ESMTPS id D457E6E399 for ; Sun, 12 Jun 2016 22:04:44 +0000 (UTC) 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: Meng Yi Cc: Jianwei Wang , Xiubo Li , Huan Wang , emil.l.velikov@gmail.com, dri-devel@lists.freedesktop.org, maxime.ripard@free-electrons.com, alexander.stein@systec-electronic.com List-Id: dri-devel@lists.freedesktop.org T24gMjAxNi0wNi0xMSAxODo1NSwgTWVuZyBZaSB3cm90ZToKPiBIaSBTdGVmYW4sCj4gCj4gVGhh bmtzIGZvciB5b3VyIGNvbW1lbnRzLCBhbmQgc29tZSBmZWVkYmFjayBiZWxvdzoKPiAKPj4gPiAr Cj4+ID4gKyNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Cj4+ID4gKyNpbmNsdWRlIDxsaW51eC9k ZWxheS5oPgo+PiA+ICsjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KPj4gPiArI2luY2x1ZGUgPGxp bnV4L2ZiLmg+Cj4+ID4gKyNpbmNsdWRlIDxsaW51eC9mc2xfZGV2aWNlcy5oPgo+PiA+ICsjaW5j bHVkZSA8bGludXgvaTJjLmg+Cj4+Cj4+IEkgdGhpbmsgeW91IGRvbid0IHVzZSBpMmMgaGVyZSBh bnltb3JlLCBzbyB0aGlzIGluY2x1ZGUgKGFuZCBwcm9iYWJseSBhIGxvdAo+PiBvdGhlcnMpIGFy ZSBvYnNvbGV0ZS4KPj4KPiAKPiBXaWxsIGNoYW5nZSB0aGF0IGluIG5leHQgdmVyc2lvbi4KPiAK Pj4gPiArI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KPj4gPiArI2luY2x1ZGUgPGxpbnV4L2ludGVy cnVwdC5oPgo+PiA+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4+ID4gKyNpbmNsdWRlIDxs aW51eC9tb2R1bGUuaD4KPj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+PiA+ICsj aW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+Cj4+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9ncmFw aC5oPgo+PiA+ICsjaW5jbHVkZSA8dmlkZW8vdmlkZW9tb2RlLmg+Cj4+ID4gKyNpbmNsdWRlIDx2 aWRlby9vZl9kaXNwbGF5X3RpbWluZy5oPgo+PiA+ICsKPj4gPiArI2luY2x1ZGUgPGRybS9kcm1Q Lmg+Cj4+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPj4gPiArI2luY2x1 ZGUgPGRybS9kcm1fZW5jb2Rlcl9zbGF2ZS5oPgo+PiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9jcnRj X2hlbHBlci5oPgo+PiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4+ID4gKwo+PiA+ICsj aW5jbHVkZSAiZnNsX2RjdV9kcm1fZHJ2LmgiCj4+ID4gKyNpbmNsdWRlICJmc2xfZGN1X2RybV9v dXRwdXQuaCIKPj4gPiArCj4+ID4gK3N0YXRpYyB2b2lkCj4+ID4gK2ZzbF9kY3VfZHJtX2hkbWll bmNfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+PiA+ICsJCQkJCSBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPj4gPiArCQkJCQkgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUKPj4gKmFkanVzdGVkX21vZGUpIHsgfQo+PiA+ICsKPj4gPiArc3RhdGljIGludAo+PiA+ ICtmc2xfZGN1X2RybV9oZG1pZW5jX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCj4+ID4gKwkJCQkgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiA+ ICsJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKSB7Cj4+ID4gKwly ZXR1cm4gMDsKPj4gPiArfQo+PiA+ICsKPj4gPiArc3RhdGljIHZvaWQKPj4gPiArZnNsX2RjdV9k cm1faGRtaWVuY19kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikgeyB9Cj4+ID4g Kwo+PiA+ICtzdGF0aWMgdm9pZAo+PiA+ICtmc2xfZGN1X2RybV9oZG1pZW5jX2VuYWJsZShzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpIHsgfQo+PiA+ICsKPj4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgZW5jb2Rlcl9oZWxwZXJfZnVuY3MgPSB7Cj4+ ID4gKwkuYXRvbWljX2NoZWNrID0gZnNsX2RjdV9kcm1faGRtaWVuY19hdG9taWNfY2hlY2ssCj4+ ID4gKwkuZGlzYWJsZSA9IGZzbF9kY3VfZHJtX2hkbWllbmNfZGlzYWJsZSwKPj4gPiArCS5lbmFi bGUgPSBmc2xfZGN1X2RybV9oZG1pZW5jX2VuYWJsZSwKPj4gPiArCS5tb2RlX3NldCA9IGZzbF9k Y3VfZHJtX2hkbWllbmNfbW9kZV9zZXQsIH07Cj4+ID4gKwo+PiA+ICtzdGF0aWMgdm9pZCBmc2xf ZGN1X2RybV9oZG1pZW5jX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+PiA+ ICt7Cj4+ID4gKwlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+PiA+ICt9Cj4+ID4gKwo+ PiA+ICt2b2lkIGZzbF9kY3VfZHJtX2hkbWllbmNfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKSB7IH0KPj4gPiArCj4+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJf ZnVuY3MgZW5jb2Rlcl9mdW5jcyA9IHsKPj4gPiArCS5yZXNldCA9IGZzbF9kY3VfZHJtX2hkbWll bmNfcmVzZXQsCj4+ID4gKwkuZGVzdHJveSA9IGZzbF9kY3VfZHJtX2hkbWllbmNfZGVzdHJveSwg fTsKPj4gPiArCj4+ID4gK2ludCBmc2xfZGN1X2RybV9oZG1pZW5jX2NyZWF0ZShzdHJ1Y3QgZnNs X2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2LAo+PiA+ICsJCQkgICAgICAgc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+PiA+ICt7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4+ID4g KwlpbnQgcmV0Owo+PiA+ICsKPj4gPiArCWRvIHsKPj4gPiArCQllbmNvZGVyID0gZGV2bV9remFs bG9jKGZzbF9kZXYtPmRldiwKPj4gPiArCQkJCQlzaXplb2Yoc3RydWN0IGRybV9lbmNvZGVyKSwK Pj4gR0ZQX0tFUk5FTCk7Cj4+ID4gKwkJZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSAxOwo+PiA+ ICsJCXJldCA9IGRybV9lbmNvZGVyX2luaXQoZnNsX2Rldi0+ZHJtLCBlbmNvZGVyLAo+PiAmZW5j b2Rlcl9mdW5jcywKPj4gPiArCQkJCSAgICAgICBEUk1fTU9ERV9FTkNPREVSX1RNRFMsIE5VTEwp Owo+PiA+ICsJCWlmIChyZXQgPCAwKSB7Cj4+ID4gKwkJCWRldm1fa2ZyZWUoZnNsX2Rldi0+ZGV2 LCBlbmNvZGVyKTsKPj4gPiArCQkJYnJlYWs7Cj4+ID4gKwkJfQo+PiA+ICsKPj4gPiArCQlkcm1f ZW5jb2Rlcl9oZWxwZXJfYWRkKGVuY29kZXIsICZlbmNvZGVyX2hlbHBlcl9mdW5jcyk7Cj4+ID4g KwkJZW5jb2Rlci0+Y3J0YyA9IGNydGM7Cj4+ID4gKwo+PiA+ICsJCXJldHVybiAwOwo+PiA+ICsJ fSB3aGlsZSAoZmFsc2UpOwo+Pgo+PiBOb3Qgc3VyZSB3aGVyZSB5b3UgaGF2ZSB0aGlzIGVycm9y IGhhbmRsaW5nIHN0eWxlIGZyb20sIGJ1dCBpdCBpcyBkZWZpbml0ZWx5IG5vdAo+PiBjb21tb24g aW4gTGludXguIE11Y2ggbW9yZSBjb21tb24gaXMgdG8gaGF2ZSBhIGVycm9yIGhhbmRsaW5nIGF0 IHRoZSBlbmQgb2YKPj4gdGhlIGZ1bmN0aW9uIHdpdGggbGFiZWxzIGFuZCB1c2UgZ290byBzdGF0 ZW1lbnRzIGluIHRoZSBlcnJvciBjYXNlcyBhYm92ZSwgc2VlCj4+IENoYXB0ZXIgNzoKPj4gaHR0 cHM6Ly93d3cua2VybmVsLm9yZy9kb2MvRG9jdW1lbnRhdGlvbi9Db2RpbmdTdHlsZQo+Pgo+IAo+ IFNpbmNlIHRoZXJlIGFyZSBsb3RzIG9mIHJldHVybiB2YWx1ZSB0byBjaGVjaywgaWYgYW55IGVy cm9yIG9jY3VycywgaXQKPiB3aWxsIGp1bXAgb3V0IG9mIHdoaWxlIGxvb3AgYW5kIGhhbmRsZWQg aW4gdGhlIGVuZC4KPiBJIHRoaW5rIGl0IHdpbGwgYmUgdmVyYm9zZSB1c2luZyAiZ290byIgc3Rh dGVtZW50cy4KCkkgZG9uJ3QgYWdyZWUuIGVhY2ggYnJlYWsgd2lsbCBiZSBhIGdvdG8gc3RhdGVt ZW50LCBhbmQgeW91IGRvbid0IG5lZWQKdG8gY2hlY2sgcG9pbnRlcnMgYmVmb3JlIGZyZWVpbmcg dGhlbSBpbiB0aGUgZXJyb3IgaGFuZGxpbmcgcGFydCAoeW91Cm5lZWQgdG8gYWRkIGxhYmVscyB0 aG91Z2gpLiBBbHNvLCB5b3UgZG9uJ3QgbmVlZCBhIHdoaWxlIHN0YXRlbWVudC4gU28KY29kZSB3 aXNlIHlvdSBzaG91bGQgZ2V0IGEgbmV0IHplcm8gb3IgZXZlbiBzb21lIGxpbmVzIGxlc3MuIFlv dSBhbHNvCiJzYWZlIiBhIGluZGVudGlvbiBsZXZlbCB3aXRoIGdvdG8gc3R5bGUuCgpBbmQgbW9z dCBpbXBvcnRhbnRseSwgaXQgaXMgdGhlIGVycm9yIGhhbmRsaW5nIHN0eWxlIHVzZWQgYWNyb3Nz IHRoZQprZXJuZWwsIGFuZCBoZW5jZSBkb2N1bWVudGVkIGluIHRoZSBDb2RpbmdTdHlsZS50eHQg ZG9jdW1lbnQuLi4gU29ycnksCmlmIHlvdSB3YW50IHRoYXQgcGF0Y2ggYXBwbGllZCwgeW91IGRv bid0IGdldCB0byBjaG9vc2Ugd2hhdCB0byB1c2UuLi4KCi0tClN0ZWZhbgoKCj4gCj4+ID4gKwo+ PiA+ICsJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBoZG1pIGVuY29kZXJcbiIpOwo+ PiA+ICsJaWYgKGVuY29kZXIpCj4+ID4gKwkJZGV2bV9rZnJlZShmc2xfZGV2LT5kZXYsIGVuY29k ZXIpOwo+PiA+ICsKPj4gPiArCWNydGMtPmZ1bmNzLT5kZXN0cm95KGNydGMpOwo+PiA+ICsJcmV0 dXJuIHJldDsKPj4gPiArfQo+PiA+ICsKPj4gPiArc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAq ZnNsX2RjdV9kcm1faGRtaV9maW5kX2VuY29kZXIoc3RydWN0Cj4+ID4gZHJtX2RldmljZSAqZGV2 KQo+PiA+ICt7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4+ID4gKwo+PiA+ ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVy X2xpc3QsIGhlYWQpCj4+IHsKPj4gPiArCQlpZiAoZW5jb2Rlci0+ZW5jb2Rlcl90eXBlID09IERS TV9NT0RFX0VOQ09ERVJfVE1EUykKPj4gPiArCQkJcmV0dXJuIGVuY29kZXI7Cj4+ID4gKwl9Cj4+ ID4gKwo+PiA+ICsJcmV0dXJuIE5VTEw7Cj4+ID4gK30KPj4gPiArCj4+ID4gK2ludCBmc2xfZGN1 X2RybV9oZG1pZW5jX2F0dGFjaF9icmlkZ2Uoc3RydWN0IGZzbF9kY3VfZHJtX2RldmljZQo+PiA+ ICsqZnNsX2Rldikgewo+PiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBmc2xfZGV2 LT5kcm07Cj4+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4+ID4gKwlzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlOwo+PiA+ICsJaW50IHJldDsKPj4gPiArCXN0cnVjdCBkZXZpY2Vf bm9kZSAqZW50aXR5Owo+PiA+ICsJc3RydWN0IG9mX2VuZHBvaW50ICplcDsKPj4gPiArCXN0cnVj dCBkZXZpY2Vfbm9kZSAqZXBfbm9kZTsKPj4gPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFyZW50 ID0gZnNsX2Rldi0+ZGV2LT5vZl9ub2RlOwo+PiA+ICsKPj4gPiArCWRvIHsKPj4gPiArCQllcCA9 IGRldm1fa3phbGxvYyhmc2xfZGV2LT5kZXYsCj4+ID4gKwkJCQkJc2l6ZW9mKHN0cnVjdCBvZl9l bmRwb2ludCksCj4+IEdGUF9LRVJORUwpOwo+PiA+ICsJCWlmICghZXApCj4+ID4gKwkJCWJyZWFr Owo+PiA+ICsKPj4gPiArCQllcF9ub2RlID0gZGV2bV9remFsbG9jKGZzbF9kZXYtPmRldiwKPj4g PiArCQkJCQlzaXplb2Yoc3RydWN0IGRldmljZV9ub2RlKSwKPj4gR0ZQX0tFUk5FTCk7Cj4+ID4g KwkJaWYgKCFlcF9ub2RlKQo+PiA+ICsJCQlicmVhazsKPj4gPiArCj4+ID4gKwkJZXBfbm9kZSA9 IG9mX2dyYXBoX2dldF9uZXh0X2VuZHBvaW50KHBhcmVudCwgTlVMTCk7Cj4+ID4gKwkJaWYgKCFl cF9ub2RlKQo+PiA+ICsJCQlicmVhazsKPj4gPiArCj4+ID4gKwkJcmV0ID0gb2ZfZ3JhcGhfcGFy c2VfZW5kcG9pbnQoZXBfbm9kZSwgZXApOwo+PiA+ICsJCWlmIChyZXQgPCAwKSB7Cj4+ID4gKwkJ CW9mX25vZGVfcHV0KGVwX25vZGUpOwo+PiA+ICsJCQlicmVhazsKPj4gPiArCQl9Cj4+ID4gKwo+ PiA+ICsJCWVudGl0eSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQoZXAtPmxvY2Fs X25vZGUpOwo+PiA+ICsJCWlmICghZW50aXR5KQo+PiA+ICsJCQlicmVhazsKPj4gPiArCj4+ID4g KwkJYnJpZGdlID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGVudGl0eSk7Cj4+ID4gKwkJaWYgKCFicmlk Z2UpCj4+ID4gKwkJCWJyZWFrOwo+PiA+ICsKPj4gPiArCQllbmNvZGVyID0gZnNsX2RjdV9kcm1f aGRtaV9maW5kX2VuY29kZXIoZHJtX2Rldik7Cj4+ID4gKwkJaWYgKCFlbmNvZGVyKQo+PiA+ICsJ CQlicmVhazsKPj4gPiArCj4+ID4gKwkJZW5jb2Rlci0+YnJpZGdlID0gYnJpZGdlOwo+PiA+ICsJ CWJyaWRnZS0+ZW5jb2RlciA9IGVuY29kZXI7Cj4+ID4gKwo+PiA+ICsJCXJldCA9IGRybV9icmlk Z2VfYXR0YWNoKGRybV9kZXYsIGJyaWRnZSk7Cj4+ID4gKwkJaWYgKHJldCkKPj4gPiArCQkJYnJl YWs7Cj4+ID4gKwo+PiA+ICsJCXJldHVybiAwOwo+PiA+ICsJfSB3aGlsZSAoZmFsc2UpOwo+PiA+ ICsKPj4gPiArCURSTV9FUlJPUigiZmFpbGVkIHRvIGF0dGFjaCB0aGUgYnJpZGdlXG4iKTsKPj4g PiArCj4+ID4gKwlpZiAoZXApCj4+ID4gKwkJZGV2bV9rZnJlZShmc2xfZGV2LT5kZXYsIGVwKTsK Pj4gPiArCj4+ID4gKwlpZiAoZXBfbm9kZSkKPj4gPiArCQlkZXZtX2tmcmVlKGZzbF9kZXYtPmRl diwgZXBfbm9kZSk7Cj4+ID4gKwo+PiA+ICsJZW5jb2Rlci0+ZnVuY3MtPmRlc3Ryb3koZW5jb2Rl cik7Cj4+ID4gKwlyZXR1cm4gcmV0Owo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtNT0RVTEVfQVVUSE9S KCJOWFAgU2VtaWNvbmR1Y3RvciwgSW5jLiIpOwo+PiBNT0RVTEVfREVTQ1JJUFRJT04oIk5YUAo+ PiA+ICtMUzEwMjFBIERDVSBkcml2ZXIiKTsgTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+Pgo+PiBJ IGRvbid0IHRoaW5rIHRoaXMgaXMgYSBrZXJuZWwgbW9kdWxlIG9uIGl0cyBvd24sIGhlbmNlIHRo aXMgaXMgbm90IG5lZWRlZC4KPiAKPiBPSywgaXQgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgdmVy c2lvbi4KPiAKPj4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNs X2RjdV9kcm1fa21zLmMKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJt X2ttcy5jCj4+ID4gaW5kZXggYzU2NGVjNi4uYTdmZTFkMiAxMDA2NDQKPj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9rbXMuYwo+PiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2ttcy5jCj4+ID4gQEAgLTE3LDEwICsxNywyOSBA QAo+PiA+ICAjaW5jbHVkZSAiZnNsX2RjdV9kcm1fY3J0Yy5oIgo+PiA+ICAjaW5jbHVkZSAiZnNs X2RjdV9kcm1fZHJ2LmgiCj4+ID4KPj4gPiArYm9vbCBnX2VuYWJsZV9oZG1pOwo+Pgo+PiBXaGF0 IGlzIHRoZSBtZWFuaW5nIG9mIHRoZSBnXyBwcmVmaXg/Cj4+Cj4gCj4gSXQgbWVhbnMgZ2xvYmFs Lgo+IAo+PiA+ICsKPj4gPiArc3RhdGljIGludCBfX2luaXQgZW5hYmxlX2hkbWlfc2V0dXAoY2hh ciAqc3RyKSB7Cj4+ID4gKwlnX2VuYWJsZV9oZG1pID0gdHJ1ZTsKPj4gPiArCj4+ID4gKwlyZXR1 cm4gMTsKPj4gPiArfQo+PiA+ICsKPj4gPiArX19zZXR1cCgiaGRtaSIsIGVuYWJsZV9oZG1pX3Nl dHVwKTsKPj4KPj4gSSBhbSBub3Qgc3VyZSB5ZXQgd2hldGhlciBJIGxpa2UgdGhhdCBtb2R1bGUg cGFyYW1ldGVyLi4uIENhbid0IHdlIGp1c3QgcmVseSBvbgo+PiBkZXZpY2UgdHJlZSB3aGV0aGVy IHRoZXJlIGlzIGEgSERNSSBlbmNvZGVyIHRvIGF0dGFjaCBvciBub3Q/Cj4+Cj4gCj4gWWVhaCwg d2UgY2FuIGRvIHRoYXQuIEFueXdheSBpdCBqdXN0IGEgY2hvaWNlLiBzb3VuZHMgbGlrZSBhdXRv IGRldGVjdAo+IGlzIGJldHRlciBeX14KPiAKPj4gPiArCj4+ID4gK3N0YXRpYyB2b2lkIGZzbF9k Y3VfZHJtX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikgewo+PiA+ ICsJc3RydWN0IGZzbF9kY3VfZHJtX2RldmljZSAqZnNsX2RldiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4+ID4gKwo+PiA+ICsJZHJtX2ZiZGV2X2NtYV9ob3RwbHVnX2V2ZW50KGZzbF9kZXYtPmZiZGV2 KTsKPj4gPiArfQo+PiA+ICsKPj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25m aWdfZnVuY3MKPj4gZnNsX2RjdV9kcm1fbW9kZV9jb25maWdfZnVuY3MgPSB7Cj4+ID4gIAkuYXRv bWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4+ID4gIAkuYXRvbWljX2NvbW1p dCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKPj4gPiAgCS5mYl9jcmVhdGUgPSBkcm1fZmJf Y21hX2NyZWF0ZSwKPj4gPiArCS5vdXRwdXRfcG9sbF9jaGFuZ2VkID0gZnNsX2RjdV9kcm1fb3V0 cHV0X3BvbGxfY2hhbmdlZCwKPj4gPiAgfTsKPj4gPgo+PiA+ICBpbnQgZnNsX2RjdV9kcm1fbW9k ZXNldF9pbml0KHN0cnVjdCBmc2xfZGN1X2RybV9kZXZpY2UgKmZzbF9kZXYpIEBACj4+ID4gLTQ3 LDYgKzY2LDE2IEBAIGludCBmc2xfZGN1X2RybV9tb2Rlc2V0X2luaXQoc3RydWN0IGZzbF9kY3Vf ZHJtX2RldmljZQo+PiA+ICpmc2xfZGV2KQo+PiA+ICAJaWYgKHJldCkKPj4gPiAgCQlnb3RvIGZh aWxfY29ubmVjdG9yOwo+PiA+Cj4+ID4gKwlpZiAoZ19lbmFibGVfaGRtaSkgewo+PiA+ICsJCXJl dCA9IGZzbF9kY3VfZHJtX2hkbWllbmNfY3JlYXRlKGZzbF9kZXYsICZmc2xfZGV2LT5jcnRjKTsK Pj4gPiArCQlpZiAocmV0KQo+PiA+ICsJCQlyZXR1cm4gcmV0Owo+PiA+ICsKPj4gPiArCQlyZXQg PSBmc2xfZGN1X2RybV9oZG1pZW5jX2F0dGFjaF9icmlkZ2UoZnNsX2Rldik7Cj4+ID4gKwkJaWYg KHJldCkKPj4gPiArCQkJcmV0dXJuIHJldDsKPj4gPiArCX0KPj4gPiArCj4+Cj4+IEFib3ZlIHdl IGdvIHRvIGZhaWxfY29ubmVjdG9yIG9uIGVycm9yLCBhbmQgaW4geW91ciBjYWxscyB5b3UganVz dCByZXR1cm4uIFRoYXQKPj4gZG9lcyBub3QgbG9vayBsaWtlIGEgcHJvcGVyIGVycm9yIGhhbmRs aW5nLgo+Pgo+IAo+IEl0IGFscmVhZHkgaGFuZGxlZCB3aXRoaW4gdGhlIGNhbGxpbmcgZnVuY3Rp b24uIFNvIGp1c3QgcmV0dXJuIGhlcmUuCj4gCj4gVGhhbmtzLAo+IE1lbmcKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==