From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Siqueira Subject: Re: [PATCH 1/3] drm/vkms: Add basic CRTC initialization Date: Wed, 16 May 2018 12:49:06 -0300 Message-ID: <20180516154906.gfmwndvzdhu2ycai@smtp.gmail.com> References: <20180516095107.GG3438@phenom.ffwll.local> <20180516145116.k2besiubph3l3ooo@smtp.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-x242.google.com (mail-qk0-x242.google.com [IPv6:2607:f8b0:400d:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF523893C0 for ; Wed, 16 May 2018 15:49:10 +0000 (UTC) Received: by mail-qk0-x242.google.com with SMTP id h19-v6so1027274qkj.10 for ; Wed, 16 May 2018 08:49:10 -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: Daniel Vetter Cc: dri-devel , Sean Paul , Haneen Mohammed List-Id: dri-devel@lists.freedesktop.org Tm93IEkgZ290IGl0ISBJIHdpbGwgc3BsaXQgdGhlIHBhdGNoIGFuZCBhcHBseSB5b3VyIHN1Z2dl c3Rpb25zIDopClRoYW5rcwoKT24gMDUvMTYsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gV2Vk LCBNYXkgMTYsIDIwMTggYXQgNTo0MCBQTSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNo PiB3cm90ZToKPiA+IE9uIFdlZCwgTWF5IDE2LCAyMDE4IGF0IDQ6NTEgUE0sIFJvZHJpZ28gU2lx dWVpcmEKPiA+IDxyb2RyaWdvc2lxdWVpcmFtZWxvQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4gSGkg RGFuaWVsLAo+ID4+Cj4gPj4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2sgOikKPiA+Pgo+ID4+IFlv dSBjYW4gZmluZCBteSBjb21tZW50cyBiZWxvdzoKPiA+Pgo+ID4+IE9uIDA1LzE2LCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4+PiBPbiBXZWQsIE1heSAxNiwgMjAxOCBhdCAxMjowNjo1NEFNIC0w MzAwLCBSb2RyaWdvIFNpcXVlaXJhIHdyb3RlOgo+ID4+PiA+IFRoaXMgY29tbWl0IGFkZHMgdGhl IGVzc2VudGlhbCBpbmZyYXN0cnVjdHVyZSBmb3IgbWFuYWdpbmcgQ1JUQ3Mgd2hpY2gKPiA+Pj4g PiBpcyBjb21wb3NlZCBvZjogYSBuZXcgZGF0YSBzdHJ1Y3QgZm9yIG91dHB1dCBkYXRhIGluZm9y bWF0aW9uLCBhCj4gPj4+ID4gZnVuY3Rpb24gZm9yIGJhc2ljIG1vZGVzZXQgaW5pdGlhbGl6YXRp b24sIGFuZCB0aGUgb3BlcmF0aW9uIHRvIGNyZWF0ZQo+ID4+PiA+IHBsYW5lcy4gRHVlIHRvIHRo ZSBpbnRyb2R1Y3Rpb24gb2YgYSBuZXcgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sCj4gPj4+ID4g Y29ubmVjdG9ycyB3ZXJlIG1vdmVkIGZyb20gdmttc19kcnYuYyB0byB2a21zX2Rpc3BsYXkuYy4K PiA+Pj4gPgo+ID4+PiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gU2lxdWVpcmEgPHJvZHJpZ29z aXF1ZWlyYW1lbG9AZ21haWwuY29tPgo+ID4+PiA+IC0tLQo+ID4+PiA+ICBkcml2ZXJzL2dwdS9k cm0vdmttcy9NYWtlZmlsZSAgICAgICB8ICAgMiArLQo+ID4+PiA+ICBkcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX2Rpc3BsYXkuYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g Pj4+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMgICAgIHwgIDQxICstLS0tLS0t LS0tCj4gPj4+ID4gIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggICAgIHwgIDI2ICsr KysrKy0KPiA+Pj4gPiAgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5jICAgfCAgNDYg KysrKysrKysrKysrCj4gPj4+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMTgwIGluc2VydGlvbnMoKyks IDQzIGRlbGV0aW9ucygtKQo+ID4+PiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19kaXNwbGF5LmMKPiA+Pj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS92a21zL3ZrbXNfcGxhbmUuYwo+ID4+PiA+Cj4gPj4+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFr ZWZpbGUKPiA+Pj4gPiBpbmRleCAyYWVmOTQ4ZDNhMzQuLmY3NDdlMmEzYTZmNCAxMDA2NDQKPiA+ Pj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQo+ID4+PiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCj4gPj4+ID4gQEAgLTEsMyArMSwzIEBACj4gPj4+ ID4gLXZrbXMteSA6PSB2a21zX2Rydi5vCj4gPj4+ID4gK3ZrbXMteSA6PSB2a21zX2Rydi5vIHZr bXNfcGxhbmUubyB2a21zX2Rpc3BsYXkubwo+ID4+PiA+Cj4gPj4+ID4gIG9iai0kKENPTkZJR19E Uk1fVktNUykgKz0gdmttcy5vCj4gPj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 a21zL3ZrbXNfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kaXNwbGF5LmMK PiA+Pj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4+PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4u YjIwYjQxZjk1OTBiCj4gPj4+ID4gLS0tIC9kZXYvbnVsbAo+ID4+PiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfZGlzcGxheS5jCj4gPj4+ID4gQEAgLTAsMCArMSwxMDggQEAKPiA+ Pj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiA+Pj4gPiArLyoKPiA+ Pj4gPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKPiA+Pj4gPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiA+Pj4gPiArICog dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGlj ZW5zZSwgb3IKPiA+Pj4gPiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K PiA+Pj4gPiArICovCj4gPj4+ID4gKwo+ID4+PiA+ICsjaW5jbHVkZSAidmttc19kcnYuaCIKPiA+ Pj4gPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ID4+PiA+ICsjaW5jbHVk ZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+ID4+PiA+ICsKPiA+Pj4gPiArI2RlZmluZSBYUkVT X01JTiAgICAzMgo+ID4+PiA+ICsjZGVmaW5lIFlSRVNfTUlOICAgIDMyCj4gPj4+ID4gKwo+ID4+ PiA+ICsjZGVmaW5lIFhSRVNfREVGICAxMDI0Cj4gPj4+ID4gKyNkZWZpbmUgWVJFU19ERUYgICA3 NjgKPiA+Pj4KPiA+Pj4gVGhlc2Ugc2VlbSB1bnVzZWQuCj4gPj4KPiA+PiBJIGNyZWF0ZWQgdGhl c2UgZGVmaW5lcyBiZWNhdXNlIHRoZSBkb2N1bWVudGF0aW9uIHNheXM6Cj4gPj4KPiA+PiAiWy4u XU9uY2UgZG9uZSwgbW9kZSBjb25maWd1cmF0aW9uIG11c3QgYmUgc2V0dXAgYnkgaW5pdGlhbGl6 aW5nIHRoZQo+ID4+IGZvbGxvd2luZyBmaWVsZHMuIgo+ID4+IChodHRwczovL2RyaS5mcmVlZGVz a3RvcC5vcmcvZG9jcy9kcm0vZ3B1L2RybS1rbXMuaHRtbCNjLmRybV9tb2RlX2NvbmZpZ19pbml0 KQo+ID4+Cj4gPj4gRmluYWxseSwgSSB1c2VkIHRoZW0gaW4gIm1vZGVfY29uZmlnIiBmaWVsZHMg ZnJvbSBkcm1fZGV2aWNlIChjb2RlIGJlbG93KS4KPiA+Pgo+ID4+IElzIGl0IG9rIHRvIG5vdCBz ZXR1cCB0aGVzZSB2YWx1ZXMgb24gbW9kZV9jb25maWc/IEkgbG9va2VkIGF0IHZpcnRpbyBhcwo+ ID4+IGFuIGluc3BpcmF0aW9uIGZvciB0aGlzLgo+ID4KPiA+IFhZUkVTX01JTiBhbmQgX01BWCB5 b3UgbmVlZCwgYnV0IF9ERUYgc2VlbXMgdW51c2VkLiBUaGF0J3Mgd2h5IEkKPiA+IGFza2VkLCBz b3JyeSBmb3Igbm90IG1ha2luZyB0aGlzIGNsZWFyLgo+IAo+IGJ0dyBjb3VsZCBtYWtlIHNlbnNl IHRvIHNwbGl0IHRoaXMgZml4IGludG8gYSBzZXBhcmF0ZSBwYXRjaCwgc2luY2UKPiB0aGUgbWlu L21heCBzZXR1cCBpcyBpbmRlZWQgbWlzc2luZyBhbmQgcmVxdWlyZWQuCj4gLURhbmllbAo+IAo+ ID4gLURhbmllbAo+ID4KPiA+Pgo+ID4+PiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2Rl X2NvbmZpZ19mdW5jcyB2a21zX21vZGVfZnVuY3MgPSB7Cj4gPj4+ID4gKyAgIC5hdG9taWNfY2hl Y2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiA+Pj4gPiArICAgLmF0b21pY19jb21taXQg PSBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQsCj4gPj4+ID4gK307Cj4gPj4+ID4gKwo+ID4+PiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHZrbXNfY3J0Y19mdW5jcyA9IHsK PiA+Pj4gPiArICAgLnNldF9jb25maWcgICAgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9z ZXRfY29uZmlnLAo+ID4+PiA+ICsgICAuZGVzdHJveSAgICAgICAgICAgICAgICA9IGRybV9jcnRj X2NsZWFudXAsCj4gPj4+ID4gKyAgIC5wYWdlX2ZsaXAgICAgICAgICAgICAgID0gZHJtX2F0b21p Y19oZWxwZXJfcGFnZV9mbGlwLAo+ID4+PiA+ICsgICAucmVzZXQgICAgICAgICAgICAgICAgICA9 IGRybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQsCj4gPj4+ID4gKyAgIC5hdG9taWNfZHVwbGlj YXRlX3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUsCj4gPj4+ ID4gKyAgIC5hdG9taWNfZGVzdHJveV9zdGF0ZSAgID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19k ZXN0cm95X3N0YXRlLAo+ID4+PiA+ICt9Owo+ID4+PiA+ICsKPiA+Pj4gPiArc3RhdGljIHZvaWQg dmttc19jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ID4+PiA+ICt7Cj4gPj4+ID4gKyAgIGRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3Ip Owo+ID4+PiA+ICsgICBkcm1fY29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPiA+Pj4gPiAr fQo+ID4+PiA+ICsKPiA+Pj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1 bmNzIHZrbXNfY29ubmVjdG9yX2Z1bmNzID0gewo+ID4+PiA+ICsgICAuZmlsbF9tb2RlcyA9IGRy bV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiA+Pj4gPiArICAgLmRlc3Ry b3kgPSB2a21zX2Nvbm5lY3Rvcl9kZXN0cm95LAo+ID4+PiA+ICt9Owo+ID4+PiA+ICsKPiA+Pj4g PiArc3RhdGljIGludCB2a21zX291dHB1dF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2Rl dikKPiA+Pj4gPiArewo+ID4+PiA+ICsgICBzdHJ1Y3Qgdmttc19vdXRwdXQgKm91dHB1dCA9ICZ2 a21zZGV2LT5vdXRwdXQ7Cj4gPj4+ID4gKyAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmdmtt c2Rldi0+ZHJtOwo+ID4+PiA+ICsgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0g Jm91dHB1dC0+Y29ubmVjdG9yOwo+ID4+PiA+ICsgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSAm b3V0cHV0LT5jcnRjOwo+ID4+PiA+ICsgICBzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5Owo+ID4+ PiA+ICsgICBpbnQgcmV0Owo+ID4+PiA+ICsKPiA+Pj4gPiArICAgcHJpbWFyeSA9IHZrbXNfcGxh bmVfaW5pdCh2a21zZGV2KTsKPiA+Pj4gPiArICAgaWYgKElTX0VSUihwcmltYXJ5KSkKPiA+Pj4g PiArICAgICAgICAgICByZXR1cm4gUFRSX0VSUihwcmltYXJ5KTsKPiA+Pj4gPiArCj4gPj4+ID4g KyAgIHJldCA9IGRybV9jcnRjX2luaXRfd2l0aF9wbGFuZXMoZGV2LCBjcnRjLCBwcmltYXJ5LCBO VUxMLAo+ID4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2a21zX2Ny dGNfZnVuY3MsIE5VTEwpOwo+ID4+PiA+ICsgICBpZiAocmV0KSB7Cj4gPj4+ID4gKyAgICAgICAg ICAgRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdCBDUlRDXG4iKTsKPiA+Pj4gPiArICAgICAgICAg ICBnb3RvIGVycl9jcnRjOwo+ID4+PiA+ICsgICB9Cj4gPj4+ID4gKyAgIHByaW1hcnktPmNydGMg PSBjcnRjOwo+ID4+Pgo+ID4+PiBJZiB5b3Ugd2FudCB0byBzcGxpdCBzdHVmZiB1cCBhIGJpdCwg SSB0aGluayBwdXR0aW5nIHRoZSBjcnRjIHN0dWZmIGludG8KPiA+Pj4gdmttc19jcnRjLmMsIGFu ZCB0aGVuIHJlbmFtaW5nIHRoaXMgZmlsZSBoZXJlIHRvIHZrbXNfb3V0cHV0LmMgd291bGQgbWFr ZQo+ID4+PiBzZW5zZS4KPiA+Pgo+ID4+IE5pY2UsIG1ha2UgYSBsb3Qgb2Ygc2Vuc2UgdG8gbWUu IEkgd2lsbCBkbyBpdCBvbiB2Mi4KPiA+Pgo+ID4+PiA+ICsKPiA+Pj4gPiArICAgcmV0ID0gZHJt X2Nvbm5lY3Rvcl9pbml0KGRldiwgY29ubmVjdG9yLCAmdmttc19jb25uZWN0b3JfZnVuY3MsCj4g Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1JfVklS VFVBTCk7Cj4gPj4+ID4gKyAgIGlmIChyZXQpIHsKPiA+Pj4gPiArICAgICAgICAgICBEUk1fRVJS T1IoIkZhaWxlZCB0byBpbml0IGNvbm5lY3RvclxuIik7Cj4gPj4+ID4gKyAgICAgICAgICAgZ290 byBlcnJfY29ubmVjdG9yOwo+ID4+PiA+ICsgICB9Cj4gPj4+ID4gKwo+ID4+PiA+ICsgICByZXQg PSBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPj4+ID4gKyAgIGlmIChyZXQp IHsKPiA+Pj4gPiArICAgICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byByZWdpc3RlciBjb25u ZWN0b3JcbiIpOwo+ID4+PiA+ICsgICAgICAgICAgIGdvdG8gZXJyX2Nvbm5lY3Rvcl9yZWdpc3Rl cjsKPiA+Pj4gPiArICAgfQo+ID4+PiA+ICsKPiA+Pj4gPiArICAgZHJtX21vZGVfY29uZmlnX3Jl c2V0KGRldik7Cj4gPj4+ID4gKwo+ID4+PiA+ICsgICByZXR1cm4gMDsKPiA+Pj4gPiArCj4gPj4+ ID4gK2Vycl9jb25uZWN0b3JfcmVnaXN0ZXI6Cj4gPj4+ID4gKyAgIGRybV9jb25uZWN0b3JfY2xl YW51cChjb25uZWN0b3IpOwo+ID4+PiA+ICsKPiA+Pj4gPiArZXJyX2Nvbm5lY3RvcjoKPiA+Pj4g PiArICAgZHJtX2NydGNfY2xlYW51cChjcnRjKTsKPiA+Pj4gPiArCj4gPj4+ID4gK2Vycl9jcnRj Ogo+ID4+PiA+ICsgICBkcm1fcGxhbmVfY2xlYW51cChwcmltYXJ5KTsKPiA+Pj4gPiArICAgcmV0 dXJuIHJldDsKPiA+Pj4gPiArfQo+ID4+PiA+ICsKPiA+Pj4gPiAraW50IHZrbXNfbW9kZXNldF9p bml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiA+Pj4KPiA+Pj4gUGx1cyBrZWVwaW5n IHZrbXNfbW9kZXNldF9pbml0IGluIHZrbXNfZHJ2LmMsIHZrbXMgaXMgMTAwJSBhYm91dAo+ID4+ PiBtb2Rlc2V0dGluZyBhbmQgbm90aGluZyBlbHNlLCBzbyBzcGxpdHRpbmcgdGhhdCBvdXQgaXMg YSBiaXQgb3ZlcmtpbGwgaW1vLgo+ID4+Cj4gPj4gT2ssIEkgd2lsbCBkbyBpdCB0b28gZm9yIHYy Lgo+ID4+Cj4gPj4+ID4gK3sKPiA+Pj4gPiArICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZ2 a21zZGV2LT5kcm07Cj4gPj4+ID4gKwo+ID4+PiA+ICsgICBkcm1fbW9kZV9jb25maWdfaW5pdChk ZXYpOwo+ID4+PiA+ICsgICBkZXYtPm1vZGVfY29uZmlnLmZ1bmNzID0gJnZrbXNfbW9kZV9mdW5j czsKPiA+Pj4gPiArICAgZGV2LT5tb2RlX2NvbmZpZy5taW5fd2lkdGggPSBYUkVTX01JTjsKPiA+ Pj4gPiArICAgZGV2LT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gWVJFU19NSU47Cj4gPj4+ID4g KyAgIGRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoID0gWFJFU19NQVg7Cj4gPj4+ID4gKyAgIGRl di0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IFlSRVNfTUFYOwo+ID4+PiA+ICsKPiA+Pj4gPiAr ICAgcmV0dXJuIHZrbXNfb3V0cHV0X2luaXQodmttc2Rldik7Cj4gPj4+ID4gK30KPiA+Pj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS92a21zL3ZrbXNfZHJ2LmMKPiA+Pj4gPiBpbmRleCAzNTUxN2IwOTUzOGUuLjExZTA1Njk4 MDdiZCAxMDA2NDQKPiA+Pj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5j Cj4gPj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuYwo+ID4+PiA+IEBA IC02LDkgKzYsNyBAQAo+ID4+PiA+ICAgKi8KPiA+Pj4gPgo+ID4+PiA+ICAjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+Cj4gPj4+ID4gLSNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ID4+PiA+ICAjaW5j bHVkZSA8ZHJtL2RybV9nZW0uaD4KPiA+Pj4gPiAtI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxw ZXIuaD4KPiA+Pj4gPiAgI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPj4+ID4KPiA+Pj4gPiAgI2Rl ZmluZSBEUklWRVJfTkFNRSAgICAgICAgInZrbXMiCj4gPj4+ID4gQEAgLTUyLDIxICs1MCw2IEBA IHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciB2a21zX2RyaXZlciA9IHsKPiA+Pj4gPiAgICAgLm1p bm9yICAgICAgICAgICAgICAgICAgPSBEUklWRVJfTUlOT1IsCj4gPj4+ID4gIH07Cj4gPj4+ID4K PiA+Pj4gPiAtc3RhdGljIGNvbnN0IHUzMiB2a21zX2Zvcm1hdHNbXSA9IHsKPiA+Pj4gPiAtICAg RFJNX0ZPUk1BVF9YUkdCODg4OCwKPiA+Pj4gPiAtfTsKPiA+Pj4gPiAtCj4gPj4+ID4gLXN0YXRp YyB2b2lkIHZrbXNfY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiA+Pj4gPiAtewo+ID4+PiA+IC0gICBkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoY29u bmVjdG9yKTsKPiA+Pj4gPiAtICAgZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4g Pj4+ID4gLX0KPiA+Pj4gPiAtCj4gPj4+ID4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9mdW5jcyB2a21zX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiA+Pj4gPiAtICAgLmZpbGxfbW9k ZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCj4gPj4+ID4gLSAg IC5kZXN0cm95ID0gdmttc19jb25uZWN0b3JfZGVzdHJveSwKPiA+Pj4gPiAtfTsKPiA+Pj4gPiAt Cj4gPj4+ID4gIHN0YXRpYyBpbnQgX19pbml0IHZrbXNfaW5pdCh2b2lkKQo+ID4+PiA+ICB7Cj4g Pj4+ID4gICAgIGludCByZXQ7Cj4gPj4+ID4gQEAgLTg2LDM0ICs2OSwxNCBAQCBzdGF0aWMgaW50 IF9faW5pdCB2a21zX2luaXQodm9pZCkKPiA+Pj4gPiAgICAgICAgICAgICBnb3RvIG91dF9maW5p Owo+ID4+PiA+ICAgICB9Cj4gPj4+ID4KPiA+Pj4gPiAtICAgZHJtX21vZGVfY29uZmlnX2luaXQo JnZrbXNfZGV2aWNlLT5kcm0pOwo+ID4+PiA+IC0KPiA+Pj4gPiAtICAgcmV0ID0gZHJtX2Nvbm5l Y3Rvcl9pbml0KCZ2a21zX2RldmljZS0+ZHJtLCAmdmttc19kZXZpY2UtPmNvbm5lY3RvciwKPiA+ Pj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2a21zX2Nvbm5lY3Rvcl9mdW5jcywK PiA+Pj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9NT0RFX0NPTk5FQ1RPUl9W SVJUVUFMKTsKPiA+Pj4gPiAtICAgaWYgKHJldCA8IDApIHsKPiA+Pj4gPiAtICAgICAgICAgICBE Uk1fRVJST1IoIkZhaWxlZCB0byBpbml0IGNvbm5lY3RvclxuIik7Cj4gPj4+ID4gLSAgICAgICAg ICAgZ290byBvdXRfdW5yZWdpc3RlcjsKPiA+Pj4gPiAtICAgfQo+ID4+PiA+IC0KPiA+Pj4gPiAt ICAgcmV0ID0gZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfaW5pdCgmdmttc19kZXZpY2UtPmRybSwK PiA+Pj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmttc19kZXZp Y2UtPnBpcGUsCj4gPj4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwKPiA+Pj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2a21z X2Zvcm1hdHMsCj4gPj4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QVJSQVlfU0laRSh2a21zX2Zvcm1hdHMpLAo+ID4+PiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsCj4gPj4+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnZrbXNfZGV2aWNlLT5jb25uZWN0b3IpOwo+ID4+PiA+IC0gICBpZiAocmV0 IDwgMCkgewo+ID4+PiA+IC0gICAgICAgICAgIERSTV9FUlJPUigiQ2Fubm90IHNldHVwIHNpbXBs ZSBkaXNwbGF5IHBpcGVcbiIpOwo+ID4+PiA+ICsgICByZXQgPSB2a21zX21vZGVzZXRfaW5pdCh2 a21zX2RldmljZSk7Cj4gPj4+ID4gKyAgIGlmIChyZXQpCj4gPj4+ID4gICAgICAgICAgICAgZ290 byBvdXRfdW5yZWdpc3RlcjsKPiA+Pj4gPiAtICAgfQo+ID4+PiA+Cj4gPj4+ID4gICAgIHJldCA9 IGRybV9kZXZfcmVnaXN0ZXIoJnZrbXNfZGV2aWNlLT5kcm0sIDApOwo+ID4+PiA+ICAgICBpZiAo cmV0KQo+ID4+PiA+ICAgICAgICAgICAgIGdvdG8gb3V0X3VucmVnaXN0ZXI7Cj4gPj4+ID4KPiA+ Pj4gPiAtICAgZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcigmdmttc19kZXZpY2UtPmNvbm5lY3Rvcik7 Cj4gPj4+ID4gLQo+ID4+PiA+ICAgICByZXR1cm4gMDsKPiA+Pj4gPgo+ID4+PiA+ICBvdXRfdW5y ZWdpc3RlcjoKPiA+Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmgKPiA+Pj4gPiBpbmRleCBjNzdj NWJmNTAzMmEuLjI5MmJkZWE5Yzc4NSAxMDA2NDQKPiA+Pj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmttcy92a21zX2Rydi5oCj4gPj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19kcnYuaAo+ID4+PiA+IEBAIC0xLDEzICsxLDMzIEBACj4gPj4+ID4gICNpZm5kZWYgX1ZLTVNf RFJWX0hfCj4gPj4+ID4gICNkZWZpbmUgX1ZLTVNfRFJWX0hfCj4gPj4+ID4KPiA+Pj4gPiAtI2lu Y2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KPiA+Pj4gPiArI2luY2x1ZGUgPGRy bS9kcm1QLmg+Cj4gPj4+ID4gKyNpbmNsdWRlIDxkcm0vZHJtLmg+Cj4gPj4+ID4gKwo+ID4+PiA+ ICtzdGF0aWMgY29uc3QgdTMyIHZrbXNfZm9ybWF0c1tdID0gewo+ID4+PiA+ICsgICBEUk1fRk9S TUFUX1hSR0I4ODg4LAo+ID4+PiA+ICsgICBEUk1fRk9STUFUX0FSR0I4ODg4LAo+ID4+PiA+ICsg ICBEUk1fRk9STUFUX0JHUlg4ODg4LAo+ID4+PiA+ICsgICBEUk1fRk9STUFUX0JHUkE4ODg4LAo+ ID4+PiA+ICsgICBEUk1fRk9STUFUX1JHQlg4ODg4LAo+ID4+PiA+ICsgICBEUk1fRk9STUFUX1JH QkE4ODg4LAo+ID4+PiA+ICsgICBEUk1fRk9STUFUX1hCR1I4ODg4LAo+ID4+PiA+ICsgICBEUk1f Rk9STUFUX0FCR1I4ODg4LAo+ID4+Pgo+ID4+PiBXaHkgYWxsIHRoZXNlIHZhcmlhbnN0PyBSaWdo dCBub3cgd2Ugc3VwcG9ydCBub25lIG9mIHRoaXMgYW55d2F5IC4uLiBVbnRpbAo+ID4+PiB3ZSBo YXZlIG1vcmUgSSB0aGluayBqdXN0IGxpbWl0aW5nIHRvIFhSQkc4ODg4IGlzIGdvb2QgZW5vdWdo LCB3ZSBuZWVkIHRvCj4gPj4+IGZsZXNoIG91dCB0aGUgY3JjIHN1cHBvcnQgZmlyc3QgKGFuZCBi YWNraW5nIG1lbW9yeSBoYW5kbGluZyB0b28pLgo+ID4+Cj4gPj4gTXkgYmFkLCBJIGRvbid0IGhh dmUgYW55IGdvb2QgYXJndW1lbnQgZm9yIHVzaW5nIGFsbCBvZiB0aGlzIHZhcmlhbnRzLiBJCj4g Pj4gd2lsbCBrZWVwIGl0IHNpbXBsZSBhbmQgYWRkcyBvbmx5IFhSQkc4ODg4Lgo+ID4+Cj4gPj4g RmluYWxseSwgSSB3aWxsIHByZXBhcmUgdGhlIHYyIHdpdGggeW91ciByZWNvbW1lbmRhdGlvbnMg YW5kIEkgd2lsbCBtZXJnZQo+ID4+IHRoZSBzZWNvbmQgcGF0Y2ggKGVuY29kZXIpIHdpdGggdGhp cyBvbmUuCj4gPj4KPiA+PiBUaGFua3MKPiA+Pgo+ID4+PiAtRGFuaWVsCj4gPj4+Cj4gPj4+ID4g K307Cj4gPj4+ID4gKwo+ID4+PiA+ICtzdHJ1Y3Qgdmttc19vdXRwdXQgewo+ID4+PiA+ICsgICBz dHJ1Y3QgZHJtX2NydGMgY3J0YzsKPiA+Pj4gPiArICAgc3RydWN0IGRybV9jb25uZWN0b3IgY29u bmVjdG9yOwo+ID4+PiA+ICt9Owo+ID4+PiA+Cj4gPj4+ID4gIHN0cnVjdCB2a21zX2RldmljZSB7 Cj4gPj4+ID4gICAgIHN0cnVjdCBkcm1fZGV2aWNlIGRybTsKPiA+Pj4gPiAgICAgc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGxhdGZvcm07Cj4gPj4+ID4gLSAgIHN0cnVjdCBkcm1fc2ltcGxlX2Rp c3BsYXlfcGlwZSBwaXBlOwo+ID4+PiA+IC0gICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBjb25uZWN0 b3I7Cj4gPj4+ID4gKyAgIHN0cnVjdCB2a21zX291dHB1dCBvdXRwdXQ7Cj4gPj4+ID4gIH07Cj4g Pj4+ID4KPiA+Pj4gPiAraW50IHZrbXNfbW9kZXNldF9pbml0KHN0cnVjdCB2a21zX2RldmljZSAq dmttc2Rldik7Cj4gPj4+ID4gKwo+ID4+PiA+ICtzdHJ1Y3QgZHJtX3BsYW5lICp2a21zX3BsYW5l X2luaXQoc3RydWN0IHZrbXNfZGV2aWNlICp2a21zZGV2KTsKPiA+Pj4gPiArCj4gPj4+ID4gICNl bmRpZiAvKiBfVktNU19EUlZfSF8gKi8KPiA+Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZrbXMvdmttc19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19wbGFuZS5j Cj4gPj4+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+Pj4gPiBpbmRleCAwMDAwMDAwMDAwMDAu LjJjMjViMWQ2YWI1Ygo+ID4+PiA+IC0tLSAvZGV2L251bGwKPiA+Pj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX3BsYW5lLmMKPiA+Pj4gPiBAQCAtMCwwICsxLDQ2IEBACj4gPj4+ ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gPj4+ID4gKy8qCj4gPj4+ ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gPj4+ID4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gPj4+ID4gKyAqIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCj4gPj4+ID4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4g Pj4+ID4gKyAqLwo+ID4+PiA+ICsKPiA+Pj4gPiArI2luY2x1ZGUgInZrbXNfZHJ2LmgiCj4gPj4+ ID4gKyNpbmNsdWRlIDxkcm0vZHJtX3BsYW5lX2hlbHBlci5oPgo+ID4+PiA+ICsjaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+Cj4gPj4+ID4gKwo+ID4+PiA+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9wbGFuZV9mdW5jcyB2a21zX3BsYW5lX2Z1bmNzID0gewo+ID4+PiA+ICsgICAu dXBkYXRlX3BsYW5lICAgICAgICAgICA9IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwK PiA+Pj4gPiArICAgLmRpc2FibGVfcGxhbmUgICAgICAgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9k aXNhYmxlX3BsYW5lLAo+ID4+PiA+ICsgICAuZGVzdHJveSAgICAgICAgICAgICAgICA9IGRybV9w bGFuZV9jbGVhbnVwLAo+ID4+PiA+ICsgICAucmVzZXQgICAgICAgICAgICAgICAgICA9IGRybV9h dG9taWNfaGVscGVyX3BsYW5lX3Jlc2V0LAo+ID4+PiA+ICsgICAuYXRvbWljX2R1cGxpY2F0ZV9z dGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKPiA+Pj4gPiAr ICAgLmF0b21pY19kZXN0cm95X3N0YXRlICAgPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0 cm95X3N0YXRlLAo+ID4+PiA+ICt9Owo+ID4+PiA+ICsKPiA+Pj4gPiArc3RydWN0IGRybV9wbGFu ZSAqdmttc19wbGFuZV9pbml0KHN0cnVjdCB2a21zX2RldmljZSAqdmttc2RldikKPiA+Pj4gPiAr ewo+ID4+PiA+ICsgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJnZrbXNkZXYtPmRybTsKPiA+ Pj4gPiArICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPj4+ID4gKyAgIGNvbnN0IHUzMiAq Zm9ybWF0czsKPiA+Pj4gPiArICAgaW50IHJldCwgbmZvcm1hdHM7Cj4gPj4+ID4gKwo+ID4+PiA+ ICsgICBwbGFuZSA9IGt6YWxsb2Moc2l6ZW9mKCpwbGFuZSksIEdGUF9LRVJORUwpOwo+ID4+PiA+ ICsgICBpZiAoIXBsYW5lKQo+ID4+PiA+ICsgICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9N RU0pOwo+ID4+PiA+ICsKPiA+Pj4gPiArICAgZm9ybWF0cyA9IHZrbXNfZm9ybWF0czsKPiA+Pj4g PiArICAgbmZvcm1hdHMgPSBBUlJBWV9TSVpFKHZrbXNfZm9ybWF0cyk7Cj4gPj4+ID4gKwo+ID4+ PiA+ICsgICByZXQgPSBkcm1fdW5pdmVyc2FsX3BsYW5lX2luaXQoZGV2LCBwbGFuZSwgMCwKPiA+ Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2a21zX3BsYW5lX2Z1bmNz LAo+ID4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0cywgbmZv cm1hdHMsCj4gPj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBE Uk1fUExBTkVfVFlQRV9QUklNQVJZLCBOVUxMKTsKPiA+Pj4gPiArICAgaWYgKHJldCkgewo+ID4+ PiA+ICsgICAgICAgICAgIGtmcmVlKHBsYW5lKTsKPiA+Pj4gPiArICAgICAgICAgICByZXR1cm4g RVJSX1BUUihyZXQpOwo+ID4+PiA+ICsgICB9Cj4gPj4+ID4gKwo+ID4+PiA+ICsgICByZXR1cm4g cGxhbmU7Cj4gPj4+ID4gK30KPiA+Pj4gPiAtLQo+ID4+PiA+IDIuMTcuMAo+ID4+PiA+Cj4gPj4+ Cj4gPj4+IC0tCj4gPj4+IERhbmllbCBWZXR0ZXIKPiA+Pj4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gPj4+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gPgo+ID4KPiA+Cj4g PiAtLQo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCj4gPiArNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4g Cj4gCj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgo+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==