From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: Re: [PATCH v2 2/3] drm/vkms: Add basic CRTC initialization Date: Thu, 24 May 2018 05:24:34 +0300 Message-ID: <20180524022434.GA13352@Haneen> References: <20180520062231.GA24701@Haneen> <20180523085333.GO3438@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id A866389A74 for ; Thu, 24 May 2018 02:24:43 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id i12-v6so139346wrc.4 for ; Wed, 23 May 2018 19:24:43 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180523085333.GO3438@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: dri-devel@lists.freedesktop.org, Sean Paul , Rodrigo Siqueira , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXkgMjMsIDIwMTggYXQgMTA6NTM6MzNBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBTdW4sIE1heSAyMCwgMjAxOCBhdCAwOToyMjozMUFNICswMzAwLCBIYW5lZW4g TW9oYW1tZWQgd3JvdGU6Cj4gPiBPbiBXZWQsIE1heSAxNiwgMjAxOCBhdCAwODo1NjoyMVBNIC0w MzAwLCBSb2RyaWdvIFNpcXVlaXJhIHdyb3RlOgo+ID4gPiBUaGlzIGNvbW1pdCBhZGRzIHRoZSBl c3NlbnRpYWwgaW5mcmFzdHJ1Y3R1cmUgZm9yIGFyb3VuZCBDUlRDcyB3aGljaAo+ID4gPiBpcyBj b21wb3NlZCBvZjogYSBuZXcgZGF0YSBzdHJ1Y3QgZm9yIG91dHB1dCBkYXRhIGluZm9ybWF0aW9u LCBhCj4gPiA+IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBwbGFuZXMsIGFuZCBhIHNpbXBsZSBlbmNv ZGVyIGF0dGFjaGVkIHRvIHRoZQo+ID4gPiBjb25uZWN0b3IuIEZpbmFsbHksIGR1ZSB0byB0aGUg aW50cm9kdWN0aW9uIG9mIGEgbmV3IGluaXRpYWxpemF0aW9uCj4gPiA+IGZ1bmN0aW9uLCBjb25u ZWN0b3JzIHdlcmUgbW92ZWQgZnJvbSB2a21zX2Rydi5jIHRvIHZrbXNfZGlzcGxheS5jLgo+ID4g PiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBTaXF1ZWlyYSA8cm9kcmlnb3NpcXVlaXJh bWVsb0BnbWFpbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFr ZWZpbGUgICAgICB8ICAyICstCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMu YyAgIHwgMzUgKysrKysrKysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Ry di5jICAgIHwgNjAgKysrKysrLS0tLS0tLS0tLS0tLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfZHJ2LmggICAgfCAyNCArKysrKysrLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19vdXRwdXQuYyB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jICB8IDQ2ICsrKysrKysrKysrKysr Kwo+ID4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAyMTEgaW5zZXJ0aW9ucygrKSwgNDcgZGVsZXRpb25z KC0pCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cnRjLmMKPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X291dHB1dC5jCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19wbGFuZS5jCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQo+ID4gPiBpbmRleCAy YWVmOTQ4ZDNhMzQuLjNmNzc0YTZhOWM1OCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvTWFrZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZp bGUKPiA+ID4gQEAgLTEsMyArMSwzIEBACj4gPiA+IC12a21zLXkgOj0gdmttc19kcnYubwo+ID4g PiArdmttcy15IDo9IHZrbXNfZHJ2Lm8gdmttc19wbGFuZS5vIHZrbXNfb3V0cHV0Lm8gdmttc19j cnRjLm8KPiA+ID4gIAo+ID4gPiAgb2JqLSQoQ09ORklHX0RSTV9WS01TKSArPSB2a21zLm8KPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5iZjc2Y2QzOWVjZTcKPiA+ID4gLS0tIC9kZXYvbnVsbAo+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYwo+ID4gPiBAQCAtMCww ICsxLDM1IEBACj4gPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4g PiArLyoKPiA+ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ID4gPiAr ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUg TGljZW5zZSwgb3IKPiA+ID4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Cj4gPiA+ICsgKi8KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPiA+ICsj aW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2Ry bV9jcnRjX2hlbHBlci5oPgo+ID4gPiArCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j cnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9IHsKPiA+ID4gKwkuc2V0X2NvbmZpZyAgICAgICAg ICAgICA9IGRybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcsCj4gPiA+ICsJLmRlc3Ryb3kgICAg ICAgICAgICAgICAgPSBkcm1fY3J0Y19jbGVhbnVwLAo+ID4gPiArCS5wYWdlX2ZsaXAgICAgICAg ICAgICAgID0gZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwLAo+ID4gPiArCS5yZXNldCAgICAg ICAgICAgICAgICAgID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCwKPiA+ID4gKwkuYXRv bWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0 YXRlLAo+ID4gPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0gZHJtX2F0b21pY19oZWxwZXJf Y3J0Y19kZXN0cm95X3N0YXRlLAo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiAraW50IHZrbXNfY3J0 Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ ID4gKwkJICAgc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwgc3RydWN0IGRybV9wbGFuZSAqY3Vy c29yKQo+ID4gPiArewo+ID4gPiArCWludCByZXQ7Cj4gPiA+ICsKPiA+IAo+ID4gSnVzdCBhcyBh IGZvbGxvdyB1cCwgSSBoYXZlIG5vdGljZWQgdGhhdCB2a21zIGJyZWFrcyB3aGVuIGluc3BlY3Rp bmcKPiA+IGl0cyBzdGF0ZSBpbiB0aGUgZGVidWdmcywgYWxzbyB3aGVuIHJ1bm5pbmcgaWd0IHRl c3RzIHdpdGgga21zIGFuZCBjb3JlCj4gPiBmaWx0ZXJzLCBhbmQgYWRkaW5nIHRoZSBmb2xsb3dp bmcgZml4ZWQgdGhhdCBpc3N1ZToKPiA+IAo+ID4gMSkgYSBkcm1fY3J0Y19oZWxwZXJfZnVuY3Mg d2l0aCBkdW1teSBhdG9taWNfY2hlY2suCj4gCj4gV2UncmUgdHJ5aW5nIHRvIG1ha2UgY2FsbGJh Y2tzIGFzIG9wdGlvbmFsIGFzIHBvc3NpYmxlLCB0aGlzIHdhcyBwcm9iYWJseQo+IGp1c3QgYW4g b3ZlcnNpZ2h0LiBDYW4geW91IHRyeSB0byBmaW5kIHRoZSBwbGFjZSB3aGVyZSB0aGlzIGlzIGNh bGxlZCwgYW5kCj4gYWRkIHN1aXRhYmxlIGNoZWNrcyBmb3IgTlVMTCBfZnVuY3MgcG9pbnRlcj8K PiAKPiBUaGFua3MsIERhbmllbAoKU3VyZSwgSSdsbCBsb29rIGZvciB0aGF0LgoKPiA+IAo+ID4g PiArCXJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCBjcnRjLCBwcmltYXJ5LCBj dXJzb3IsCj4gPiA+ICsJCQkJCSZ2a21zX2NydGNfZnVuY3MsIE5VTEwpOwo+ID4gPiArCWlmIChy ZXQpIHsKPiA+ID4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBDUlRDXG4iKTsKPiA+ID4g KwkJcmV0dXJuIHJldDsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4gcmV0Owo+ID4g PiArfQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKPiA+ID4gaW5kZXggYWVjM2YxODBmOTZk Li4wNzA2MTNlMzI5MzQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3Zr bXNfZHJ2LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+ID4g PiBAQCAtNiw3ICs2LDYgQEAKPiA+ID4gICAqLwo+ID4gPiAgCj4gPiA+ICAjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+Cj4gPiA+IC0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ID4gICNpbmNsdWRl IDxkcm0vZHJtX2dlbS5oPgo+ID4gPiAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4K PiA+ID4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiA+ID4gQEAgLTU5LDI1 ICs1OCwyNCBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmttc19kcml2ZXIgPSB7Cj4gPiA+ ICAJLm1pbm9yCQkJPSBEUklWRVJfTUlOT1IsCj4gPiA+ICB9Owo+ID4gPiAgCj4gPiA+IC1zdGF0 aWMgY29uc3QgdTMyIHZrbXNfZm9ybWF0c1tdID0gewo+ID4gPiAtCURSTV9GT1JNQVRfWFJHQjg4 ODgsCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyB2a21z X21vZGVfZnVuY3MgPSB7Cj4gPiA+ICsJLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVy X2NoZWNrLAo+ID4gPiArCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0 LAo+ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiAtc3RhdGljIHZvaWQgdmttc19jb25uZWN0b3JfZGVz dHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gPiArc3RhdGljIGludCB2 a21zX21vZGVzZXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYpCj4gPiA+ICB7Cj4g PiA+IC0JZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+IC0JZHJtX2Nv bm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gPiA+IC19Cj4gPiA+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB2a21zX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ID4g LQkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywK PiA+ID4gLQkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ksCj4gPiA+IC19Owo+ID4g PiArCWRybV9tb2RlX2NvbmZpZ19pbml0KGRldik7Cj4gPiA+ICsJZGV2LT5tb2RlX2NvbmZpZy5m dW5jcyA9ICZ2a21zX21vZGVfZnVuY3M7Cj4gPiA+ICsJZGV2LT5tb2RlX2NvbmZpZy5taW5fd2lk dGggPSBYUkVTX01JTjsKPiA+ID4gKwlkZXYtPm1vZGVfY29uZmlnLm1pbl9oZWlnaHQgPSBZUkVT X01JTjsKPiA+ID4gKwlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IFhSRVNfTUFYOwo+ID4g PiArCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IFlSRVNfTUFYOwo+ID4gPiAgCj4gPiA+ IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVu Y3MgPSB7Cj4gPiA+IC0JLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrLAo+ ID4gPiAtCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0LAo+ID4gPiAt fTsKPiA+ID4gKwlyZXR1cm4gdmttc19vdXRwdXRfaW5pdCh2a21zZGV2KTsKPiA+ID4gK30KPiA+ ID4gIAo+ID4gPiAgc3RhdGljIGludCBfX2luaXQgdmttc19pbml0KHZvaWQpCj4gPiA+ICB7Cj4g PiA+IEBAIC05OCw0OCArOTYsMjQgQEAgc3RhdGljIGludCBfX2luaXQgdmttc19pbml0KHZvaWQp Cj4gPiA+ICAJCWdvdG8gb3V0X2Zpbmk7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0JZHJtX21v ZGVfY29uZmlnX2luaXQoJnZrbXNfZGV2aWNlLT5kcm0pOwo+ID4gPiAtCXZrbXNfZGV2aWNlLT5k cm0ubW9kZV9jb25maWcuZnVuY3MgPSAmdmttc19tb2RlX2Z1bmNzOwo+ID4gPiAtCXZrbXNfZGV2 aWNlLT5kcm0ubW9kZV9jb25maWcubWluX3dpZHRoID0gWFJFU19NSU47Cj4gPiA+IC0Jdmttc19k ZXZpY2UtPmRybS5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gWVJFU19NSU47Cj4gPiA+IC0Jdmtt c19kZXZpY2UtPmRybS5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBYUkVTX01BWDsKPiA+ID4gLQl2 a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPSBZUkVTX01BWDsKPiA+ID4g LQo+ID4gPiAtCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdCgmdmttc19kZXZpY2UtPmRybSwgJnZr bXNfZGV2aWNlLT5jb25uZWN0b3IsCj4gPiA+IC0JCQkJICZ2a21zX2Nvbm5lY3Rvcl9mdW5jcywK PiA+ID4gLQkJCQkgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpOwo+ID4gPiAtCWlmIChyZXQg PCAwKSB7Cj4gPiA+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXQgY29ubmVjdG9yXG4iKTsK PiA+ID4gLQkJZ290byBvdXRfdW5yZWdpc3RlcjsKPiA+ID4gLQl9Cj4gPiA+IC0KPiA+ID4gLQly ZXQgPSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KCZ2a21zX2RldmljZS0+ZHJtLAo+ID4g PiAtCQkJCQkgICAmdmttc19kZXZpY2UtPnBpcGUsCj4gPiA+IC0JCQkJCSAgIE5VTEwsCj4gPiA+ IC0JCQkJCSAgIHZrbXNfZm9ybWF0cywKPiA+ID4gLQkJCQkJICAgQVJSQVlfU0laRSh2a21zX2Zv cm1hdHMpLAo+ID4gPiAtCQkJCQkgICBOVUxMLAo+ID4gPiAtCQkJCQkgICAmdmttc19kZXZpY2Ut PmNvbm5lY3Rvcik7Cj4gPiA+IC0JaWYgKHJldCA8IDApIHsKPiA+ID4gLQkJRFJNX0VSUk9SKCJD YW5ub3Qgc2V0dXAgc2ltcGxlIGRpc3BsYXkgcGlwZVxuIik7Cj4gPiA+ICsJcmV0ID0gdmttc19t b2Rlc2V0X2luaXQodmttc19kZXZpY2UpOwo+ID4gPiArCWlmIChyZXQpCj4gPiA+ICAJCWdvdG8g b3V0X3VucmVnaXN0ZXI7Cj4gPiA+IC0JfQo+ID4gPiAgCj4gPiA+ICAJcmV0ID0gZHJtX2Rldl9y ZWdpc3Rlcigmdmttc19kZXZpY2UtPmRybSwgMCk7Cj4gPiA+ICAJaWYgKHJldCkKPiA+ID4gIAkJ Z290byBvdXRfdW5yZWdpc3RlcjsKPiA+ID4gIAo+ID4gPiAtCWRybV9jb25uZWN0b3JfcmVnaXN0 ZXIoJnZrbXNfZGV2aWNlLT5jb25uZWN0b3IpOwo+ID4gPiAtCj4gPiA+ICAJcmV0dXJuIDA7Cj4g PiA+ICAKPiA+ID4gIG91dF91bnJlZ2lzdGVyOgo+ID4gPiAgCXBsYXRmb3JtX2RldmljZV91bnJl Z2lzdGVyKHZrbXNfZGV2aWNlLT5wbGF0Zm9ybSk7Cj4gPiA+ICsKPiA+ID4gIG91dF9maW5pOgo+ ID4gPiAgCWRybV9kZXZfZmluaSgmdmttc19kZXZpY2UtPmRybSk7Cj4gPiA+ICsKPiA+ID4gIG91 dF9mcmVlOgo+ID4gPiAgCWtmcmVlKHZrbXNfZGV2aWNlKTsKPiA+ID4gLQo+ID4gPiAgCXJldHVy biByZXQ7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPiA+ IGluZGV4IGM3N2M1YmY1MDMyYS4uYjBmOWQyZTYxYTQyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfZHJ2LmgKPiA+ID4gQEAgLTEsMTMgKzEsMzEgQEAKPiA+ID4gICNpZm5kZWYgX1ZL TVNfRFJWX0hfCj4gPiA+ICAjZGVmaW5lIF9WS01TX0RSVl9IXwo+ID4gPiAgCj4gPiA+IC0jaW5j bHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9k cm1QLmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybS5oPgo+ID4gPiArI2luY2x1ZGUgPGRybS9k cm1fZW5jb2Rlci5oPgo+ID4gPiArCj4gPiA+ICtzdGF0aWMgY29uc3QgdTMyIHZrbXNfZm9ybWF0 c1tdID0gewo+ID4gPiArCURSTV9GT1JNQVRfWFJHQjg4ODgsCj4gPiA+ICt9Owo+ID4gPiArCj4g PiA+ICtzdHJ1Y3Qgdmttc19vdXRwdXQgewo+ID4gPiArCXN0cnVjdCBkcm1fY3J0YyBjcnRjOwo+ ID4gPiArCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ID4gPiArCXN0cnVjdCBkcm1fY29u bmVjdG9yIGNvbm5lY3RvcjsKPiA+ID4gK307Cj4gPiA+ICAKPiA+ID4gIHN0cnVjdCB2a21zX2Rl dmljZSB7Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgZHJtOwo+ID4gPiAgCXN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBsYXRmb3JtOwo+ID4gPiAtCXN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlf cGlwZSBwaXBlOwo+ID4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKPiA+ID4g KwlzdHJ1Y3Qgdmttc19vdXRwdXQgb3V0cHV0Owo+ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiAraW50 IHZrbXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiA+ID4gKwkJICAgc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwgc3RydWN0IGRybV9w bGFuZSAqY3Vyc29yKTsKPiA+ID4gKwo+ID4gPiAraW50IHZrbXNfb3V0cHV0X2luaXQoc3RydWN0 IHZrbXNfZGV2aWNlICp2a21zZGV2KTsKPiA+ID4gKwo+ID4gPiArc3RydWN0IGRybV9wbGFuZSAq dmttc19wbGFuZV9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2Rldik7Cj4gPiA+ICsKPiA+ ID4gICNlbmRpZiAvKiBfVktNU19EUlZfSF8gKi8KPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX291 dHB1dC5jCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGluZGV4IDAwMDAwMDAwMDAw MC4uNDgxNDNlYWMzYzEyCj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+ID4gPiBAQCAtMCwwICsxLDkxIEBACj4gPiA+ICsv LyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gPiArLyoKPiA+ID4gKyAqIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Cj4gPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ID4gPiArICogdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiA+ID4g KyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gPiA+ICsgKi8KPiA+ID4g Kwo+ID4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9j cnRjX2hlbHBlci5oPgo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCB2a21zX2Nvbm5lY3Rvcl9k ZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiA+ICt7Cj4gPiA+ICsJ ZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ICsJZHJtX2Nvbm5lY3Rv cl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB2a21zX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+ ID4gKwkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rl cywKPiA+ID4gKwkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ksCj4gPiAKPiA+IDIp IGFkZGluZyB0aGUgZm9sbG93aW5nIGhvb2tzIHdpdGggdGhlaXIgZHJtX2F0b21pY19oZWxwZXJf Y29ubmVjdG9yXyoKPiA+IGNvdW50ZXJwYXJ0IHRvIHRoZSB2a21zX2Nvbm5lY3Rvcl9mdW5jczoK PiA+IGF0b21pY19kdXBsaWNhdGVfc3RhdGUsIGF0b21pY19kZXN0cm95X3N0YXRlLCBhbmQgcmVz ZXQuCj4gPiAKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2VuY29kZXJfZnVuY3Mgdmttc19lbmNvZGVyX2Z1bmNzID0gewo+ID4gPiArCS5kZXN0cm95ID0g ZHJtX2VuY29kZXJfY2xlYW51cCwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK2ludCB2a21zX291 dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiA+ID4gK3sKPiA+ID4gKwlz dHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9ICZ2a21zZGV2LT5vdXRwdXQ7Cj4gPiA+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiA+ICsJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciA9ICZvdXRwdXQtPmNvbm5lY3RvcjsKPiA+ID4gKwlzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmb3V0cHV0LT5lbmNvZGVyOwo+ID4gPiArCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9ICZvdXRwdXQtPmNydGM7Cj4gPiA+ICsJc3RydWN0IGRybV9wbGFuZSAq cHJpbWFyeTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJcHJpbWFyeSA9IHZrbXNf cGxhbmVfaW5pdCh2a21zZGV2KTsKPiA+ID4gKwlpZiAoSVNfRVJSKHByaW1hcnkpKQo+ID4gPiAr CQlyZXR1cm4gUFRSX0VSUihwcmltYXJ5KTsKPiA+ID4gKwo+ID4gPiArCXJldCA9IHZrbXNfY3J0 Y19pbml0KGRldiwgY3J0YywgcHJpbWFyeSwgTlVMTCk7Cj4gPiA+ICsJaWYgKHJldCkKPiA+ID4g KwkJZ290byBlcnJfY3J0YzsKPiA+ID4gKwo+ID4gCj4gPiAzKSBhZGQgZHJtX2Nvbm5lY3Rvcl9o ZWxwZXJfZnVuY3Mgd2l0aCBkdW1teSB7Z2V0X21vZGVzLCBtb2RlX3ZhbGlkfS4KPiA+IAo+ID4g PiArCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgJnZrbXNfY29ubmVj dG9yX2Z1bmNzLAo+ID4gPiArCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCk7Cj4gPiA+ ICsJaWYgKHJldCkgewo+ID4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0IGNvbm5lY3Rv clxuIik7Cj4gPiA+ICsJCWdvdG8gZXJyX2Nvbm5lY3RvcjsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ ID4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ICsJaWYg KHJldCkgewo+ID4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBjb25uZWN0b3Jc biIpOwo+ID4gPiArCQlnb3RvIGVycl9jb25uZWN0b3JfcmVnaXN0ZXI7Cj4gPiA+ICsJfQo+ID4g PiArCj4gPiA+ICsJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChkZXYsIGVuY29kZXIsICZ2a21zX2Vu Y29kZXJfZnVuY3MsCj4gPiA+ICsJCQkgICAgICAgRFJNX01PREVfRU5DT0RFUl9WSVJUVUFMLCBO VUxMKTsKPiA+ID4gKwlpZiAocmV0KSB7Cj4gPiA+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGlu aXQgZW5jb2RlclxuIik7Cj4gPiA+ICsJCWdvdG8gZXJyX2VuY29kZXI7Cj4gPiA+ICsJfQo+ID4g PiArCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gMTsKPiA+ID4gKwo+ID4gPiArCXJldCA9IGRy bV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29kZXIpOwo+ID4g PiArCWlmIChyZXQpIHsKPiA+ID4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0YWNoIGNvbm5l Y3RvciB0byBlbmNvZGVyXG4iKTsKPiA+ID4gKwkJZ290byBlcnJfYXR0YWNoOwo+ID4gPiArCX0K PiA+ID4gKwo+ID4gPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYpOwo+ID4gPiArCj4gPiA+ ICsJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gK2Vycl9hdHRhY2g6Cj4gPiA+ICsJZHJtX2VuY29k ZXJfY2xlYW51cChlbmNvZGVyKTsKPiA+ID4gKwo+ID4gPiArZXJyX2VuY29kZXI6Cj4gPiA+ICsJ ZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ICsKPiA+ID4gK2Vycl9j b25uZWN0b3JfcmVnaXN0ZXI6Cj4gPiA+ICsJZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rv cik7Cj4gPiA+ICsKPiA+ID4gK2Vycl9jb25uZWN0b3I6Cj4gPiA+ICsJZHJtX2NydGNfY2xlYW51 cChjcnRjKTsKPiA+ID4gKwo+ID4gPiArZXJyX2NydGM6Cj4gPiA+ICsJZHJtX3BsYW5lX2NsZWFu dXAocHJpbWFyeSk7Cj4gPiA+ICsJcmV0dXJuIHJldDsKPiA+ID4gK30KPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfcGxhbmUuYwo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiBpbmRleCAw MDAwMDAwMDAwMDAuLjJjMjViMWQ2YWI1Ygo+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4gPiBAQCAtMCwwICsxLDQ2IEBA Cj4gPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gPiArLyoKPiA+ ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ID4gPiArICogdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg b3IKPiA+ID4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gPiA+ICsg Ki8KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPiA+ICsjaW5jbHVkZSA8 ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KPiA+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19o ZWxwZXIuaD4KPiA+ID4gKwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVu Y3Mgdmttc19wbGFuZV9mdW5jcyA9IHsKPiA+ID4gKwkudXBkYXRlX3BsYW5lCQk9IGRybV9hdG9t aWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwKPiA+ID4gKwkuZGlzYWJsZV9wbGFuZQkJPSBkcm1fYXRv bWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+ID4gPiArCS5kZXN0cm95CQk9IGRybV9wbGFuZV9j bGVhbnVwLAo+ID4gPiArCS5yZXNldAkJCT0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQs Cj4gPiA+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFu ZV9kdXBsaWNhdGVfc3RhdGUsCj4gPiA+ICsJLmF0b21pY19kZXN0cm95X3N0YXRlCT0gZHJtX2F0 b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZSwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4g K3N0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZr bXNkZXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2 LT5kcm07Cj4gPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPiA+ICsJY29uc3QgdTMy ICpmb3JtYXRzOwo+ID4gPiArCWludCByZXQsIG5mb3JtYXRzOwo+ID4gPiArCj4gPiA+ICsJcGxh bmUgPSBremFsbG9jKHNpemVvZigqcGxhbmUpLCBHRlBfS0VSTkVMKTsKPiA+ID4gKwlpZiAoIXBs YW5lKQo+ID4gPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiA+ID4gKwo+ID4gPiArCWZv cm1hdHMgPSB2a21zX2Zvcm1hdHM7Cj4gPiA+ICsJbmZvcm1hdHMgPSBBUlJBWV9TSVpFKHZrbXNf Zm9ybWF0cyk7Cj4gPiA+ICsKPiA+ID4gKwlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQo ZGV2LCBwbGFuZSwgMCwKPiA+ID4gKwkJCQkgICAgICAgJnZrbXNfcGxhbmVfZnVuY3MsCj4gPiA+ ICsJCQkJICAgICAgIGZvcm1hdHMsIG5mb3JtYXRzLAo+ID4gPiArCQkJCSAgICAgICBOVUxMLCBE Uk1fUExBTkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiA+ID4gKwlpZiAocmV0KSB7Cj4gPiA+ICsJ CWtmcmVlKHBsYW5lKTsKPiA+ID4gKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ID4gKwl9Cj4g PiA+ICsKPiA+IAo+ID4gNCkgYWRkIGRybV9wbGFuZV9oZWxwZXJfZnVuY3Mgd2l0aCBkdW1teSB7 YXRvbWljX2NoZWNrLCBwcmVwYXJlX2ZiLCBjbGVhbnVwX2ZifS4KPiA+IAo+ID4gPiArCXJldHVy biBwbGFuZTsKPiA+ID4gK30KPiA+ID4gLS0gCj4gPiA+IDIuMTcuMAo+ID4gPiAKPiA+IAo+ID4g LSBIYW5lZW4KPiAKPiAtLSAKPiBEYW5pZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==