From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [v10 04/12] drm: Enable HDR infoframe support Date: Wed, 15 May 2019 22:15:11 +0300 Message-ID: <20190515191511.GE24299@intel.com> References: <1557855394-12214-1-git-send-email-uma.shankar@intel.com> <1557855394-12214-5-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1557855394-12214-5-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Uma Shankar Cc: dcastagna@chromium.org, jonas@kwiboo.se, intel-gfx@lists.freedesktop.org, emil.l.velikov@gmail.com, dri-devel@lists.freedesktop.org, seanpaul@chromium.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMTQsIDIwMTkgYXQgMTE6MDY6MjZQTSArMDUzMCwgVW1hIFNoYW5rYXIgd3Jv dGU6Cj4gRW5hYmxlIER5bmFtaWMgUmFuZ2UgYW5kIE1hc3RlcmluZyBJbmZvZnJhbWUgZm9yIEhE Ugo+IGNvbnRlbnQsIHdoaWNoIGlzIGRlZmluZWQgaW4gQ0VBIDg2MS4zIHNwZWMuCj4gCj4gVGhl IG1ldGFkYXRhIHdpbGwgYmUgY29tcHV0ZWQgYmFzZWQgb24gYmxlbmRpbmcKPiBwb2xpY3kgaW4g dXNlcnNwYWNlIGNvbXBvc2l0b3JzIGFuZCBwYXNzZWQgYXMgYSBjb25uZWN0b3IKPiBwcm9wZXJ0 eSBibG9iIHRvIGRyaXZlci4gVGhlIHNhbWUgd2lsbCBiZSBzZW50IGFzIGluZm9mcmFtZQo+IHRv IHBhbmVsIHdoaWNoIHN1cHBvcnQgSERSLgo+IAo+IEFkZGVkIHRoZSBjb25zdCB2ZXJzaW9uIG9m IGluZm9mcmFtZSBmb3IgRFJNIG1ldGFkYXRhCj4gZm9yIEhEUi4KPiAKPiB2MjogUmViYXNlIGFu ZCBhZGRlZCBWaWxsZSdzIFBPQyBjaGFuZ2VzLgo+IAo+IHYzOiBObyBDaGFuZ2UKPiAKPiB2NDog QWRkcmVzc2VkIFNoYXNoYW5rJ3MgcmV2aWV3IGNvbW1lbnRzIGFuZCBtZXJnZWQgdGhlCj4gcGF0 Y2ggbWFraW5nIGRybSBpbmZvZnJhbWUgZnVuY3Rpb24gYXJndW1lbnRzIGFzIGNvbnN0YW50Lgo+ IAo+IHY1OiBSZWJhc2UKPiAKPiB2NjogRml4ZWQgY2hlY2twYXRjaCB3YXJuaW5ncyB3aXRoIC0t c3RyaWN0IG9wdGlvbi4gQWRkcmVzc2VkCj4gU2hhc2hhbmsncyByZXZpZXcgY29tbWVudHMgYW5k IGFkZGVkIGhpcyBSQi4KPiAKPiB2NzogQWRkcmVzc2VkIEJyaWFuIFN0YXJrZXkncyByZXZpZXcg Y29tbWVudHMuIE1lcmdlZCAyIHBhdGNoZXMKPiBpbnRvIG9uZS4KPiAKPiB2ODogQWRkcmVzc2Vk IEpvbmFzIEthcmxtYW4gcmV2aWV3IGNvbW1lbnRzLgo+IAo+IHY5OiBBZGRyZXNzZWQgSm9uYXMg S2FybG1hbiByZXZpZXcgY29tbWVudHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIg PHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBTaGFzaGFuayBT aGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fZWRpZC5jIHwgIDQzICsrKysrKysrKysrCj4gIGRyaXZlcnMvdmlkZW8vaGRtaS5jICAg ICAgIHwgMTg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ICBpbmNsdWRlL2RybS9kcm1fZWRpZC5oICAgICB8ICAgNSArKwo+ICBpbmNsdWRlL2xpbnV4L2hk bWkuaCAgICAgICB8ICAyNyArKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjYyIGluc2VydGlv bnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+IGluZGV4IDJlMGI1YmUuLjczYjc5MDUgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2VkaWQuYwo+IEBAIC00OTAzLDYgKzQ5MDMsNDkgQEAgc3RhdGljIGJvb2wgaXNfaGRtaTJf c2luayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB9Cj4gIAo+ICAvKioKPiAr ICogZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEoKSAtIGZpbGwgYW4gSERNSSBE Uk0gaW5mb2ZyYW1lIHdpdGgKPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEhEUiBtZXRhZGF0YSBmcm9tIHVzZXJzcGFjZQo+ICsgKiBAZnJhbWU6IEhETUkgRFJN IGluZm9mcmFtZQo+ICsgKiBAaGRyX21ldGFkYXRhOiBoZHJfc291cmNlX21ldGFkYXRhIGluZm8g ZnJvbSB1c2Vyc3BhY2UKPiArICoKPiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICtpbnQKPiArZHJtX2hkbWlfaW5m b2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEoc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUs Cj4gKwkJCQkgICAgY29uc3Qgc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgKmhkcl9tZXRhZGF0 YSkKPiArewo+ICsJaW50IGVycjsKPiArCj4gKwlpZiAoIWZyYW1lIHx8ICFoZHJfbWV0YWRhdGEp Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJZXJyID0gaGRtaV9kcm1faW5mb2ZyYW1lX2lu aXQoZnJhbWUpOwo+ICsJaWYgKGVyciA8IDApCj4gKwkJcmV0dXJuIGVycjsKPiArCj4gKwlEUk1f REVCVUdfS01TKCJ0eXBlID0gJXhcbiIsIGZyYW1lLT50eXBlKTsKClRoaXMgZGVidWcgc2VlbXMg cG9pbnRsZXNzLgoKPiArCj4gKwlmcmFtZS0+ZW90ZiA9IGhkcl9tZXRhZGF0YS0+aGRtaV9tZXRh ZGF0YV90eXBlMS5lb3RmOwo+ICsJZnJhbWUtPm1ldGFkYXRhX3R5cGUgPSBoZHJfbWV0YWRhdGEt PmhkbWlfbWV0YWRhdGFfdHlwZTEubWV0YWRhdGFfdHlwZTsKPiArCj4gKwltZW1jcHkoJmZyYW1l LT5kaXNwbGF5X3ByaW1hcmllcywKPiArCSAgICAgICAmaGRyX21ldGFkYXRhLT5oZG1pX21ldGFk YXRhX3R5cGUxLmRpc3BsYXlfcHJpbWFyaWVzLCAxMik7CgpzaXplb2YoKSBjYW4gYmUgdXNlZCBo ZXJlLgoKQ291bGQgYWxzbyBzbGFwIG9uIGEgQlVJTERfQlVHX09OKCkgdG8gbWFrZSBzdXJlIGJv dGggYXJlIHRoZSBzYW1lIHNpemUuCgo+ICsKPiArCW1lbWNweSgmZnJhbWUtPndoaXRlX3BvaW50 LAo+ICsJICAgICAgICZoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFfdHlwZTEud2hpdGVfcG9p bnQsIDQpOwoKZGl0dG8uCgo+ICsKPiArCWZyYW1lLT5tYXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVt aW5hbmNlID0KPiArCQloZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFfdHlwZTEubWF4X2Rpc3Bs YXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKPiArCWZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJpbmdf bHVtaW5hbmNlID0KPiArCQloZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFfdHlwZTEubWluX2Rp c3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKPiArCWZyYW1lLT5tYXhfZmFsbCA9IGhkcl9tZXRh ZGF0YS0+aGRtaV9tZXRhZGF0YV90eXBlMS5tYXhfZmFsbDsKPiArCWZyYW1lLT5tYXhfY2xsID0g aGRyX21ldGFkYXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLm1heF9jbGw7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1faGRtaV9pbmZvZnJhbWVfc2V0X2hkcl9tZXRh ZGF0YSk7Cj4gKwo+ICsvKioKPiAgICogZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3Bs YXlfbW9kZSgpIC0gZmlsbCBhbiBIRE1JIEFWSSBpbmZvZnJhbWUgd2l0aAo+ICAgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhIGZyb20gYSBEUk0gZGlz cGxheSBtb2RlCj4gICAqIEBmcmFtZTogSERNSSBBVkkgaW5mb2ZyYW1lCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvdmlkZW8vaGRtaS5jIGIvZHJpdmVycy92aWRlby9oZG1pLmMKPiBpbmRleCA3OTlh ZTQ5Li5jNWVjZDE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdmlkZW8vaGRtaS5jCj4gKysrIGIv ZHJpdmVycy92aWRlby9oZG1pLmMKPiBAQCAtNjUwLDYgKzY1MCwxNDcgQEAgc3NpemVfdCBoZG1p X3ZlbmRvcl9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFt ZSwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICsvKioKPiArICogaGRtaV9kcm1faW5mb2ZyYW1l X2luaXQoKSAtIGluaXRpYWxpemUgYW4gSERNSSBEeW5hbWluYyBSYW5nZSBhbmQKPiArICogbWFz dGVyaW5nIGluZm9mcmFtZQo+ICsgKiBAZnJhbWU6IEhETUkgRFJNIGluZm9mcmFtZQo+ICsgKgo+ ICsgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFp bHVyZS4KPiArICovCj4gK2ludCBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV9k cm1faW5mb2ZyYW1lICpmcmFtZSkKPiArewo+ICsJbWVtc2V0KGZyYW1lLCAwLCBzaXplb2YoKmZy YW1lKSk7Cj4gKwo+ICsJZnJhbWUtPnR5cGUgPSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTTsKPiAr CWZyYW1lLT52ZXJzaW9uID0gMTsKPiArCWZyYW1lLT5sZW5ndGggPSBIRE1JX0RSTV9JTkZPRlJB TUVfU0laRTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGhkbWlfZHJt X2luZm9mcmFtZV9pbml0KTsKPiArCj4gK3N0YXRpYyBpbnQgaGRtaV9kcm1faW5mb2ZyYW1lX2No ZWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpCj4gK3sKPiAr CWlmIChmcmFtZS0+dHlwZSAhPSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTSB8fAo+ICsJICAgIGZy YW1lLT52ZXJzaW9uICE9IDEpCgpNaXNzaW5nIHRoZSBsZW5ndGggY2hlY2suCgo+ICsJCXJldHVy biAtRUlOVkFMOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICsvKioKPiArICogaGRtaV9k cm1faW5mb2ZyYW1lX2NoZWNrKCkgLSBjaGVjayBhIEhETUkgRFJNIGluZm9mcmFtZQo+ICsgKiBA ZnJhbWU6IEhETUkgRFJNIGluZm9mcmFtZQo+ICsgKgo+ICsgKiBWYWxpZGF0ZXMgdGhhdCB0aGUg aW5mb2ZyYW1lIGlzIGNvbnNpc3RlbnQuCj4gKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiAraW50IGhkbWlfZHJtX2lu Zm9mcmFtZV9jaGVjayhzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSkKPiArewo+ICsJ cmV0dXJuIGhkbWlfZHJtX2luZm9mcmFtZV9jaGVja19vbmx5KGZyYW1lKTsKPiArfQo+ICtFWFBP UlRfU1lNQk9MKGhkbWlfZHJtX2luZm9mcmFtZV9jaGVjayk7Cj4gKwo+ICsvKioKPiArICogaGRt aV9kcm1faW5mb2ZyYW1lX3BhY2tfb25seSgpIC0gd3JpdGUgSERNSSBEUk0gaW5mb2ZyYW1lIHRv IGJpbmFyeSBidWZmZXIKPiArICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKPiArICogQGJ1 ZmZlcjogZGVzdGluYXRpb24gYnVmZmVyCj4gKyAqIEBzaXplOiBzaXplIG9mIGJ1ZmZlcgo+ICsg Kgo+ICsgKiBQYWNrcyB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBAZnJhbWUgc3Ry dWN0dXJlIGludG8gYSBiaW5hcnkKPiArICogcmVwcmVzZW50YXRpb24gdGhhdCBjYW4gYmUgd3Jp dHRlbiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2xsZXIKPiArICogcmVnaXN0ZXJzLiBB bHNvIGNvbXB1dGVzIHRoZSBjaGVja3N1bSBhcyByZXF1aXJlZCBieSBzZWN0aW9uIDUuMy41IG9m Cj4gKyAqIHRoZSBIRE1JIDEuNCBzcGVjaWZpY2F0aW9uLgo+ICsgKgo+ICsgKiBSZXR1cm5zIHRo ZSBudW1iZXIgb2YgYnl0ZXMgcGFja2VkIGludG8gdGhlIGJpbmFyeSBidWZmZXIgb3IgYSBuZWdh dGl2ZQo+ICsgKiBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICtzc2l6ZV90IGhkbWlf ZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAq ZnJhbWUsCj4gKwkJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCj4gK3sKPiArCXU4 ICpwdHIgPSBidWZmZXI7Cj4gKwlzaXplX3QgbGVuZ3RoOwo+ICsJaW50IGk7Cj4gKwo+ICsJbGVu Z3RoID0gSERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkUgKyBmcmFtZS0+bGVuZ3RoOwo+ICsKPiAr CWlmIChzaXplIDwgbGVuZ3RoKQo+ICsJCXJldHVybiAtRU5PU1BDOwo+ICsKPiArCW1lbXNldChi dWZmZXIsIDAsIHNpemUpOwo+ICsKPiArCXB0clswXSA9IGZyYW1lLT50eXBlOwo+ICsJcHRyWzFd ID0gZnJhbWUtPnZlcnNpb247Cj4gKwlwdHJbMl0gPSBmcmFtZS0+bGVuZ3RoOwo+ICsJcHRyWzNd ID0gMDsgLyogY2hlY2tzdW0gKi8KPiArCj4gKwkvKiBzdGFydCBpbmZvZnJhbWUgcGF5bG9hZCAq Lwo+ICsJcHRyICs9IEhETUlfSU5GT0ZSQU1FX0hFQURFUl9TSVpFOwo+ICsKPiArCSpwdHIrKyA9 IGZyYW1lLT5lb3RmOwo+ICsJKnB0cisrID0gZnJhbWUtPm1ldGFkYXRhX3R5cGU7Cj4gKwo+ICsJ Zm9yIChpID0gMDsgaSA8IDM7IGkrKykgewo+ICsJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3By aW1hcmllc1tpXS54Owo+ICsJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54 ID4+IDg7Cj4gKwkJKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnk7Cj4gKwkJ KnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkgPj4gODsKPiArCX0KPiArCj4g KwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueDsKPiArCSpwdHIrKyA9IGZyYW1lLT53aGl0 ZV9wb2ludC54ID4+IDg7Cj4gKwo+ICsJKnB0cisrID0gZnJhbWUtPndoaXRlX3BvaW50Lnk7Cj4g KwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueSA+PiA4Owo+ICsKPiArCSpwdHIrKyA9IGZy YW1lLT5tYXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlOwo+ICsJKnB0cisrID0gZnJhbWUt Pm1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2UgPj4gODsKPiArCj4gKwkqcHRyKysgPSBm cmFtZS0+bWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKPiArCSpwdHIrKyA9IGZyYW1l LT5taW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlID4+IDg7Cj4gKwo+ICsJKnB0cisrID0g ZnJhbWUtPm1heF9jbGw7Cj4gKwkqcHRyKysgPSBmcmFtZS0+bWF4X2NsbCA+PiA4Owo+ICsKPiAr CSpwdHIrKyA9IGZyYW1lLT5tYXhfZmFsbDsKPiArCSpwdHIrKyA9IGZyYW1lLT5tYXhfZmFsbCA+ PiA4Owo+ICsKPiArCWhkbWlfaW5mb2ZyYW1lX3NldF9jaGVja3N1bShidWZmZXIsIGxlbmd0aCk7 Cj4gKwo+ICsJcmV0dXJuIGxlbmd0aDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGhkbWlfZHJtX2lu Zm9mcmFtZV9wYWNrX29ubHkpOwo+ICsKPiArLyoqCj4gKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9w YWNrKCkgLSBjaGVjayBhIEhETUkgRFJNIGluZm9mcmFtZSwKPiArICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFuZCB3cml0ZSBpdCB0byBiaW5hcnkgYnVmZmVyCj4gKyAqIEBmcmFtZTog SERNSSBEUk0gaW5mb2ZyYW1lCj4gKyAqIEBidWZmZXI6IGRlc3RpbmF0aW9uIGJ1ZmZlcgo+ICsg KiBAc2l6ZTogc2l6ZSBvZiBidWZmZXIKPiArICoKPiArICogVmFsaWRhdGVzIHRoYXQgdGhlIGlu Zm9mcmFtZSBpcyBjb25zaXN0ZW50IGFuZCB1cGRhdGVzIGRlcml2ZWQgZmllbGRzCj4gKyAqIChl Zy4gbGVuZ3RoKSBiYXNlZCBvbiBvdGhlciBmaWVsZHMsIGFmdGVyIHdoaWNoIGl0IHBhY2tzIHRo ZSBpbmZvcm1hdGlvbgo+ICsgKiBjb250YWluZWQgaW4gdGhlIEBmcmFtZSBzdHJ1Y3R1cmUgaW50 byBhIGJpbmFyeSByZXByZXNlbnRhdGlvbiB0aGF0Cj4gKyAqIGNhbiBiZSB3cml0dGVuIGludG8g dGhlIGNvcnJlc3BvbmRpbmcgY29udHJvbGxlciByZWdpc3RlcnMuIFRoaXMgZnVuY3Rpb24KPiAr ICogYWxzbyBjb21wdXRlcyB0aGUgY2hlY2tzdW0gYXMgcmVxdWlyZWQgYnkgc2VjdGlvbiA1LjMu NSBvZiB0aGUgSERNSSAxLjQKPiArICogc3BlY2lmaWNhdGlvbi4KPiArICoKPiArICogUmV0dXJu cyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBhY2tlZCBpbnRvIHRoZSBiaW5hcnkgYnVmZmVyIG9yIGEg bmVnYXRpdmUKPiArICogZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICsgKi8KPiArc3NpemVfdCBo ZG1pX2RybV9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSwK PiArCQkJCXZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ ICsJcmV0ID0gaGRtaV9kcm1faW5mb2ZyYW1lX2NoZWNrKGZyYW1lKTsKPiArCWlmIChyZXQpCj4g KwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXR1cm4gaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2tfb25s eShmcmFtZSwgYnVmZmVyLCBzaXplKTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGhkbWlfZHJtX2lu Zm9mcmFtZV9wYWNrKTsKPiArCj4gIC8qCj4gICAqIGhkbWlfdmVuZG9yX2FueV9pbmZvZnJhbWVf Y2hlY2soKSAtIGNoZWNrIGEgdmVuZG9yIGluZm9mcmFtZQo+ICAgKi8KPiBAQCAtNzU4LDYgKzg5 OSwxMCBAQCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX3Zl bmRvcl9pbmZvZnJhbWUgKmZyYW1lLAo+ICAJCWxlbmd0aCA9IGhkbWlfYXZpX2luZm9mcmFtZV9w YWNrX29ubHkoJmZyYW1lLT5hdmksCj4gIAkJCQkJCSAgICAgIGJ1ZmZlciwgc2l6ZSk7Cj4gIAkJ YnJlYWs7Cj4gKwljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOgo+ICsJCWxlbmd0aCA9IGhk bWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoJmZyYW1lLT5kcm0sCj4gKwkJCQkJCSAgICAgIGJ1 ZmZlciwgc2l6ZSk7Cj4gKwkJYnJlYWs7Cj4gIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfU1BE Ogo+ICAJCWxlbmd0aCA9IGhkbWlfc3BkX2luZm9mcmFtZV9wYWNrX29ubHkoJmZyYW1lLT5zcGQs Cj4gIAkJCQkJCSAgICAgIGJ1ZmZlciwgc2l6ZSk7Cj4gQEAgLTgwNiw2ICs5NTEsOSBAQCBzc2l6 ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJh bWUgKmZyYW1lLAo+ICAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FWSToKPiAgCQlsZW5ndGgg PSBoZG1pX2F2aV9pbmZvZnJhbWVfcGFjaygmZnJhbWUtPmF2aSwgYnVmZmVyLCBzaXplKTsKPiAg CQlicmVhazsKPiArCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9EUk06Cj4gKwkJbGVuZ3RoID0g aGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soJmZyYW1lLT5kcm0sIGJ1ZmZlciwgc2l6ZSk7Cj4gKwkJ YnJlYWs7Cj4gIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfU1BEOgo+ICAJCWxlbmd0aCA9IGhk bWlfc3BkX2luZm9mcmFtZV9wYWNrKCZmcmFtZS0+c3BkLCBidWZmZXIsIHNpemUpOwo+ICAJCWJy ZWFrOwo+IEBAIC04MzgsNiArOTg2LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmhkbWlfaW5mb2Zy YW1lX3R5cGVfZ2V0X25hbWUoZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHR5cGUpCj4gIAkJcmV0 dXJuICJTb3VyY2UgUHJvZHVjdCBEZXNjcmlwdGlvbiAoU1BEKSI7Cj4gIAljYXNlIEhETUlfSU5G T0ZSQU1FX1RZUEVfQVVESU86Cj4gIAkJcmV0dXJuICJBdWRpbyI7Cj4gKwljYXNlIEhETUlfSU5G T0ZSQU1FX1RZUEVfRFJNOgo+ICsJCXJldHVybiAiRHluYW1pYyBSYW5nZSBhbmQgTWFzdGVyaW5n IjsKPiAgCX0KPiAgCXJldHVybiAiUmVzZXJ2ZWQiOwo+ICB9Cj4gQEAgLTEyODQsNiArMTQzNCw0 MCBAQCBzdGF0aWMgdm9pZCBoZG1pX2F1ZGlvX2luZm9mcmFtZV9sb2coY29uc3QgY2hhciAqbGV2 ZWwsCj4gIAkJCWZyYW1lLT5kb3dubWl4X2luaGliaXQgPyAiWWVzIiA6ICJObyIpOwo+ICB9Cj4g IAo+ICsvKioKPiArICogaGRtaV9kcm1faW5mb2ZyYW1lX2xvZygpIC0gbG9nIGluZm8gb2YgSERN SSBEUk0gaW5mb2ZyYW1lCj4gKyAqIEBsZXZlbDogbG9nZ2luZyBsZXZlbAo+ICsgKiBAZGV2OiBk ZXZpY2UKPiArICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKPiArICovCj4gK3N0YXRpYyB2 b2lkIGhkbWlfZHJtX2luZm9mcmFtZV9sb2coY29uc3QgY2hhciAqbGV2ZWwsCj4gKwkJCQkgICBz dHJ1Y3QgZGV2aWNlICpkZXYsCj4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgaGRtaV9kcm1faW5mb2Zy YW1lICpmcmFtZSkKPiArewo+ICsJaW50IGk7Cj4gKwo+ICsJaGRtaV9pbmZvZnJhbWVfbG9nX2hl YWRlcihsZXZlbCwgZGV2LAo+ICsJCQkJICAoc3RydWN0IGhkbWlfYW55X2luZm9mcmFtZSAqKWZy YW1lKTsKPiArCWhkbWlfbG9nKCJsZW5ndGg6ICVkXG4iLCBmcmFtZS0+bGVuZ3RoKTsKPiArCWhk bWlfbG9nKCJtZXRhZGF0YSB0eXBlOiAlZFxuIiwgZnJhbWUtPm1ldGFkYXRhX3R5cGUpOwo+ICsJ aGRtaV9sb2coImVvdGY6ICVkXG4iLCBmcmFtZS0+ZW90Zik7Cj4gKwlmb3IgKGkgPSAwOyBpIDwg MzsgaSsrKSB7Cj4gKwkJaGRtaV9sb2coInhbJWRdOiAlZFxuIiwgaSwgZnJhbWUtPmRpc3BsYXlf cHJpbWFyaWVzW2ldLngpOwo+ICsJCWhkbWlfbG9nKCJ5WyVkXTogJWRcbiIsIGksIGZyYW1lLT5k aXNwbGF5X3ByaW1hcmllc1tpXS55KTsKPiArCX0KPiArCj4gKwloZG1pX2xvZygid2hpdGUgcG9p bnQgeDogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC54KTsKPiArCWhkbWlfbG9nKCJ3aGl0ZSBw b2ludCB5OiAlZFxuIiwgZnJhbWUtPndoaXRlX3BvaW50LnkpOwo+ICsKPiArCWhkbWlfbG9nKCJt YXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlOiAlZFxuIiwKPiArCQkgZnJhbWUtPm1heF9k aXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2UpOwo+ICsJaGRtaV9sb2coIm1pbl9kaXNwbGF5X21h c3RlcmluZ19sdW1pbmFuY2U6ICVkXG4iLAo+ICsJCSBmcmFtZS0+bWluX2Rpc3BsYXlfbWFzdGVy aW5nX2x1bWluYW5jZSk7Cj4gKwo+ICsJaGRtaV9sb2coIm1heF9jbGw6ICVkXG4iLCBmcmFtZS0+ bWF4X2NsbCk7Cj4gKwloZG1pX2xvZygibWF4X2ZhbGw6ICVkXG4iLCBmcmFtZS0+bWF4X2ZhbGwp Owo+ICt9Cj4gKwo+ICBzdGF0aWMgY29uc3QgY2hhciAqCj4gIGhkbWlfM2Rfc3RydWN0dXJlX2dl dF9uYW1lKGVudW0gaGRtaV8zZF9zdHJ1Y3R1cmUgczNkX3N0cnVjdCkKPiAgewo+IEBAIC0xMzcy LDYgKzE1NTYsOSBAQCB2b2lkIGhkbWlfaW5mb2ZyYW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwK PiAgCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9WRU5ET1I6Cj4gIAkJaGRtaV92ZW5kb3JfYW55 X2luZm9mcmFtZV9sb2cobGV2ZWwsIGRldiwgJmZyYW1lLT52ZW5kb3IpOwo+ICAJCWJyZWFrOwo+ ICsJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTToKPiArCQloZG1pX2RybV9pbmZvZnJhbWVf bG9nKGxldmVsLCBkZXYsICZmcmFtZS0+ZHJtKTsKPiArCQlicmVhazsKPiAgCX0KPiAgfQo+ICBF WFBPUlRfU1lNQk9MKGhkbWlfaW5mb2ZyYW1lX2xvZyk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9lZGlkLmggYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4gaW5kZXggOWQzYjViOS4u NGJhNTZmNSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4gKysrIGIvaW5j bHVkZS9kcm0vZHJtX2VkaWQuaAo+IEBAIC0yNSw2ICsyNSw3IEBACj4gIAo+ICAjaW5jbHVkZSA8 bGludXgvdHlwZXMuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KPiArI2luY2x1ZGUgPGRy bS9kcm1fbW9kZS5oPgo+ICAKPiAgc3RydWN0IGRybV9kZXZpY2U7Cj4gIHN0cnVjdCBpMmNfYWRh cHRlcjsKPiBAQCAtMzcwLDYgKzM3MSwxMCBAQCBpbnQgZHJtX2F2X3N5bmNfZGVsYXkoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlLAo+ICAJCQkJICAgZW51bSBoZG1pX3F1YW50aXphdGlvbl9yYW5nZSBy Z2JfcXVhbnRfcmFuZ2UpOwo+ICAKPiAraW50Cj4gK2RybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRy X21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAo+ICsJCQkJICAgIGNv bnN0IHN0cnVjdCBoZHJfb3V0cHV0X21ldGFkYXRhICpoZHJfbWV0YWRhdGEpOwo+ICsKPiAgLyoq Cj4gICAqIGRybV9lbGRfbW5sIC0gR2V0IEVMRCBtb25pdG9yIG5hbWUgbGVuZ3RoIGluIGJ5dGVz Lgo+ICAgKiBAZWxkOiBwb2ludGVyIHRvIGFuIGVsZCBtZW1vcnkgc3RydWN0dXJlIHdpdGggbW5s IHNldAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgv aGRtaS5oCj4gaW5kZXggNjc4MDQ3Ni4uN2VkYWZjZiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xp bnV4L2hkbWkuaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvaGRtaS5oCj4gQEAgLTQ3LDYgKzQ3LDcg QEAgZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHsKPiAgCUhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJ ID0gMHg4MiwKPiAgCUhETUlfSU5GT0ZSQU1FX1RZUEVfU1BEID0gMHg4MywKPiAgCUhETUlfSU5G T0ZSQU1FX1RZUEVfQVVESU8gPSAweDg0LAo+ICsJSERNSV9JTkZPRlJBTUVfVFlQRV9EUk0gPSAw eDg3LAo+ICB9Owo+ICAKPiAgI2RlZmluZSBIRE1JX0lFRUVfT1VJIDB4MDAwYzAzCj4gQEAgLTE4 NSwxMiArMTg2LDM3IEBAIHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgewo+ICAJdW5zaWduZWQg c2hvcnQgcmlnaHRfYmFyOwo+ICB9Owo+ICAKPiArLyogRFJNIEluZm9mcmFtZSBhcyBwZXIgQ1RB IDg2MS5HIHNwZWMgKi8KPiArc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSB7Cj4gKwllbnVtIGhk bWlfaW5mb2ZyYW1lX3R5cGUgdHlwZTsKPiArCXVuc2lnbmVkIGNoYXIgdmVyc2lvbjsKPiArCXVu c2lnbmVkIGNoYXIgbGVuZ3RoOwo+ICsJZW51bSBoZG1pX2VvdGYgZW90ZjsKPiArCWVudW0gaGRt aV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5cGU7Cj4gKwlzdHJ1Y3Qgewo+ICsJCXUxNiB4LCB5 Owo+ICsJfSBkaXNwbGF5X3ByaW1hcmllc1szXTsKPiArCXN0cnVjdCB7Cj4gKwkJdTE2IHgsIHk7 Cj4gKwl9IHdoaXRlX3BvaW50Owo+ICsJdTE2IG1heF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFu Y2U7Cj4gKwl1MTYgbWluX2Rpc3BsYXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKPiArCXUxNiBtYXhf Y2xsOwo+ICsJdTE2IG1heF9mYWxsOwo+ICt9Owo+ICsKPiAgaW50IGhkbWlfYXZpX2luZm9mcmFt ZV9pbml0KHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lKTsKPiAgc3NpemVfdCBoZG1p X2F2aV9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSwgdm9p ZCAqYnVmZmVyLAo+ICAJCQkJc2l6ZV90IHNpemUpOwo+ICBzc2l6ZV90IGhkbWlfYXZpX2luZm9m cmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsCj4g IAkJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpOwo+ICBpbnQgaGRtaV9hdmlfaW5m b2ZyYW1lX2NoZWNrKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lKTsKPiAraW50IGhk bWlfZHJtX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKTsK PiArc3NpemVfdCBoZG1pX2RybV9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV9kcm1faW5mb2Zy YW1lICpmcmFtZSwgdm9pZCAqYnVmZmVyLAo+ICsJCQkJc2l6ZV90IHNpemUpOwo+ICtzc2l6ZV90 IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9m cmFtZSAqZnJhbWUsCj4gKwkJCQkgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUpOwo+ICtp bnQgaGRtaV9kcm1faW5mb2ZyYW1lX2NoZWNrKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZy YW1lKTsKPiAgCj4gIGVudW0gaGRtaV9zcGRfc2RpIHsKPiAgCUhETUlfU1BEX1NESV9VTktOT1dO LAo+IEBAIC0zODEsNiArNDA3LDcgQEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfcGFj a19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW0KPiAgCXN0cnVj dCBoZG1pX3NwZF9pbmZvZnJhbWUgc3BkOwo+ICAJdW5pb24gaGRtaV92ZW5kb3JfYW55X2luZm9m cmFtZSB2ZW5kb3I7Cj4gIAlzdHJ1Y3QgaGRtaV9hdWRpb19pbmZvZnJhbWUgYXVkaW87Cj4gKwlz dHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lIGRybTsKPiAgfTsKPiAgCj4gIHNzaXplX3QgaGRtaV9p bmZvZnJhbWVfcGFjayh1bmlvbiBoZG1pX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwK PiAtLSAKPiAxLjkuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=