From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: Re: [PATCH V3 2/3] drm/vkms: Add basic CRTC initialization Date: Tue, 22 May 2018 05:57:15 +0300 Message-ID: <20180522025715.GA7781@haneen-vb> 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 883A26E0A2 for ; Tue, 22 May 2018 02:57:22 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id j4-v6so28471390wme.1 for ; Mon, 21 May 2018 19:57:22 -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 T24gTW9uLCBNYXkgMjEsIDIwMTggYXQgMTA6MDY6NDBQTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBUaGlzIGNvbW1pdCBhcHBlbmRzIHRoZSBlc3NlbnRpYWwgQ1JUQ3MgaW5mcmFz dHJ1Y3R1cmUgZm9yIFZLTVMuIENSVENzCj4gZGVtYW5kcyBvdGhlciBlbGVtZW50cyB0byB3b3Jr IGNvcnJlY3RseSwgaW4gdGhpcyBzZW5zZSwgdGhpcyBwYXRjaCBhZGRzCj4gYSBuZXcgZGF0YSBz dHJ1Y3QgdGhhdCBjZW50cmFsaXplcyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHJlbGF0ZWQgdG8gdGhl Cj4gb3V0cHV0LCBzaW1wbGUgcGxhbmVzIG1hbmFnZW1lbnQsIGFuZCBzaW5nbGUgZW5jb2RlciBh dHRhY2hlZCB0byB0aGUKPiBjb25uZWN0b3IuCj4gCj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBT aXF1ZWlyYSA8cm9kcmlnb3NpcXVlaXJhbWVsb0BnbWFpbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS92a21zL01ha2VmaWxlICAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19jcnRjLmMgICB8ICA0NyArKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19kcnYuYyAgICB8ICA2NiArKysrKy0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS92a21zL3ZrbXNfZHJ2LmggICAgfCAgMzMgKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19vdXRwdXQuYyB8IDExOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBk cml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMgIHwgIDYyICsrKysrKysrKysrKysrKwo+ ICA2IGZpbGVzIGNoYW5nZWQsIDI3NSBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX291dHB1dC5jCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vdmttcy9NYWtlZmlsZQo+IGluZGV4IDJhZWY5NDhkM2EzNC4uM2Y3NzRhNmE5YzU4IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3ZrbXMvTWFrZWZpbGUKPiBAQCAtMSwzICsxLDMgQEAKPiAtdmttcy15IDo9IHZrbXNf ZHJ2Lm8KPiArdmttcy15IDo9IHZrbXNfZHJ2Lm8gdmttc19wbGFuZS5vIHZrbXNfb3V0cHV0Lm8g dmttc19jcnRjLm8KPiAgCj4gIG9iai0kKENPTkZJR19EUk1fVktNUykgKz0gdmttcy5vCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jIGIvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19jcnRjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAw MDAwMDAwMC4uNGVjMTQyNGVkOGI4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gQEAgLTAsMCArMSw0NyBAQAo+ICsvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICsvKgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ICsgKiBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQo+ICsgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvcgo+ICsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJ2a21zX2Rydi5oIgo+ICsjaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVy Lmg+Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZrbXNfY3J0Y19m dW5jcyA9IHsKPiArCS5zZXRfY29uZmlnICAgICAgICAgICAgID0gZHJtX2F0b21pY19oZWxwZXJf c2V0X2NvbmZpZywKPiArCS5kZXN0cm95ICAgICAgICAgICAgICAgID0gZHJtX2NydGNfY2xlYW51 cCwKPiArCS5wYWdlX2ZsaXAgICAgICAgICAgICAgID0gZHJtX2F0b21pY19oZWxwZXJfcGFnZV9m bGlwLAo+ICsJLnJlc2V0ICAgICAgICAgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9jcnRj X3Jlc2V0LAo+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9j cnRjX2R1cGxpY2F0ZV9zdGF0ZSwKPiArCS5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0gZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlLAo+ICt9Owo+ICsKPiArc3RhdGljIGludCB2 a21zX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiArCQkJCSAgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHZrbXNfY3J0Y19oZWxw ZXJfZnVuY3MgPSB7Cj4gKwkuYXRvbWljX2NoZWNrICA9IHZrbXNfY3J0Y19hdG9taWNfY2hlY2ss Cj4gK307Cj4gKwo+ICtpbnQgdmttc19jcnRjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCSAgIHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnks IHN0cnVjdCBkcm1fcGxhbmUgKmN1cnNvcikKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQg PSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKGRldiwgY3J0YywgcHJpbWFyeSwgY3Vyc29yLAo+ ICsJCQkJCSZ2a21zX2NydGNfZnVuY3MsIE5VTEwpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9F UlJPUigiRmFpbGVkIHRvIGluaXQgQ1JUQ1xuIik7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiAr Cj4gKwlkcm1fY3J0Y19oZWxwZXJfYWRkKGNydGMsICZ2a21zX2NydGNfaGVscGVyX2Z1bmNzKTsK PiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCj4gaW5kZXgg YWVjM2YxODBmOTZkLi5lYWU1ZjFmMjkzZDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMK PiBAQCAtNiw3ICs2LDYgQEAKPiAgICovCj4gIAo+ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ Cj4gLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KPiAg I2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRv bWljX2hlbHBlci5oPgo+IEBAIC0xOCwxMiArMTcsNiBAQAo+ICAjZGVmaW5lIERSSVZFUl9NQUpP UgkxCj4gICNkZWZpbmUgRFJJVkVSX01JTk9SCTAKPiAgCj4gLSNkZWZpbmUgWFJFU19NSU4gICAg MzIKPiAtI2RlZmluZSBZUkVTX01JTiAgICAzMgo+IC0KPiAtI2RlZmluZSBYUkVTX01BWCAgODE5 Mgo+IC0jZGVmaW5lIFlSRVNfTUFYICA4MTkyCj4gLQo+ICBzdGF0aWMgc3RydWN0IHZrbXNfZGV2 aWNlICp2a21zX2RldmljZTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRp b25zIHZrbXNfZHJpdmVyX2ZvcHMgPSB7Cj4gQEAgLTU5LDI1ICs1MiwyNCBAQCBzdGF0aWMgc3Ry dWN0IGRybV9kcml2ZXIgdmttc19kcml2ZXIgPSB7Cj4gIAkubWlub3IJCQk9IERSSVZFUl9NSU5P UiwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCB1MzIgdmttc19mb3JtYXRzW10gPSB7Cj4gLQlE Uk1fRk9STUFUX1hSR0I4ODg4LAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZp Z19mdW5jcyB2a21zX21vZGVfZnVuY3MgPSB7Cj4gKwkuYXRvbWljX2NoZWNrID0gZHJtX2F0b21p Y19oZWxwZXJfY2hlY2ssCj4gKwkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNfaGVscGVyX2Nv bW1pdCwKPiAgfTsKPiAgCj4gLXN0YXRpYyB2b2lkIHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3koc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArc3RhdGljIGludCB2a21zX21vZGVzZXRf aW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNkZXYpCj4gIHsKPiAtCWRybV9jb25uZWN0b3Jf dW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+IC0JZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rv cik7Cj4gLX0KPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmdmttc2Rldi0+ZHJtOwo+ICAK PiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHZrbXNfY29ubmVjdG9y X2Z1bmNzID0gewo+IC0JLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25u ZWN0b3JfbW9kZXMsCj4gLQkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ksCj4gLX07 Cj4gKwlkcm1fbW9kZV9jb25maWdfaW5pdChkZXYpOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5mdW5j cyA9ICZ2a21zX21vZGVfZnVuY3M7Cj4gKwlkZXYtPm1vZGVfY29uZmlnLm1pbl93aWR0aCA9IFhS RVNfTUlOOwo+ICsJZGV2LT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gWVJFU19NSU47Cj4gKwlk ZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9IFhSRVNfTUFYOwo+ICsJZGV2LT5tb2RlX2NvbmZp Zy5tYXhfaGVpZ2h0ID0gWVJFU19NQVg7Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9t b2RlX2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3MgPSB7Cj4gLQkuYXRvbWljX2NoZWNrID0g ZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gLQkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9taWNf aGVscGVyX2NvbW1pdCwKPiAtfTsKPiArCXJldHVybiB2a21zX291dHB1dF9pbml0KHZrbXNkZXYp Owo+ICt9Cj4gIAo+ICBzdGF0aWMgaW50IF9faW5pdCB2a21zX2luaXQodm9pZCkKPiAgewo+IEBA IC05OCw0OCArOTAsMjQgQEAgc3RhdGljIGludCBfX2luaXQgdmttc19pbml0KHZvaWQpCj4gIAkJ Z290byBvdXRfZmluaTsKPiAgCX0KPiAgCj4gLQlkcm1fbW9kZV9jb25maWdfaW5pdCgmdmttc19k ZXZpY2UtPmRybSk7Cj4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLmZ1bmNzID0gJnZr bXNfbW9kZV9mdW5jczsKPiAtCXZrbXNfZGV2aWNlLT5kcm0ubW9kZV9jb25maWcubWluX3dpZHRo ID0gWFJFU19NSU47Cj4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLm1pbl9oZWlnaHQg PSBZUkVTX01JTjsKPiAtCXZrbXNfZGV2aWNlLT5kcm0ubW9kZV9jb25maWcubWF4X3dpZHRoID0g WFJFU19NQVg7Cj4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPSBZ UkVTX01BWDsKPiAtCj4gLQlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoJnZrbXNfZGV2aWNlLT5k cm0sICZ2a21zX2RldmljZS0+Y29ubmVjdG9yLAo+IC0JCQkJICZ2a21zX2Nvbm5lY3Rvcl9mdW5j cywKPiAtCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCk7Cj4gLQlpZiAocmV0IDwgMCkg ewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXQgY29ubmVjdG9yXG4iKTsKPiAtCQlnb3Rv IG91dF91bnJlZ2lzdGVyOwo+IC0JfQo+IC0KPiAtCXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9w aXBlX2luaXQoJnZrbXNfZGV2aWNlLT5kcm0sCj4gLQkJCQkJICAgJnZrbXNfZGV2aWNlLT5waXBl LAo+IC0JCQkJCSAgIE5VTEwsCj4gLQkJCQkJICAgdmttc19mb3JtYXRzLAo+IC0JCQkJCSAgIEFS UkFZX1NJWkUodmttc19mb3JtYXRzKSwKPiAtCQkJCQkgICBOVUxMLAo+IC0JCQkJCSAgICZ2a21z X2RldmljZS0+Y29ubmVjdG9yKTsKPiAtCWlmIChyZXQgPCAwKSB7Cj4gLQkJRFJNX0VSUk9SKCJD YW5ub3Qgc2V0dXAgc2ltcGxlIGRpc3BsYXkgcGlwZVxuIik7Cj4gKwlyZXQgPSB2a21zX21vZGVz ZXRfaW5pdCh2a21zX2RldmljZSk7Cj4gKwlpZiAocmV0KQo+ICAJCWdvdG8gb3V0X3VucmVnaXN0 ZXI7Cj4gLQl9Cj4gIAo+ICAJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcigmdmttc19kZXZpY2UtPmRy bSwgMCk7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7Cj4gIAo+IC0JZHJt X2Nvbm5lY3Rvcl9yZWdpc3Rlcigmdmttc19kZXZpY2UtPmNvbm5lY3Rvcik7Cj4gLQo+ICAJcmV0 dXJuIDA7Cj4gIAo+ICBvdXRfdW5yZWdpc3RlcjoKPiAgCXBsYXRmb3JtX2RldmljZV91bnJlZ2lz dGVyKHZrbXNfZGV2aWNlLT5wbGF0Zm9ybSk7Cj4gKwo+ICBvdXRfZmluaToKPiAgCWRybV9kZXZf ZmluaSgmdmttc19kZXZpY2UtPmRybSk7Cj4gKwo+ICBvdXRfZnJlZToKPiAgCWtmcmVlKHZrbXNf ZGV2aWNlKTsKPiAtCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuaAo+IGluZGV4IGM3N2M1YmY1MDMyYS4uYTlmOGI2Njk1NjgzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmtt cy92a21zX2Rydi5oCj4gQEAgLTEsMTMgKzEsNDAgQEAKPiAgI2lmbmRlZiBfVktNU19EUlZfSF8K PiAgI2RlZmluZSBfVktNU19EUlZfSF8KPiAgCj4gLSNpbmNsdWRlIDxkcm0vZHJtX3NpbXBsZV9r bXNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2Ry bS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyLmg+Cj4gKwo+ICsjZGVmaW5lIFhSRVNf TUlOICAgIDMyCj4gKyNkZWZpbmUgWVJFU19NSU4gICAgMzIKPiArCj4gKyNkZWZpbmUgWFJFU19E RUYgIDEwMjQKPiArI2RlZmluZSBZUkVTX0RFRiAgIDc2OAo+ICsKPiArI2RlZmluZSBYUkVTX01B WCAgODE5Mgo+ICsjZGVmaW5lIFlSRVNfTUFYICA4MTkyCj4gKwo+ICtzdGF0aWMgY29uc3QgdTMy IHZrbXNfZm9ybWF0c1tdID0gewo+ICsJRFJNX0ZPUk1BVF9YUkdCODg4OCwKPiArfTsKPiArCj4g K3N0cnVjdCB2a21zX291dHB1dCB7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgY3J0YzsKPiArCXN0cnVj dCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9y Owo+ICt9Owo+ICAKPiAgc3RydWN0IHZrbXNfZGV2aWNlIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNl IGRybTsKPiAgCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtOwo+IC0Jc3RydWN0IGRy bV9zaW1wbGVfZGlzcGxheV9waXBlIHBpcGU7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25u ZWN0b3I7Cj4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgb3V0cHV0Owo+ICB9Owo+ICAKPiAraW50IHZr bXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPiArCQkgICBzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LCBzdHJ1Y3QgZHJtX3BsYW5lICpj dXJzb3IpOwo+ICsKPiAraW50IHZrbXNfb3V0cHV0X2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2 a21zZGV2KTsKPiArCj4gK3N0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qg dmttc19kZXZpY2UgKnZrbXNkZXYpOwo+ICsKPiAgI2VuZGlmIC8qIF9WS01TX0RSVl9IXyAqLwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX291dHB1dC5jIGIvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5k ZXggMDAwMDAwMDAwMDAwLi4wMWU3MDE2OTFlYTgKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+IEBAIC0wLDAgKzEsMTE4IEBACj4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4g KyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2F0 b21pY19oZWxwZXIuaD4KPiArCj4gK3N0YXRpYyB2b2lkIHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJZHJtX2Nvbm5lY3Rvcl91 bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gKwlkcm1fY29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9y KTsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHZr bXNfY29ubmVjdG9yX2Z1bmNzID0gewo+ICsJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2Jl X3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCj4gKwkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rl c3Ryb3ksCj4gKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCj4g KwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9k dXBsaWNhdGVfc3RhdGUsCj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hl bHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgdmtt c19jb25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4g KwlpbnQgY291bnQ7Cj4gKwo+ICsJY291bnQgPSBkcm1fYWRkX21vZGVzX25vZWRpZChjb25uZWN0 b3IsIFhSRVNfTUFYLCBZUkVTX01BWCk7Cj4gKwlkcm1fc2V0X3ByZWZlcnJlZF9tb2RlKGNvbm5l Y3RvciwgWFJFU19ERUYsIFlSRVNfREVGKTsKPiArCj4gKwlyZXR1cm4gY291bnQ7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgdmttc19jb25uX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiArCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICt7Cj4g KwlyZXR1cm4gTU9ERV9PSzsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX2hlbHBlcl9mdW5jcyB2a21zX2Nvbm5faGVscGVyX2Z1bmNzID0gewo+ICsJLmdldF9t b2RlcyAgICA9IHZrbXNfY29ubl9nZXRfbW9kZXMsCj4gKwkubW9kZV92YWxpZCAgID0gdmttc19j b25uX21vZGVfdmFsaWQsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNv ZGVyX2Z1bmNzIHZrbXNfZW5jb2Rlcl9mdW5jcyA9IHsKPiArCS5kZXN0cm95ID0gZHJtX2VuY29k ZXJfY2xlYW51cCwKPiArfTsKPiArCj4gK2ludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21z X2RldmljZSAqdmttc2RldikKPiArewo+ICsJc3RydWN0IHZrbXNfb3V0cHV0ICpvdXRwdXQgPSAm dmttc2Rldi0+b3V0cHV0Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5k cm07Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJm91dHB1dC0+Y29ubmVj dG9yOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJm91dHB1dC0+ZW5jb2RlcjsK PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZvdXRwdXQtPmNydGM7Cj4gKwlzdHJ1Y3QgZHJt X3BsYW5lICpwcmltYXJ5Owo+ICsJaW50IHJldDsKPiArCj4gKwlwcmltYXJ5ID0gdmttc19wbGFu ZV9pbml0KHZrbXNkZXYpOwo+ICsJaWYgKElTX0VSUihwcmltYXJ5KSkKPiArCQlyZXR1cm4gUFRS X0VSUihwcmltYXJ5KTsKPiArCj4gKwlyZXQgPSB2a21zX2NydGNfaW5pdChkZXYsIGNydGMsIHBy aW1hcnksIE5VTEwpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycl9jcnRjOwo+ICsKPiArCXJl dCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3RvciwgJnZrbXNfY29ubmVjdG9yX2Z1 bmNzLAo+ICsJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMKTsKPiArCWlmIChyZXQpIHsK PiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBpbml0IGNvbm5lY3RvclxuIik7Cj4gKwkJZ290byBl cnJfY29ubmVjdG9yOwo+ICsJfQo+ICsKPiArCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZChjb25u ZWN0b3IsICZ2a21zX2Nvbm5faGVscGVyX2Z1bmNzKTsKPiArCj4gKwlyZXQgPSBkcm1fY29ubmVj dG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJG YWlsZWQgdG8gcmVnaXN0ZXIgY29ubmVjdG9yXG4iKTsKPiArCQlnb3RvIGVycl9jb25uZWN0b3Jf cmVnaXN0ZXI7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChkZXYsIGVuY29k ZXIsICZ2a21zX2VuY29kZXJfZnVuY3MsCj4gKwkJCSAgICAgICBEUk1fTU9ERV9FTkNPREVSX1ZJ UlRVQUwsIE5VTEwpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIGlu aXQgZW5jb2RlclxuIik7Cj4gKwkJZ290byBlcnJfZW5jb2RlcjsKPiArCX0KPiArCWVuY29kZXIt PnBvc3NpYmxlX2NydGNzID0gMTsKPiArCj4gKwlyZXQgPSBkcm1fbW9kZV9jb25uZWN0b3JfYXR0 YWNoX2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1f RVJST1IoIkZhaWxlZCB0byBhdHRhY2ggY29ubmVjdG9yIHRvIGVuY29kZXJcbiIpOwo+ICsJCWdv dG8gZXJyX2F0dGFjaDsKPiArCX0KPiArCj4gKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoZGV2KTsK PiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl9hdHRhY2g6Cj4gKwlkcm1fZW5jb2Rlcl9jbGVh bnVwKGVuY29kZXIpOwo+ICsKPiArZXJyX2VuY29kZXI6Cj4gKwlkcm1fY29ubmVjdG9yX3VucmVn aXN0ZXIoY29ubmVjdG9yKTsKPiArCj4gK2Vycl9jb25uZWN0b3JfcmVnaXN0ZXI6Cj4gKwlkcm1f Y29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPiArCj4gK2Vycl9jb25uZWN0b3I6Cj4gKwlk cm1fY3J0Y19jbGVhbnVwKGNydGMpOwo+ICsKPiArZXJyX2NydGM6Cj4gKwlkcm1fcGxhbmVfY2xl YW51cChwcmltYXJ5KTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19w bGFuZS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmI2MjMx YzFlMzQ2Mgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21z X3BsYW5lLmMKPiBAQCAtMCwwICsxLDYyIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wCj4gKy8qCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAq IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAq Lwo+ICsKPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5l X2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gKwo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyB2a21zX3BsYW5lX2Z1bmNzID0gewo+ ICsJLnVwZGF0ZV9wbGFuZQkJPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCj4gKwku ZGlzYWJsZV9wbGFuZQkJPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+ICsJLmRl c3Ryb3kJCT0gZHJtX3BsYW5lX2NsZWFudXAsCj4gKwkucmVzZXQJCQk9IGRybV9hdG9taWNfaGVs cGVyX3BsYW5lX3Jlc2V0LAo+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWlj X2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUsCj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUJ PSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlLAo+ICt9Owo+ICsKPiArc3Rh dGljIGludCB2a21zX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK PiArCQkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgdmttc19wcmltYXJ5X3BsYW5lX3VwZGF0ZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCSAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg Km9sZF9zdGF0ZSkKPiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFu ZV9oZWxwZXJfZnVuY3Mgdmttc19wcmltYXJ5X2hlbHBlcl9mdW5jcyA9IHsKPiArCS5hdG9taWNf Y2hlY2sJCT0gdmttc19wbGFuZV9hdG9taWNfY2hlY2ssCj4gKwkuYXRvbWljX3VwZGF0ZQkJPSB2 a21zX3ByaW1hcnlfcGxhbmVfdXBkYXRlLAo+ICt9Owo+ICsKCkkgdGhpbmsgeW91IGZvcmdvdCB0 byB1c2UgdGhlIHBsYW5lIGhlbHBlciBiZWxvdyA6KQoKPiArc3RydWN0IGRybV9wbGFuZSAqdmtt c19wbGFuZV9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiArewo+ICsJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZTsKPiArCWNvbnN0IHUzMiAqZm9ybWF0czsKPiArCWludCByZXQsIG5mb3JtYXRzOwo+ICsK PiArCXBsYW5lID0ga3phbGxvYyhzaXplb2YoKnBsYW5lKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAo IXBsYW5lKQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+ICsKPiArCWZvcm1hdHMgPSB2 a21zX2Zvcm1hdHM7Cj4gKwluZm9ybWF0cyA9IEFSUkFZX1NJWkUodmttc19mb3JtYXRzKTsKPiAr Cj4gKwlyZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMCwKPiArCQkJ CSAgICAgICAmdmttc19wbGFuZV9mdW5jcywKPiArCQkJCSAgICAgICBmb3JtYXRzLCBuZm9ybWF0 cywKPiArCQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiAr CWlmIChyZXQpIHsKPiArCQlrZnJlZShwbGFuZSk7Cj4gKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsK PiArCX0KPiArCj4gKwlyZXR1cm4gcGxhbmU7Cj4gK30KPiAtLSAKPiAyLjE3LjAKPiAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==