From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Subject: Re: [PATCH v2 1/2] drm/fsl-dcu: Add HDMI driver for freescale DCU Date: Sat, 18 Jun 2016 20:00:59 -0700 Message-ID: <75453188206f2fc756711cbd34c6dc85@agner.ch> References: <1465896037-537-1-git-send-email-meng.yi@nxp.com> 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 [178.209.48.109]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA0586E122 for ; Sun, 19 Jun 2016 03:05:12 +0000 (UTC) In-Reply-To: <1465896037-537-1-git-send-email-meng.yi@nxp.com> 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 , Alison 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 T24gMjAxNi0wNi0xNCAwMjoyMCwgTWVuZyBZaSB3cm90ZToKPiBUaGlzIHBhdGNoIGNyZWF0ZXMg YW5vdGhlciBFbmNvZGVyIGZvciBIRE1JIHBvcnQsIGFuZCBsaW5raW5nIHRoZSBFbmNvZGVyCj4g dG8gYXBwcm9wcmlhdGUgRFJNIGJyaWRnZS4gQW5kIHRoaXMgRW5jb2RlciB1c2luZyBzYW1lIENS VEMgd2l0aCBSR0ItTENELgo+IEZvciBSR0ItTENEIGFuZCBIRE1JIHVzaW5nIHRoZSBzYW1lIGhh cmR3YXJlIGNvbm5lY3Rpb24gdG8gRENVLCBSR0ItTENECj4gcGFuZWwgc2hvdWxkIGJlIHVucGx1 Z2dlZCB3aGVuIHVzaW5nIHRoZSBIRE1JIGNvbm5lY3Rpb24uCj4gCj4gU2lnbmVkLW9mZi1ieTog QWxpc29uIFdhbmcgPGFsaXNvbi53YW5nQG54cC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogWGl1Ym8g TGkgPGxpeGl1Ym9AY21zcy5jaGluYW1vYmlsZS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSmlhbndl aSBXYW5nIDxqaWFud2VpLndhbmcuY2huQGdtYWlsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNZW5n IFlpIDxtZW5nLnlpQG54cC5jb20+Cj4gLS0tCj4gQ2hhbmdlcyBpbiBWMjoKPiAtcmVtb3ZlIHVu dXNlZCBoZWFkZXJzIGluY2x1c2lvbgo+IC1yZW1vdmUgbW9kdWxlIGRlY2xhcmF0aW9ucwo+IC1m aXggZXJyb3IgaGFuZGxpbmcgY29kaW5nIHN0eWxlCj4gLWRyb3AgbW91bGRlIHBhcmFtZXRlcnMg YW5kIGF1dG8gZGV0ZWN0IEhETUkgY29ubmVjdGlvbiByZWx5aW5nIG9uIGRldmllY2UgdHJlZQo+ IC1tb2RpZmllZCBjb21tZW50IGxpbmVzCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1 L01ha2VmaWxlICAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3Uv ZnNsX2RjdV9kcm1faGRtaS5jICAgfCAxODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2ttcy5jICAgIHwgIDE2ICsrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9vdXRwdXQuaCB8ICAgNCArCj4g IDQgZmlsZXMgY2hhbmdlZCwgMjEwIGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX2hkbWkuYwoKSGkgTWVuZywKCkkg dG9vayBhIGJpdCBtb3JlIHRpbWUgdG8gdW5kZXJzdGFuZCB3aGF0IGl0IGlzIGFsbCBhYm91dCB3 aXRoIHRoaXMKcGF0Y2hzZXQgYW5kIHRoZSBEUk0gYnJpZGdlIGluZnJhc3RydWN0dXJlIGluIGdl bmVyYWwuCgpJIGFncmVlIHdpdGggQm9yaXMgQnJlemlsbGlvbnMgY29tbWVudCBvZiB0aGUgZmly c3QgdmVyc2lvbiBvZiB0aGlzCnBhdGNoc2V0OiBZb3UgIm9ubHkiIHdhbnQgdG8gYWRkIERSTSBi cmlkZ2Ugc3VwcG9ydCBoZXJlLCBpdCBkb2Vzbid0IGhhcwphbnl0aGluZyB0byBkbyB3aXRoIEhE TUkuIFNvIHRoZXJlIHNob3VsZCBub3QgYmUgYSBmaWxlIGNhbGxlZApmc2xfZGN1X2RybV9oZG1p LmMgZm9yIGluc3RhbmNlLi4uLgoKSW4gZmFjdCwgeW91IHNob3VsZCBmb2xkIHRoZSBEUk0gYnJp ZGdlIGNvZGUgaW50byBmc2xfZGN1X2RybV9yZ2IuYy4KSGF2ZSBhIGxvb2sgYXQgQm9yaXMgcGF0 Y2ggd2hpY2ggYWRkZWQgc3VjaCBzdXBwb3J0IHRvIHRoZSBBdG1lbCBITERDRApkcml2ZXI6Cmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2RyaS1kZXZlbC8yMDE2LUphbnVh cnkvMDk4MDUwLmh0bWwKCkhvd2V2ZXIsIHRoZSBITERDRCBkcml2ZXIgYWxyZWFkeSBzdXBwb3J0 ZWQgdGhlIGVuZHBvaW50IHN5bnRheCBmb3IKcGFuZWxzIGF0IHRoYXQgdGltZSwgd2hpY2ggaXMg bm90IHRoZSBjYXNlIGZvciB0aGUgRENVIGRyaXZlci4KClBhbmVsIHN1cHBvcnQgd2l0aCBlbmRw b2ludCBEVCBzeW50YXggc2VlbXMgdG8gYmUgbW9yZSBnZW5lcmljIGFuZCBpcyBhCmVhc2llciBm aXJzdCBzdGVwIHRvd2FyZHMgRFJNIGJyaWRnZSBzdXBwb3J0LiBIZW5jZSBJIHN1Z2dlc3QgdG8g dGFrZQp0aGlzIHR3byBzdGVwczoKCjEuIEV4dGVuZCB0aGUgY3VycmVudCBjb2RlIHRvIHN1cHBv cnQgcGFuZWxzIHRocm91Z2ggZW5kcG9pbnQgc3ludGF4CihvZl9ncmFwaC4uKQoyLiBFeHRlbmQg dGhlIGVuZHBvaW50IHN1cHBvcnQgdG8gYWxzbyBzdXBwb3J0IERSTSBicmlkZ2VzCgpEdXJpbmcg MSB5b3Ugc2hvdWxkIGJlIGNhcmVmdWwgdG8gbm90IHJlbW92ZSB0aGUgb2xkIGZzbCxwYW5lbCBz dXBwb3J0CihiYWNrd2FyZCBjb21wYXRpYmlsaXR5KS4gQnV0IGl0IHNob3VsZG4ndCBiZSBhIGJp ZyBkZWFsLCBqdXN0IGNoZWNrIGlmCnRoZSBmc2wscGFuZWwgcHJvcGVydHkgaXMgdGhlcmUsIGlm IGl0IGlzLCBkbyBub3QgcGFyc2UgdGhlIGVuZHBvaW50cy4KU3VjaCBiYWNrd2FyZCBjb21wYXRp YmlsaXR5IGhhcyBiZWVuIGltcGxlbWVudGVkIGhlcmU6Cmh0dHBzOi8vcGF0Y2h3b3JrLmtlcm5l bC5vcmcvcGF0Y2gvNzcwNjQ4MS8KCi0tClN0ZWZhbgoKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2ZzbC1kY3UvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9NYWtl ZmlsZQo+IGluZGV4IGIzNWEyOTIuLjEyZTIyNDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2ZzbC1kY3UvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9NYWtl ZmlsZQo+IEBAIC0xLDYgKzEsNyBAQAo+ICBmc2wtZGN1LWRybS15IDo9IGZzbF9kY3VfZHJtX2Ry di5vIFwKPiAgCQkgZnNsX2RjdV9kcm1fa21zLm8gXAo+ICAJCSBmc2xfZGN1X2RybV9yZ2IubyBc Cj4gKwkJIGZzbF9kY3VfZHJtX2hkbWkubyBcCj4gIAkJIGZzbF9kY3VfZHJtX3BsYW5lLm8gXAo+ ICAJCSBmc2xfZGN1X2RybV9jcnRjLm8gXAo+ICAJCSBmc2xfZGN1X2RybV9mYmRldi5vIFwKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1faGRtaS5jCj4g Yi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9oZG1pLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmY1Njc1MzQKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1faGRtaS5jCj4gQEAgLTAsMCAr MSwxODkgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IDIwMTYgTlhQIFNlbWljb25kdWN0b3IsIElu Yy4KPiArICoKPiArICogTlhQIERDVSBkcm0gZGV2aWNlIGRyaXZlcgo+ICsgKgo+ICsgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQo+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ICsgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgo+ICsgKiAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9l cnJuby5oPgo+ICsjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9v Zl9ncmFwaC5oPgo+ICsKPiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gKyNpbmNsdWRlIDxkcm0v ZHJtX2NydGNfaGVscGVyLmg+Cj4gKwo+ICsjaW5jbHVkZSAiZnNsX2RjdV9kcm1fZHJ2LmgiCj4g KyNpbmNsdWRlICJmc2xfZGN1X2RybV9vdXRwdXQuaCIKPiArI2luY2x1ZGUgImZzbF90Y29uLmgi Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtmc2xfZGN1X2RybV9oZG1pZW5jX21vZGVfc2V0KHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArCQkJCSBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSwKPiArCQkJCSBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAr ewo+ICsJLypUT0RPKi8KPiArfQo+ICsKPiArc3RhdGljIGludAo+ICtmc2xfZGN1X2RybV9oZG1p ZW5jX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkJIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQKPiArZnNsX2RjdV9kcm1faGRtaWVuY19kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRl djsKPiArCXN0cnVjdCBmc2xfZGN1X2RybV9kZXZpY2UgKmZzbF9kZXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICsKPiArCWlmIChmc2xfZGV2LT50Y29uKQo+ICsJCWZzbF90Y29uX2J5cGFzc19kaXNh YmxlKGZzbF9kZXYtPnRjb24pOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtmc2xfZGN1X2Ry bV9oZG1pZW5jX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gKwlzdHJ1Y3QgZnNsX2RjdV9k cm1fZGV2aWNlICpmc2xfZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCj4gKwlpZiAoZnNsX2Rl di0+dGNvbikKPiArCQlmc2xfdGNvbl9ieXBhc3NfZW5hYmxlKGZzbF9kZXYtPnRjb24pOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0Cj4gK2RybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBl bmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKPiArCS5hdG9taWNfY2hlY2sgPSBmc2xfZGN1X2RybV9o ZG1pZW5jX2F0b21pY19jaGVjaywKPiArCS5kaXNhYmxlID0gZnNsX2RjdV9kcm1faGRtaWVuY19k aXNhYmxlLAo+ICsJLmVuYWJsZSA9IGZzbF9kY3VfZHJtX2hkbWllbmNfZW5hYmxlLAo+ICsJLm1v ZGVfc2V0ID0gZnNsX2RjdV9kcm1faGRtaWVuY19tb2RlX3NldCwKPiArfTsKPiArCj4gK3N0YXRp YyB2b2lkCj4gK2ZzbF9kY3VfZHJtX2hkbWllbmNfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCj4gK3sKPiArCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gK30KPiAr Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QKPiArZHJtX2VuY29kZXJfZnVuY3MgZW5jb2Rlcl9mdW5j cyA9IHsKPiArCS5kZXN0cm95ID0gZnNsX2RjdV9kcm1faGRtaWVuY19kZXN0cm95LAo+ICt9Owo+ ICsKPiAraW50IGZzbF9kY3VfZHJtX2hkbWllbmNfY3JlYXRlKHN0cnVjdCBmc2xfZGN1X2RybV9k ZXZpY2UgKmZzbF9kZXYsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gK3sK PiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiArCWludCByZXQ7Cj4gKwo+ICsJZW5j b2RlciA9IGRldm1fa3phbGxvYyhmc2xfZGV2LT5kZXYsCj4gKwkJCQlzaXplb2Yoc3RydWN0IGRy bV9lbmNvZGVyKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWVuY29kZXIpCj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwo+ICsJZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSAxOwo+ICsJcmV0ID0gZHJt X2VuY29kZXJfaW5pdChmc2xfZGV2LT5kcm0sIGVuY29kZXIsICZlbmNvZGVyX2Z1bmNzLAo+ICsJ CQkgICAgICAgRFJNX01PREVfRU5DT0RFUl9UTURTLCBOVUxMKTsKPiArCWlmIChyZXQpCj4gKwkJ Z290byBmYWlsX2VuY29kZXI7Cj4gKwo+ICsJZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVy LCAmZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOwo+ICsJZW5jb2Rlci0+Y3J0YyA9IGNydGM7Cj4gKwo+ ICsJcmV0dXJuIDA7Cj4gKwo+ICtmYWlsX2VuY29kZXI6Cj4gKwlkZXZtX2tmcmVlKGZzbF9kZXYt PmRldiwgZW5jb2Rlcik7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0 Cj4gK2RybV9lbmNvZGVyICpmc2xfZGN1X2RybV9oZG1pX2ZpbmRfZW5jb2RlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gKwo+ ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVy X2xpc3QsIGhlYWQpIHsKPiArCQlpZiAoZW5jb2Rlci0+ZW5jb2Rlcl90eXBlID09IERSTV9NT0RF X0VOQ09ERVJfVE1EUykKPiArCQkJcmV0dXJuIGVuY29kZXI7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJu IE5VTEw7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QKPiArZGV2aWNlX25vZGUgKmRldGVjdF9o ZG1pX2Nvbm5lY3Rpb24oc3RydWN0IGZzbF9kY3VfZHJtX2RldmljZSAqZnNsX2RldikKPiArewo+ ICsJc3RydWN0IGRldmljZV9ub2RlICpyZW1vdGVfcG9ydDsKPiArCXN0cnVjdCBvZl9lbmRwb2lu dCAqZXA7Cj4gKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwX25vZGU7Cj4gKwlpbnQgcmV0Owo+ICsJ c3RydWN0IGRldmljZV9ub2RlICpwYXJlbnQgPSBmc2xfZGV2LT5kZXYtPm9mX25vZGU7Cj4gKwo+ ICsJZXAgPSBkZXZtX2t6YWxsb2MoZnNsX2Rldi0+ZGV2LAo+ICsJCQkJc2l6ZW9mKHN0cnVjdCBv Zl9lbmRwb2ludCksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFlcCkKPiArCQlyZXR1cm4gTlVMTDsK PiArCj4gKwllcF9ub2RlID0gZGV2bV9remFsbG9jKGZzbF9kZXYtPmRldiwKPiArCQkJCXNpemVv ZihzdHJ1Y3QgZGV2aWNlX25vZGUpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghZXBfbm9kZSkKPiAr CQlyZXR1cm4gTlVMTDsKPiArCj4gKwllcF9ub2RlID0gb2ZfZ3JhcGhfZ2V0X25leHRfZW5kcG9p bnQocGFyZW50LCBOVUxMKTsKPiArCWlmICghZXBfbm9kZSkKPiArCQlnb3RvIGVycm9yOwo+ICsK PiArCXJldCA9IG9mX2dyYXBoX3BhcnNlX2VuZHBvaW50KGVwX25vZGUsIGVwKTsKPiArCWlmIChy ZXQpIHsKPiArCQlvZl9ub2RlX3B1dChlcF9ub2RlKTsKPiArCQlnb3RvIGVycm9yOwo+ICsJfQo+ ICsKPiArCXJlbW90ZV9wb3J0ID0gb2ZfZ3JhcGhfZ2V0X3JlbW90ZV9wb3J0X3BhcmVudChlcC0+ bG9jYWxfbm9kZSk7Cj4gKwlpZiAoIXJlbW90ZV9wb3J0KQo+ICsJCWdvdG8gZXJyb3I7Cj4gKwo+ ICsJcmV0dXJuIHJlbW90ZV9wb3J0Owo+ICtlcnJvcjoKPiArCWRldm1fa2ZyZWUoZXApOwo+ICsJ ZGV2bV9rZnJlZShlcF9ub2RlKTsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtpbnQgZnNs X2RjdV9kcm1faGRtaWVuY19hdHRhY2hfYnJpZGdlKHN0cnVjdCBmc2xfZGN1X2RybV9kZXZpY2Ug KmZzbF9kZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZnNsX2Rldi0+ ZHJtOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ICsJc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZTsKPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcmVtb3RlX3BvcnQ7Cj4gKwlpbnQg cmV0Owo+ICsKPiArCXJlbW90ZV9wb3J0ID0gZGV0ZWN0X2hkbWlfY29ubmVjdGlvbihmc2xfZGV2 KTsKPiArCWlmICghcmVtb3RlX3BvcnQpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJYnJp ZGdlID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKHJlbW90ZV9wb3J0KTsKPiArCWlmICghYnJpZGdlKQo+ ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCWVuY29kZXIgPSBmc2xfZGN1X2RybV9oZG1pX2Zp bmRfZW5jb2Rlcihkcm1fZGV2KTsKPiArCWlmICghZW5jb2RlcikKPiArCQlyZXR1cm4gLUVOT0RF VjsKPiArCj4gKwllbmNvZGVyLT5icmlkZ2UgPSBicmlkZ2U7Cj4gKwlicmlkZ2UtPmVuY29kZXIg PSBlbmNvZGVyOwo+ICsKPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRybV9kZXYsIGJyaWRn ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyb3I7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK2Vy cm9yOgo+ICsJZW5jb2Rlci0+ZnVuY3MtPmRlc3Ryb3koZW5jb2Rlcik7Cj4gKwlyZXR1cm4gcmV0 Owo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJt X2ttcy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9rbXMuYwo+IGlu ZGV4IGM1NjRlYzYuLjY1OGJjOTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1k Y3UvZnNsX2RjdV9kcm1fa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xf ZGN1X2RybV9rbXMuYwo+IEBAIC0xNywxMCArMTcsMTggQEAKPiAgI2luY2x1ZGUgImZzbF9kY3Vf ZHJtX2NydGMuaCIKPiAgI2luY2x1ZGUgImZzbF9kY3VfZHJtX2Rydi5oIgo+ICAKPiArc3RhdGlj IHZvaWQgZnNsX2RjdV9kcm1fb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZnNsX2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCj4gKwlkcm1fZmJkZXZfY21hX2hvdHBsdWdfZXZlbnQoZnNsX2Rldi0+ ZmJkZXYpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19m dW5jcyBmc2xfZGN1X2RybV9tb2RlX2NvbmZpZ19mdW5jcyA9IHsKPiAgCS5hdG9taWNfY2hlY2sg PSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiAgCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0LAo+ICAJLmZiX2NyZWF0ZSA9IGRybV9mYl9jbWFfY3JlYXRlLAo+ICsJ Lm91dHB1dF9wb2xsX2NoYW5nZWQgPSBmc2xfZGN1X2RybV9vdXRwdXRfcG9sbF9jaGFuZ2VkLAo+ ICB9Owo+ICAKPiAgaW50IGZzbF9kY3VfZHJtX21vZGVzZXRfaW5pdChzdHJ1Y3QgZnNsX2RjdV9k cm1fZGV2aWNlICpmc2xfZGV2KQo+IEBAIC00Nyw2ICs1NSwxNCBAQCBpbnQgZnNsX2RjdV9kcm1f bW9kZXNldF9pbml0KHN0cnVjdAo+IGZzbF9kY3VfZHJtX2RldmljZSAqZnNsX2RldikKPiAgCWlm IChyZXQpCj4gIAkJZ290byBmYWlsX2Nvbm5lY3RvcjsKPiAgCj4gKwlyZXQgPSBmc2xfZGN1X2Ry bV9oZG1pZW5jX2NyZWF0ZShmc2xfZGV2LCAmZnNsX2Rldi0+Y3J0Yyk7Cj4gKwlpZiAocmV0KQo+ ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBIRE1JIGVuY29kZXJcbiIpOwo+ICsKPiAr CXJldCA9IGZzbF9kY3VfZHJtX2hkbWllbmNfYXR0YWNoX2JyaWRnZShmc2xfZGV2KTsKPiArCWlm IChyZXQpCj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIEhETUkgYnJpZGdlXG4iKTsK PiArCj4gIAlkcm1fbW9kZV9jb25maWdfcmVzZXQoZnNsX2Rldi0+ZHJtKTsKPiAgCWRybV9rbXNf aGVscGVyX3BvbGxfaW5pdChmc2xfZGV2LT5kcm0pOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fb3V0cHV0LmgKPiBiL2RyaXZlcnMvZ3B1L2Ry bS9mc2wtZGN1L2ZzbF9kY3VfZHJtX291dHB1dC5oCj4gaW5kZXggNzA5MzEwOS4uODkxNWIwNyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9vdXRwdXQu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX291dHB1dC5oCj4g QEAgLTI5LDUgKzI5LDkgQEAgaW50IGZzbF9kY3VfZHJtX2Nvbm5lY3Rvcl9jcmVhdGUoc3RydWN0 Cj4gZnNsX2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2LAo+ICAJCQkJIHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2Rlcik7Cj4gIGludCBmc2xfZGN1X2RybV9lbmNvZGVyX2NyZWF0ZShzdHJ1Y3QgZnNs X2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2LAo+ICAJCQkgICAgICAgc3RydWN0IGRybV9jcnRjICpj cnRjKTsKPiAraW50IGZzbF9kY3VfZHJtX2hkbWllbmNfYXR0YWNoX2JyaWRnZShzdHJ1Y3QgZnNs X2RjdV9kcm1fZGV2aWNlICpmc2xfZGV2KTsKPiAraW50IGZzbF9kY3VfZHJtX2hkbWllbmNfY3Jl YXRlKHN0cnVjdCBmc2xfZGN1X2RybV9kZXZpY2UgKmZzbF9kZXYsCj4gKwkJCSAgICAgICBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpOwo+ICsKPiAgCj4gICNlbmRpZiAvKiBfX0ZTTF9EQ1VfRFJNX0NP Tk5FQ1RPUl9IX18gKi8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==