From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: Re: [v10 04/12] drm: Enable HDR infoframe support Date: Thu, 16 May 2019 07:22:36 +0000 Message-ID: References: <1557855394-12214-1-git-send-email-uma.shankar@intel.com> <1557855394-12214-5-git-send-email-uma.shankar@intel.com> <20190515191511.GE24299@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190515191511.GE24299@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?iso-8859-1?Q?Ville_Syrj=E4l=E4?= Cc: "dcastagna@chromium.org" , "jonas@kwiboo.se" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "seanpaul@chromium.org" List-Id: dri-devel@lists.freedesktop.org Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFp bHRvOnZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tXQo+U2VudDogVGh1cnNkYXksIE1heSAx NiwgMjAxOSAxMjo0NSBBTQo+VG86IFNoYW5rYXIsIFVtYSA8dW1hLnNoYW5rYXJAaW50ZWwuY29t Pgo+Q2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmc7Cj5tYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb207IFNoYXJt YSwgU2hhc2hhbmsKPjxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPjsgZW1pbC5sLnZlbGlrb3ZA Z21haWwuY29tOyBicmlhbi5zdGFya2V5QGFybS5jb207Cj5kY2FzdGFnbmFAY2hyb21pdW0ub3Jn OyBzZWFucGF1bEBjaHJvbWl1bS5vcmc7IFJvcGVyLCBNYXR0aGV3IEQKPjxtYXR0aGV3LmQucm9w ZXJAaW50ZWwuY29tPjsgam9uYXNAa3dpYm9vLnNlCj5TdWJqZWN0OiBSZTogW3YxMCAwNC8xMl0g ZHJtOiBFbmFibGUgSERSIGluZm9mcmFtZSBzdXBwb3J0Cj4KPk9uIFR1ZSwgTWF5IDE0LCAyMDE5 IGF0IDExOjA2OjI2UE0gKzA1MzAsIFVtYSBTaGFua2FyIHdyb3RlOgo+PiBFbmFibGUgRHluYW1p YyBSYW5nZSBhbmQgTWFzdGVyaW5nIEluZm9mcmFtZSBmb3IgSERSIGNvbnRlbnQsIHdoaWNoIGlz Cj4+IGRlZmluZWQgaW4gQ0VBIDg2MS4zIHNwZWMuCj4+Cj4+IFRoZSBtZXRhZGF0YSB3aWxsIGJl IGNvbXB1dGVkIGJhc2VkIG9uIGJsZW5kaW5nIHBvbGljeSBpbiB1c2Vyc3BhY2UKPj4gY29tcG9z aXRvcnMgYW5kIHBhc3NlZCBhcyBhIGNvbm5lY3RvciBwcm9wZXJ0eSBibG9iIHRvIGRyaXZlci4g VGhlCj4+IHNhbWUgd2lsbCBiZSBzZW50IGFzIGluZm9mcmFtZSB0byBwYW5lbCB3aGljaCBzdXBw b3J0IEhEUi4KPj4KPj4gQWRkZWQgdGhlIGNvbnN0IHZlcnNpb24gb2YgaW5mb2ZyYW1lIGZvciBE Uk0gbWV0YWRhdGEgZm9yIEhEUi4KPj4KPj4gdjI6IFJlYmFzZSBhbmQgYWRkZWQgVmlsbGUncyBQ T0MgY2hhbmdlcy4KPj4KPj4gdjM6IE5vIENoYW5nZQo+Pgo+PiB2NDogQWRkcmVzc2VkIFNoYXNo YW5rJ3MgcmV2aWV3IGNvbW1lbnRzIGFuZCBtZXJnZWQgdGhlIHBhdGNoIG1ha2luZwo+PiBkcm0g aW5mb2ZyYW1lIGZ1bmN0aW9uIGFyZ3VtZW50cyBhcyBjb25zdGFudC4KPj4KPj4gdjU6IFJlYmFz ZQo+Pgo+PiB2NjogRml4ZWQgY2hlY2twYXRjaCB3YXJuaW5ncyB3aXRoIC0tc3RyaWN0IG9wdGlv bi4gQWRkcmVzc2VkCj4+IFNoYXNoYW5rJ3MgcmV2aWV3IGNvbW1lbnRzIGFuZCBhZGRlZCBoaXMg UkIuCj4+Cj4+IHY3OiBBZGRyZXNzZWQgQnJpYW4gU3RhcmtleSdzIHJldmlldyBjb21tZW50cy4g TWVyZ2VkIDIgcGF0Y2hlcyBpbnRvCj4+IG9uZS4KPj4KPj4gdjg6IEFkZHJlc3NlZCBKb25hcyBL YXJsbWFuIHJldmlldyBjb21tZW50cy4KPj4KPj4gdjk6IEFkZHJlc3NlZCBKb25hcyBLYXJsbWFu IHJldmlldyBjb21tZW50cy4KPj4KPj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPj4gUmV2aWV3ZWQtYnk6IFNoYXNoYW5rIFNoYXJt YSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX2VkaWQuYyB8ICA0MyArKysrKysrKysrKwo+PiAgZHJpdmVycy92aWRlby9oZG1pLmMgICAg ICAgfCAxODcKPisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ PiAgaW5jbHVkZS9kcm0vZHJtX2VkaWQuaCAgICAgfCAgIDUgKysKPj4gIGluY2x1ZGUvbGludXgv aGRtaS5oICAgICAgIHwgIDI3ICsrKysrKysKPj4gIDQgZmlsZXMgY2hhbmdlZCwgMjYyIGluc2Vy dGlvbnMoKykKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPj4gaW5kZXggMmUwYjViZS4uNzNiNzkwNSAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9lZGlkLmMKPj4gQEAgLTQ5MDMsNiArNDkwMyw0OSBAQCBzdGF0aWMgYm9vbCBp c19oZG1pMl9zaW5rKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4+ICpjb25uZWN0b3IpICB9Cj4+Cj4+ ICAvKioKPj4gKyAqIGRybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKCkgLSBmaWxs IGFuIEhETUkgRFJNIGluZm9mcmFtZSB3aXRoCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSERSIG1ldGFkYXRhIGZyb20gdXNlcnNwYWNlCj4+ICsgKiBAZnJh bWU6IEhETUkgRFJNIGluZm9mcmFtZQo+PiArICogQGhkcl9tZXRhZGF0YTogaGRyX3NvdXJjZV9t ZXRhZGF0YSBpbmZvIGZyb20gdXNlcnNwYWNlCj4+ICsgKgo+PiArICogUmV0dXJuOiAwIG9uIHN1 Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+ICsgKi8KPj4gK2lu dAo+PiArZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEoc3RydWN0IGhkbWlfZHJt X2luZm9mcmFtZSAqZnJhbWUsCj4+ICsJCQkJICAgIGNvbnN0IHN0cnVjdCBoZHJfb3V0cHV0X21l dGFkYXRhCj4qaGRyX21ldGFkYXRhKSB7Cj4+ICsJaW50IGVycjsKPj4gKwo+PiArCWlmICghZnJh bWUgfHwgIWhkcl9tZXRhZGF0YSkKPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKwllcnIg PSBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChmcmFtZSk7Cj4+ICsJaWYgKGVyciA8IDApCj4+ICsJ CXJldHVybiBlcnI7Cj4+ICsKPj4gKwlEUk1fREVCVUdfS01TKCJ0eXBlID0gJXhcbiIsIGZyYW1l LT50eXBlKTsKPgo+VGhpcyBkZWJ1ZyBzZWVtcyBwb2ludGxlc3MuCgpPaywgd2lsbCBkcm9wIHRo aXMuCgo+PiArCj4+ICsJZnJhbWUtPmVvdGYgPSBoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFf dHlwZTEuZW90ZjsKPj4gKwlmcmFtZS0+bWV0YWRhdGFfdHlwZSA9Cj4+ICtoZHJfbWV0YWRhdGEt PmhkbWlfbWV0YWRhdGFfdHlwZTEubWV0YWRhdGFfdHlwZTsKPj4gKwo+PiArCW1lbWNweSgmZnJh bWUtPmRpc3BsYXlfcHJpbWFyaWVzLAo+PiArCSAgICAgICAmaGRyX21ldGFkYXRhLT5oZG1pX21l dGFkYXRhX3R5cGUxLmRpc3BsYXlfcHJpbWFyaWVzLCAxMik7Cj4KPnNpemVvZigpIGNhbiBiZSB1 c2VkIGhlcmUuCgpTdXJlLgoKPkNvdWxkIGFsc28gc2xhcCBvbiBhIEJVSUxEX0JVR19PTigpIHRv IG1ha2Ugc3VyZSBib3RoIGFyZSB0aGUgc2FtZSBzaXplLgoKT2ssIHdpbGwgYWRkZCBpdC4KCj4K Pj4gKwo+PiArCW1lbWNweSgmZnJhbWUtPndoaXRlX3BvaW50LAo+PiArCSAgICAgICAmaGRyX21l dGFkYXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLndoaXRlX3BvaW50LCA0KTsKPgo+ZGl0dG8uCgpT dXJlLgoKPj4gKwo+PiArCWZyYW1lLT5tYXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlID0K Pj4gKwkJaGRyX21ldGFkYXRhLQo+PmhkbWlfbWV0YWRhdGFfdHlwZTEubWF4X2Rpc3BsYXlfbWFz dGVyaW5nX2x1bWluYW5jZTsKPj4gKwlmcmFtZS0+bWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWlu YW5jZSA9Cj4+ICsJCWhkcl9tZXRhZGF0YS0KPj5oZG1pX21ldGFkYXRhX3R5cGUxLm1pbl9kaXNw bGF5X21hc3RlcmluZ19sdW1pbmFuY2U7Cj4+ICsJZnJhbWUtPm1heF9mYWxsID0gaGRyX21ldGFk YXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLm1heF9mYWxsOwo+PiArCWZyYW1lLT5tYXhfY2xsID0g aGRyX21ldGFkYXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLm1heF9jbGw7Cj4+ICsKPj4gKwlyZXR1 cm4gMDsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0woZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJf bWV0YWRhdGEpOwo+PiArCj4+ICsvKioKPj4gICAqIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJv bV9kaXNwbGF5X21vZGUoKSAtIGZpbGwgYW4gSERNSSBBVkkgaW5mb2ZyYW1lIHdpdGgKPj4gICAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgZnJvbSBh IERSTSBkaXNwbGF5IG1vZGUKPj4gICAqIEBmcmFtZTogSERNSSBBVkkgaW5mb2ZyYW1lCj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2hkbWkuYyBiL2RyaXZlcnMvdmlkZW8vaGRtaS5jIGlu ZGV4Cj4+IDc5OWFlNDkuLmM1ZWNkMTYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvdmlkZW8vaGRt aS5jCj4+ICsrKyBiL2RyaXZlcnMvdmlkZW8vaGRtaS5jCj4+IEBAIC02NTAsNiArNjUwLDE0NyBA QCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0cnVjdAo+aGRtaV92ZW5kb3Jf aW5mb2ZyYW1lICpmcmFtZSwKPj4gIAlyZXR1cm4gMDsKPj4gIH0KPj4KPj4gKy8qKgo+PiArICog aGRtaV9kcm1faW5mb2ZyYW1lX2luaXQoKSAtIGluaXRpYWxpemUgYW4gSERNSSBEeW5hbWluYyBS YW5nZSBhbmQKPj4gKyAqIG1hc3RlcmluZyBpbmZvZnJhbWUKPj4gKyAqIEBmcmFtZTogSERNSSBE Uk0gaW5mb2ZyYW1lCj4+ICsgKgo+PiArICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+ICsgKi8KPj4gK2ludCBoZG1pX2RybV9pbmZv ZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSkgewo+PiArCW1lbXNl dChmcmFtZSwgMCwgc2l6ZW9mKCpmcmFtZSkpOwo+PiArCj4+ICsJZnJhbWUtPnR5cGUgPSBIRE1J X0lORk9GUkFNRV9UWVBFX0RSTTsKPj4gKwlmcmFtZS0+dmVyc2lvbiA9IDE7Cj4+ICsJZnJhbWUt Pmxlbmd0aCA9IEhETUlfRFJNX0lORk9GUkFNRV9TSVpFOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KTsKPj4gKwo+PiAr c3RhdGljIGludCBoZG1pX2RybV9pbmZvZnJhbWVfY2hlY2tfb25seShjb25zdCBzdHJ1Y3QKPj4g K2hkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpIHsKPj4gKwlpZiAoZnJhbWUtPnR5cGUgIT0gSERN SV9JTkZPRlJBTUVfVFlQRV9EUk0gfHwKPj4gKwkgICAgZnJhbWUtPnZlcnNpb24gIT0gMSkKPgo+ TWlzc2luZyB0aGUgbGVuZ3RoIGNoZWNrLgo+Cj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCj4+ ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gKy8qKgo+PiArICogaGRtaV9kcm1faW5mb2ZyYW1l X2NoZWNrKCkgLSBjaGVjayBhIEhETUkgRFJNIGluZm9mcmFtZQo+PiArICogQGZyYW1lOiBIRE1J IERSTSBpbmZvZnJhbWUKPj4gKyAqCj4+ICsgKiBWYWxpZGF0ZXMgdGhhdCB0aGUgaW5mb2ZyYW1l IGlzIGNvbnNpc3RlbnQuCj4+ICsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZl IGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPj4gKyAqLwo+PiAraW50IGhkbWlfZHJtX2luZm9mcmFt ZV9jaGVjayhzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSkgewo+PiArCXJldHVybiBo ZG1pX2RybV9pbmZvZnJhbWVfY2hlY2tfb25seShmcmFtZSk7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lN Qk9MKGhkbWlfZHJtX2luZm9mcmFtZV9jaGVjayk7Cj4+ICsKPj4gKy8qKgo+PiArICogaGRtaV9k cm1faW5mb2ZyYW1lX3BhY2tfb25seSgpIC0gd3JpdGUgSERNSSBEUk0gaW5mb2ZyYW1lIHRvCj4+ ICtiaW5hcnkgYnVmZmVyCj4+ICsgKiBAZnJhbWU6IEhETUkgRFJNIGluZm9mcmFtZQo+PiArICog QGJ1ZmZlcjogZGVzdGluYXRpb24gYnVmZmVyCj4+ICsgKiBAc2l6ZTogc2l6ZSBvZiBidWZmZXIK Pj4gKyAqCj4+ICsgKiBQYWNrcyB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBAZnJh bWUgc3RydWN0dXJlIGludG8gYQo+PiArYmluYXJ5Cj4+ICsgKiByZXByZXNlbnRhdGlvbiB0aGF0 IGNhbiBiZSB3cml0dGVuIGludG8gdGhlIGNvcnJlc3BvbmRpbmcKPj4gK2NvbnRyb2xsZXIKPj4g KyAqIHJlZ2lzdGVycy4gQWxzbyBjb21wdXRlcyB0aGUgY2hlY2tzdW0gYXMgcmVxdWlyZWQgYnkg c2VjdGlvbiA1LjMuNQo+PiArb2YKPj4gKyAqIHRoZSBIRE1JIDEuNCBzcGVjaWZpY2F0aW9uLgo+ PiArICoKPj4gKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRlcyBwYWNrZWQgaW50byB0aGUg YmluYXJ5IGJ1ZmZlciBvciBhCj4+ICtuZWdhdGl2ZQo+PiArICogZXJyb3IgY29kZSBvbiBmYWls dXJlLgo+PiArICovCj4+ICtzc2l6ZV90IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoY29u c3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsCj4+ICsJCQkJICAgICB2b2lkICpi dWZmZXIsIHNpemVfdCBzaXplKQo+PiArewo+PiArCXU4ICpwdHIgPSBidWZmZXI7Cj4+ICsJc2l6 ZV90IGxlbmd0aDsKPj4gKwlpbnQgaTsKPj4gKwo+PiArCWxlbmd0aCA9IEhETUlfSU5GT0ZSQU1F X0hFQURFUl9TSVpFICsgZnJhbWUtPmxlbmd0aDsKPj4gKwo+PiArCWlmIChzaXplIDwgbGVuZ3Ro KQo+PiArCQlyZXR1cm4gLUVOT1NQQzsKPj4gKwo+PiArCW1lbXNldChidWZmZXIsIDAsIHNpemUp Owo+PiArCj4+ICsJcHRyWzBdID0gZnJhbWUtPnR5cGU7Cj4+ICsJcHRyWzFdID0gZnJhbWUtPnZl cnNpb247Cj4+ICsJcHRyWzJdID0gZnJhbWUtPmxlbmd0aDsKPj4gKwlwdHJbM10gPSAwOyAvKiBj aGVja3N1bSAqLwo+PiArCj4+ICsJLyogc3RhcnQgaW5mb2ZyYW1lIHBheWxvYWQgKi8KPj4gKwlw dHIgKz0gSERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkU7Cj4+ICsKPj4gKwkqcHRyKysgPSBmcmFt ZS0+ZW90ZjsKPj4gKwkqcHRyKysgPSBmcmFtZS0+bWV0YWRhdGFfdHlwZTsKPj4gKwo+PiArCWZv ciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKPj4gKwkJKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJp bWFyaWVzW2ldLng7Cj4+ICsJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54 ID4+IDg7Cj4+ICsJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS55Owo+PiAr CQkqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueSA+PiA4Owo+PiArCX0KPj4g Kwo+PiArCSpwdHIrKyA9IGZyYW1lLT53aGl0ZV9wb2ludC54Owo+PiArCSpwdHIrKyA9IGZyYW1l LT53aGl0ZV9wb2ludC54ID4+IDg7Cj4+ICsKPj4gKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9p bnQueTsKPj4gKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueSA+PiA4Owo+PiArCj4+ICsJ KnB0cisrID0gZnJhbWUtPm1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U7Cj4+ICsJKnB0 cisrID0gZnJhbWUtPm1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2UgPj4gODsKPj4gKwo+ PiArCSpwdHIrKyA9IGZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlOwo+PiAr CSpwdHIrKyA9IGZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlID4+IDg7Cj4+ ICsKPj4gKwkqcHRyKysgPSBmcmFtZS0+bWF4X2NsbDsKPj4gKwkqcHRyKysgPSBmcmFtZS0+bWF4 X2NsbCA+PiA4Owo+PiArCj4+ICsJKnB0cisrID0gZnJhbWUtPm1heF9mYWxsOwo+PiArCSpwdHIr KyA9IGZyYW1lLT5tYXhfZmFsbCA+PiA4Owo+PiArCj4+ICsJaGRtaV9pbmZvZnJhbWVfc2V0X2No ZWNrc3VtKGJ1ZmZlciwgbGVuZ3RoKTsKPj4gKwo+PiArCXJldHVybiBsZW5ndGg7Cj4+ICt9Cj4+ ICtFWFBPUlRfU1lNQk9MKGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkpOwo+PiArCj4+ICsv KioKPj4gKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKCkgLSBjaGVjayBhIEhETUkgRFJNIGlu Zm9mcmFtZSwKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgd3JpdGUgaXQg dG8gYmluYXJ5IGJ1ZmZlcgo+PiArICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKPj4gKyAq IEBidWZmZXI6IGRlc3RpbmF0aW9uIGJ1ZmZlcgo+PiArICogQHNpemU6IHNpemUgb2YgYnVmZmVy Cj4+ICsgKgo+PiArICogVmFsaWRhdGVzIHRoYXQgdGhlIGluZm9mcmFtZSBpcyBjb25zaXN0ZW50 IGFuZCB1cGRhdGVzIGRlcml2ZWQKPj4gK2ZpZWxkcwo+PiArICogKGVnLiBsZW5ndGgpIGJhc2Vk IG9uIG90aGVyIGZpZWxkcywgYWZ0ZXIgd2hpY2ggaXQgcGFja3MgdGhlCj4+ICtpbmZvcm1hdGlv bgo+PiArICogY29udGFpbmVkIGluIHRoZSBAZnJhbWUgc3RydWN0dXJlIGludG8gYSBiaW5hcnkg cmVwcmVzZW50YXRpb24KPj4gK3RoYXQKPj4gKyAqIGNhbiBiZSB3cml0dGVuIGludG8gdGhlIGNv cnJlc3BvbmRpbmcgY29udHJvbGxlciByZWdpc3RlcnMuIFRoaXMKPj4gK2Z1bmN0aW9uCj4+ICsg KiBhbHNvIGNvbXB1dGVzIHRoZSBjaGVja3N1bSBhcyByZXF1aXJlZCBieSBzZWN0aW9uIDUuMy41 IG9mIHRoZQo+PiArSERNSSAxLjQKPj4gKyAqIHNwZWNpZmljYXRpb24uCj4+ICsgKgo+PiArICog UmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBhY2tlZCBpbnRvIHRoZSBiaW5hcnkgYnVmZmVy IG9yIGEKPj4gK25lZ2F0aXZlCj4+ICsgKiBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+ICsgKi8K Pj4gK3NzaXplX3QgaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfZHJtX2luZm9m cmFtZSAqZnJhbWUsCj4+ICsJCQkJdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKPj4gK3sKPj4g KwlpbnQgcmV0Owo+PiArCj4+ICsJcmV0ID0gaGRtaV9kcm1faW5mb2ZyYW1lX2NoZWNrKGZyYW1l KTsKPj4gKwlpZiAocmV0KQo+PiArCQlyZXR1cm4gcmV0Owo+PiArCj4+ICsJcmV0dXJuIGhkbWlf ZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoZnJhbWUsIGJ1ZmZlciwgc2l6ZSk7IH0KPj4gK0VYUE9S VF9TWU1CT0woaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2spOwo+PiArCj4+ICAvKgo+PiAgICogaGRt aV92ZW5kb3JfYW55X2luZm9mcmFtZV9jaGVjaygpIC0gY2hlY2sgYSB2ZW5kb3IgaW5mb2ZyYW1l Cj4+ICAgKi8KPj4gQEAgLTc1OCw2ICs4OTksMTAgQEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZv ZnJhbWVfcGFjayhzdHJ1Y3QKPmhkbWlfdmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsCj4+ICAJCWxl bmd0aCA9IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrX29ubHkoJmZyYW1lLT5hdmksCj4+ICAJCQkJ CQkgICAgICBidWZmZXIsIHNpemUpOwo+PiAgCQlicmVhazsKPj4gKwljYXNlIEhETUlfSU5GT0ZS QU1FX1RZUEVfRFJNOgo+PiArCQlsZW5ndGggPSBoZG1pX2RybV9pbmZvZnJhbWVfcGFja19vbmx5 KCZmcmFtZS0+ZHJtLAo+PiArCQkJCQkJICAgICAgYnVmZmVyLCBzaXplKTsKPj4gKwkJYnJlYWs7 Cj4+ICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX1NQRDoKPj4gIAkJbGVuZ3RoID0gaGRtaV9z cGRfaW5mb2ZyYW1lX3BhY2tfb25seSgmZnJhbWUtPnNwZCwKPj4gIAkJCQkJCSAgICAgIGJ1ZmZl ciwgc2l6ZSk7Cj4+IEBAIC04MDYsNiArOTUxLDkgQEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZv ZnJhbWVfcGFjayhzdHJ1Y3QKPmhkbWlfdmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsCj4+ICAJY2Fz ZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPj4gIAkJbGVuZ3RoID0gaGRtaV9hdmlfaW5mb2Zy YW1lX3BhY2soJmZyYW1lLT5hdmksIGJ1ZmZlciwgc2l6ZSk7Cj4+ICAJCWJyZWFrOwo+PiArCWNh c2UgSERNSV9JTkZPRlJBTUVfVFlQRV9EUk06Cj4+ICsJCWxlbmd0aCA9IGhkbWlfZHJtX2luZm9m cmFtZV9wYWNrKCZmcmFtZS0+ZHJtLCBidWZmZXIsIHNpemUpOwo+PiArCQlicmVhazsKPj4gIAlj YXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfU1BEOgo+PiAgCQlsZW5ndGggPSBoZG1pX3NwZF9pbmZv ZnJhbWVfcGFjaygmZnJhbWUtPnNwZCwgYnVmZmVyLCBzaXplKTsKPj4gIAkJYnJlYWs7Cj4+IEBA IC04MzgsNiArOTg2LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmhkbWlfaW5mb2ZyYW1lX3R5cGVf Z2V0X25hbWUoZW51bQo+aGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlKQo+PiAgCQlyZXR1cm4gIlNv dXJjZSBQcm9kdWN0IERlc2NyaXB0aW9uIChTUEQpIjsKPj4gIAljYXNlIEhETUlfSU5GT0ZSQU1F X1RZUEVfQVVESU86Cj4+ICAJCXJldHVybiAiQXVkaW8iOwo+PiArCWNhc2UgSERNSV9JTkZPRlJB TUVfVFlQRV9EUk06Cj4+ICsJCXJldHVybiAiRHluYW1pYyBSYW5nZSBhbmQgTWFzdGVyaW5nIjsK Pj4gIAl9Cj4+ICAJcmV0dXJuICJSZXNlcnZlZCI7Cj4+ICB9Cj4+IEBAIC0xMjg0LDYgKzE0MzQs NDAgQEAgc3RhdGljIHZvaWQgaGRtaV9hdWRpb19pbmZvZnJhbWVfbG9nKGNvbnN0IGNoYXIKPips ZXZlbCwKPj4gIAkJCWZyYW1lLT5kb3dubWl4X2luaGliaXQgPyAiWWVzIiA6ICJObyIpOyAgfQo+ Pgo+PiArLyoqCj4+ICsgKiBoZG1pX2RybV9pbmZvZnJhbWVfbG9nKCkgLSBsb2cgaW5mbyBvZiBI RE1JIERSTSBpbmZvZnJhbWUKPj4gKyAqIEBsZXZlbDogbG9nZ2luZyBsZXZlbAo+PiArICogQGRl djogZGV2aWNlCj4+ICsgKiBAZnJhbWU6IEhETUkgRFJNIGluZm9mcmFtZQo+PiArICovCj4+ICtz dGF0aWMgdm9pZCBoZG1pX2RybV9pbmZvZnJhbWVfbG9nKGNvbnN0IGNoYXIgKmxldmVsLAo+PiAr CQkJCSAgIHN0cnVjdCBkZXZpY2UgKmRldiwKPj4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgaGRtaV9k cm1faW5mb2ZyYW1lICpmcmFtZSkgewo+PiArCWludCBpOwo+PiArCj4+ICsJaGRtaV9pbmZvZnJh bWVfbG9nX2hlYWRlcihsZXZlbCwgZGV2LAo+PiArCQkJCSAgKHN0cnVjdCBoZG1pX2FueV9pbmZv ZnJhbWUgKilmcmFtZSk7Cj4+ICsJaGRtaV9sb2coImxlbmd0aDogJWRcbiIsIGZyYW1lLT5sZW5n dGgpOwo+PiArCWhkbWlfbG9nKCJtZXRhZGF0YSB0eXBlOiAlZFxuIiwgZnJhbWUtPm1ldGFkYXRh X3R5cGUpOwo+PiArCWhkbWlfbG9nKCJlb3RmOiAlZFxuIiwgZnJhbWUtPmVvdGYpOwo+PiArCWZv ciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKPj4gKwkJaGRtaV9sb2coInhbJWRdOiAlZFxuIiwgaSwg ZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLngpOwo+PiArCQloZG1pX2xvZygieVslZF06ICVk XG4iLCBpLCBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueSk7Cj4+ICsJfQo+PiArCj4+ICsJ aGRtaV9sb2coIndoaXRlIHBvaW50IHg6ICVkXG4iLCBmcmFtZS0+d2hpdGVfcG9pbnQueCk7Cj4+ ICsJaGRtaV9sb2coIndoaXRlIHBvaW50IHk6ICVkXG4iLCBmcmFtZS0+d2hpdGVfcG9pbnQueSk7 Cj4+ICsKPj4gKwloZG1pX2xvZygibWF4X2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTogJWRc biIsCj4+ICsJCSBmcmFtZS0+bWF4X2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZSk7Cj4+ICsJ aGRtaV9sb2coIm1pbl9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U6ICVkXG4iLAo+PiArCQkg ZnJhbWUtPm1pbl9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2UpOwo+PiArCj4+ICsJaGRtaV9s b2coIm1heF9jbGw6ICVkXG4iLCBmcmFtZS0+bWF4X2NsbCk7Cj4+ICsJaGRtaV9sb2coIm1heF9m YWxsOiAlZFxuIiwgZnJhbWUtPm1heF9mYWxsKTsgfQo+PiArCj4+ICBzdGF0aWMgY29uc3QgY2hh ciAqCj4+ICBoZG1pXzNkX3N0cnVjdHVyZV9nZXRfbmFtZShlbnVtIGhkbWlfM2Rfc3RydWN0dXJl IHMzZF9zdHJ1Y3QpICB7IEBACj4+IC0xMzcyLDYgKzE1NTYsOSBAQCB2b2lkIGhkbWlfaW5mb2Zy YW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwKPj4gIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVf VkVORE9SOgo+PiAgCQloZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lX2xvZyhsZXZlbCwgZGV2LCAm ZnJhbWUtPnZlbmRvcik7Cj4+ICAJCWJyZWFrOwo+PiArCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQ RV9EUk06Cj4+ICsJCWhkbWlfZHJtX2luZm9mcmFtZV9sb2cobGV2ZWwsIGRldiwgJmZyYW1lLT5k cm0pOwo+PiArCQlicmVhazsKPj4gIAl9Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGhkbWlfaW5m b2ZyYW1lX2xvZyk7Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5j bHVkZS9kcm0vZHJtX2VkaWQuaCBpbmRleAo+PiA5ZDNiNWI5Li40YmE1NmY1IDEwMDY0NAo+PiAt LS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlk LmgKPj4gQEAgLTI1LDYgKzI1LDcgQEAKPj4KPj4gICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgo+ PiAgI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJtX21vZGUuaD4K Pj4KPj4gIHN0cnVjdCBkcm1fZGV2aWNlOwo+PiAgc3RydWN0IGkyY19hZGFwdGVyOwo+PiBAQCAt MzcwLDYgKzM3MSwxMCBAQCBpbnQgZHJtX2F2X3N5bmNfZGVsYXkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPj4gIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSwKPj4gIAkJCQkgICBlbnVtIGhkbWlfcXVhbnRpemF0aW9uX3JhbmdlIHJnYl9xdWFudF9y YW5nZSk7Cj4+Cj4+ICtpbnQKPj4gK2RybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRh KHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAo+PiArCQkJCSAgICBjb25zdCBzdHJ1 Y3QgaGRyX291dHB1dF9tZXRhZGF0YQo+Kmhkcl9tZXRhZGF0YSk7Cj4+ICsKPj4gIC8qKgo+PiAg ICogZHJtX2VsZF9tbmwgLSBHZXQgRUxEIG1vbml0b3IgbmFtZSBsZW5ndGggaW4gYnl0ZXMuCj4+ ICAgKiBAZWxkOiBwb2ludGVyIHRvIGFuIGVsZCBtZW1vcnkgc3RydWN0dXJlIHdpdGggbW5sIHNl dCBkaWZmIC0tZ2l0Cj4+IGEvaW5jbHVkZS9saW51eC9oZG1pLmggYi9pbmNsdWRlL2xpbnV4L2hk bWkuaCBpbmRleCA2NzgwNDc2Li43ZWRhZmNmCj4+IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2xp bnV4L2hkbWkuaAo+PiArKysgYi9pbmNsdWRlL2xpbnV4L2hkbWkuaAo+PiBAQCAtNDcsNiArNDcs NyBAQCBlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgewo+PiAgCUhETUlfSU5GT0ZSQU1FX1RZUEVf QVZJID0gMHg4MiwKPj4gIAlIRE1JX0lORk9GUkFNRV9UWVBFX1NQRCA9IDB4ODMsCj4+ICAJSERN SV9JTkZPRlJBTUVfVFlQRV9BVURJTyA9IDB4ODQsCj4+ICsJSERNSV9JTkZPRlJBTUVfVFlQRV9E Uk0gPSAweDg3LAo+PiAgfTsKPj4KPj4gICNkZWZpbmUgSERNSV9JRUVFX09VSSAweDAwMGMwMwo+ PiBAQCAtMTg1LDEyICsxODYsMzcgQEAgc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSB7Cj4+ICAJ dW5zaWduZWQgc2hvcnQgcmlnaHRfYmFyOwo+PiAgfTsKPj4KPj4gKy8qIERSTSBJbmZvZnJhbWUg YXMgcGVyIENUQSA4NjEuRyBzcGVjICovIHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgewo+PiAr CWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlOwo+PiArCXVuc2lnbmVkIGNoYXIgdmVyc2lv bjsKPj4gKwl1bnNpZ25lZCBjaGFyIGxlbmd0aDsKPj4gKwllbnVtIGhkbWlfZW90ZiBlb3RmOwo+ PiArCWVudW0gaGRtaV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5cGU7Cj4+ICsJc3RydWN0IHsK Pj4gKwkJdTE2IHgsIHk7Cj4+ICsJfSBkaXNwbGF5X3ByaW1hcmllc1szXTsKPj4gKwlzdHJ1Y3Qg ewo+PiArCQl1MTYgeCwgeTsKPj4gKwl9IHdoaXRlX3BvaW50Owo+PiArCXUxNiBtYXhfZGlzcGxh eV9tYXN0ZXJpbmdfbHVtaW5hbmNlOwo+PiArCXUxNiBtaW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVt aW5hbmNlOwo+PiArCXUxNiBtYXhfY2xsOwo+PiArCXUxNiBtYXhfZmFsbDsKPj4gK307Cj4+ICsK Pj4gIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1l ICpmcmFtZSk7Cj4+IHNzaXplX3QgaGRtaV9hdmlfaW5mb2ZyYW1lX3BhY2soc3RydWN0IGhkbWlf YXZpX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwKPj4gIAkJCQlzaXplX3Qgc2l6ZSk7 Cj4+ICBzc2l6ZV90IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhk bWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsCj4+ICAJCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVf dCBzaXplKTsKPj4gIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfYXZp X2luZm9mcmFtZSAqZnJhbWUpOwo+PiAraW50IGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KHN0cnVj dCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKTsKPj4gK3NzaXplX3QgaGRtaV9kcm1faW5mb2Zy YW1lX3BhY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQKPipidWZmZXIs Cj4+ICsJCQkJc2l6ZV90IHNpemUpOwo+PiArc3NpemVfdCBoZG1pX2RybV9pbmZvZnJhbWVfcGFj a19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAo+PiArCQkJCSAg ICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7Cj4+ICtpbnQgaGRtaV9kcm1faW5mb2ZyYW1l X2NoZWNrKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKTsKPj4KPj4gIGVudW0gaGRt aV9zcGRfc2RpIHsKPj4gIAlIRE1JX1NQRF9TRElfVU5LTk9XTiwKPj4gQEAgLTM4MSw2ICs0MDcs NyBAQCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0 Cj5oZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW0KPj4gIAlzdHJ1Y3QgaGRtaV9zcGRfaW5mb2Zy YW1lIHNwZDsKPj4gIAl1bmlvbiBoZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lIHZlbmRvcjsKPj4g IAlzdHJ1Y3QgaGRtaV9hdWRpb19pbmZvZnJhbWUgYXVkaW87Cj4+ICsJc3RydWN0IGhkbWlfZHJt X2luZm9mcmFtZSBkcm07Cj4+ICB9Owo+Pgo+PiAgc3NpemVfdCBoZG1pX2luZm9mcmFtZV9wYWNr KHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFtZSwgdm9pZAo+PiAqYnVmZmVyLAo+PiAtLQo+PiAx LjkuMQo+Cj4tLQo+VmlsbGUgU3lyasOkbMOkCj5JbnRlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=