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: Sun, 20 May 2018 09:22:31 +0300 Message-ID: <20180520062231.GA24701@Haneen> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 01DF06E154 for ; Sun, 20 May 2018 06:22:49 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id n10-v6so21435772wmc.1 for ; Sat, 19 May 2018 23:22:49 -0700 (PDT) Content-Disposition: inline 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: Rodrigo Siqueira Cc: dri-devel@lists.freedesktop.org, Sean Paul , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXkgMTYsIDIwMTggYXQgMDg6NTY6MjFQTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBUaGlzIGNvbW1pdCBhZGRzIHRoZSBlc3NlbnRpYWwgaW5mcmFzdHJ1Y3R1cmUg Zm9yIGFyb3VuZCBDUlRDcyB3aGljaAo+IGlzIGNvbXBvc2VkIG9mOiBhIG5ldyBkYXRhIHN0cnVj dCBmb3Igb3V0cHV0IGRhdGEgaW5mb3JtYXRpb24sIGEKPiBmdW5jdGlvbiBmb3IgY3JlYXRpbmcg cGxhbmVzLCBhbmQgYSBzaW1wbGUgZW5jb2RlciBhdHRhY2hlZCB0byB0aGUKPiBjb25uZWN0b3Iu IEZpbmFsbHksIGR1ZSB0byB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IGluaXRpYWxpemF0aW9u Cj4gZnVuY3Rpb24sIGNvbm5lY3RvcnMgd2VyZSBtb3ZlZCBmcm9tIHZrbXNfZHJ2LmMgdG8gdmtt c19kaXNwbGF5LmMuCj4gCj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBTaXF1ZWlyYSA8cm9kcmln b3NpcXVlaXJhbWVsb0BnbWFpbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL01h a2VmaWxlICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2NydGMuYyAg IHwgMzUgKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMgICAg fCA2MCArKysrKystLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Ry di5oICAgIHwgMjQgKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQu YyB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX3BsYW5lLmMgIHwgNDYgKysrKysrKysrKysrKysrCj4gIDYgZmlsZXMgY2hhbmdl ZCwgMjExIGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxl Cj4gaW5kZXggMmFlZjk0OGQzYTM0Li4zZjc3NGE2YTljNTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtl ZmlsZQo+IEBAIC0xLDMgKzEsMyBAQAo+IC12a21zLXkgOj0gdmttc19kcnYubwo+ICt2a21zLXkg Oj0gdmttc19kcnYubyB2a21zX3BsYW5lLm8gdmttc19vdXRwdXQubyB2a21zX2NydGMubwo+ICAK PiAgb2JqLSQoQ09ORklHX0RSTV9WS01TKSArPSB2a21zLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Ny dGMuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iZjc2Y2Qz OWVjZTcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cnRjLmMKPiBAQCAtMCwwICsxLDM1IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wCj4gKy8qCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAqLwo+ ICsKPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19o ZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiArCj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3Mgdmttc19jcnRjX2Z1bmNzID0gewo+ICsJLnNl dF9jb25maWcgICAgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnLAo+ICsJ LmRlc3Ryb3kgICAgICAgICAgICAgICAgPSBkcm1fY3J0Y19jbGVhbnVwLAo+ICsJLnBhZ2VfZmxp cCAgICAgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9wYWdlX2ZsaXAsCj4gKwkucmVzZXQg ICAgICAgICAgICAgICAgICA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQsCj4gKwkuYXRv bWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRlX3N0 YXRlLAo+ICsJLmF0b21pY19kZXN0cm95X3N0YXRlICAgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRj X2Rlc3Ryb3lfc3RhdGUsCj4gK307Cj4gKwo+ICtpbnQgdmttc19jcnRjX2luaXQoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCSAgIHN0cnVjdCBkcm1f cGxhbmUgKnByaW1hcnksIHN0cnVjdCBkcm1fcGxhbmUgKmN1cnNvcikKPiArewo+ICsJaW50IHJl dDsKPiArCgpKdXN0IGFzIGEgZm9sbG93IHVwLCBJIGhhdmUgbm90aWNlZCB0aGF0IHZrbXMgYnJl YWtzIHdoZW4gaW5zcGVjdGluZwppdHMgc3RhdGUgaW4gdGhlIGRlYnVnZnMsIGFsc28gd2hlbiBy dW5uaW5nIGlndCB0ZXN0cyB3aXRoIGttcyBhbmQgY29yZQpmaWx0ZXJzLCBhbmQgYWRkaW5nIHRo ZSBmb2xsb3dpbmcgZml4ZWQgdGhhdCBpc3N1ZToKCjEpIGEgZHJtX2NydGNfaGVscGVyX2Z1bmNz IHdpdGggZHVtbXkgYXRvbWljX2NoZWNrLgoKPiArCXJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9w bGFuZXMoZGV2LCBjcnRjLCBwcmltYXJ5LCBjdXJzb3IsCj4gKwkJCQkJJnZrbXNfY3J0Y19mdW5j cywgTlVMTCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBD UlRDXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKPiBpbmRleCBhZWMzZjE4MGY5NmQuLjA3MDYxM2UzMjkz NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+IEBAIC02LDcgKzYsNiBAQAo+ICAgKi8K PiAgCj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1QLmg+ Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hl bHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gQEAgLTU5LDI1 ICs1OCwyNCBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmttc19kcml2ZXIgPSB7Cj4gIAku bWlub3IJCQk9IERSSVZFUl9NSU5PUiwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1MzIgdmtt c19mb3JtYXRzW10gPSB7Cj4gLQlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3MgPSB7Cj4gKwkuYXRv bWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gKwkuYXRvbWljX2NvbW1pdCA9 IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIHZrbXNf Y29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArc3Rh dGljIGludCB2a21zX21vZGVzZXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYpCj4g IHsKPiAtCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+IC0JZHJtX2Nvbm5l Y3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gLX0KPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSAmdmttc2Rldi0+ZHJtOwo+ICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X2Z1bmNzIHZrbXNfY29ubmVjdG9yX2Z1bmNzID0gewo+IC0JLmZpbGxfbW9kZXMgPSBkcm1faGVs cGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCj4gLQkuZGVzdHJveSA9IHZrbXNfY29u bmVjdG9yX2Rlc3Ryb3ksCj4gLX07Cj4gKwlkcm1fbW9kZV9jb25maWdfaW5pdChkZXYpOwo+ICsJ ZGV2LT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZ2a21zX21vZGVfZnVuY3M7Cj4gKwlkZXYtPm1vZGVf Y29uZmlnLm1pbl93aWR0aCA9IFhSRVNfTUlOOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5taW5faGVp Z2h0ID0gWVJFU19NSU47Cj4gKwlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IFhSRVNfTUFY Owo+ICsJZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gWVJFU19NQVg7Cj4gIAo+IC1zdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3MgPSB7 Cj4gLQkuYXRvbWljX2NoZWNrID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gLQkuYXRvbWlj X2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCwKPiAtfTsKPiArCXJldHVybiB2a21z X291dHB1dF9pbml0KHZrbXNkZXYpOwo+ICt9Cj4gIAo+ICBzdGF0aWMgaW50IF9faW5pdCB2a21z X2luaXQodm9pZCkKPiAgewo+IEBAIC05OCw0OCArOTYsMjQgQEAgc3RhdGljIGludCBfX2luaXQg dmttc19pbml0KHZvaWQpCj4gIAkJZ290byBvdXRfZmluaTsKPiAgCX0KPiAgCj4gLQlkcm1fbW9k ZV9jb25maWdfaW5pdCgmdmttc19kZXZpY2UtPmRybSk7Cj4gLQl2a21zX2RldmljZS0+ZHJtLm1v ZGVfY29uZmlnLmZ1bmNzID0gJnZrbXNfbW9kZV9mdW5jczsKPiAtCXZrbXNfZGV2aWNlLT5kcm0u bW9kZV9jb25maWcubWluX3dpZHRoID0gWFJFU19NSU47Cj4gLQl2a21zX2RldmljZS0+ZHJtLm1v ZGVfY29uZmlnLm1pbl9oZWlnaHQgPSBZUkVTX01JTjsKPiAtCXZrbXNfZGV2aWNlLT5kcm0ubW9k ZV9jb25maWcubWF4X3dpZHRoID0gWFJFU19NQVg7Cj4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVf Y29uZmlnLm1heF9oZWlnaHQgPSBZUkVTX01BWDsKPiAtCj4gLQlyZXQgPSBkcm1fY29ubmVjdG9y X2luaXQoJnZrbXNfZGV2aWNlLT5kcm0sICZ2a21zX2RldmljZS0+Y29ubmVjdG9yLAo+IC0JCQkJ ICZ2a21zX2Nvbm5lY3Rvcl9mdW5jcywKPiAtCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVB TCk7Cj4gLQlpZiAocmV0IDwgMCkgewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXQgY29u bmVjdG9yXG4iKTsKPiAtCQlnb3RvIG91dF91bnJlZ2lzdGVyOwo+IC0JfQo+IC0KPiAtCXJldCA9 IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoJnZrbXNfZGV2aWNlLT5kcm0sCj4gLQkJCQkJ ICAgJnZrbXNfZGV2aWNlLT5waXBlLAo+IC0JCQkJCSAgIE5VTEwsCj4gLQkJCQkJICAgdmttc19m b3JtYXRzLAo+IC0JCQkJCSAgIEFSUkFZX1NJWkUodmttc19mb3JtYXRzKSwKPiAtCQkJCQkgICBO VUxMLAo+IC0JCQkJCSAgICZ2a21zX2RldmljZS0+Y29ubmVjdG9yKTsKPiAtCWlmIChyZXQgPCAw KSB7Cj4gLQkJRFJNX0VSUk9SKCJDYW5ub3Qgc2V0dXAgc2ltcGxlIGRpc3BsYXkgcGlwZVxuIik7 Cj4gKwlyZXQgPSB2a21zX21vZGVzZXRfaW5pdCh2a21zX2RldmljZSk7Cj4gKwlpZiAocmV0KQo+ ICAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7Cj4gLQl9Cj4gIAo+ICAJcmV0ID0gZHJtX2Rldl9yZWdp c3Rlcigmdmttc19kZXZpY2UtPmRybSwgMCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0X3Vu cmVnaXN0ZXI7Cj4gIAo+IC0JZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcigmdmttc19kZXZpY2UtPmNv bm5lY3Rvcik7Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBvdXRfdW5yZWdpc3RlcjoKPiAgCXBs YXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHZrbXNfZGV2aWNlLT5wbGF0Zm9ybSk7Cj4gKwo+ICBv dXRfZmluaToKPiAgCWRybV9kZXZfZmluaSgmdmttc19kZXZpY2UtPmRybSk7Cj4gKwo+ICBvdXRf ZnJlZToKPiAgCWtmcmVlKHZrbXNfZGV2aWNlKTsKPiAtCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAo+IGluZGV4IGM3N2M1YmY1MDMyYS4uYjBmOWQyZTYx YTQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gQEAgLTEsMTMgKzEsMzEgQEAKPiAg I2lmbmRlZiBfVktNU19EUlZfSF8KPiAgI2RlZmluZSBfVktNU19EUlZfSF8KPiAgCj4gLSNpbmNs dWRlIDxkcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5o Pgo+ICsjaW5jbHVkZSA8ZHJtL2RybS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+ Cj4gKwo+ICtzdGF0aWMgY29uc3QgdTMyIHZrbXNfZm9ybWF0c1tdID0gewo+ICsJRFJNX0ZPUk1B VF9YUkdCODg4OCwKPiArfTsKPiArCj4gK3N0cnVjdCB2a21zX291dHB1dCB7Cj4gKwlzdHJ1Y3Qg ZHJtX2NydGMgY3J0YzsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ICsJc3RydWN0 IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+ICt9Owo+ICAKPiAgc3RydWN0IHZrbXNfZGV2aWNl IHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlIGRybTsKPiAgCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBsYXRmb3JtOwo+IC0Jc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlIHBpcGU7Cj4gLQlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0b3I7Cj4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgb3V0 cHV0Owo+ICB9Owo+ICAKPiAraW50IHZrbXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkgICBzdHJ1Y3QgZHJtX3BsYW5lICpwcmlt YXJ5LCBzdHJ1Y3QgZHJtX3BsYW5lICpjdXJzb3IpOwo+ICsKPiAraW50IHZrbXNfb3V0cHV0X2lu aXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KTsKPiArCj4gK3N0cnVjdCBkcm1fcGxhbmUg KnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYpOwo+ICsKPiAgI2Vu ZGlmIC8qIF9WS01TX0RSVl9IXyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX291dHB1dC5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi40ODE0M2VhYzNjMTIKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+ IEBAIC0wLDAgKzEsOTEgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAK PiArLyoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK PiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICovCj4gKwo+ICsj aW5jbHVkZSAidmttc19kcnYuaCIKPiArI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4K PiArCj4gK3N0YXRpYyB2b2lkIHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5l Y3Rvcik7Cj4gKwlkcm1fY29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPiArfQo+ICsKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHZrbXNfY29ubmVjdG9yX2Z1 bmNzID0gewo+ICsJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0 b3JfbW9kZXMsCj4gKwkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ksCgoyKSBhZGRp bmcgdGhlIGZvbGxvd2luZyBob29rcyB3aXRoIHRoZWlyIGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl8qCmNvdW50ZXJwYXJ0IHRvIHRoZSB2a21zX2Nvbm5lY3Rvcl9mdW5jczoKYXRvbWljX2R1 cGxpY2F0ZV9zdGF0ZSwgYXRvbWljX2Rlc3Ryb3lfc3RhdGUsIGFuZCByZXNldC4KCj4gK307Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIHZrbXNfZW5jb2Rlcl9m dW5jcyA9IHsKPiArCS5kZXN0cm95ID0gZHJtX2VuY29kZXJfY2xlYW51cCwKPiArfTsKPiArCj4g K2ludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiArewo+ ICsJc3RydWN0IHZrbXNfb3V0cHV0ICpvdXRwdXQgPSAmdmttc2Rldi0+b3V0cHV0Owo+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gJm91dHB1dC0+Y29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyID0gJm91dHB1dC0+ZW5jb2RlcjsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9ICZvdXRwdXQtPmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5Owo+ICsJaW50 IHJldDsKPiArCj4gKwlwcmltYXJ5ID0gdmttc19wbGFuZV9pbml0KHZrbXNkZXYpOwo+ICsJaWYg KElTX0VSUihwcmltYXJ5KSkKPiArCQlyZXR1cm4gUFRSX0VSUihwcmltYXJ5KTsKPiArCj4gKwly ZXQgPSB2a21zX2NydGNfaW5pdChkZXYsIGNydGMsIHByaW1hcnksIE5VTEwpOwo+ICsJaWYgKHJl dCkKPiArCQlnb3RvIGVycl9jcnRjOwo+ICsKCjMpIGFkZCBkcm1fY29ubmVjdG9yX2hlbHBlcl9m dW5jcyB3aXRoIGR1bW15IHtnZXRfbW9kZXMsIG1vZGVfdmFsaWR9LgoKPiArCXJldCA9IGRybV9j b25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgJnZrbXNfY29ubmVjdG9yX2Z1bmNzLAo+ICsJ CQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1f RVJST1IoIkZhaWxlZCB0byBpbml0IGNvbm5lY3RvclxuIik7Cj4gKwkJZ290byBlcnJfY29ubmVj dG9yOwo+ICsJfQo+ICsKPiArCXJldCA9IGRybV9jb25uZWN0b3JfcmVnaXN0ZXIoY29ubmVjdG9y KTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBjb25u ZWN0b3JcbiIpOwo+ICsJCWdvdG8gZXJyX2Nvbm5lY3Rvcl9yZWdpc3RlcjsKPiArCX0KPiArCj4g KwlyZXQgPSBkcm1fZW5jb2Rlcl9pbml0KGRldiwgZW5jb2RlciwgJnZrbXNfZW5jb2Rlcl9mdW5j cywKPiArCQkJICAgICAgIERSTV9NT0RFX0VOQ09ERVJfVklSVFVBTCwgTlVMTCk7Cj4gKwlpZiAo cmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBlbmNvZGVyXG4iKTsKPiArCQln b3RvIGVycl9lbmNvZGVyOwo+ICsJfQo+ICsJZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSAxOwo+ ICsKPiArCXJldCA9IGRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3Is IGVuY29kZXIpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGF0dGFj aCBjb25uZWN0b3IgdG8gZW5jb2RlclxuIik7Cj4gKwkJZ290byBlcnJfYXR0YWNoOwo+ICsJfQo+ ICsKPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYpOwo+ICsKPiArCXJldHVybiAwOwo+ICsK PiArZXJyX2F0dGFjaDoKPiArCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gKwo+ICtl cnJfZW5jb2RlcjoKPiArCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+ICsK PiArZXJyX2Nvbm5lY3Rvcl9yZWdpc3RlcjoKPiArCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25u ZWN0b3IpOwo+ICsKPiArZXJyX2Nvbm5lY3RvcjoKPiArCWRybV9jcnRjX2NsZWFudXAoY3J0Yyk7 Cj4gKwo+ICtlcnJfY3J0YzoKPiArCWRybV9wbGFuZV9jbGVhbnVwKHByaW1hcnkpOwo+ICsJcmV0 dXJuIHJldDsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3Bs YW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMmMyNWIxZDZhYjViCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+IEBAIC0wLDAgKzEs NDYgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArLyoKPiArICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiArICogKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICovCj4gKwo+ICsjaW5jbHVkZSAidmtt c19kcnYuaCIKPiArI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Cj4gKyNpbmNsdWRl IDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X3BsYW5lX2Z1bmNzIHZrbXNfcGxhbmVfZnVuY3MgPSB7Cj4gKwkudXBkYXRlX3BsYW5lCQk9IGRy bV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwKPiArCS5kaXNhYmxlX3BsYW5lCQk9IGRybV9h dG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUsCj4gKwkuZGVzdHJveQkJPSBkcm1fcGxhbmVfY2xl YW51cCwKPiArCS5yZXNldAkJCT0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfcmVzZXQsCj4gKwku YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0 ZV9zdGF0ZSwKPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9IGRybV9hdG9taWNfaGVscGVyX3Bs YW5lX2Rlc3Ryb3lfc3RhdGUsCj4gK307Cj4gKwo+ICtzdHJ1Y3QgZHJtX3BsYW5lICp2a21zX3Bs YW5lX2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gJnZrbXNkZXYtPmRybTsKPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l Owo+ICsJY29uc3QgdTMyICpmb3JtYXRzOwo+ICsJaW50IHJldCwgbmZvcm1hdHM7Cj4gKwo+ICsJ cGxhbmUgPSBremFsbG9jKHNpemVvZigqcGxhbmUpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcGxh bmUpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gKwo+ICsJZm9ybWF0cyA9IHZrbXNf Zm9ybWF0czsKPiArCW5mb3JtYXRzID0gQVJSQVlfU0laRSh2a21zX2Zvcm1hdHMpOwo+ICsKPiAr CXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsIHBsYW5lLCAwLAo+ICsJCQkJICAg ICAgICZ2a21zX3BsYW5lX2Z1bmNzLAo+ICsJCQkJICAgICAgIGZvcm1hdHMsIG5mb3JtYXRzLAo+ ICsJCQkJICAgICAgIE5VTEwsIERSTV9QTEFORV9UWVBFX1BSSU1BUlksIE5VTEwpOwo+ICsJaWYg KHJldCkgewo+ICsJCWtmcmVlKHBsYW5lKTsKPiArCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsJ fQo+ICsKCjQpIGFkZCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHdpdGggZHVtbXkge2F0b21pY19j aGVjaywgcHJlcGFyZV9mYiwgY2xlYW51cF9mYn0uCgo+ICsJcmV0dXJuIHBsYW5lOwo+ICt9Cj4g LS0gCj4gMi4xNy4wCj4gCgotIEhhbmVlbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK