From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: Re: [RFC/WIP] drm/rockchip: Support CRTC gamma LUT Date: Tue, 18 Jun 2019 10:36:01 -0300 Message-ID: <6b0519240580229d1cc4ce6d2c98326f2ef7f97c.camel@collabora.com> References: <20190613192244.5447-1-ezequiel@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Ilia Mirkin Cc: Douglas Anderson , dri-devel , linux-rockchip@lists.infradead.org, Boris Brezillon , Sean Paul , kernel@collabora.com List-Id: linux-rockchip.vger.kernel.org T24gVGh1LCAyMDE5LTA2LTEzIGF0IDE1OjM2IC0wNDAwLCBJbGlhIE1pcmtpbiB3cm90ZToKPiBO b3RlIHRoYXQgdXNlcnNwYWNlIG1heSBwcm92aWRlIGFueSBzaXplIG9mIGdhbW1hIGx1dC4gSGF2 ZSBhIGxvb2sgYXQKPiBpOTE1L2ludGVsX2NvbG9yLmM6aW50ZWxfY29sb3JfY2hlY2sgd2hpY2gg ZmlsdGVycyBvdXQgb25seSB0aGUKPiBhbGxvd2VkIHNpemVzLiBDb25zaWRlciBoYXZpbmcgYSBz cGVjaWFsIGFsbG93YW5jZSBmb3IgMjU2LXNpemVkIExVVHMKPiBzaW5jZSB0aGF0J3Mgd2hhdCBt b3N0IGxlZ2FjeSB1c2Vyc3BhY2Ugd2lsbCBzZXQsIGFuZCBpdCBzZWVtcyBsaWtlIGEKPiB3YXN0 ZSB0byBjcmVhdGUgYSAxMC1iaXQgTFVUIGZvciBSR0JBOCBjb2xvci4KPiAKClJpZ2h0LiBJIHdp bGwgYWRkIGEgY2hlY2sgZm9yIHRoZSBnYW1tYSBsdXQgc2l6ZS4KClVuZm9ydHVuYXRlbHksIHRo aXMgaGFyZHdhcmUgc2VlbXMgdG8gb25seSBzdXBwb3J0IDEwLWJpdCwgMTAyNC1zaXplZCBMVVRz LgoKVGhlIHNwZWMgZG9lcyBtZW50aW9uIGEgc3VwcG9ydCA4LWJpdCwgMjU2LWVudHJpZXMsIGJ1 dCBpdCdzIG5vdCBhdCBhbGwKY2xlYXIgaG93IGNvbmZpZ3VyZSB0aGF0LgoKVGhhbmtzIGZvciB0 aGUgZmVlZGJhY2ssCkV6ZXF1aWVsCgo+ICAgLWlsaWEKPiAKPiBPbiBUaHUsIEp1biAxMywgMjAx OSBhdCAzOjIzIFBNIEV6ZXF1aWVsIEdhcmNpYSA8ZXplcXVpZWxAY29sbGFib3JhLmNvbT4gd3Jv dGU6Cj4gPiBBZGQgQ1JUQyBnYW1tYSBMVVQgY29uZmlndXJhdGlvbiBvbiBSSzMyODggYW5kIFJL MzM5OS4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogRXplcXVpZWwgR2FyY2lhIDxlemVxdWllbEBj b2xsYWJvcmEuY29tPgo+ID4gLS0tCj4gPiBUaGlzIHBhdGNoIHNlZW1zIHRvIHdvcmsgd2VsbCBv biBSSzMyODgsIGJ1dCBwcm9kdWNlcwo+ID4gYSBkaXN0b3J0ZWQgb3V0cHV0IG9uIFJLMzM5OS4g SSB3YXMgaG9waW5nCj4gPiBzb21lb25lIGNvdWxkIGhhdmUgYW55IGlkZWEsIHNvIHdlIGNhbiBz dXBwb3J0IGJvdGgKPiA+IHBsYXRmb3Jtcy4KPiA+IAo+ID4gIGRyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgfCA4NyArKysrKysrKysrKysrKysrKysrKysKPiA+ICBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIHwgIDIgKwo+ID4gIGRy aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgfCAgNCArCj4gPiAgZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuaCB8ICAxICsKPiA+ICA0IGZp bGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCj4gPiBpbmRleCAxMmVkNTI2NWE5MGIuLjgzODE2 NzljMTA0NSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF9kcm1fdm9wLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9k cm1fdm9wLmMKPiA+IEBAIC0zOCw2ICszOCw4IEBACj4gPiAgI2luY2x1ZGUgInJvY2tjaGlwX2Ry bV92b3AuaCIKPiA+ICAjaW5jbHVkZSAicm9ja2NoaXBfcmdiLmgiCj4gPiAKPiA+ICsjZGVmaW5l IFZPUF9HQU1NQV9MVVRfU0laRSAxMDI0Cj4gPiArCj4gPiAgI2RlZmluZSBWT1BfV0lOX1NFVCh2 b3AsIHdpbiwgbmFtZSwgdikgXAo+ID4gICAgICAgICAgICAgICAgIHZvcF9yZWdfc2V0KHZvcCwg Jndpbi0+cGh5LT5uYW1lLCB3aW4tPmJhc2UsIH4wLCB2LCAjbmFtZSkKPiA+ICAjZGVmaW5lIFZP UF9TQ0xfU0VUKHZvcCwgd2luLCBuYW1lLCB2KSBcCj4gPiBAQCAtMTM3LDYgKzEzOSw3IEBAIHN0 cnVjdCB2b3Agewo+ID4gCj4gPiAgICAgICAgIHVpbnQzMl90ICpyZWdzYmFrOwo+ID4gICAgICAg ICB2b2lkIF9faW9tZW0gKnJlZ3M7Cj4gPiArICAgICAgIHZvaWQgX19pb21lbSAqbHV0X3JlZ3M7 Cj4gPiAKPiA+ICAgICAgICAgLyogcGh5c2ljYWwgbWFwIGxlbmd0aCBvZiB2b3AgcmVnaXN0ZXIg Ki8KPiA+ICAgICAgICAgdWludDMyX3QgbGVuOwo+ID4gQEAgLTExNTMsNiArMTE1Niw0NiBAQCBz dGF0aWMgdm9pZCB2b3Bfd2FpdF9mb3JfaXJxX2hhbmRsZXIoc3RydWN0IHZvcCAqdm9wKQo+ID4g ICAgICAgICBzeW5jaHJvbml6ZV9pcnEodm9wLT5pcnEpOwo+ID4gIH0KPiA+IAo+ID4gK3N0YXRp YyBib29sIHZvcF9kc3BfbHV0X2lzX2VuYWJsZShzdHJ1Y3Qgdm9wICp2b3ApCj4gPiArewo+ID4g KyAgICAgICByZXR1cm4gdm9wX3JlYWRfcmVnKHZvcCwgMCwgJnZvcC0+ZGF0YS0+Y29tbW9uLT5k c3BfbHV0X2VuKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgdm9wX2NydGNfZ2FtbWFf c2V0KHN0cnVjdCB2b3AgKnZvcCwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gPiAr ewo+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0Owo+ID4gKyAgICAgICBpbnQg aSwgaWRsZSwgcmV0Owo+ID4gKwo+ID4gKyAgICAgICBpZiAoIXN0YXRlLT5nYW1tYV9sdXQpCj4g PiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gKyAgICAgICBsdXQgPSBzdGF0ZS0+Z2FtbWFf bHV0LT5kYXRhOwo+ID4gKwo+ID4gKyAgICAgICBzcGluX2xvY2soJnZvcC0+cmVnX2xvY2spOwo+ ID4gKyAgICAgICBWT1BfUkVHX1NFVCh2b3AsIGNvbW1vbiwgZHNwX2x1dF9lbiwgMCk7Cj4gPiAr ICAgICAgIHZvcF9jZmdfZG9uZSh2b3ApOwo+ID4gKyAgICAgICBzcGluX3VubG9jaygmdm9wLT5y ZWdfbG9jayk7Cj4gPiArCj4gPiArICAgICAgIHJldCA9IHJlYWR4X3BvbGxfdGltZW91dCh2b3Bf ZHNwX2x1dF9pc19lbmFibGUsIHZvcCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGlk bGUsICFpZGxlLCA1LCAxMCAqIDMwMDAwKTsKPiA+ICsgICAgICAgaWYgKHJldCkKPiA+ICsgICAg ICAgICAgICAgICByZXR1cm47Cj4gPiArCj4gPiArICAgICAgIHNwaW5fbG9jaygmdm9wLT5yZWdf bG9jayk7Cj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBjcnRjLT5nYW1tYV9zaXplOyBpKysp IHsKPiA+ICsgICAgICAgICAgICAgICB1MzIgd29yZDsKPiA+ICsKPiA+ICsgICAgICAgICAgICAg ICB3b3JkID0gKGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0ucmVkLCAxMCkgPDwgMjApIHwK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgKGRybV9jb2xvcl9sdXRfZXh0cmFjdChsdXRbaV0u Z3JlZW4sIDEwKSA8PCAxMCkgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZHJtX2NvbG9y X2x1dF9leHRyYWN0KGx1dFtpXS5ibHVlLCAxMCk7Cj4gPiArICAgICAgICAgICAgICAgd3JpdGVs KHdvcmQsIHZvcC0+bHV0X3JlZ3MgKyBpICogNCk7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsg ICAgICAgVk9QX1JFR19TRVQodm9wLCBjb21tb24sIGRzcF9sdXRfZW4sIDEpOwo+ID4gKyAgICAg ICB2b3BfY2ZnX2RvbmUodm9wKTsKPiA+ICsgICAgICAgc3Bpbl91bmxvY2soJnZvcC0+cmVnX2xv Y2spOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCB2b3BfY3J0Y19hdG9taWNfZmx1c2go c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gPiAgewo+ID4gQEAg LTEyMDEsNiArMTI0NCw5IEBAIHN0YXRpYyB2b2lkIHZvcF9jcnRjX2F0b21pY19mbHVzaChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgICAgICAgICAgICAgICAgZHJtX2ZsaXBfd29ya19xdWV1 ZSgmdm9wLT5mYl91bnJlZl93b3JrLCBvbGRfcGxhbmVfc3RhdGUtPmZiKTsKPiA+ICAgICAgICAg ICAgICAgICBzZXRfYml0KFZPUF9QRU5ESU5HX0ZCX1VOUkVGLCAmdm9wLT5wZW5kaW5nKTsKPiA+ ICAgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBpZiAodm9wLT5sdXRfcmVncyAmJiBjcnRjLT5z dGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2VkKQo+ID4gKyAgICAgICAgICAgICAgIHZvcF9jcnRjX2dh bW1hX3NldCh2b3AsIGNydGMsIGNydGMtPnN0YXRlKTsKPiA+ICB9Cj4gPiAKPiA+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyB2b3BfY3J0Y19oZWxwZXJfZnVuY3Mg PSB7Cj4gPiBAQCAtMTMyMyw2ICsxMzY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0 Y19mdW5jcyB2b3BfY3J0Y19mdW5jcyA9IHsKPiA+ICAgICAgICAgLmRpc2FibGVfdmJsYW5rID0g dm9wX2NydGNfZGlzYWJsZV92YmxhbmssCj4gPiAgICAgICAgIC5zZXRfY3JjX3NvdXJjZSA9IHZv cF9jcnRjX3NldF9jcmNfc291cmNlLAo+ID4gICAgICAgICAudmVyaWZ5X2NyY19zb3VyY2UgPSB2 b3BfY3J0Y192ZXJpZnlfY3JjX3NvdXJjZSwKPiA+ICsgICAgICAgLmdhbW1hX3NldCA9IGRybV9h dG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQsCj4gPiAgfTsKPiA+IAo+ID4gIHN0YXRpYyB2 b2lkIHZvcF9mYl91bnJlZl93b3JrZXIoc3RydWN0IGRybV9mbGlwX3dvcmsgKndvcmssIHZvaWQg KnZhbCkKPiA+IEBAIC0xNDgwLDYgKzE1MjcsOCBAQCBzdGF0aWMgaW50IHZvcF9jcmVhdGVfY3J0 YyhzdHJ1Y3Qgdm9wICp2b3ApCj4gPiAgICAgICAgICAgICAgICAgZ290byBlcnJfY2xlYW51cF9w bGFuZXM7Cj4gPiAKPiA+ICAgICAgICAgZHJtX2NydGNfaGVscGVyX2FkZChjcnRjLCAmdm9wX2Ny dGNfaGVscGVyX2Z1bmNzKTsKPiA+ICsgICAgICAgZHJtX21vZGVfY3J0Y19zZXRfZ2FtbWFfc2l6 ZShjcnRjLCBWT1BfR0FNTUFfTFVUX1NJWkUpOwo+ID4gKyAgICAgICBkcm1fY3J0Y19lbmFibGVf Y29sb3JfbWdtdChjcnRjLCAwLCBmYWxzZSwgVk9QX0dBTU1BX0xVVF9TSVpFKTsKPiA+IAo+ID4g ICAgICAgICAvKgo+ID4gICAgICAgICAgKiBDcmVhdGUgZHJtX3BsYW5lcyBmb3Igb3ZlcmxheSB3 aW5kb3dzIHdpdGggcG9zc2libGVfY3J0Y3MgcmVzdHJpY3RlZAo+ID4gQEAgLTE3NDQsNiArMTc5 Myw0MSBAQCBpbnQgcm9ja2NoaXBfZHJtX3dhaXRfdmFjdF9lbmQoc3RydWN0IGRybV9jcnRjICpj cnRjLCB1bnNpZ25lZCBpbnQgbXN0aW1lb3V0KQo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MKHJv Y2tjaGlwX2RybV93YWl0X3ZhY3RfZW5kKTsKPiA+IAo+ID4gK3N0YXRpYyBpbnQgdm9wX2dhbW1h X2x1dF9yZXF1ZXN0KHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzLCBzdHJ1Y3Qgdm9wICp2b3ApCj4gPiAr ewo+ID4gKyAgICAgICByZXNvdXJjZV9zaXplX3Qgb2Zmc2V0ID0gdm9wLT5kYXRhLT5nYW1tYV9s dXRfYWRkcl9vZmY7Cj4gPiArICAgICAgIHJlc291cmNlX3NpemVfdCBzaXplID0gVk9QX0dBTU1B X0xVVF9TSVpFICogNDsKPiA+ICsKPiA+ICsgICAgICAgLyoKPiA+ICsgICAgICAgICogU29tZSBT b0NzIChlLmcuIFJLMzI4OCkgaGF2ZSB0aGUgZ2FtbWEgTFVUIGFkZHJlc3MgYWZ0ZXIKPiA+ICsg ICAgICAgICogdGhlIE1NVSByZWdpc3RlcnMsIHdoaWNoIG1lYW5zIHdlIGNhbid0IHJlcXVlc3Qg YW5kIGlvcmVtYXAKPiA+ICsgICAgICAgICogdGhlIGVudGlyZSByZWdpc3RlciBzZXQuIE90aGVy IChlLmcuIFJLMzM5OSkgaGF2ZSBnYW1tYSBMVVQKPiA+ICsgICAgICAgICogYWRkcmVzcyBiZWZv cmUgTU1VLgo+ID4gKyAgICAgICAgKgo+ID4gKyAgICAgICAgKiBUaGVyZWZvcmUsIHdlIG5lZWQg dG8gcmVxdWVzdCBhbmQgaW9yZW1hcCB0aG9zZSB0aGF0IGhhdmVuJ3QKPiA+ICsgICAgICAgICog YmVlbiBhbHJlYWR5Lgo+ID4gKyAgICAgICAgKi8KPiA+ICsgICAgICAgaWYgKHZvcC0+bGVuID49 IChvZmZzZXQgKyBzaXplKSkgewo+ID4gKyAgICAgICAgICAgICAgIHZvcC0+bHV0X3JlZ3MgPSB2 b3AtPnJlZ3MgKyBvZmZzZXQ7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiArICAg ICAgIH0KPiA+ICsKPiA+ICsgICAgICAgaWYgKCFkZXZtX3JlcXVlc3RfbWVtX3JlZ2lvbihkZXYs IHJlcy0+c3RhcnQgKyBvZmZzZXQsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZSwgZGV2X25hbWUoZGV2KSkpIHsKPiA+ICsgICAgICAgICAgICAgICBkZXZfd2Fy bihkZXYsICJjYW4ndCByZXF1ZXN0IGdhbW1hIGx1dCByZWdpb25cbiIpOwo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAtRUJVU1k7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgdm9w LT5sdXRfcmVncyA9IGRldm1faW9yZW1hcChkZXYsIHJlcy0+c3RhcnQgKyBvZmZzZXQsIHNpemUp Owo+ID4gKyAgICAgICBpZiAoIXZvcC0+bHV0X3JlZ3MpIHsKPiA+ICsgICAgICAgICAgICAgICBk ZXZfZXJyKGRldiwgImNhbid0IGlvcmVtYXAgZ2FtbWEgbHV0IGFkZHJlc3NcbiIpOwo+ID4gKyAg ICAgICAgICAgICAgIGRldm1fcmVsZWFzZV9tZW1fcmVnaW9uKGRldiwgcmVzLT5zdGFydCArIG9m ZnNldCwgc2l6ZSk7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gPiArICAg ICAgIH0KPiA+ICsgICAgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQg dm9wX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQg KmRhdGEpCj4gPiAgewo+ID4gICAgICAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0g dG9fcGxhdGZvcm1fZGV2aWNlKGRldik7Cj4gPiBAQCAtMTc3Niw2ICsxODYwLDkgQEAgc3RhdGlj IGludCB2b3BfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwg dm9pZCAqZGF0YSkKPiA+ICAgICAgICAgaWYgKElTX0VSUih2b3AtPnJlZ3MpKQo+ID4gICAgICAg ICAgICAgICAgIHJldHVybiBQVFJfRVJSKHZvcC0+cmVncyk7Cj4gPiAKPiA+ICsgICAgICAgaWYg KHZvcC0+ZGF0YS0+Z2FtbWFfbHV0X2FkZHJfb2ZmKQo+ID4gKyAgICAgICAgICAgICAgIHZvcF9n YW1tYV9sdXRfcmVxdWVzdChkZXYsIHJlcywgdm9wKTsKPiA+ICsKPiA+ICAgICAgICAgdm9wLT5y ZWdzYmFrID0gZGV2bV9remFsbG9jKGRldiwgdm9wLT5sZW4sIEdGUF9LRVJORUwpOwo+ID4gICAg ICAgICBpZiAoIXZvcC0+cmVnc2JhaykKPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01F TTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJt X3ZvcC5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaAo+ID4g aW5kZXggMjE0OWE4ODljMjlkLi4xMmQ1YmRlMGQwYmMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oCj4gPiBAQCAtNjcsNiArNjcsNyBAQCBz dHJ1Y3Qgdm9wX2NvbW1vbiB7Cj4gPiAgICAgICAgIHN0cnVjdCB2b3BfcmVnIGRpdGhlcl9kb3du X21vZGU7Cj4gPiAgICAgICAgIHN0cnVjdCB2b3BfcmVnIGRpdGhlcl9kb3duX2VuOwo+ID4gICAg ICAgICBzdHJ1Y3Qgdm9wX3JlZyBkaXRoZXJfdXA7Cj4gPiArICAgICAgIHN0cnVjdCB2b3BfcmVn IGRzcF9sdXRfZW47Cj4gPiAgICAgICAgIHN0cnVjdCB2b3BfcmVnIGdhdGVfZW47Cj4gPiAgICAg ICAgIHN0cnVjdCB2b3BfcmVnIG1tdV9lbjsKPiA+ICAgICAgICAgc3RydWN0IHZvcF9yZWcgb3V0 X21vZGU7Cj4gPiBAQCAtMTcwLDYgKzE3MSw3IEBAIHN0cnVjdCB2b3BfZGF0YSB7Cj4gPiAgICAg ICAgIGNvbnN0IHN0cnVjdCB2b3Bfd2luX3l1djJ5dXZfZGF0YSAqd2luX3l1djJ5dXY7Cj4gPiAg ICAgICAgIGNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbjsKPiA+ICAgICAgICAgdW5zaWdu ZWQgaW50IHdpbl9zaXplOwo+ID4gKyAgICAgICBvZmZfdCBnYW1tYV9sdXRfYWRkcl9vZmY7Cj4g PiAKPiA+ICAjZGVmaW5lIFZPUF9GRUFUVVJFX09VVFBVVF9SR0IxMCAgICAgICBCSVQoMCkKPiA+ ICAjZGVmaW5lIFZPUF9GRUFUVVJFX0lOVEVSTkFMX1JHQiAgICAgICBCSVQoMSkKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwo+ID4gaW5kZXggN2I5Yzc0 NzUwZjZkLi42M2ZiYjM4NDg5M2IgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfdm9wX3JlZy5jCj4gPiBAQCAtNTkzLDYgKzU5Myw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgdm9wX2NvbW1vbiByazMyODhfY29tbW9uID0gewo+ID4gICAgICAgICAuZGl0aGVy X2Rvd25fZW4gPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDEsIDB4MSwgMiksCj4gPiAgICAgICAg IC5wcmVfZGl0aGVyX2Rvd24gPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDEsIDB4MSwgMSksCj4g PiAgICAgICAgIC5kaXRoZXJfdXAgPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDEsIDB4MSwgNiks Cj4gPiArICAgICAgIC5kc3BfbHV0X2VuID0gVk9QX1JFRyhSSzMyODhfRFNQX0NUUkwxLCAweDEs IDApLAo+ID4gICAgICAgICAuZGF0YV9ibGFuayA9IFZPUF9SRUcoUkszMjg4X0RTUF9DVFJMMCwg MHgxLCAxOSksCj4gPiAgICAgICAgIC5kc3BfYmxhbmsgPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RS TDAsIDB4MywgMTgpLAo+ID4gICAgICAgICAub3V0X21vZGUgPSBWT1BfUkVHKFJLMzI4OF9EU1Bf Q1RSTDAsIDB4ZiwgMCksCj4gPiBAQCAtNjQxLDYgKzY0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgdm9wX2RhdGEgcmszMjg4X3ZvcCA9IHsKPiA+ICAgICAgICAgLm91dHB1dCA9ICZyazMyODhf b3V0cHV0LAo+ID4gICAgICAgICAud2luID0gcmszMjg4X3ZvcF93aW5fZGF0YSwKPiA+ICAgICAg ICAgLndpbl9zaXplID0gQVJSQVlfU0laRShyazMyODhfdm9wX3dpbl9kYXRhKSwKPiA+ICsgICAg ICAgLmdhbW1hX2x1dF9hZGRyX29mZiA9IFJLMzI4OF9HQU1NQV9MVVRfQUREUiwKPiA+ICB9Owo+ ID4gCj4gPiAgc3RhdGljIGNvbnN0IGludCByazMzNjhfdm9wX2ludHJzW10gPSB7Cj4gPiBAQCAt ODExLDYgKzgxMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX2RhdGEgcmszMzk5X3ZvcF9i aWcgPSB7Cj4gPiAgICAgICAgIC53aW4gPSByazMzNjhfdm9wX3dpbl9kYXRhLAo+ID4gICAgICAg ICAud2luX3NpemUgPSBBUlJBWV9TSVpFKHJrMzM2OF92b3Bfd2luX2RhdGEpLAo+ID4gICAgICAg ICAud2luX3l1djJ5dXYgPSByazMzOTlfdm9wX2JpZ193aW5feXV2Mnl1dl9kYXRhLAo+ID4gKyAg ICAgICAuZ2FtbWFfbHV0X2FkZHJfb2ZmID0gUkszMzk5X0dBTU1BX0xVVF9BRERSLAo+ID4gIH07 Cj4gPiAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF93aW5fZGF0YSByazMzOTlfdm9wX2xp dF93aW5fZGF0YVtdID0gewo+ID4gQEAgLTgzNiw2ICs4MzksNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHZvcF9kYXRhIHJrMzM5OV92b3BfbGl0ID0gewo+ID4gICAgICAgICAud2luID0gcmszMzk5 X3ZvcF9saXRfd2luX2RhdGEsCj4gPiAgICAgICAgIC53aW5fc2l6ZSA9IEFSUkFZX1NJWkUocmsz Mzk5X3ZvcF9saXRfd2luX2RhdGEpLAo+ID4gICAgICAgICAud2luX3l1djJ5dXYgPSByazMzOTlf dm9wX2xpdF93aW5feXV2Mnl1dl9kYXRhLAo+ID4gKyAgICAgICAuZ2FtbWFfbHV0X2FkZHJfb2Zm ID0gUkszMzk5X0dBTU1BX0xVVF9BRERSLAo+ID4gIH07Cj4gPiAKPiA+ICBzdGF0aWMgY29uc3Qg c3RydWN0IHZvcF93aW5fZGF0YSByazMyMjhfdm9wX3dpbl9kYXRhW10gPSB7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuaCBiL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmgKPiA+IGluZGV4IDZlOWZhNTgx NWQ0ZC4uNDkwMzE4MzgyZjc0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX3ZvcF9yZWcuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX3ZvcF9yZWcuaAo+ID4gQEAgLTExMyw2ICsxMTMsNyBAQAo+ID4gICNkZWZpbmUg UkszMjg4X0RTUF9WQUNUX1NUX0VORCAgICAgICAgICAgICAgICAgMHgwMTk0Cj4gPiAgI2RlZmlu ZSBSSzMyODhfRFNQX1ZTX1NUX0VORF9GMSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDE5OAo+ ID4gICNkZWZpbmUgUkszMjg4X0RTUF9WQUNUX1NUX0VORF9GMSAgICAgICAgICAgICAgMHgwMTlj Cj4gPiArI2RlZmluZSBSSzMyODhfR0FNTUFfTFVUX0FERFIgICAgICAgICAgICAgICAgICAweDEw MDAKPiA+ICAvKiByZWdpc3RlciBkZWZpbml0aW9uIGVuZCAqLwo+ID4gCj4gPiAgLyogcmszMzY4 IHJlZ2lzdGVyIGRlZmluaXRpb24gKi8KPiA+IC0tCj4gPiAyLjIwLjEKPiA+IAo+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs