From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 2/3] drm/vkms: Add basic CRTC initialization Date: Wed, 23 May 2018 10:53:33 +0200 Message-ID: <20180523085333.GO3438@phenom.ffwll.local> References: <20180520062231.GA24701@Haneen> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1A4B589561 for ; Wed, 23 May 2018 08:53:37 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id f6-v6so6757956wmc.4 for ; Wed, 23 May 2018 01:53:37 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180520062231.GA24701@Haneen> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Haneen Mohammed Cc: dri-devel@lists.freedesktop.org, Sean Paul , Rodrigo Siqueira , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBNYXkgMjAsIDIwMTggYXQgMDk6MjI6MzFBTSArMDMwMCwgSGFuZWVuIE1vaGFtbWVk IHdyb3RlOgo+IE9uIFdlZCwgTWF5IDE2LCAyMDE4IGF0IDA4OjU2OjIxUE0gLTAzMDAsIFJvZHJp Z28gU2lxdWVpcmEgd3JvdGU6Cj4gPiBUaGlzIGNvbW1pdCBhZGRzIHRoZSBlc3NlbnRpYWwgaW5m cmFzdHJ1Y3R1cmUgZm9yIGFyb3VuZCBDUlRDcyB3aGljaAo+ID4gaXMgY29tcG9zZWQgb2Y6IGEg bmV3IGRhdGEgc3RydWN0IGZvciBvdXRwdXQgZGF0YSBpbmZvcm1hdGlvbiwgYQo+ID4gZnVuY3Rp b24gZm9yIGNyZWF0aW5nIHBsYW5lcywgYW5kIGEgc2ltcGxlIGVuY29kZXIgYXR0YWNoZWQgdG8g dGhlCj4gPiBjb25uZWN0b3IuIEZpbmFsbHksIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mIGEg bmV3IGluaXRpYWxpemF0aW9uCj4gPiBmdW5jdGlvbiwgY29ubmVjdG9ycyB3ZXJlIG1vdmVkIGZy b20gdmttc19kcnYuYyB0byB2a21zX2Rpc3BsYXkuYy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTog Um9kcmlnbyBTaXF1ZWlyYSA8cm9kcmlnb3NpcXVlaXJhbWVsb0BnbWFpbC5jb20+Cj4gPiAtLS0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZSAgICAgIHwgIDIgKy0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyAgIHwgMzUgKysrKysrKysrKysrCj4gPiAgZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYyAgICB8IDYwICsrKysrKy0tLS0tLS0tLS0tLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaCAgICB8IDI0ICsrKysrKystCj4g PiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYyB8IDkxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYyAg fCA0NiArKysrKysrKysrKysrKysKPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDIxMSBpbnNlcnRpb25z KCspLCA0NyBkZWxldGlvbnMoLSkKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92a21zL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUKPiA+IGlu ZGV4IDJhZWY5NDhkM2EzNC4uM2Y3NzRhNmE5YzU4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3ZrbXMvTWFrZWZpbGUKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2Vm aWxlCj4gPiBAQCAtMSwzICsxLDMgQEAKPiA+IC12a21zLXkgOj0gdmttc19kcnYubwo+ID4gK3Zr bXMteSA6PSB2a21zX2Rydi5vIHZrbXNfcGxhbmUubyB2a21zX291dHB1dC5vIHZrbXNfY3J0Yy5v Cj4gPiAgCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9WS01TKSArPSB2a21zLm8KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfY3J0Yy5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAw MDAwMDAwLi5iZjc2Y2QzOWVjZTcKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPiBAQCAtMCwwICsxLDM1IEBACj4gPiArLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+ICsvKgo+ID4gKyAqIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Cj4gPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiA+ICsgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgo+ID4gKyAqIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gPiArICovCj4gPiArCj4gPiArI2luY2x1ZGUgInZr bXNfZHJ2LmgiCj4gPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4gKyNp bmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fY3J0Y19mdW5jcyB2a21zX2NydGNfZnVuY3MgPSB7Cj4gPiArCS5zZXRfY29uZmln ICAgICAgICAgICAgID0gZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZywKPiA+ICsJLmRlc3Ry b3kgICAgICAgICAgICAgICAgPSBkcm1fY3J0Y19jbGVhbnVwLAo+ID4gKwkucGFnZV9mbGlwICAg ICAgICAgICAgICA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwKPiA+ICsJLnJlc2V0ICAg ICAgICAgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0LAo+ID4gKwkuYXRv bWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0 YXRlLAo+ID4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgICA9IGRybV9hdG9taWNfaGVscGVyX2Ny dGNfZGVzdHJveV9zdGF0ZSwKPiA+ICt9Owo+ID4gKwo+ID4gK2ludCB2a21zX2NydGNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiArCQkgICBz dHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LCBzdHJ1Y3QgZHJtX3BsYW5lICpjdXJzb3IpCj4gPiAr ewo+ID4gKwlpbnQgcmV0Owo+ID4gKwo+IAo+IEp1c3QgYXMgYSBmb2xsb3cgdXAsIEkgaGF2ZSBu b3RpY2VkIHRoYXQgdmttcyBicmVha3Mgd2hlbiBpbnNwZWN0aW5nCj4gaXRzIHN0YXRlIGluIHRo ZSBkZWJ1Z2ZzLCBhbHNvIHdoZW4gcnVubmluZyBpZ3QgdGVzdHMgd2l0aCBrbXMgYW5kIGNvcmUK PiBmaWx0ZXJzLCBhbmQgYWRkaW5nIHRoZSBmb2xsb3dpbmcgZml4ZWQgdGhhdCBpc3N1ZToKPiAK PiAxKSBhIGRybV9jcnRjX2hlbHBlcl9mdW5jcyB3aXRoIGR1bW15IGF0b21pY19jaGVjay4KCldl J3JlIHRyeWluZyB0byBtYWtlIGNhbGxiYWNrcyBhcyBvcHRpb25hbCBhcyBwb3NzaWJsZSwgdGhp cyB3YXMgcHJvYmFibHkKanVzdCBhbiBvdmVyc2lnaHQuIENhbiB5b3UgdHJ5IHRvIGZpbmQgdGhl IHBsYWNlIHdoZXJlIHRoaXMgaXMgY2FsbGVkLCBhbmQKYWRkIHN1aXRhYmxlIGNoZWNrcyBmb3Ig TlVMTCBfZnVuY3MgcG9pbnRlcj8KClRoYW5rcywgRGFuaWVsCj4gCj4gPiArCXJldCA9IGRybV9j cnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCBjcnRjLCBwcmltYXJ5LCBjdXJzb3IsCj4gPiArCQkJ CQkmdmttc19jcnRjX2Z1bmNzLCBOVUxMKTsKPiA+ICsJaWYgKHJldCkgewo+ID4gKwkJRFJNX0VS Uk9SKCJGYWlsZWQgdG8gaW5pdCBDUlRDXG4iKTsKPiA+ICsJCXJldHVybiByZXQ7Cj4gPiArCX0K PiA+ICsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMK PiA+IGluZGV4IGFlYzNmMTgwZjk2ZC4uMDcwNjEzZTMyOTM0IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19kcnYuYwo+ID4gQEAgLTYsNyArNiw2IEBACj4gPiAgICovCj4gPiAgCj4gPiAgI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ID4gLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ID4gICNp bmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ID4gICNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVy Lmg+Cj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4gQEAgLTU5LDI1 ICs1OCwyNCBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmttc19kcml2ZXIgPSB7Cj4gPiAg CS5taW5vcgkJCT0gRFJJVkVSX01JTk9SLAo+ID4gIH07Cj4gPiAgCj4gPiAtc3RhdGljIGNvbnN0 IHUzMiB2a21zX2Zvcm1hdHNbXSA9IHsKPiA+IC0JRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiA+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3Mg PSB7Cj4gPiArCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiA+ICsJ LmF0b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQsCj4gPiAgfTsKPiA+ICAK PiA+IC1zdGF0aWMgdm9pZCB2a21zX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCj4gPiArc3RhdGljIGludCB2a21zX21vZGVzZXRfaW5pdChzdHJ1Y3Qg dmttc19kZXZpY2UgKnZrbXNkZXYpCj4gPiAgewo+ID4gLQlkcm1fY29ubmVjdG9yX3VucmVnaXN0 ZXIoY29ubmVjdG9yKTsKPiA+IC0JZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4g PiAtfQo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJnZrbXNkZXYtPmRybTsKPiA+ICAK PiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mgdmttc19jb25uZWN0 b3JfZnVuY3MgPSB7Cj4gPiAtCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVf Y29ubmVjdG9yX21vZGVzLAo+ID4gLQkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ks Cj4gPiAtfTsKPiA+ICsJZHJtX21vZGVfY29uZmlnX2luaXQoZGV2KTsKPiA+ICsJZGV2LT5tb2Rl X2NvbmZpZy5mdW5jcyA9ICZ2a21zX21vZGVfZnVuY3M7Cj4gPiArCWRldi0+bW9kZV9jb25maWcu bWluX3dpZHRoID0gWFJFU19NSU47Cj4gPiArCWRldi0+bW9kZV9jb25maWcubWluX2hlaWdodCA9 IFlSRVNfTUlOOwo+ID4gKwlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IFhSRVNfTUFYOwo+ ID4gKwlkZXYtPm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPSBZUkVTX01BWDsKPiA+ICAKPiA+IC1z dGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3Mg PSB7Cj4gPiAtCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiA+IC0J LmF0b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQsCj4gPiAtfTsKPiA+ICsJ cmV0dXJuIHZrbXNfb3V0cHV0X2luaXQodmttc2Rldik7Cj4gPiArfQo+ID4gIAo+ID4gIHN0YXRp YyBpbnQgX19pbml0IHZrbXNfaW5pdCh2b2lkKQo+ID4gIHsKPiA+IEBAIC05OCw0OCArOTYsMjQg QEAgc3RhdGljIGludCBfX2luaXQgdmttc19pbml0KHZvaWQpCj4gPiAgCQlnb3RvIG91dF9maW5p Owo+ID4gIAl9Cj4gPiAgCj4gPiAtCWRybV9tb2RlX2NvbmZpZ19pbml0KCZ2a21zX2RldmljZS0+ ZHJtKTsKPiA+IC0Jdmttc19kZXZpY2UtPmRybS5tb2RlX2NvbmZpZy5mdW5jcyA9ICZ2a21zX21v ZGVfZnVuY3M7Cj4gPiAtCXZrbXNfZGV2aWNlLT5kcm0ubW9kZV9jb25maWcubWluX3dpZHRoID0g WFJFU19NSU47Cj4gPiAtCXZrbXNfZGV2aWNlLT5kcm0ubW9kZV9jb25maWcubWluX2hlaWdodCA9 IFlSRVNfTUlOOwo+ID4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLm1heF93aWR0aCA9 IFhSRVNfTUFYOwo+ID4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLm1heF9oZWlnaHQg PSBZUkVTX01BWDsKPiA+IC0KPiA+IC0JcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KCZ2a21zX2Rl dmljZS0+ZHJtLCAmdmttc19kZXZpY2UtPmNvbm5lY3RvciwKPiA+IC0JCQkJICZ2a21zX2Nvbm5l Y3Rvcl9mdW5jcywKPiA+IC0JCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKTsKPiA+IC0J aWYgKHJldCA8IDApIHsKPiA+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXQgY29ubmVjdG9y XG4iKTsKPiA+IC0JCWdvdG8gb3V0X3VucmVnaXN0ZXI7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JcmV0 ID0gZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfaW5pdCgmdmttc19kZXZpY2UtPmRybSwKPiA+IC0J CQkJCSAgICZ2a21zX2RldmljZS0+cGlwZSwKPiA+IC0JCQkJCSAgIE5VTEwsCj4gPiAtCQkJCQkg ICB2a21zX2Zvcm1hdHMsCj4gPiAtCQkJCQkgICBBUlJBWV9TSVpFKHZrbXNfZm9ybWF0cyksCj4g PiAtCQkJCQkgICBOVUxMLAo+ID4gLQkJCQkJICAgJnZrbXNfZGV2aWNlLT5jb25uZWN0b3IpOwo+ ID4gLQlpZiAocmV0IDwgMCkgewo+ID4gLQkJRFJNX0VSUk9SKCJDYW5ub3Qgc2V0dXAgc2ltcGxl IGRpc3BsYXkgcGlwZVxuIik7Cj4gPiArCXJldCA9IHZrbXNfbW9kZXNldF9pbml0KHZrbXNfZGV2 aWNlKTsKPiA+ICsJaWYgKHJldCkKPiA+ICAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7Cj4gPiAtCX0K PiA+ICAKPiA+ICAJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcigmdmttc19kZXZpY2UtPmRybSwgMCk7 Cj4gPiAgCWlmIChyZXQpCj4gPiAgCQlnb3RvIG91dF91bnJlZ2lzdGVyOwo+ID4gIAo+ID4gLQlk cm1fY29ubmVjdG9yX3JlZ2lzdGVyKCZ2a21zX2RldmljZS0+Y29ubmVjdG9yKTsKPiA+IC0KPiA+ ICAJcmV0dXJuIDA7Cj4gPiAgCj4gPiAgb3V0X3VucmVnaXN0ZXI6Cj4gPiAgCXBsYXRmb3JtX2Rl dmljZV91bnJlZ2lzdGVyKHZrbXNfZGV2aWNlLT5wbGF0Zm9ybSk7Cj4gPiArCj4gPiAgb3V0X2Zp bmk6Cj4gPiAgCWRybV9kZXZfZmluaSgmdmttc19kZXZpY2UtPmRybSk7Cj4gPiArCj4gPiAgb3V0 X2ZyZWU6Cj4gPiAgCWtmcmVlKHZrbXNfZGV2aWNlKTsKPiA+IC0KPiA+ICAJcmV0dXJuIHJldDsK PiA+ICB9Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+IGluZGV4IGM3N2M1YmY1 MDMyYS4uYjBmOWQyZTYxYTQyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+ID4g QEAgLTEsMTMgKzEsMzEgQEAKPiA+ICAjaWZuZGVmIF9WS01TX0RSVl9IXwo+ID4gICNkZWZpbmUg X1ZLTVNfRFJWX0hfCj4gPiAgCj4gPiAtI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxw ZXIuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybS5o Pgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KPiA+ICsKPiA+ICtzdGF0aWMgY29u c3QgdTMyIHZrbXNfZm9ybWF0c1tdID0gewo+ID4gKwlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ID4g K307Cj4gPiArCj4gPiArc3RydWN0IHZrbXNfb3V0cHV0IHsKPiA+ICsJc3RydWN0IGRybV9jcnRj IGNydGM7Cj4gPiArCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ID4gKwlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciBjb25uZWN0b3I7Cj4gPiArfTsKPiA+ICAKPiA+ICBzdHJ1Y3Qgdmttc19kZXZp Y2Ugewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSBkcm07Cj4gPiAgCXN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBsYXRmb3JtOwo+ID4gLQlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlw ZTsKPiA+IC0Jc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+ID4gKwlzdHJ1Y3Qgdmtt c19vdXRwdXQgb3V0cHV0Owo+ID4gIH07Cj4gPiAgCj4gPiAraW50IHZrbXNfY3J0Y19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICsJCSAgIHN0 cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksIHN0cnVjdCBkcm1fcGxhbmUgKmN1cnNvcik7Cj4gPiAr Cj4gPiAraW50IHZrbXNfb3V0cHV0X2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KTsK PiA+ICsKPiA+ICtzdHJ1Y3QgZHJtX3BsYW5lICp2a21zX3BsYW5lX2luaXQoc3RydWN0IHZrbXNf ZGV2aWNlICp2a21zZGV2KTsKPiA+ICsKPiA+ICAjZW5kaWYgLyogX1ZLTVNfRFJWX0hfICovCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYyBiL2RyaXZl cnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g PiBpbmRleCAwMDAwMDAwMDAwMDAuLjQ4MTQzZWFjM2MxMgo+ID4gLS0tIC9kZXYvbnVsbAo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+ID4gQEAgLTAsMCArMSw5 MSBAQAo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gPiArLyoKPiA+ ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQo+ID4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gPiArICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiA+ ICsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ID4gKyAqLwo+ID4gKwo+ ID4gKyNpbmNsdWRlICJ2a21zX2Rydi5oIgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVs cGVyLmg+Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgdmttc19jb25uZWN0b3JfZGVzdHJveShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gK3sKPiA+ICsJZHJtX2Nvbm5lY3Rvcl91 bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiArCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25uZWN0 b3IpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf ZnVuY3Mgdmttc19jb25uZWN0b3JfZnVuY3MgPSB7Cj4gPiArCS5maWxsX21vZGVzID0gZHJtX2hl bHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAo+ID4gKwkuZGVzdHJveSA9IHZrbXNf Y29ubmVjdG9yX2Rlc3Ryb3ksCj4gCj4gMikgYWRkaW5nIHRoZSBmb2xsb3dpbmcgaG9va3Mgd2l0 aCB0aGVpciBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfKgo+IGNvdW50ZXJwYXJ0IHRvIHRo ZSB2a21zX2Nvbm5lY3Rvcl9mdW5jczoKPiBhdG9taWNfZHVwbGljYXRlX3N0YXRlLCBhdG9taWNf ZGVzdHJveV9zdGF0ZSwgYW5kIHJlc2V0Lgo+IAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyB2a21zX2VuY29kZXJfZnVuY3MgPSB7Cj4gPiAr CS5kZXN0cm95ID0gZHJtX2VuY29kZXJfY2xlYW51cCwKPiA+ICt9Owo+ID4gKwo+ID4gK2ludCB2 a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiA+ICt7Cj4gPiAr CXN0cnVjdCB2a21zX291dHB1dCAqb3V0cHV0ID0gJnZrbXNkZXYtPm91dHB1dDsKPiA+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiArCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IgPSAmb3V0cHV0LT5jb25uZWN0b3I7Cj4gPiArCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciA9ICZvdXRwdXQtPmVuY29kZXI7Cj4gPiArCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9ICZvdXRwdXQtPmNydGM7Cj4gPiArCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnk7 Cj4gPiArCWludCByZXQ7Cj4gPiArCj4gPiArCXByaW1hcnkgPSB2a21zX3BsYW5lX2luaXQodmtt c2Rldik7Cj4gPiArCWlmIChJU19FUlIocHJpbWFyeSkpCj4gPiArCQlyZXR1cm4gUFRSX0VSUihw cmltYXJ5KTsKPiA+ICsKPiA+ICsJcmV0ID0gdmttc19jcnRjX2luaXQoZGV2LCBjcnRjLCBwcmlt YXJ5LCBOVUxMKTsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCWdvdG8gZXJyX2NydGM7Cj4gPiArCj4g Cj4gMykgYWRkIGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHdpdGggZHVtbXkge2dldF9tb2Rl cywgbW9kZV92YWxpZH0uCj4gCj4gPiArCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNv bm5lY3RvciwgJnZrbXNfY29ubmVjdG9yX2Z1bmNzLAo+ID4gKwkJCQkgRFJNX01PREVfQ09OTkVD VE9SX1ZJUlRVQUwpOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBpbml0IGNvbm5lY3RvclxuIik7Cj4gPiArCQlnb3RvIGVycl9jb25uZWN0b3I7Cj4gPiArCX0K PiA+ICsKPiA+ICsJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+ID4g KwlpZiAocmV0KSB7Cj4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBjb25uZWN0 b3JcbiIpOwo+ID4gKwkJZ290byBlcnJfY29ubmVjdG9yX3JlZ2lzdGVyOwo+ID4gKwl9Cj4gPiAr Cj4gPiArCXJldCA9IGRybV9lbmNvZGVyX2luaXQoZGV2LCBlbmNvZGVyLCAmdmttc19lbmNvZGVy X2Z1bmNzLAo+ID4gKwkJCSAgICAgICBEUk1fTU9ERV9FTkNPREVSX1ZJUlRVQUwsIE5VTEwpOwo+ ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0IGVuY29kZXJc biIpOwo+ID4gKwkJZ290byBlcnJfZW5jb2RlcjsKPiA+ICsJfQo+ID4gKwllbmNvZGVyLT5wb3Nz aWJsZV9jcnRjcyA9IDE7Cj4gPiArCj4gPiArCXJldCA9IGRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRh Y2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29kZXIpOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBhdHRhY2ggY29ubmVjdG9yIHRvIGVuY29kZXJcbiIpOwo+ID4g KwkJZ290byBlcnJfYXR0YWNoOwo+ID4gKwl9Cj4gPiArCj4gPiArCWRybV9tb2RlX2NvbmZpZ19y ZXNldChkZXYpOwo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICsKPiA+ICtlcnJfYXR0YWNoOgo+ ID4gKwlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+ID4gKwo+ID4gK2Vycl9lbmNvZGVy Ogo+ID4gKwlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPiA+ICsKPiA+ICtl cnJfY29ubmVjdG9yX3JlZ2lzdGVyOgo+ID4gKwlkcm1fY29ubmVjdG9yX2NsZWFudXAoY29ubmVj dG9yKTsKPiA+ICsKPiA+ICtlcnJfY29ubmVjdG9yOgo+ID4gKwlkcm1fY3J0Y19jbGVhbnVwKGNy dGMpOwo+ID4gKwo+ID4gK2Vycl9jcnRjOgo+ID4gKwlkcm1fcGxhbmVfY2xlYW51cChwcmltYXJ5 KTsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5j Cj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4yYzI1YjFk NmFiNWIKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfcGxhbmUuYwo+ID4gQEAgLTAsMCArMSw0NiBAQAo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCj4gPiArLyoKPiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ID4gKyAqIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Cj4gPiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiA+ICsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgo+ID4gKyAqLwo+ID4gKwo+ID4gKyNpbmNsdWRlICJ2a21zX2Rydi5oIgo+ID4g KyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJt X2F0b21pY19oZWxwZXIuaD4KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFu ZV9mdW5jcyB2a21zX3BsYW5lX2Z1bmNzID0gewo+ID4gKwkudXBkYXRlX3BsYW5lCQk9IGRybV9h dG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwKPiA+ICsJLmRpc2FibGVfcGxhbmUJCT0gZHJtX2F0 b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSwKPiA+ICsJLmRlc3Ryb3kJCT0gZHJtX3BsYW5lX2Ns ZWFudXAsCj4gPiArCS5yZXNldAkJCT0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQsCj4g PiArCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZHVw bGljYXRlX3N0YXRlLAo+ID4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUJPSBkcm1fYXRvbWljX2hl bHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlLAo+ID4gK307Cj4gPiArCj4gPiArc3RydWN0IGRybV9w bGFuZSAqdmttc19wbGFuZV9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiA+ICt7 Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmdmttc2Rldi0+ZHJtOwo+ID4gKwlzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ICsJY29uc3QgdTMyICpmb3JtYXRzOwo+ID4gKwlpbnQg cmV0LCBuZm9ybWF0czsKPiA+ICsKPiA+ICsJcGxhbmUgPSBremFsbG9jKHNpemVvZigqcGxhbmUp LCBHRlBfS0VSTkVMKTsKPiA+ICsJaWYgKCFwbGFuZSkKPiA+ICsJCXJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOwo+ID4gKwo+ID4gKwlmb3JtYXRzID0gdmttc19mb3JtYXRzOwo+ID4gKwluZm9ybWF0 cyA9IEFSUkFZX1NJWkUodmttc19mb3JtYXRzKTsKPiA+ICsKPiA+ICsJcmV0ID0gZHJtX3VuaXZl cnNhbF9wbGFuZV9pbml0KGRldiwgcGxhbmUsIDAsCj4gPiArCQkJCSAgICAgICAmdmttc19wbGFu ZV9mdW5jcywKPiA+ICsJCQkJICAgICAgIGZvcm1hdHMsIG5mb3JtYXRzLAo+ID4gKwkJCQkgICAg ICAgTlVMTCwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgTlVMTCk7Cj4gPiArCWlmIChyZXQpIHsK PiA+ICsJCWtmcmVlKHBsYW5lKTsKPiA+ICsJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gPiArCX0K PiA+ICsKPiAKPiA0KSBhZGQgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyB3aXRoIGR1bW15IHthdG9t aWNfY2hlY2ssIHByZXBhcmVfZmIsIGNsZWFudXBfZmJ9Lgo+IAo+ID4gKwlyZXR1cm4gcGxhbmU7 Cj4gPiArfQo+ID4gLS0gCj4gPiAyLjE3LjAKPiA+IAo+IAo+IC0gSGFuZWVuCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==