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 19:44:49 +0300 Message-ID: <20180520164449.GA3505@Haneen> References: <20180520062231.GA24701@Haneen> <20180520142837.tyfqair2m7wmyrfh@smtp.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id A7BB188DF8 for ; Sun, 20 May 2018 16:44:57 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id w18-v6so9944240wrn.6 for ; Sun, 20 May 2018 09:44:57 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180520142837.tyfqair2m7wmyrfh@smtp.gmail.com> 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 T24gU3VuLCBNYXkgMjAsIDIwMTggYXQgMTE6Mjg6MzdBTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWly YSB3cm90ZToKPiBIaSBIYW5lZW4sCj4gCj4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2sgOikKPiAK PiBPbiAwNS8yMCwgSGFuZWVuIE1vaGFtbWVkIHdyb3RlOgo+ID4gT24gV2VkLCBNYXkgMTYsIDIw MTggYXQgMDg6NTY6MjFQTSAtMDMwMCwgUm9kcmlnbyBTaXF1ZWlyYSB3cm90ZToKPiA+ID4gVGhp cyBjb21taXQgYWRkcyB0aGUgZXNzZW50aWFsIGluZnJhc3RydWN0dXJlIGZvciBhcm91bmQgQ1JU Q3Mgd2hpY2gKPiA+ID4gaXMgY29tcG9zZWQgb2Y6IGEgbmV3IGRhdGEgc3RydWN0IGZvciBvdXRw dXQgZGF0YSBpbmZvcm1hdGlvbiwgYQo+ID4gPiBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgcGxhbmVz LCBhbmQgYSBzaW1wbGUgZW5jb2RlciBhdHRhY2hlZCB0byB0aGUKPiA+ID4gY29ubmVjdG9yLiBG aW5hbGx5LCBkdWUgdG8gdGhlIGludHJvZHVjdGlvbiBvZiBhIG5ldyBpbml0aWFsaXphdGlvbgo+ ID4gPiBmdW5jdGlvbiwgY29ubmVjdG9ycyB3ZXJlIG1vdmVkIGZyb20gdmttc19kcnYuYyB0byB2 a21zX2Rpc3BsYXkuYy4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gU2lxdWVp cmEgPHJvZHJpZ29zaXF1ZWlyYW1lbG9AZ21haWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZl cnMvZ3B1L2RybS92a21zL01ha2VmaWxlICAgICAgfCAgMiArLQo+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19jcnRjLmMgICB8IDM1ICsrKysrKysrKysrKwo+ID4gPiAgZHJpdmVycy9n cHUvZHJtL3ZrbXMvdmttc19kcnYuYyAgICB8IDYwICsrKysrKy0tLS0tLS0tLS0tLS0tCj4gPiA+ ICBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oICAgIHwgMjQgKysrKysrKy0KPiA+ID4g IGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMgfCA5MSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYyAg fCA0NiArKysrKysrKysrKysrKysKPiA+ID4gIDYgZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlv bnMoKyksIDQ3IGRlbGV0aW9ucygtKQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFr ZWZpbGUKPiA+ID4gaW5kZXggMmFlZjk0OGQzYTM0Li4zZjc3NGE2YTljNTggMTAwNjQ0Cj4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL01ha2VmaWxlCj4gPiA+IEBAIC0xLDMgKzEsMyBAQAo+ID4gPiAtdmttcy15 IDo9IHZrbXNfZHJ2Lm8KPiA+ID4gK3ZrbXMteSA6PSB2a21zX2Rydi5vIHZrbXNfcGxhbmUubyB2 a21zX291dHB1dC5vIHZrbXNfY3J0Yy5vCj4gPiA+ICAKPiA+ID4gIG9iai0kKENPTkZJR19EUk1f VktNUykgKz0gdmttcy5vCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY3J0Yy5jCj4gPiA+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uYmY3NmNkMzllY2U3Cj4g PiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19j cnRjLmMKPiA+ID4gQEAgLTAsMCArMSwzNSBAQAo+ID4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKPiA+ID4gKy8qCj4gPiA+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ID4gPiArICog aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKPiA+ID4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4gPiA+ICsgKiAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgo+ID4gPiArICovCj4gPiA+ICsKPiA+ID4gKyNpbmNsdWRlICJ2 a21zX2Rydi5oIgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4g PiArI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiA+ID4gKwo+ID4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyB2a21zX2NydGNfZnVuY3MgPSB7Cj4gPiA+ICsJ LnNldF9jb25maWcgICAgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnLAo+ ID4gPiArCS5kZXN0cm95ICAgICAgICAgICAgICAgID0gZHJtX2NydGNfY2xlYW51cCwKPiA+ID4g KwkucGFnZV9mbGlwICAgICAgICAgICAgICA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwK PiA+ID4gKwkucmVzZXQgICAgICAgICAgICAgICAgICA9IGRybV9hdG9taWNfaGVscGVyX2NydGNf cmVzZXQsCj4gPiA+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBl cl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSwKPiA+ID4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgICA9 IGRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSwKPiA+ID4gK307Cj4gPiA+ICsK PiA+ID4gK2ludCB2a21zX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gPiA+ICsJCSAgIHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksIHN0 cnVjdCBkcm1fcGxhbmUgKmN1cnNvcikKPiA+ID4gK3sKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiAr Cj4gPiAKPiA+IEp1c3QgYXMgYSBmb2xsb3cgdXAsIEkgaGF2ZSBub3RpY2VkIHRoYXQgdmttcyBi cmVha3Mgd2hlbiBpbnNwZWN0aW5nCj4gPiBpdHMgc3RhdGUgaW4gdGhlIGRlYnVnZnMsIGFsc28g d2hlbiBydW5uaW5nIGlndCB0ZXN0cyB3aXRoIGttcyBhbmQgY29yZQo+ID4gZmlsdGVycywgYW5k IGFkZGluZyB0aGUgZm9sbG93aW5nIGZpeGVkIHRoYXQgaXNzdWU6Cj4gCj4gQ291bGQgeW91IGV4 cGxhaW4gbWUgaG93IHlvdSB0ZXN0ZWQgdGhlIHN0YXRlIHdpdGggZGVidWdmcz8KPiAKPiBJIHdp bGwgYWRkIHRoZSBmaXhlcyBzdWdnZXN0ZWQgaW4geW91ciBjb21tZW50cy4KPiAKPiBUaGFua3MK PiAgCgpJIGp1c3QgdHJpZWQgdG8gcmVhZCB0aGlzIGZpbGU6IC9zeXMva2VybmVsL2RlYnVnL2Ry aS8wL3N0YXRlLCB3aGljaAp0aGVuIGNhdXNlZCBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBl cnJvci4KCj4gPiAxKSBhIGRybV9jcnRjX2hlbHBlcl9mdW5jcyB3aXRoIGR1bW15IGF0b21pY19j aGVjay4KPiA+IAo+ID4gPiArCXJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCBj cnRjLCBwcmltYXJ5LCBjdXJzb3IsCj4gPiA+ICsJCQkJCSZ2a21zX2NydGNfZnVuY3MsIE5VTEwp Owo+ID4gPiArCWlmIChyZXQpIHsKPiA+ID4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBD UlRDXG4iKTsKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwly ZXR1cm4gcmV0Owo+ID4gPiArfQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zr bXMvdmttc19kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKPiA+ID4gaW5k ZXggYWVjM2YxODBmOTZkLi4wNzA2MTNlMzI5MzQgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZHJ2LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMv dmttc19kcnYuYwo+ID4gPiBAQCAtNiw3ICs2LDYgQEAKPiA+ID4gICAqLwo+ID4gPiAgCj4gPiA+ ICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiA+IC0jaW5jbHVkZSA8ZHJtL2RybVAuaD4K PiA+ID4gICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ID4gPiAgI2luY2x1ZGUgPGRybS9kcm1f Y3J0Y19oZWxwZXIuaD4KPiA+ID4gICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4K PiA+ID4gQEAgLTU5LDI1ICs1OCwyNCBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgdmttc19k cml2ZXIgPSB7Cj4gPiA+ICAJLm1pbm9yCQkJPSBEUklWRVJfTUlOT1IsCj4gPiA+ICB9Owo+ID4g PiAgCj4gPiA+IC1zdGF0aWMgY29uc3QgdTMyIHZrbXNfZm9ybWF0c1tdID0gewo+ID4gPiAtCURS TV9GT1JNQVRfWFJHQjg4ODgsCj4gPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2Nv bmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3MgPSB7Cj4gPiA+ICsJLmF0b21pY19jaGVjayA9IGRy bV9hdG9taWNfaGVscGVyX2NoZWNrLAo+ID4gPiArCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0LAo+ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiAtc3RhdGljIHZvaWQgdmtt c19jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4g PiArc3RhdGljIGludCB2a21zX21vZGVzZXRfaW5pdChzdHJ1Y3Qgdmttc19kZXZpY2UgKnZrbXNk ZXYpCj4gPiA+ICB7Cj4gPiA+IC0JZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7 Cj4gPiA+IC0JZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gPiA+IC19Cj4gPiA+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiA+ICAKPiA+ID4g LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB2a21zX2Nvbm5lY3Rvcl9m dW5jcyA9IHsKPiA+ID4gLQkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nv bm5lY3Rvcl9tb2RlcywKPiA+ID4gLQkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3ks Cj4gPiA+IC19Owo+ID4gPiArCWRybV9tb2RlX2NvbmZpZ19pbml0KGRldik7Cj4gPiA+ICsJZGV2 LT5tb2RlX2NvbmZpZy5mdW5jcyA9ICZ2a21zX21vZGVfZnVuY3M7Cj4gPiA+ICsJZGV2LT5tb2Rl X2NvbmZpZy5taW5fd2lkdGggPSBYUkVTX01JTjsKPiA+ID4gKwlkZXYtPm1vZGVfY29uZmlnLm1p bl9oZWlnaHQgPSBZUkVTX01JTjsKPiA+ID4gKwlkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCA9 IFhSRVNfTUFYOwo+ID4gPiArCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IFlSRVNfTUFY Owo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5j cyB2a21zX21vZGVfZnVuY3MgPSB7Cj4gPiA+IC0JLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNf aGVscGVyX2NoZWNrLAo+ID4gPiAtCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0LAo+ID4gPiAtfTsKPiA+ID4gKwlyZXR1cm4gdmttc19vdXRwdXRfaW5pdCh2a21zZGV2 KTsKPiA+ID4gK30KPiA+ID4gIAo+ID4gPiAgc3RhdGljIGludCBfX2luaXQgdmttc19pbml0KHZv aWQpCj4gPiA+ICB7Cj4gPiA+IEBAIC05OCw0OCArOTYsMjQgQEAgc3RhdGljIGludCBfX2luaXQg dmttc19pbml0KHZvaWQpCj4gPiA+ICAJCWdvdG8gb3V0X2Zpbmk7Cj4gPiA+ICAJfQo+ID4gPiAg Cj4gPiA+IC0JZHJtX21vZGVfY29uZmlnX2luaXQoJnZrbXNfZGV2aWNlLT5kcm0pOwo+ID4gPiAt CXZrbXNfZGV2aWNlLT5kcm0ubW9kZV9jb25maWcuZnVuY3MgPSAmdmttc19tb2RlX2Z1bmNzOwo+ ID4gPiAtCXZrbXNfZGV2aWNlLT5kcm0ubW9kZV9jb25maWcubWluX3dpZHRoID0gWFJFU19NSU47 Cj4gPiA+IC0Jdmttc19kZXZpY2UtPmRybS5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gWVJFU19N SU47Cj4gPiA+IC0Jdmttc19kZXZpY2UtPmRybS5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBYUkVT X01BWDsKPiA+ID4gLQl2a21zX2RldmljZS0+ZHJtLm1vZGVfY29uZmlnLm1heF9oZWlnaHQgPSBZ UkVTX01BWDsKPiA+ID4gLQo+ID4gPiAtCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdCgmdmttc19k ZXZpY2UtPmRybSwgJnZrbXNfZGV2aWNlLT5jb25uZWN0b3IsCj4gPiA+IC0JCQkJICZ2a21zX2Nv bm5lY3Rvcl9mdW5jcywKPiA+ID4gLQkJCQkgRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpOwo+ ID4gPiAtCWlmIChyZXQgPCAwKSB7Cj4gPiA+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXQg Y29ubmVjdG9yXG4iKTsKPiA+ID4gLQkJZ290byBvdXRfdW5yZWdpc3RlcjsKPiA+ID4gLQl9Cj4g PiA+IC0KPiA+ID4gLQlyZXQgPSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KCZ2a21zX2Rl dmljZS0+ZHJtLAo+ID4gPiAtCQkJCQkgICAmdmttc19kZXZpY2UtPnBpcGUsCj4gPiA+IC0JCQkJ CSAgIE5VTEwsCj4gPiA+IC0JCQkJCSAgIHZrbXNfZm9ybWF0cywKPiA+ID4gLQkJCQkJICAgQVJS QVlfU0laRSh2a21zX2Zvcm1hdHMpLAo+ID4gPiAtCQkJCQkgICBOVUxMLAo+ID4gPiAtCQkJCQkg ICAmdmttc19kZXZpY2UtPmNvbm5lY3Rvcik7Cj4gPiA+IC0JaWYgKHJldCA8IDApIHsKPiA+ID4g LQkJRFJNX0VSUk9SKCJDYW5ub3Qgc2V0dXAgc2ltcGxlIGRpc3BsYXkgcGlwZVxuIik7Cj4gPiA+ ICsJcmV0ID0gdmttc19tb2Rlc2V0X2luaXQodmttc19kZXZpY2UpOwo+ID4gPiArCWlmIChyZXQp Cj4gPiA+ICAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7Cj4gPiA+IC0JfQo+ID4gPiAgCj4gPiA+ICAJ cmV0ID0gZHJtX2Rldl9yZWdpc3Rlcigmdmttc19kZXZpY2UtPmRybSwgMCk7Cj4gPiA+ICAJaWYg KHJldCkKPiA+ID4gIAkJZ290byBvdXRfdW5yZWdpc3RlcjsKPiA+ID4gIAo+ID4gPiAtCWRybV9j b25uZWN0b3JfcmVnaXN0ZXIoJnZrbXNfZGV2aWNlLT5jb25uZWN0b3IpOwo+ID4gPiAtCj4gPiA+ ICAJcmV0dXJuIDA7Cj4gPiA+ICAKPiA+ID4gIG91dF91bnJlZ2lzdGVyOgo+ID4gPiAgCXBsYXRm b3JtX2RldmljZV91bnJlZ2lzdGVyKHZrbXNfZGV2aWNlLT5wbGF0Zm9ybSk7Cj4gPiA+ICsKPiA+ ID4gIG91dF9maW5pOgo+ID4gPiAgCWRybV9kZXZfZmluaSgmdmttc19kZXZpY2UtPmRybSk7Cj4g PiA+ICsKPiA+ID4gIG91dF9mcmVlOgo+ID4gPiAgCWtmcmVlKHZrbXNfZGV2aWNlKTsKPiA+ID4g LQo+ID4gPiAgCXJldHVybiByZXQ7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdmttcy92 a21zX2Rydi5oCj4gPiA+IGluZGV4IGM3N2M1YmY1MDMyYS4uYjBmOWQyZTYxYTQyIDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5oCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+ID4gQEAgLTEsMTMgKzEsMzEgQEAKPiA+ ID4gICNpZm5kZWYgX1ZLTVNfRFJWX0hfCj4gPiA+ICAjZGVmaW5lIF9WS01TX0RSVl9IXwo+ID4g PiAgCj4gPiA+IC0jaW5jbHVkZSA8ZHJtL2RybV9zaW1wbGVfa21zX2hlbHBlci5oPgo+ID4gPiAr I2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybS5oPgo+ID4gPiAr I2luY2x1ZGUgPGRybS9kcm1fZW5jb2Rlci5oPgo+ID4gPiArCj4gPiA+ICtzdGF0aWMgY29uc3Qg dTMyIHZrbXNfZm9ybWF0c1tdID0gewo+ID4gPiArCURSTV9GT1JNQVRfWFJHQjg4ODgsCj4gPiA+ ICt9Owo+ID4gPiArCj4gPiA+ICtzdHJ1Y3Qgdmttc19vdXRwdXQgewo+ID4gPiArCXN0cnVjdCBk cm1fY3J0YyBjcnRjOwo+ID4gPiArCXN0cnVjdCBkcm1fZW5jb2RlciBlbmNvZGVyOwo+ID4gPiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yIGNvbm5lY3RvcjsKPiA+ID4gK307Cj4gPiA+ICAKPiA+ID4g IHN0cnVjdCB2a21zX2RldmljZSB7Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgZHJtOwo+ID4g PiAgCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtOwo+ID4gPiAtCXN0cnVjdCBkcm1f c2ltcGxlX2Rpc3BsYXlfcGlwZSBwaXBlOwo+ID4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yIGNv bm5lY3RvcjsKPiA+ID4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgb3V0cHV0Owo+ID4gPiAgfTsKPiA+ ID4gIAo+ID4gPiAraW50IHZrbXNfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gKwkJICAgc3RydWN0IGRybV9wbGFuZSAqcHJpbWFy eSwgc3RydWN0IGRybV9wbGFuZSAqY3Vyc29yKTsKPiA+ID4gKwo+ID4gPiAraW50IHZrbXNfb3V0 cHV0X2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KTsKPiA+ID4gKwo+ID4gPiArc3Ry dWN0IGRybV9wbGFuZSAqdmttc19wbGFuZV9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2Rl dik7Cj4gPiA+ICsKPiA+ID4gICNlbmRpZiAvKiBfVktNU19EUlZfSF8gKi8KPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX291dHB1dC5jCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uNDgxNDNlYWMzYzEyCj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19vdXRwdXQuYwo+ID4gPiBAQCAtMCwwICsx LDkxIEBACj4gPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ID4gPiAr LyoKPiA+ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gPiA+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ID4gPiArICog dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKPiA+ID4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4g PiA+ICsgKi8KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPiA+ICsjaW5j bHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCB2 a21zX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g PiA+ICt7Cj4gPiA+ICsJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ ICsJZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB2a21zX2Nvbm5lY3Rv cl9mdW5jcyA9IHsKPiA+ID4gKwkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xl X2Nvbm5lY3Rvcl9tb2RlcywKPiA+ID4gKwkuZGVzdHJveSA9IHZrbXNfY29ubmVjdG9yX2Rlc3Ry b3ksCj4gPiAKPiA+IDIpIGFkZGluZyB0aGUgZm9sbG93aW5nIGhvb2tzIHdpdGggdGhlaXIgZHJt X2F0b21pY19oZWxwZXJfY29ubmVjdG9yXyoKPiA+IGNvdW50ZXJwYXJ0IHRvIHRoZSB2a21zX2Nv bm5lY3Rvcl9mdW5jczoKPiA+IGF0b21pY19kdXBsaWNhdGVfc3RhdGUsIGF0b21pY19kZXN0cm95 X3N0YXRlLCBhbmQgcmVzZXQuCj4gPiAKPiA+ID4gK307Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3Mgdmttc19lbmNvZGVyX2Z1bmNzID0gewo+ID4g PiArCS5kZXN0cm95ID0gZHJtX2VuY29kZXJfY2xlYW51cCwKPiA+ID4gK307Cj4gPiA+ICsKPiA+ ID4gK2ludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiA+ ID4gK3sKPiA+ID4gKwlzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9ICZ2a21zZGV2LT5vdXRw dXQ7Cj4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiA+ ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZvdXRwdXQtPmNvbm5lY3RvcjsK PiA+ID4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmb3V0cHV0LT5lbmNvZGVyOwo+ ID4gPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9ICZvdXRwdXQtPmNydGM7Cj4gPiA+ICsJc3Ry dWN0IGRybV9wbGFuZSAqcHJpbWFyeTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJ cHJpbWFyeSA9IHZrbXNfcGxhbmVfaW5pdCh2a21zZGV2KTsKPiA+ID4gKwlpZiAoSVNfRVJSKHBy aW1hcnkpKQo+ID4gPiArCQlyZXR1cm4gUFRSX0VSUihwcmltYXJ5KTsKPiA+ID4gKwo+ID4gPiAr CXJldCA9IHZrbXNfY3J0Y19pbml0KGRldiwgY3J0YywgcHJpbWFyeSwgTlVMTCk7Cj4gPiA+ICsJ aWYgKHJldCkKPiA+ID4gKwkJZ290byBlcnJfY3J0YzsKPiA+ID4gKwo+ID4gCj4gPiAzKSBhZGQg ZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mgd2l0aCBkdW1teSB7Z2V0X21vZGVzLCBtb2RlX3Zh bGlkfS4KPiA+IAo+ID4gPiArCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkZXYsIGNvbm5lY3Rv ciwgJnZrbXNfY29ubmVjdG9yX2Z1bmNzLAo+ID4gPiArCQkJCSBEUk1fTU9ERV9DT05ORUNUT1Jf VklSVFVBTCk7Cj4gPiA+ICsJaWYgKHJldCkgewo+ID4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBpbml0IGNvbm5lY3RvclxuIik7Cj4gPiA+ICsJCWdvdG8gZXJyX2Nvbm5lY3RvcjsKPiA+ID4g Kwl9Cj4gPiA+ICsKPiA+ID4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rv cik7Cj4gPiA+ICsJaWYgKHJldCkgewo+ID4gPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWdp c3RlciBjb25uZWN0b3JcbiIpOwo+ID4gPiArCQlnb3RvIGVycl9jb25uZWN0b3JfcmVnaXN0ZXI7 Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChkZXYsIGVu Y29kZXIsICZ2a21zX2VuY29kZXJfZnVuY3MsCj4gPiA+ICsJCQkgICAgICAgRFJNX01PREVfRU5D T0RFUl9WSVJUVUFMLCBOVUxMKTsKPiA+ID4gKwlpZiAocmV0KSB7Cj4gPiA+ICsJCURSTV9FUlJP UigiRmFpbGVkIHRvIGluaXQgZW5jb2RlclxuIik7Cj4gPiA+ICsJCWdvdG8gZXJyX2VuY29kZXI7 Cj4gPiA+ICsJfQo+ID4gPiArCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gMTsKPiA+ID4gKwo+ ID4gPiArCXJldCA9IGRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3Is IGVuY29kZXIpOwo+ID4gPiArCWlmIChyZXQpIHsKPiA+ID4gKwkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gYXR0YWNoIGNvbm5lY3RvciB0byBlbmNvZGVyXG4iKTsKPiA+ID4gKwkJZ290byBlcnJfYXR0 YWNoOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWRybV9tb2RlX2NvbmZpZ19yZXNldChkZXYp Owo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ICsKPiA+ID4gK2Vycl9hdHRhY2g6Cj4g PiA+ICsJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiA+ID4gKwo+ID4gPiArZXJyX2Vu Y29kZXI6Cj4gPiA+ICsJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ ICsKPiA+ID4gK2Vycl9jb25uZWN0b3JfcmVnaXN0ZXI6Cj4gPiA+ICsJZHJtX2Nvbm5lY3Rvcl9j bGVhbnVwKGNvbm5lY3Rvcik7Cj4gPiA+ICsKPiA+ID4gK2Vycl9jb25uZWN0b3I6Cj4gPiA+ICsJ ZHJtX2NydGNfY2xlYW51cChjcnRjKTsKPiA+ID4gKwo+ID4gPiArZXJyX2NydGM6Cj4gPiA+ICsJ ZHJtX3BsYW5lX2NsZWFudXAocHJpbWFyeSk7Cj4gPiA+ICsJcmV0dXJuIHJldDsKPiA+ID4gK30K PiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjJjMjViMWQ2YWI1Ygo+ID4gPiAtLS0gL2Rldi9u dWxsCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4gPiBA QCAtMCwwICsxLDQ2IEBACj4gPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MAo+ID4gPiArLyoKPiA+ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gPiA+ICsgKiBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ ID4gPiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKPiA+ID4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCj4gPiA+ICsgKi8KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4g PiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KPiA+ID4gKyNpbmNsdWRlIDxk cm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiA+ID4gKwo+ID4gPiArc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fcGxhbmVfZnVuY3Mgdmttc19wbGFuZV9mdW5jcyA9IHsKPiA+ID4gKwkudXBkYXRlX3Bs YW5lCQk9IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwKPiA+ID4gKwkuZGlzYWJsZV9w bGFuZQkJPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+ID4gPiArCS5kZXN0cm95 CQk9IGRybV9wbGFuZV9jbGVhbnVwLAo+ID4gPiArCS5yZXNldAkJCT0gZHJtX2F0b21pY19oZWxw ZXJfcGxhbmVfcmVzZXQsCj4gPiA+ICsJLmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBkcm1fYXRv bWljX2hlbHBlcl9wbGFuZV9kdXBsaWNhdGVfc3RhdGUsCj4gPiA+ICsJLmF0b21pY19kZXN0cm95 X3N0YXRlCT0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZSwKPiA+ID4gK307 Cj4gPiA+ICsKPiA+ID4gK3N0cnVjdCBkcm1fcGxhbmUgKnZrbXNfcGxhbmVfaW5pdChzdHJ1Y3Qg dmttc19kZXZpY2UgKnZrbXNkZXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9ICZ2a21zZGV2LT5kcm07Cj4gPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4g PiA+ICsJY29uc3QgdTMyICpmb3JtYXRzOwo+ID4gPiArCWludCByZXQsIG5mb3JtYXRzOwo+ID4g PiArCj4gPiA+ICsJcGxhbmUgPSBremFsbG9jKHNpemVvZigqcGxhbmUpLCBHRlBfS0VSTkVMKTsK PiA+ID4gKwlpZiAoIXBsYW5lKQo+ID4gPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiA+ ID4gKwo+ID4gPiArCWZvcm1hdHMgPSB2a21zX2Zvcm1hdHM7Cj4gPiA+ICsJbmZvcm1hdHMgPSBB UlJBWV9TSVpFKHZrbXNfZm9ybWF0cyk7Cj4gPiA+ICsKPiA+ID4gKwlyZXQgPSBkcm1fdW5pdmVy c2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMCwKPiA+ID4gKwkJCQkgICAgICAgJnZrbXNfcGxh bmVfZnVuY3MsCj4gPiA+ICsJCQkJICAgICAgIGZvcm1hdHMsIG5mb3JtYXRzLAo+ID4gPiArCQkJ CSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiA+ID4gKwlpZiAo cmV0KSB7Cj4gPiA+ICsJCWtmcmVlKHBsYW5lKTsKPiA+ID4gKwkJcmV0dXJuIEVSUl9QVFIocmV0 KTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+IAo+ID4gNCkgYWRkIGRybV9wbGFuZV9oZWxwZXJfZnVu Y3Mgd2l0aCBkdW1teSB7YXRvbWljX2NoZWNrLCBwcmVwYXJlX2ZiLCBjbGVhbnVwX2ZifS4KPiA+ IAo+ID4gPiArCXJldHVybiBwbGFuZTsKPiA+ID4gK30KPiA+ID4gLS0gCj4gPiA+IDIuMTcuMAo+ ID4gPiAKPiA+IAo+ID4gLSBIYW5lZW4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==