From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [v6 06/13] drm: Enable HDR infoframe support Date: Wed, 20 Mar 2019 16:18:19 +0530 Message-ID: <1553078906-5991-7-git-send-email-uma.shankar@intel.com> References: <1553078906-5991-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: <1553078906-5991-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: ville.syrjala@intel.com, maarten.lankhorst@intel.com List-Id: dri-devel@lists.freedesktop.org RW5hYmxlIER5bmFtaWMgUmFuZ2UgYW5kIE1hc3RlcmluZyBJbmZvZnJhbWUgZm9yIEhEUgpjb250 ZW50LCB3aGljaCBpcyBkZWZpbmVkIGluIENFQSA4NjEuMyBzcGVjLgoKVGhlIG1ldGFkYXRhIHdp bGwgYmUgY29tcHV0ZWQgYmFzZWQgb24gYmxlbmRpbmcKcG9saWN5IGluIHVzZXJzcGFjZSBjb21w b3NpdG9ycyBhbmQgcGFzc2VkIGFzIGEgY29ubmVjdG9yCnByb3BlcnR5IGJsb2IgdG8gZHJpdmVy LiBUaGUgc2FtZSB3aWxsIGJlIHNlbnQgYXMgaW5mb2ZyYW1lCnRvIHBhbmVsIHdoaWNoIHN1cHBv cnQgSERSLgoKdjI6IFJlYmFzZSBhbmQgYWRkZWQgVmlsbGUncyBQT0MgY2hhbmdlcy4KCnYzOiBO byBDaGFuZ2UKCnY0OiBBZGRyZXNzZWQgU2hhc2hhbmsncyByZXZpZXcgY29tbWVudHMgYW5kIG1l cmdlZCB0aGUKcGF0Y2ggbWFraW5nIGRybSBpbmZvZnJhbWUgZnVuY3Rpb24gYXJndW1lbnRzIGFz IGNvbnN0YW50LgoKdjU6IFJlYmFzZQoKdjY6IEZpeGVkIGNoZWNrcGF0Y2ggd2FybmluZ3Mgd2l0 aCAtLXN0cmljdCBvcHRpb24uIEFkZHJlc3NlZApTaGFzaGFuaydzIHJldmlldyBjb21tZW50cyBh bmQgYWRkZWQgaGlzIFJCLgoKU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2Fy QGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsu c2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyB8ICA1NiAr KysrKysrKysrKysrKysrKysrKwogZHJpdmVycy92aWRlby9oZG1pLmMgICAgICAgfCAxMjkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9k cm1fZWRpZC5oICAgICB8ICAgNCArKwogaW5jbHVkZS9saW51eC9oZG1pLmggICAgICAgfCAgMjIg KysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5j CmluZGV4IDY3NjU2OWIuLjc4YzBiOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCkBAIC00OTE2LDYgKzQ5MTYs NjIgQEAgc3RhdGljIGJvb2wgaXNfaGRtaTJfc2luayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogfQogCiAvKioKKyAqIGRybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRh KCkgLSBmaWxsIGFuIEhETUkgQVZJIGluZm9mcmFtZSB3aXRoCisgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSERSIG1ldGFkYXRhIGZyb20gdXNlcnNwYWNlCisgKiBA ZnJhbWU6IEhETUkgQVZJIGluZm9mcmFtZQorICogQGhkcl9zb3VyY2VfbWV0YWRhdGE6IGhkcl9z b3VyY2VfbWV0YWRhdGEgaW5mbyBmcm9tIHVzZXJzcGFjZQorICoKKyAqIFJldHVybjogMCBvbiBz dWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQKK2Ry bV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJh bWUgKmZyYW1lLAorCQkJCSAgICB2b2lkICpoZHJfbWV0YWRhdGEpCit7CisJc3RydWN0IGhkcl9z dGF0aWNfbWV0YWRhdGEgKmhkcl9zb3VyY2VfbWV0YWRhdGE7CisJaW50IGVyciwgaTsKKworCWlm ICghZnJhbWUgfHwgIWhkcl9tZXRhZGF0YSkKKwkJcmV0dXJuIHRydWU7CisKKwllcnIgPSBoZG1p X2RybV9pbmZvZnJhbWVfaW5pdChmcmFtZSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7 CisKKwlEUk1fREVCVUdfS01TKCJ0eXBlID0gJXhcbiIsIGZyYW1lLT50eXBlKTsKKworCWhkcl9z b3VyY2VfbWV0YWRhdGEgPSAoc3RydWN0IGhkcl9zdGF0aWNfbWV0YWRhdGEgKiloZHJfbWV0YWRh dGE7CisKKwlmcmFtZS0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBoZHJfc3RhdGljX21ldGFkYXRh KTsKKworCWZyYW1lLT5lb3RmID0gaGRyX3NvdXJjZV9tZXRhZGF0YS0+ZW90ZjsKKwlmcmFtZS0+ bWV0YWRhdGFfdHlwZSA9IGhkcl9zb3VyY2VfbWV0YWRhdGEtPm1ldGFkYXRhX3R5cGU7CisKKwlm b3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisJCWZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54 ID0KKwkJCWhkcl9zb3VyY2VfbWV0YWRhdGEtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLng7CisJCWZy YW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS55ID0KKwkJCWhkcl9zb3VyY2VfbWV0YWRhdGEtPmRp c3BsYXlfcHJpbWFyaWVzW2ldLnk7CisJfQorCisJZnJhbWUtPndoaXRlX3BvaW50LnggPSBoZHJf c291cmNlX21ldGFkYXRhLT53aGl0ZV9wb2ludC54OworCWZyYW1lLT53aGl0ZV9wb2ludC55ID0g aGRyX3NvdXJjZV9tZXRhZGF0YS0+d2hpdGVfcG9pbnQueTsKKworCWZyYW1lLT5tYXhfbWFzdGVy aW5nX2Rpc3BsYXlfbHVtaW5hbmNlID0KKwkJaGRyX3NvdXJjZV9tZXRhZGF0YS0+bWF4X21hc3Rl cmluZ19kaXNwbGF5X2x1bWluYW5jZTsKKwlmcmFtZS0+bWluX21hc3RlcmluZ19kaXNwbGF5X2x1 bWluYW5jZSA9CisJCWhkcl9zb3VyY2VfbWV0YWRhdGEtPm1pbl9tYXN0ZXJpbmdfZGlzcGxheV9s dW1pbmFuY2U7CisKKwlmcmFtZS0+bWF4X2NsbCA9IGhkcl9zb3VyY2VfbWV0YWRhdGEtPm1heF9j bGw7CisJZnJhbWUtPm1heF9mYWxsID0gaGRyX3NvdXJjZV9tZXRhZGF0YS0+bWF4X2ZhbGw7CisK KwloZG1pX2luZm9mcmFtZV9sb2coS0VSTl9DUklULCBOVUxMLAorCQkJICAgKHVuaW9uIGhkbWlf aW5mb2ZyYW1lICopZnJhbWUpOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9o ZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKTsKKworLyoqCiAgKiBkcm1faGRtaV9hdmlf aW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCkgLSBmaWxsIGFuIEhETUkgQVZJIGluZm9mcmFt ZSB3aXRoCiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhIGZyb20gYSBEUk0gZGlzcGxheSBtb2RlCiAgKiBAZnJhbWU6IEhETUkgQVZJIGluZm9mcmFt ZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9oZG1pLmMgYi9kcml2ZXJzL3ZpZGVvL2hkbWku YwppbmRleCA3OTlhZTQ5Li44MGJiMGVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2hkbWku YworKysgYi9kcml2ZXJzL3ZpZGVvL2hkbWkuYwpAQCAtNjUwLDYgKzY1MCw5MyBAQCBzc2l6ZV90 IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUg KmZyYW1lLAogCXJldHVybiAwOwogfQogCisvKioKKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9pbml0 KCkgLSBpbml0aWFsaXplIGFuIEhETUkgRHluYW1pbmMgUmFuZ2UgYW5kCisgKiBtYXN0ZXJpbmcg aW5mb2ZyYW1lCisgKiBAZnJhbWU6IEhETUkgRFJNIGluZm9mcmFtZQorICoKKyAqIFJldHVybnMg MCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitp bnQgaGRtaV9kcm1faW5mb2ZyYW1lX2luaXQoc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJh bWUpCit7CisJbWVtc2V0KGZyYW1lLCAwLCBzaXplb2YoKmZyYW1lKSk7CisKKwlmcmFtZS0+dHlw ZSA9IEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOworCWZyYW1lLT52ZXJzaW9uID0gMTsKKworCXJl dHVybiAwOworfQorRVhQT1JUX1NZTUJPTChoZG1pX2RybV9pbmZvZnJhbWVfaW5pdCk7CisKKy8q KgorICogaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soKSAtIHdyaXRlIEhETUkgRFJNIGluZm9mcmFt ZSB0byBiaW5hcnkgYnVmZmVyCisgKiBAZnJhbWU6IEhETUkgRFJNIGluZm9mcmFtZQorICogQGJ1 ZmZlcjogZGVzdGluYXRpb24gYnVmZmVyCisgKiBAc2l6ZTogc2l6ZSBvZiBidWZmZXIKKyAqCisg KiBQYWNrcyB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBAZnJhbWUgc3RydWN0dXJl IGludG8gYSBiaW5hcnkKKyAqIHJlcHJlc2VudGF0aW9uIHRoYXQgY2FuIGJlIHdyaXR0ZW4gaW50 byB0aGUgY29ycmVzcG9uZGluZyBjb250cm9sbGVyCisgKiByZWdpc3RlcnMuIEFsc28gY29tcHV0 ZXMgdGhlIGNoZWNrc3VtIGFzIHJlcXVpcmVkIGJ5IHNlY3Rpb24gNS4zLjUgb2YKKyAqIHRoZSBI RE1JIDEuNCBzcGVjaWZpY2F0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBieXRl cyBwYWNrZWQgaW50byB0aGUgYmluYXJ5IGJ1ZmZlciBvciBhIG5lZ2F0aXZlCisgKiBlcnJvciBj b2RlIG9uIGZhaWx1cmUuCisgKi8KK3NzaXplX3QgaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soc3Ry dWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwKKwkJCQlzaXplX3Qg c2l6ZSkKK3sKKwl1OCAqcHRyID0gYnVmZmVyOworCXNpemVfdCBsZW5ndGg7CisJaW50IGk7CisK KwlsZW5ndGggPSBIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRSArIGZyYW1lLT5sZW5ndGg7CisK KwlpZiAoc2l6ZSA8IGxlbmd0aCkKKwkJcmV0dXJuIC1FTk9TUEM7CisKKwltZW1zZXQoYnVmZmVy LCAwLCBzaXplKTsKKworCXB0clswXSA9IGZyYW1lLT50eXBlOworCXB0clsxXSA9IGZyYW1lLT52 ZXJzaW9uOworCXB0clsyXSA9IGZyYW1lLT5sZW5ndGg7CisJcHRyWzNdID0gMDsgLyogY2hlY2tz dW0gKi8KKworCS8qIHN0YXJ0IGluZm9mcmFtZSBwYXlsb2FkICovCisJcHRyICs9IEhETUlfSU5G T0ZSQU1FX0hFQURFUl9TSVpFOworCisJKnB0cisrID0gZnJhbWUtPmVvdGY7CisJKnB0cisrID0g ZnJhbWUtPm1ldGFkYXRhX3R5cGU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CisJCSpw dHIrKyA9IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54OworCQkqcHRyKysgPSBmcmFtZS0+ ZGlzcGxheV9wcmltYXJpZXNbaV0ueCA+PiA4OworCQkqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9w cmltYXJpZXNbaV0ueTsKKwkJKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkg Pj4gODsKKwl9CisKKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueDsKKwkqcHRyKysgPSBm cmFtZS0+d2hpdGVfcG9pbnQueCA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPndoaXRlX3BvaW50 Lnk7CisJKnB0cisrID0gZnJhbWUtPndoaXRlX3BvaW50LnkgPj4gODsKKworCSpwdHIrKyA9IGZy YW1lLT5tYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOworCSpwdHIrKyA9IGZyYW1lLT5t YXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlID4+IDg7CisKKwkqcHRyKysgPSBmcmFtZS0+ bWluX21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZTsKKwkqcHRyKysgPSBmcmFtZS0+bWluX21h c3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZSA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPm1heF9j bGw7CisJKnB0cisrID0gZnJhbWUtPm1heF9jbGwgPj4gODsKKworCSpwdHIrKyA9IGZyYW1lLT5t YXhfZmFsbDsKKwkqcHRyKysgPSBmcmFtZS0+bWF4X2ZhbGwgPj4gODsKKworCWhkbWlfaW5mb2Zy YW1lX3NldF9jaGVja3N1bShidWZmZXIsIGxlbmd0aCk7CisKKwlyZXR1cm4gbGVuZ3RoOworfQor CiAvKgogICogaGRtaV92ZW5kb3JfYW55X2luZm9mcmFtZV9jaGVjaygpIC0gY2hlY2sgYSB2ZW5k b3IgaW5mb2ZyYW1lCiAgKi8KQEAgLTgwNiw2ICs4OTMsOSBAQCBzc2l6ZV90IGhkbWlfdmVuZG9y X2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLAogCWNh c2UgSERNSV9JTkZPRlJBTUVfVFlQRV9BVkk6CiAJCWxlbmd0aCA9IGhkbWlfYXZpX2luZm9mcmFt ZV9wYWNrKCZmcmFtZS0+YXZpLCBidWZmZXIsIHNpemUpOwogCQlicmVhazsKKwljYXNlIEhETUlf SU5GT0ZSQU1FX1RZUEVfRFJNOgorCQlsZW5ndGggPSBoZG1pX2RybV9pbmZvZnJhbWVfcGFjaygm ZnJhbWUtPmRybSwgYnVmZmVyLCBzaXplKTsKKwkJYnJlYWs7CiAJY2FzZSBIRE1JX0lORk9GUkFN RV9UWVBFX1NQRDoKIAkJbGVuZ3RoID0gaGRtaV9zcGRfaW5mb2ZyYW1lX3BhY2soJmZyYW1lLT5z cGQsIGJ1ZmZlciwgc2l6ZSk7CiAJCWJyZWFrOwpAQCAtODM4LDYgKzkyOCw4IEBAIHN0YXRpYyBj b25zdCBjaGFyICpoZG1pX2luZm9mcmFtZV90eXBlX2dldF9uYW1lKGVudW0gaGRtaV9pbmZvZnJh bWVfdHlwZSB0eXBlKQogCQlyZXR1cm4gIlNvdXJjZSBQcm9kdWN0IERlc2NyaXB0aW9uIChTUEQp IjsKIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVVESU86CiAJCXJldHVybiAiQXVkaW8iOwor CWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9EUk06CisJCXJldHVybiAiRHluYW1pYyBSYW5nZSBh bmQgTWFzdGVyaW5nIjsKIAl9CiAJcmV0dXJuICJSZXNlcnZlZCI7CiB9CkBAIC0xMjg0LDYgKzEz NzYsNDAgQEAgc3RhdGljIHZvaWQgaGRtaV9hdWRpb19pbmZvZnJhbWVfbG9nKGNvbnN0IGNoYXIg KmxldmVsLAogCQkJZnJhbWUtPmRvd25taXhfaW5oaWJpdCA/ICJZZXMiIDogIk5vIik7CiB9CiAK Ky8qKgorICogaGRtaV9kcm1faW5mb2ZyYW1lX2xvZygpIC0gbG9nIGluZm8gb2YgSERNSSBEUk0g aW5mb2ZyYW1lCisgKiBAbGV2ZWw6IGxvZ2dpbmcgbGV2ZWwKKyAqIEBkZXY6IGRldmljZQorICog QGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqLworc3RhdGljIHZvaWQgaGRtaV9kcm1faW5m b2ZyYW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYs CisJCQkJICAgY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpCit7CisJaW50 IGk7CisKKwloZG1pX2luZm9mcmFtZV9sb2dfaGVhZGVyKGxldmVsLCBkZXYsCisJCQkJICAoc3Ry dWN0IGhkbWlfYW55X2luZm9mcmFtZSAqKWZyYW1lKTsKKwloZG1pX2xvZygibGVuZ3RoOiAlZFxu IiwgZnJhbWUtPmxlbmd0aCk7CisJaGRtaV9sb2coIm1ldGFkYXRhIHR5cGU6ICVkXG4iLCBmcmFt ZS0+bWV0YWRhdGFfdHlwZSk7CisJaGRtaV9sb2coImVvdGY6ICVkXG4iLCBmcmFtZS0+ZW90Zik7 CisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQloZG1pX2xvZygieFslZF06ICVkXG4iLCBp LCBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueCk7CisJCWhkbWlfbG9nKCJ5WyVkXTogJWRc biIsIGksIGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS55KTsKKwl9CisKKwloZG1pX2xvZygi d2hpdGUgcG9pbnQgeDogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC54KTsKKwloZG1pX2xvZygi d2hpdGUgcG9pbnQgeTogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC55KTsKKworCWhkbWlfbG9n KCJtYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOiAlZFxuIiwKKwkJIGZyYW1lLT5tYXhf bWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlKTsKKwloZG1pX2xvZygibWluX21hc3RlcmluZ19k aXNwbGF5X2x1bWluYW5jZTogJWRcbiIsCisJCSBmcmFtZS0+bWluX21hc3RlcmluZ19kaXNwbGF5 X2x1bWluYW5jZSk7CisKKwloZG1pX2xvZygibWF4X2NsbDogJWRcbiIsIGZyYW1lLT5tYXhfY2xs KTsKKwloZG1pX2xvZygibWF4X2ZhbGw6ICVkXG4iLCBmcmFtZS0+bWF4X2ZhbGwpOworfQorCiBz dGF0aWMgY29uc3QgY2hhciAqCiBoZG1pXzNkX3N0cnVjdHVyZV9nZXRfbmFtZShlbnVtIGhkbWlf M2Rfc3RydWN0dXJlIHMzZF9zdHJ1Y3QpCiB7CkBAIC0xMzcyLDYgKzE0OTgsOSBAQCB2b2lkIGhk bWlfaW5mb2ZyYW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwKIAljYXNlIEhETUlfSU5GT0ZSQU1F X1RZUEVfVkVORE9SOgogCQloZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lX2xvZyhsZXZlbCwgZGV2 LCAmZnJhbWUtPnZlbmRvcik7CiAJCWJyZWFrOworCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9E Uk06CisJCWhkbWlfZHJtX2luZm9mcmFtZV9sb2cobGV2ZWwsIGRldiwgJmZyYW1lLT5kcm0pOwor CQlicmVhazsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGhkbWlfaW5mb2ZyYW1lX2xvZyk7CmRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaApp bmRleCA5ZDNiNWI5Li45NzNlNDNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5o CisrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKQEAgLTM3MCw2ICszNzAsMTAgQEAgaW50IGRy bV9hdl9zeW5jX2RlbGF5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJICAg Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAJCQkJICAgZW51bSBoZG1pX3F1 YW50aXphdGlvbl9yYW5nZSByZ2JfcXVhbnRfcmFuZ2UpOwogCitpbnQKK2RybV9oZG1pX2luZm9m cmFtZV9zZXRfaGRyX21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAor CQkJCSAgICB2b2lkICpoZHJfc291cmNlX21ldGFkYXRhKTsKKwogLyoqCiAgKiBkcm1fZWxkX21u bCAtIEdldCBFTEQgbW9uaXRvciBuYW1lIGxlbmd0aCBpbiBieXRlcy4KICAqIEBlbGQ6IHBvaW50 ZXIgdG8gYW4gZWxkIG1lbW9yeSBzdHJ1Y3R1cmUgd2l0aCBtbmwgc2V0CmRpZmYgLS1naXQgYS9p bmNsdWRlL2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgvaGRtaS5oCmluZGV4IGEwNjUxOTQu LmI5MjViMjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaGRtaS5oCisrKyBiL2luY2x1ZGUv bGludXgvaGRtaS5oCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB7 CiAJSERNSV9JTkZPRlJBTUVfVFlQRV9BVkkgPSAweDgyLAogCUhETUlfSU5GT0ZSQU1FX1RZUEVf U1BEID0gMHg4MywKIAlIRE1JX0lORk9GUkFNRV9UWVBFX0FVRElPID0gMHg4NCwKKwlIRE1JX0lO Rk9GUkFNRV9UWVBFX0RSTSA9IDB4ODcsCiB9OwogCiAjZGVmaW5lIEhETUlfSUVFRV9PVUkgMHgw MDBjMDMKQEAgLTE4NSwxMiArMTg2LDMyIEBAIHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgewog CXVuc2lnbmVkIHNob3J0IHJpZ2h0X2JhcjsKIH07CiAKK3N0cnVjdCBoZG1pX2RybV9pbmZvZnJh bWUgeworCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlOworCXVuc2lnbmVkIGNoYXIgdmVy c2lvbjsKKwl1bnNpZ25lZCBjaGFyIGxlbmd0aDsKKwllbnVtIGhkbWlfZW90ZiBlb3RmOworCWVu dW0gaGRtaV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5cGU7CisJc3RydWN0IHsKKwkJdTE2IHgs IHk7CisJfSBkaXNwbGF5X3ByaW1hcmllc1szXTsKKwlzdHJ1Y3QgeworCQl1MTYgeCwgeTsKKwl9 IHdoaXRlX3BvaW50OworCXUxNiBtYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOworCXUx NiBtaW5fbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOworCXUxNiBtYXhfZmFsbDsKKwl1MTYg bWF4X2NsbDsKKwl1MTYgbWluX2NsbDsKK307CisKIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfaW5p dChzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSk7CiBzc2l6ZV90IGhkbWlfYXZpX2lu Zm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lLCB2b2lkICpidWZm ZXIsCiAJCQkJc2l6ZV90IHNpemUpOwogc3NpemVfdCBoZG1pX2F2aV9pbmZvZnJhbWVfcGFja19v bmx5KGNvbnN0IHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lLAogCQkJCSAgICAgdm9p ZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSk7CiBpbnQgaGRtaV9hdmlfaW5mb2ZyYW1lX2NoZWNrKHN0 cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lKTsKK2ludCBoZG1pX2RybV9pbmZvZnJhbWVf aW5pdChzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSk7CiAKIGVudW0gaGRtaV9zcGRf c2RpIHsKIAlIRE1JX1NQRF9TRElfVU5LTk9XTiwKQEAgLTM2NSw2ICszODYsNyBAQCBzc2l6ZV90 IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfdmVuZG9y X2luZm9mcmFtZSAqZnJhbQogCXN0cnVjdCBoZG1pX3NwZF9pbmZvZnJhbWUgc3BkOwogCXVuaW9u IGhkbWlfdmVuZG9yX2FueV9pbmZvZnJhbWUgdmVuZG9yOwogCXN0cnVjdCBoZG1pX2F1ZGlvX2lu Zm9mcmFtZSBhdWRpbzsKKwlzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lIGRybTsKIH07CiAKIHNz aXplX3QgaGRtaV9pbmZvZnJhbWVfcGFjayh1bmlvbiBoZG1pX2luZm9mcmFtZSAqZnJhbWUsIHZv aWQgKmJ1ZmZlciwKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=