From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [v8 03/10] drm: Enable HDR infoframe support Date: Tue, 9 Apr 2019 22:14:37 +0530 Message-ID: <1554828284-17776-4-git-send-email-uma.shankar@intel.com> References: <1554828284-17776-1-git-send-email-uma.shankar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1554828284-17776-1-git-send-email-uma.shankar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: dcastagna@chromium.org, jonas@kwiboo.se, seanpaul@chromium.org, ville.syrjala@intel.com, maarten.lankhorst@intel.com List-Id: dri-devel@lists.freedesktop.org RW5hYmxlIER5bmFtaWMgUmFuZ2UgYW5kIE1hc3RlcmluZyBJbmZvZnJhbWUgZm9yIEhEUgpjb250 ZW50LCB3aGljaCBpcyBkZWZpbmVkIGluIENFQSA4NjEuMyBzcGVjLgoKVGhlIG1ldGFkYXRhIHdp bGwgYmUgY29tcHV0ZWQgYmFzZWQgb24gYmxlbmRpbmcKcG9saWN5IGluIHVzZXJzcGFjZSBjb21w b3NpdG9ycyBhbmQgcGFzc2VkIGFzIGEgY29ubmVjdG9yCnByb3BlcnR5IGJsb2IgdG8gZHJpdmVy LiBUaGUgc2FtZSB3aWxsIGJlIHNlbnQgYXMgaW5mb2ZyYW1lCnRvIHBhbmVsIHdoaWNoIHN1cHBv cnQgSERSLgoKQWRkZWQgdGhlIGNvbnN0IHZlcnNpb24gb2YgaW5mb2ZyYW1lIGZvciBEUk0gbWV0 YWRhdGEKZm9yIEhEUi4KCnYyOiBSZWJhc2UgYW5kIGFkZGVkIFZpbGxlJ3MgUE9DIGNoYW5nZXMu Cgp2MzogTm8gQ2hhbmdlCgp2NDogQWRkcmVzc2VkIFNoYXNoYW5rJ3MgcmV2aWV3IGNvbW1lbnRz IGFuZCBtZXJnZWQgdGhlCnBhdGNoIG1ha2luZyBkcm0gaW5mb2ZyYW1lIGZ1bmN0aW9uIGFyZ3Vt ZW50cyBhcyBjb25zdGFudC4KCnY1OiBSZWJhc2UKCnY2OiBGaXhlZCBjaGVja3BhdGNoIHdhcm5p bmdzIHdpdGggLS1zdHJpY3Qgb3B0aW9uLiBBZGRyZXNzZWQKU2hhc2hhbmsncyByZXZpZXcgY29t bWVudHMgYW5kIGFkZGVkIGhpcyBSQi4KCnY3OiBBZGRyZXNzZWQgQnJpYW4gU3RhcmtleSdzIHJl dmlldyBjb21tZW50cy4gTWVyZ2VkIDIgcGF0Y2hlcwppbnRvIG9uZS4KCnY4OiBBZGRyZXNzZWQg Sm9uYXMgS2FybG1hbiByZXZpZXcgY29tbWVudHMuCgpTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmth ciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogU2hhc2hhbmsgU2hh cm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jIHwgIDQ4ICsrKysrKysrKysrKwogZHJpdmVycy92aWRlby9oZG1pLmMgICAgICAgfCAx ODYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRl L2RybS9kcm1fZWRpZC5oICAgICB8ICAgNSArKwogaW5jbHVkZS9saW51eC9oZG1pLmggICAgICAg fCAgMjcgKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9l ZGlkLmMKaW5kZXggMWZjMzcxYi4uOWI3MWE2NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKQEAgLTQ4ODQsNiAr NDg4NCw1NCBAQCBzdGF0aWMgYm9vbCBpc19oZG1pMl9zaW5rKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCiB9CiAKIC8qKgorICogZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0 YWRhdGEoKSAtIGZpbGwgYW4gSERNSSBBVkkgaW5mb2ZyYW1lIHdpdGgKKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRFIgbWV0YWRhdGEgZnJvbSB1c2Vyc3BhY2UK KyAqIEBmcmFtZTogSERNSSBBVkkgaW5mb2ZyYW1lCisgKiBAaGRyX3NvdXJjZV9tZXRhZGF0YTog aGRyX3NvdXJjZV9tZXRhZGF0YSBpbmZvIGZyb20gdXNlcnNwYWNlCisgKgorICogUmV0dXJuOiAw IG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2lu dAorZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEoc3RydWN0IGhkbWlfZHJtX2lu Zm9mcmFtZSAqZnJhbWUsCisJCQkJICAgIHN0cnVjdCBoZHJfb3V0cHV0X21ldGFkYXRhICpoZHJf bWV0YWRhdGEpCit7CisJaW50IGVycjsKKworCWlmICghZnJhbWUgfHwgIWhkcl9tZXRhZGF0YSkK KwkJcmV0dXJuIHRydWU7CisKKwllcnIgPSBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChmcmFtZSk7 CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlEUk1fREVCVUdfS01TKCJ0eXBlID0g JXhcbiIsIGZyYW1lLT50eXBlKTsKKworCWZyYW1lLT5sZW5ndGggPSBzaXplb2Yoc3RydWN0IGhk cl9tZXRhZGF0YV9pbmZvZnJhbWUpOworCisJZnJhbWUtPmVvdGYgPSBoZHJfbWV0YWRhdGEtPmhk bWlfbWV0YWRhdGFfdHlwZTEuZW90ZjsKKwlmcmFtZS0+bWV0YWRhdGFfdHlwZSA9IGhkcl9tZXRh ZGF0YS0+aGRtaV9tZXRhZGF0YV90eXBlMS5tZXRhZGF0YV90eXBlOworCisJbWVtY3B5KCZmcmFt ZS0+ZGlzcGxheV9wcmltYXJpZXMsCisJICAgICAgICZoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRh dGFfdHlwZTEuZGlzcGxheV9wcmltYXJpZXMsIDEyKTsKKworCW1lbWNweSgmZnJhbWUtPndoaXRl X3BvaW50LAorCSAgICAgICAmaGRyX21ldGFkYXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLndoaXRl X3BvaW50LCA0KTsKKworCWZyYW1lLT5tYXhfZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlID0K KwkJaGRyX21ldGFkYXRhLT5oZG1pX21ldGFkYXRhX3R5cGUxLm1heF9kaXNwbGF5X21hc3Rlcmlu Z19sdW1pbmFuY2U7CisJZnJhbWUtPm1pbl9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2UgPQor CQloZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRhdGFfdHlwZTEubWluX2Rpc3BsYXlfbWFzdGVyaW5n X2x1bWluYW5jZTsKKwlmcmFtZS0+bWF4X2ZhbGwgPSBoZHJfbWV0YWRhdGEtPmhkbWlfbWV0YWRh dGFfdHlwZTEubWF4X2ZhbGw7CisJZnJhbWUtPm1heF9jbGwgPSBoZHJfbWV0YWRhdGEtPmhkbWlf bWV0YWRhdGFfdHlwZTEubWF4X2NsbDsKKworCWhkbWlfaW5mb2ZyYW1lX2xvZyhLRVJOX0NSSVQs IE5VTEwsCisJCQkgICAodW5pb24gaGRtaV9pbmZvZnJhbWUgKilmcmFtZSk7CisKKwlyZXR1cm4g MDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEp OworCisvKioKICAqIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoKSAt IGZpbGwgYW4gSERNSSBBVkkgaW5mb2ZyYW1lIHdpdGgKICAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgZnJvbSBhIERSTSBkaXNwbGF5IG1vZGUKICAq IEBmcmFtZTogSERNSSBBVkkgaW5mb2ZyYW1lCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2hk bWkuYyBiL2RyaXZlcnMvdmlkZW8vaGRtaS5jCmluZGV4IDc5OWFlNDkuLjcxN2VkN2ZiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2hkbWkuYworKysgYi9kcml2ZXJzL3ZpZGVvL2hkbWkuYwpA QCAtNjUwLDYgKzY1MCwxNDYgQEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfcGFjayhz dHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFtZSwKIAlyZXR1cm4gMDsKIH0KIAorLyoq CisgKiBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdCgpIC0gaW5pdGlhbGl6ZSBhbiBIRE1JIER5bmFt aW5jIFJhbmdlIGFuZAorICogbWFzdGVyaW5nIGluZm9mcmFtZQorICogQGZyYW1lOiBIRE1JIERS TSBpbmZvZnJhbWUKKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVy cm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KHN0 cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKQoreworCW1lbXNldChmcmFtZSwgMCwgc2l6 ZW9mKCpmcmFtZSkpOworCisJZnJhbWUtPnR5cGUgPSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTTsK KwlmcmFtZS0+dmVyc2lvbiA9IDE7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woaGRt aV9kcm1faW5mb2ZyYW1lX2luaXQpOworCitzdGF0aWMgaW50IGhkbWlfZHJtX2luZm9mcmFtZV9j aGVja19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKQoreworCWlm IChmcmFtZS0+dHlwZSAhPSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTSB8fAorCSAgICBmcmFtZS0+ dmVyc2lvbiAhPSAxKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiAwOworfQorCisvKioK KyAqIGhkbWlfZHJtX2luZm9mcmFtZV9jaGVjaygpIC0gY2hlY2sgYSBIRE1JIERSTSBpbmZvZnJh bWUKKyAqIEBmcmFtZTogSERNSSBEUk0gaW5mb2ZyYW1lCisgKgorICogVmFsaWRhdGVzIHRoYXQg dGhlIGluZm9mcmFtZSBpcyBjb25zaXN0ZW50LgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3Mgb3Ig YSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBoZG1pX2RybV9pbmZv ZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpCit7CisJcmV0dXJu IGhkbWlfZHJtX2luZm9mcmFtZV9jaGVja19vbmx5KGZyYW1lKTsKK30KK0VYUE9SVF9TWU1CT0wo aGRtaV9kcm1faW5mb2ZyYW1lX2NoZWNrKTsKKworLyoqCisgKiBoZG1pX2RybV9pbmZvZnJhbWVf cGFjaygpIC0gd3JpdGUgSERNSSBEUk0gaW5mb2ZyYW1lIHRvIGJpbmFyeSBidWZmZXIKKyAqIEBm cmFtZTogSERNSSBEUk0gaW5mb2ZyYW1lCisgKiBAYnVmZmVyOiBkZXN0aW5hdGlvbiBidWZmZXIK KyAqIEBzaXplOiBzaXplIG9mIGJ1ZmZlcgorICoKKyAqIFBhY2tzIHRoZSBpbmZvcm1hdGlvbiBj b250YWluZWQgaW4gdGhlIEBmcmFtZSBzdHJ1Y3R1cmUgaW50byBhIGJpbmFyeQorICogcmVwcmVz ZW50YXRpb24gdGhhdCBjYW4gYmUgd3JpdHRlbiBpbnRvIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRy b2xsZXIKKyAqIHJlZ2lzdGVycy4gQWxzbyBjb21wdXRlcyB0aGUgY2hlY2tzdW0gYXMgcmVxdWly ZWQgYnkgc2VjdGlvbiA1LjMuNSBvZgorICogdGhlIEhETUkgMS40IHNwZWNpZmljYXRpb24uCisg KgorICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHBhY2tlZCBpbnRvIHRoZSBiaW5hcnkg YnVmZmVyIG9yIGEgbmVnYXRpdmUKKyAqIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworc3Np emVfdCBoZG1pX2RybV9pbmZvZnJhbWVfcGFja19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2RybV9p bmZvZnJhbWUgKmZyYW1lLAorCQkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKK3sK Kwl1OCAqcHRyID0gYnVmZmVyOworCXNpemVfdCBsZW5ndGg7CisJaW50IGk7CisKKwlsZW5ndGgg PSBIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRSArIGZyYW1lLT5sZW5ndGg7CisKKwlpZiAoc2l6 ZSA8IGxlbmd0aCkKKwkJcmV0dXJuIC1FTk9TUEM7CisKKwltZW1zZXQoYnVmZmVyLCAwLCBzaXpl KTsKKworCXB0clswXSA9IGZyYW1lLT50eXBlOworCXB0clsxXSA9IGZyYW1lLT52ZXJzaW9uOwor CXB0clsyXSA9IGZyYW1lLT5sZW5ndGg7CisJcHRyWzNdID0gMDsgLyogY2hlY2tzdW0gKi8KKwor CS8qIHN0YXJ0IGluZm9mcmFtZSBwYXlsb2FkICovCisJcHRyICs9IEhETUlfSU5GT0ZSQU1FX0hF QURFUl9TSVpFOworCisJKnB0cisrID0gZnJhbWUtPmVvdGY7CisJKnB0cisrID0gZnJhbWUtPm1l dGFkYXRhX3R5cGU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisJCSpwdHIrKyA9IGZy YW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54OworCQkqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9w cmltYXJpZXNbaV0ueCA+PiA4OworCQkqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNb aV0ueTsKKwkJKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkgPj4gODsKKwl9 CisKKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueDsKKwkqcHRyKysgPSBmcmFtZS0+d2hp dGVfcG9pbnQueCA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPndoaXRlX3BvaW50Lnk7CisJKnB0 cisrID0gZnJhbWUtPndoaXRlX3BvaW50LnkgPj4gODsKKworCSpwdHIrKyA9IGZyYW1lLT5tYXhf ZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNlOworCSpwdHIrKyA9IGZyYW1lLT5tYXhfZGlzcGxh eV9tYXN0ZXJpbmdfbHVtaW5hbmNlID4+IDg7CisKKwkqcHRyKysgPSBmcmFtZS0+bWluX2Rpc3Bs YXlfbWFzdGVyaW5nX2x1bWluYW5jZTsKKwkqcHRyKysgPSBmcmFtZS0+bWluX2Rpc3BsYXlfbWFz dGVyaW5nX2x1bWluYW5jZSA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPm1heF9jbGw7CisJKnB0 cisrID0gZnJhbWUtPm1heF9jbGwgPj4gODsKKworCSpwdHIrKyA9IGZyYW1lLT5tYXhfZmFsbDsK KwkqcHRyKysgPSBmcmFtZS0+bWF4X2ZhbGwgPj4gODsKKworCWhkbWlfaW5mb2ZyYW1lX3NldF9j aGVja3N1bShidWZmZXIsIGxlbmd0aCk7CisKKwlyZXR1cm4gbGVuZ3RoOworfQorRVhQT1JUX1NZ TUJPTChoZG1pX2RybV9pbmZvZnJhbWVfcGFja19vbmx5KTsKKworLyoqCisgKiBoZG1pX2RybV9p bmZvZnJhbWVfcGFjaygpIC0gY2hlY2sgYSBIRE1JIERSTSBpbmZvZnJhbWUsCisgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIHdyaXRlIGl0IHRvIGJpbmFyeSBidWZmZXIKKyAqIEBm cmFtZTogSERNSSBEUk0gaW5mb2ZyYW1lCisgKiBAYnVmZmVyOiBkZXN0aW5hdGlvbiBidWZmZXIK KyAqIEBzaXplOiBzaXplIG9mIGJ1ZmZlcgorICoKKyAqIFZhbGlkYXRlcyB0aGF0IHRoZSBpbmZv ZnJhbWUgaXMgY29uc2lzdGVudCBhbmQgdXBkYXRlcyBkZXJpdmVkIGZpZWxkcworICogKGVnLiBs ZW5ndGgpIGJhc2VkIG9uIG90aGVyIGZpZWxkcywgYWZ0ZXIgd2hpY2ggaXQgcGFja3MgdGhlIGlu Zm9ybWF0aW9uCisgKiBjb250YWluZWQgaW4gdGhlIEBmcmFtZSBzdHJ1Y3R1cmUgaW50byBhIGJp bmFyeSByZXByZXNlbnRhdGlvbiB0aGF0CisgKiBjYW4gYmUgd3JpdHRlbiBpbnRvIHRoZSBjb3Jy ZXNwb25kaW5nIGNvbnRyb2xsZXIgcmVnaXN0ZXJzLiBUaGlzIGZ1bmN0aW9uCisgKiBhbHNvIGNv bXB1dGVzIHRoZSBjaGVja3N1bSBhcyByZXF1aXJlZCBieSBzZWN0aW9uIDUuMy41IG9mIHRoZSBI RE1JIDEuNAorICogc3BlY2lmaWNhdGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Yg Ynl0ZXMgcGFja2VkIGludG8gdGhlIGJpbmFyeSBidWZmZXIgb3IgYSBuZWdhdGl2ZQorICogZXJy b3IgY29kZSBvbiBmYWlsdXJlLgorICovCitzc2l6ZV90IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNr KHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAorCQkJCXZvaWQgKmJ1ZmZlciwgc2l6 ZV90IHNpemUpCit7CisJaW50IHJldDsKKworCXJldCA9IGhkbWlfZHJtX2luZm9mcmFtZV9jaGVj ayhmcmFtZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBoZG1pX2RybV9p bmZvZnJhbWVfcGFja19vbmx5KGZyYW1lLCBidWZmZXIsIHNpemUpOworfQorRVhQT1JUX1NZTUJP TChoZG1pX2RybV9pbmZvZnJhbWVfcGFjayk7CisKIC8qCiAgKiBoZG1pX3ZlbmRvcl9hbnlfaW5m b2ZyYW1lX2NoZWNrKCkgLSBjaGVjayBhIHZlbmRvciBpbmZvZnJhbWUKICAqLwpAQCAtNzU4LDYg Kzg5OCwxMCBAQCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1p X3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLAogCQlsZW5ndGggPSBoZG1pX2F2aV9pbmZvZnJhbWVf cGFja19vbmx5KCZmcmFtZS0+YXZpLAogCQkJCQkJICAgICAgYnVmZmVyLCBzaXplKTsKIAkJYnJl YWs7CisJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTToKKwkJbGVuZ3RoID0gaGRtaV9kcm1f aW5mb2ZyYW1lX3BhY2tfb25seSgmZnJhbWUtPmRybSwKKwkJCQkJCSAgICAgIGJ1ZmZlciwgc2l6 ZSk7CisJCWJyZWFrOwogCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9TUEQ6CiAJCWxlbmd0aCA9 IGhkbWlfc3BkX2luZm9mcmFtZV9wYWNrX29ubHkoJmZyYW1lLT5zcGQsCiAJCQkJCQkgICAgICBi dWZmZXIsIHNpemUpOwpAQCAtODA2LDYgKzk1MCw5IEBAIHNzaXplX3QgaGRtaV92ZW5kb3JfaW5m b2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfdmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsCiAJY2FzZSBI RE1JX0lORk9GUkFNRV9UWVBFX0FWSToKIAkJbGVuZ3RoID0gaGRtaV9hdmlfaW5mb2ZyYW1lX3Bh Y2soJmZyYW1lLT5hdmksIGJ1ZmZlciwgc2l6ZSk7CiAJCWJyZWFrOworCWNhc2UgSERNSV9JTkZP RlJBTUVfVFlQRV9EUk06CisJCWxlbmd0aCA9IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKCZmcmFt ZS0+ZHJtLCBidWZmZXIsIHNpemUpOworCQlicmVhazsKIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZ UEVfU1BEOgogCQlsZW5ndGggPSBoZG1pX3NwZF9pbmZvZnJhbWVfcGFjaygmZnJhbWUtPnNwZCwg YnVmZmVyLCBzaXplKTsKIAkJYnJlYWs7CkBAIC04MzgsNiArOTg1LDggQEAgc3RhdGljIGNvbnN0 IGNoYXIgKmhkbWlfaW5mb2ZyYW1lX3R5cGVfZ2V0X25hbWUoZW51bSBoZG1pX2luZm9mcmFtZV90 eXBlIHR5cGUpCiAJCXJldHVybiAiU291cmNlIFByb2R1Y3QgRGVzY3JpcHRpb24gKFNQRCkiOwog CWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9BVURJTzoKIAkJcmV0dXJuICJBdWRpbyI7CisJY2Fz ZSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTToKKwkJcmV0dXJuICJEeW5hbWljIFJhbmdlIGFuZCBN YXN0ZXJpbmciOwogCX0KIAlyZXR1cm4gIlJlc2VydmVkIjsKIH0KQEAgLTEyODQsNiArMTQzMyw0 MCBAQCBzdGF0aWMgdm9pZCBoZG1pX2F1ZGlvX2luZm9mcmFtZV9sb2coY29uc3QgY2hhciAqbGV2 ZWwsCiAJCQlmcmFtZS0+ZG93bm1peF9pbmhpYml0ID8gIlllcyIgOiAiTm8iKTsKIH0KIAorLyoq CisgKiBoZG1pX2RybV9pbmZvZnJhbWVfbG9nKCkgLSBsb2cgaW5mbyBvZiBIRE1JIERSTSBpbmZv ZnJhbWUKKyAqIEBsZXZlbDogbG9nZ2luZyBsZXZlbAorICogQGRldjogZGV2aWNlCisgKiBAZnJh bWU6IEhETUkgRFJNIGluZm9mcmFtZQorICovCitzdGF0aWMgdm9pZCBoZG1pX2RybV9pbmZvZnJh bWVfbG9nKGNvbnN0IGNoYXIgKmxldmVsLAorCQkJCSAgIHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJ CQkgICBjb25zdCBzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSkKK3sKKwlpbnQgaTsK KworCWhkbWlfaW5mb2ZyYW1lX2xvZ19oZWFkZXIobGV2ZWwsIGRldiwKKwkJCQkgIChzdHJ1Y3Qg aGRtaV9hbnlfaW5mb2ZyYW1lICopZnJhbWUpOworCWhkbWlfbG9nKCJsZW5ndGg6ICVkXG4iLCBm cmFtZS0+bGVuZ3RoKTsKKwloZG1pX2xvZygibWV0YWRhdGEgdHlwZTogJWRcbiIsIGZyYW1lLT5t ZXRhZGF0YV90eXBlKTsKKwloZG1pX2xvZygiZW90ZjogJWRcbiIsIGZyYW1lLT5lb3RmKTsKKwlm b3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisJCWhkbWlfbG9nKCJ4WyVkXTogJWRcbiIsIGksIGZy YW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54KTsKKwkJaGRtaV9sb2coInlbJWRdOiAlZFxuIiwg aSwgZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkpOworCX0KKworCWhkbWlfbG9nKCJ3aGl0 ZSBwb2ludCB4OiAlZFxuIiwgZnJhbWUtPndoaXRlX3BvaW50LngpOworCWhkbWlfbG9nKCJ3aGl0 ZSBwb2ludCB5OiAlZFxuIiwgZnJhbWUtPndoaXRlX3BvaW50LnkpOworCisJaGRtaV9sb2coIm1h eF9kaXNwbGF5X21hc3RlcmluZ19sdW1pbmFuY2U6ICVkXG4iLAorCQkgZnJhbWUtPm1heF9kaXNw bGF5X21hc3RlcmluZ19sdW1pbmFuY2UpOworCWhkbWlfbG9nKCJtaW5fZGlzcGxheV9tYXN0ZXJp bmdfbHVtaW5hbmNlOiAlZFxuIiwKKwkJIGZyYW1lLT5taW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVt aW5hbmNlKTsKKworCWhkbWlfbG9nKCJtYXhfY2xsOiAlZFxuIiwgZnJhbWUtPm1heF9jbGwpOwor CWhkbWlfbG9nKCJtYXhfZmFsbDogJWRcbiIsIGZyYW1lLT5tYXhfZmFsbCk7Cit9CisKIHN0YXRp YyBjb25zdCBjaGFyICoKIGhkbWlfM2Rfc3RydWN0dXJlX2dldF9uYW1lKGVudW0gaGRtaV8zZF9z dHJ1Y3R1cmUgczNkX3N0cnVjdCkKIHsKQEAgLTEzNzIsNiArMTU1NSw5IEBAIHZvaWQgaGRtaV9p bmZvZnJhbWVfbG9nKGNvbnN0IGNoYXIgKmxldmVsLAogCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQ RV9WRU5ET1I6CiAJCWhkbWlfdmVuZG9yX2FueV9pbmZvZnJhbWVfbG9nKGxldmVsLCBkZXYsICZm cmFtZS0+dmVuZG9yKTsKIAkJYnJlYWs7CisJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTToK KwkJaGRtaV9kcm1faW5mb2ZyYW1lX2xvZyhsZXZlbCwgZGV2LCAmZnJhbWUtPmRybSk7CisJCWJy ZWFrOwogCX0KIH0KIEVYUE9SVF9TWU1CT0woaGRtaV9pbmZvZnJhbWVfbG9nKTsKZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9lZGlkLmggYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCmluZGV4 IDlkM2I1YjkuLmQ4MWM1YzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKKysr IGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSA8 bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9oZG1pLmg+CisjaW5jbHVkZSA8ZHJtL2Ry bV9tb2RlLmg+CiAKIHN0cnVjdCBkcm1fZGV2aWNlOwogc3RydWN0IGkyY19hZGFwdGVyOwpAQCAt MzcwLDYgKzM3MSwxMCBAQCBpbnQgZHJtX2F2X3N5bmNfZGVsYXkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSwKIAkJCQkgICBlbnVtIGhkbWlfcXVhbnRpemF0aW9uX3JhbmdlIHJnYl9xdWFudF9yYW5nZSk7 CiAKK2ludAorZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEoc3RydWN0IGhkbWlf ZHJtX2luZm9mcmFtZSAqZnJhbWUsCisJCQkJICAgIHN0cnVjdCBoZHJfb3V0cHV0X21ldGFkYXRh ICpoZHJfbWV0YWRhdGEpOworCiAvKioKICAqIGRybV9lbGRfbW5sIC0gR2V0IEVMRCBtb25pdG9y IG5hbWUgbGVuZ3RoIGluIGJ5dGVzLgogICogQGVsZDogcG9pbnRlciB0byBhbiBlbGQgbWVtb3J5 IHN0cnVjdHVyZSB3aXRoIG1ubCBzZXQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaGRtaS5o IGIvaW5jbHVkZS9saW51eC9oZG1pLmgKaW5kZXggYTA2NTE5NC4uMzkyN2Q4OCAxMDA2NDQKLS0t IGEvaW5jbHVkZS9saW51eC9oZG1pLmgKKysrIGIvaW5jbHVkZS9saW51eC9oZG1pLmgKQEAgLTQ3 LDYgKzQ3LDcgQEAgZW51bSBoZG1pX2luZm9mcmFtZV90eXBlIHsKIAlIRE1JX0lORk9GUkFNRV9U WVBFX0FWSSA9IDB4ODIsCiAJSERNSV9JTkZPRlJBTUVfVFlQRV9TUEQgPSAweDgzLAogCUhETUlf SU5GT0ZSQU1FX1RZUEVfQVVESU8gPSAweDg0LAorCUhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNID0g MHg4NywKIH07CiAKICNkZWZpbmUgSERNSV9JRUVFX09VSSAweDAwMGMwMwpAQCAtMTg1LDEyICsx ODYsMzcgQEAgc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSB7CiAJdW5zaWduZWQgc2hvcnQgcmln aHRfYmFyOwogfTsKIAorLyogRFJNIEluZm9mcmFtZSBhcyBwZXIgQ1RBIDg2MS5HIHNwZWMgKi8K K3N0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgeworCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0 eXBlOworCXVuc2lnbmVkIGNoYXIgdmVyc2lvbjsKKwl1bnNpZ25lZCBjaGFyIGxlbmd0aDsKKwll bnVtIGhkbWlfZW90ZiBlb3RmOworCWVudW0gaGRtaV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5 cGU7CisJc3RydWN0IHsKKwkJdTE2IHgsIHk7CisJfSBkaXNwbGF5X3ByaW1hcmllc1szXTsKKwlz dHJ1Y3QgeworCQl1MTYgeCwgeTsKKwl9IHdoaXRlX3BvaW50OworCXUxNiBtYXhfZGlzcGxheV9t YXN0ZXJpbmdfbHVtaW5hbmNlOworCXUxNiBtaW5fZGlzcGxheV9tYXN0ZXJpbmdfbHVtaW5hbmNl OworCXUxNiBtYXhfY2xsOworCXUxNiBtYXhfZmFsbDsKK307CisKIGludCBoZG1pX2F2aV9pbmZv ZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSk7CiBzc2l6ZV90IGhk bWlfYXZpX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lLCB2 b2lkICpidWZmZXIsCiAJCQkJc2l6ZV90IHNpemUpOwogc3NpemVfdCBoZG1pX2F2aV9pbmZvZnJh bWVfcGFja19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lLAogCQkJ CSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7CiBpbnQgaGRtaV9hdmlfaW5mb2ZyYW1l X2NoZWNrKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lKTsKK2ludCBoZG1pX2RybV9p bmZvZnJhbWVfaW5pdChzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSk7Citzc2l6ZV90 IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1l LCB2b2lkICpidWZmZXIsCisJCQkJc2l6ZV90IHNpemUpOworc3NpemVfdCBoZG1pX2RybV9pbmZv ZnJhbWVfcGFja19vbmx5KGNvbnN0IHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAor CQkJCSAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7CitpbnQgaGRtaV9kcm1faW5mb2Zy YW1lX2NoZWNrKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKTsKIAogZW51bSBoZG1p X3NwZF9zZGkgewogCUhETUlfU1BEX1NESV9VTktOT1dOLApAQCAtMzY1LDYgKzM5MSw3IEBAIHNz aXplX3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lX3BhY2tfb25seShjb25zdCBzdHJ1Y3QgaGRtaV92 ZW5kb3JfaW5mb2ZyYW1lICpmcmFtCiAJc3RydWN0IGhkbWlfc3BkX2luZm9mcmFtZSBzcGQ7CiAJ dW5pb24gaGRtaV92ZW5kb3JfYW55X2luZm9mcmFtZSB2ZW5kb3I7CiAJc3RydWN0IGhkbWlfYXVk aW9faW5mb2ZyYW1lIGF1ZGlvOworCXN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgZHJtOwogfTsK IAogc3NpemVfdCBoZG1pX2luZm9mcmFtZV9wYWNrKHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFt ZSwgdm9pZCAqYnVmZmVyLAotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==