From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [v5 06/13] drm: Enable HDR infoframe support Date: Mon, 11 Mar 2019 09:27:57 +0530 Message-ID: <1552276684-25358-7-git-send-email-uma.shankar@intel.com> References: <1552276684-25358-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: <1552276684-25358-1-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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: ville.syrjala@intel.com, Liviu.Dudau@arm.com, emil.l.velikov@gmail.com, Uma Shankar , maarten.lankhorst@intel.com List-Id: dri-devel@lists.freedesktop.org RW5hYmxlIER5bmFtaWMgUmFuZ2UgYW5kIE1hc3RlcmluZyBJbmZvZnJhbWUgZm9yIEhEUgpjb250 ZW50LCB3aGljaCBpcyBkZWZpbmVkIGluIENFQSA4NjEuMyBzcGVjLgoKVGhlIG1ldGFkYXRhIHdp bGwgYmUgY29tcHV0ZWQgYmFzZWQgb24gYmxlbmRpbmcKcG9saWN5IGluIHVzZXJzcGFjZSBjb21w b3NpdG9ycyBhbmQgcGFzc2VkIGFzIGEgY29ubmVjdG9yCnByb3BlcnR5IGJsb2IgdG8gZHJpdmVy LiBUaGUgc2FtZSB3aWxsIGJlIHNlbnQgYXMgaW5mb2ZyYW1lCnRvIHBhbmVsIHdoaWNoIHN1cHBv cnQgSERSLgoKdjI6IFJlYmFzZSBhbmQgYWRkZWQgVmlsbGUncyBQT0MgY2hhbmdlcy4KCnYzOiBO byBDaGFuZ2UKCnY0OiBBZGRyZXNzZWQgU2hhc2hhbmsncyByZXZpZXcgY29tbWVudHMgYW5kIG1l cmdlZCB0aGUKcGF0Y2ggbWFraW5nIGRybSBpbmZvZnJhbWUgZnVuY3Rpb24gYXJndW1lbnRzIGFz IGNvbnN0YW50LgoKdjU6IFJlYmFzZQoKU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyB8 ICA1OCArKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy92aWRlby9oZG1pLmMgICAgICAgfCAx MjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRl L2RybS9kcm1fZWRpZC5oICAgICB8ICAgNCArKwogaW5jbHVkZS9saW51eC9oZG1pLmggICAgICAg fCAgMjIgKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjEzIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jCmluZGV4IDA0NzA4NDUuLjQ5ZjgzNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZWRpZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCkBAIC00OTE0LDYg KzQ5MTQsNjQgQEAgc3RhdGljIGJvb2wgaXNfaGRtaTJfc2luayhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogfQogCiAvKioKKyAqIGRybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21l dGFkYXRhKCkgLSBmaWxsIGFuIEhETUkgQVZJIGluZm9mcmFtZSB3aXRoCisgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSERSIG1ldGFkYXRhIGZyb20gdXNlcnNwYWNl CisgKiBAZnJhbWU6IEhETUkgQVZJIGluZm9mcmFtZQorICogQGhkcl9zb3VyY2VfbWV0YWRhdGE6 IGhkcl9zb3VyY2VfbWV0YWRhdGEgaW5mbyBmcm9tIHVzZXJzcGFjZQorICoKKyAqIFJldHVybjog MCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitp bnQKK2RybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9p bmZvZnJhbWUgKmZyYW1lLAorCQkJCSAgICB2b2lkICpoZHJfbWV0YWRhdGEpCit7CisJc3RydWN0 IGhkcl9zdGF0aWNfbWV0YWRhdGEgKmhkcl9zb3VyY2VfbWV0YWRhdGE7CisJaW50IGVyciwgaTsK KworCWlmICghZnJhbWUgfHwgIWhkcl9tZXRhZGF0YSkKKwkJcmV0dXJuIHRydWU7CisKKwllcnIg PSBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChmcmFtZSk7CisJaWYgKGVyciA8IDApCisJCXJldHVy biBlcnI7CisKKwlEUk1fREVCVUdfS01TKCJ0eXBlID0gJXhcbiIsIGZyYW1lLT50eXBlKTsKKwor CWhkcl9zb3VyY2VfbWV0YWRhdGEgPSAoc3RydWN0IGhkcl9zdGF0aWNfbWV0YWRhdGEgKiloZHJf bWV0YWRhdGE7CisKKwlmcmFtZS0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBoZHJfc3RhdGljX21l dGFkYXRhKTsKKworCisJZnJhbWUtPmVvdGYgPSBoZHJfc291cmNlX21ldGFkYXRhLT5lb3RmOwor CWZyYW1lLT5tZXRhZGF0YV90eXBlID0gaGRyX3NvdXJjZV9tZXRhZGF0YS0+bWV0YWRhdGFfdHlw ZTsKKworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJZnJhbWUtPmRpc3BsYXlfcHJpbWFy aWVzW2ldLnggPQorCQkJaGRyX3NvdXJjZV9tZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbaV0u eDsKKwkJZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkgPQorCQkJaGRyX3NvdXJjZV9tZXRh ZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueTsKKwl9CisKKwlmcmFtZS0+d2hpdGVfcG9pbnQu eCA9IGhkcl9zb3VyY2VfbWV0YWRhdGEtPndoaXRlX3BvaW50Lng7CisJZnJhbWUtPndoaXRlX3Bv aW50LnkgPSBoZHJfc291cmNlX21ldGFkYXRhLT53aGl0ZV9wb2ludC55OworCisJZnJhbWUtPm1h eF9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2UgPQorCQloZHJfc291cmNlX21ldGFkYXRhLT5t YXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOworCWZyYW1lLT5taW5fbWFzdGVyaW5nX2Rp c3BsYXlfbHVtaW5hbmNlID0KKwkJaGRyX3NvdXJjZV9tZXRhZGF0YS0+bWluX21hc3RlcmluZ19k aXNwbGF5X2x1bWluYW5jZTsKKworCWZyYW1lLT5tYXhfY2xsID0gaGRyX3NvdXJjZV9tZXRhZGF0 YS0+bWF4X2NsbDsKKwlmcmFtZS0+bWF4X2ZhbGwgPSBoZHJfc291cmNlX21ldGFkYXRhLT5tYXhf ZmFsbDsKKworCWhkbWlfaW5mb2ZyYW1lX2xvZyhLRVJOX0NSSVQsIE5VTEwsCisJCQkgICAodW5p b24gaGRtaV9pbmZvZnJhbWUgKilmcmFtZSk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1C T0woZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEpOworCisKKy8qKgogICogZHJt X2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgpIC0gZmlsbCBhbiBIRE1JIEFW SSBpbmZvZnJhbWUgd2l0aAogICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YSBmcm9tIGEgRFJNIGRpc3BsYXkgbW9kZQogICogQGZyYW1lOiBIRE1JIEFW SSBpbmZvZnJhbWUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vaGRtaS5jIGIvZHJpdmVycy92 aWRlby9oZG1pLmMKaW5kZXggNzk5YWU0OS4uN2FiODA4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92 aWRlby9oZG1pLmMKKysrIGIvZHJpdmVycy92aWRlby9oZG1pLmMKQEAgLTY1MCw2ICs2NTAsOTMg QEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV92ZW5kb3Jf aW5mb2ZyYW1lICpmcmFtZSwKIAlyZXR1cm4gMDsKIH0KIAorLyoqCisgKiBoZG1pX2RybV9pbmZv ZnJhbWVfaW5pdCgpIC0gaW5pdGlhbGl6ZSBhbiBIRE1JIER5bmFtaW5jIFJhbmdlIGFuZAorICog bWFzdGVyaW5nIGluZm9mcmFtZQorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqCisg KiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVy ZS4KKyAqLworaW50IGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1pX2RybV9pbmZv ZnJhbWUgKmZyYW1lKQoreworCW1lbXNldChmcmFtZSwgMCwgc2l6ZW9mKCpmcmFtZSkpOworCisJ ZnJhbWUtPnR5cGUgPSBIRE1JX0lORk9GUkFNRV9UWVBFX0RSTTsKKwlmcmFtZS0+dmVyc2lvbiA9 IDE7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woaGRtaV9kcm1faW5mb2ZyYW1lX2lu aXQpOworCisvKioKKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKCkgLSB3cml0ZSBIRE1JIERS TSBpbmZvZnJhbWUgdG8gYmluYXJ5IGJ1ZmZlcgorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJh bWUKKyAqIEBidWZmZXI6IGRlc3RpbmF0aW9uIGJ1ZmZlcgorICogQHNpemU6IHNpemUgb2YgYnVm ZmVyCisgKgorICogUGFja3MgdGhlIGluZm9ybWF0aW9uIGNvbnRhaW5lZCBpbiB0aGUgQGZyYW1l IHN0cnVjdHVyZSBpbnRvIGEgYmluYXJ5CisgKiByZXByZXNlbnRhdGlvbiB0aGF0IGNhbiBiZSB3 cml0dGVuIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgY29udHJvbGxlcgorICogcmVnaXN0ZXJzLiBB bHNvIGNvbXB1dGVzIHRoZSBjaGVja3N1bSBhcyByZXF1aXJlZCBieSBzZWN0aW9uIDUuMy41IG9m CisgKiB0aGUgSERNSSAxLjQgc3BlY2lmaWNhdGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1i ZXIgb2YgYnl0ZXMgcGFja2VkIGludG8gdGhlIGJpbmFyeSBidWZmZXIgb3IgYSBuZWdhdGl2ZQor ICogZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitzc2l6ZV90IGhkbWlfZHJtX2luZm9mcmFt ZV9wYWNrKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLCB2b2lkICpidWZmZXIsCisJ CQkJc2l6ZV90IHNpemUpCit7CisJdTggKnB0ciA9IGJ1ZmZlcjsKKwlzaXplX3QgbGVuZ3RoOwor CWludCBpOworCisJbGVuZ3RoID0gSERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkUgKyBmcmFtZS0+ bGVuZ3RoOworCisJaWYgKHNpemUgPCBsZW5ndGgpCisJCXJldHVybiAtRU5PU1BDOworCisJbWVt c2V0KGJ1ZmZlciwgMCwgc2l6ZSk7CisKKwlwdHJbMF0gPSBmcmFtZS0+dHlwZTsKKwlwdHJbMV0g PSBmcmFtZS0+dmVyc2lvbjsKKwlwdHJbMl0gPSBmcmFtZS0+bGVuZ3RoOworCXB0clszXSA9IDA7 IC8qIGNoZWNrc3VtICovCisKKwkvKiBzdGFydCBpbmZvZnJhbWUgcGF5bG9hZCAqLworCXB0ciAr PSBIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRTsKKworCSpwdHIrKyA9IGZyYW1lLT5lb3RmOwor CSpwdHIrKyA9IGZyYW1lLT5tZXRhZGF0YV90eXBlOworCisJZm9yIChpID0gMDsgaSA8IDM7IGkr KykgeworCQkqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueCAmIDB4ZmY7CisJ CSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS54ID4+IDg7CisJCSpwdHIrKyA9 IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS55ICYgMHhmZjsKKwkJKnB0cisrID0gZnJhbWUt PmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkgPj4gODsKKwl9CisKKwkqcHRyKysgPSBmcmFtZS0+d2hp dGVfcG9pbnQueCAmIDB4ZmY7CisJKnB0cisrID0gZnJhbWUtPndoaXRlX3BvaW50LnggPj4gODsK KworCSpwdHIrKyA9IGZyYW1lLT53aGl0ZV9wb2ludC55ICYgMHhmZjsKKwkqcHRyKysgPSBmcmFt ZS0+d2hpdGVfcG9pbnQueSA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPm1heF9tYXN0ZXJpbmdf ZGlzcGxheV9sdW1pbmFuY2UgJiAweGZmOworCSpwdHIrKyA9IGZyYW1lLT5tYXhfbWFzdGVyaW5n X2Rpc3BsYXlfbHVtaW5hbmNlID4+IDg7CisKKwkqcHRyKysgPSBmcmFtZS0+bWluX21hc3Rlcmlu Z19kaXNwbGF5X2x1bWluYW5jZSAmIDB4ZmY7CisJKnB0cisrID0gZnJhbWUtPm1pbl9tYXN0ZXJp bmdfZGlzcGxheV9sdW1pbmFuY2UgPj4gODsKKworCSpwdHIrKyA9IGZyYW1lLT5tYXhfY2xsICYg MHhmZjsKKwkqcHRyKysgPSBmcmFtZS0+bWF4X2NsbCA+PiA4OworCisJKnB0cisrID0gZnJhbWUt Pm1heF9mYWxsICYgMHhmZjsKKwkqcHRyKysgPSBmcmFtZS0+bWF4X2ZhbGwgPj4gODsKKworCWhk bWlfaW5mb2ZyYW1lX3NldF9jaGVja3N1bShidWZmZXIsIGxlbmd0aCk7CisKKwlyZXR1cm4gbGVu Z3RoOworfQorCiAvKgogICogaGRtaV92ZW5kb3JfYW55X2luZm9mcmFtZV9jaGVjaygpIC0gY2hl Y2sgYSB2ZW5kb3IgaW5mb2ZyYW1lCiAgKi8KQEAgLTgwNiw2ICs4OTMsOSBAQCBzc2l6ZV90IGhk bWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZy YW1lLAogCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9BVkk6CiAJCWxlbmd0aCA9IGhkbWlfYXZp X2luZm9mcmFtZV9wYWNrKCZmcmFtZS0+YXZpLCBidWZmZXIsIHNpemUpOwogCQlicmVhazsKKwlj YXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOgorCQlsZW5ndGggPSBoZG1pX2RybV9pbmZvZnJh bWVfcGFjaygmZnJhbWUtPmRybSwgYnVmZmVyLCBzaXplKTsKKwkJYnJlYWs7CiAJY2FzZSBIRE1J X0lORk9GUkFNRV9UWVBFX1NQRDoKIAkJbGVuZ3RoID0gaGRtaV9zcGRfaW5mb2ZyYW1lX3BhY2so JmZyYW1lLT5zcGQsIGJ1ZmZlciwgc2l6ZSk7CiAJCWJyZWFrOwpAQCAtODM4LDYgKzkyOCw4IEBA IHN0YXRpYyBjb25zdCBjaGFyICpoZG1pX2luZm9mcmFtZV90eXBlX2dldF9uYW1lKGVudW0gaGRt aV9pbmZvZnJhbWVfdHlwZSB0eXBlKQogCQlyZXR1cm4gIlNvdXJjZSBQcm9kdWN0IERlc2NyaXB0 aW9uIChTUEQpIjsKIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVVESU86CiAJCXJldHVybiAi QXVkaW8iOworCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9EUk06CisJCXJldHVybiAiRHluYW1p YyBSYW5nZSBhbmQgTWFzdGVyaW5nIjsKIAl9CiAJcmV0dXJuICJSZXNlcnZlZCI7CiB9CkBAIC0x Mjg0LDYgKzEzNzYsNDAgQEAgc3RhdGljIHZvaWQgaGRtaV9hdWRpb19pbmZvZnJhbWVfbG9nKGNv bnN0IGNoYXIgKmxldmVsLAogCQkJZnJhbWUtPmRvd25taXhfaW5oaWJpdCA/ICJZZXMiIDogIk5v Iik7CiB9CiAKKy8qKgorICogaGRtaV9kcm1faW5mb2ZyYW1lX2xvZygpIC0gbG9nIGluZm8gb2Yg SERNSSBEUk0gaW5mb2ZyYW1lCisgKiBAbGV2ZWw6IGxvZ2dpbmcgbGV2ZWwKKyAqIEBkZXY6IGRl dmljZQorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqLworc3RhdGljIHZvaWQgaGRt aV9kcm1faW5mb2ZyYW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwKKwkJCQkgICBzdHJ1Y3QgZGV2 aWNlICpkZXYsCisJCQkJICAgY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUp Cit7CisJaW50IGk7CisKKwloZG1pX2luZm9mcmFtZV9sb2dfaGVhZGVyKGxldmVsLCBkZXYsCisJ CQkoc3RydWN0IGhkbWlfYW55X2luZm9mcmFtZSAqKWZyYW1lKTsKKwloZG1pX2xvZygibGVuZ3Ro OiAlZFxuIiwgZnJhbWUtPmxlbmd0aCk7CisJaGRtaV9sb2coIm1ldGFkYXRhIHR5cGU6ICVkXG4i LCBmcmFtZS0+bWV0YWRhdGFfdHlwZSk7CisJaGRtaV9sb2coImVvdGY6ICVkXG4iLCBmcmFtZS0+ ZW90Zik7CisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQloZG1pX2xvZygieFslZF06ICVk XG4iLCBpLCBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueCk7CisJCWhkbWlfbG9nKCJ5WyVk XTogJWRcbiIsIGksIGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tpXS55KTsKKwl9CisKKwloZG1p X2xvZygid2hpdGUgcG9pbnQgeDogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC54KTsKKwloZG1p X2xvZygid2hpdGUgcG9pbnQgeTogJWRcbiIsIGZyYW1lLT53aGl0ZV9wb2ludC55KTsKKworCWhk bWlfbG9nKCJtYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOiAlZFxuIiwKKwkJCWZyYW1l LT5tYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlKTsKKwloZG1pX2xvZygibWluX21hc3Rl cmluZ19kaXNwbGF5X2x1bWluYW5jZTogJWRcbiIsCisJCQlmcmFtZS0+bWluX21hc3RlcmluZ19k aXNwbGF5X2x1bWluYW5jZSk7CisKKwloZG1pX2xvZygibWF4X2NsbDogJWRcbiIsIGZyYW1lLT5t YXhfY2xsKTsKKwloZG1pX2xvZygibWF4X2ZhbGw6ICVkXG4iLCBmcmFtZS0+bWF4X2ZhbGwpOwor fQorCiBzdGF0aWMgY29uc3QgY2hhciAqCiBoZG1pXzNkX3N0cnVjdHVyZV9nZXRfbmFtZShlbnVt IGhkbWlfM2Rfc3RydWN0dXJlIHMzZF9zdHJ1Y3QpCiB7CkBAIC0xMzcyLDYgKzE0OTgsOSBAQCB2 b2lkIGhkbWlfaW5mb2ZyYW1lX2xvZyhjb25zdCBjaGFyICpsZXZlbCwKIAljYXNlIEhETUlfSU5G T0ZSQU1FX1RZUEVfVkVORE9SOgogCQloZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lX2xvZyhsZXZl bCwgZGV2LCAmZnJhbWUtPnZlbmRvcik7CiAJCWJyZWFrOworCWNhc2UgSERNSV9JTkZPRlJBTUVf VFlQRV9EUk06CisJCWhkbWlfZHJtX2luZm9mcmFtZV9sb2cobGV2ZWwsIGRldiwgJmZyYW1lLT5k cm0pOworCQlicmVhazsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGhkbWlfaW5mb2ZyYW1lX2xvZyk7 CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Vk aWQuaAppbmRleCA5ZDNiNWI5Li45NzNlNDNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f ZWRpZC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKQEAgLTM3MCw2ICszNzAsMTAgQEAg aW50IGRybV9hdl9zeW5jX2RlbGF5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJ CQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAJCQkJICAgZW51bSBo ZG1pX3F1YW50aXphdGlvbl9yYW5nZSByZ2JfcXVhbnRfcmFuZ2UpOwogCitpbnQKK2RybV9oZG1p X2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZy YW1lLAorCQkJCSAgICB2b2lkICpoZHJfc291cmNlX21ldGFkYXRhKTsKKwogLyoqCiAgKiBkcm1f ZWxkX21ubCAtIEdldCBFTEQgbW9uaXRvciBuYW1lIGxlbmd0aCBpbiBieXRlcy4KICAqIEBlbGQ6 IHBvaW50ZXIgdG8gYW4gZWxkIG1lbW9yeSBzdHJ1Y3R1cmUgd2l0aCBtbmwgc2V0CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgvaGRtaS5oCmluZGV4IGEw NjUxOTQuLjMzMjQzYjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaGRtaS5oCisrKyBiL2lu Y2x1ZGUvbGludXgvaGRtaS5oCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gaGRtaV9pbmZvZnJhbWVf dHlwZSB7CiAJSERNSV9JTkZPRlJBTUVfVFlQRV9BVkkgPSAweDgyLAogCUhETUlfSU5GT0ZSQU1F X1RZUEVfU1BEID0gMHg4MywKIAlIRE1JX0lORk9GUkFNRV9UWVBFX0FVRElPID0gMHg4NCwKKwlI RE1JX0lORk9GUkFNRV9UWVBFX0RSTSA9IDB4ODcsCiB9OwogCiAjZGVmaW5lIEhETUlfSUVFRV9P VUkgMHgwMDBjMDMKQEAgLTE4NSwxMiArMTg2LDMyIEBAIHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJh bWUgewogCXVuc2lnbmVkIHNob3J0IHJpZ2h0X2JhcjsKIH07CiAKK3N0cnVjdCBoZG1pX2RybV9p bmZvZnJhbWUgeworCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlOworCXVuc2lnbmVkIGNo YXIgdmVyc2lvbjsKKwl1bnNpZ25lZCBjaGFyIGxlbmd0aDsKKwllbnVtIGhkbWlfZW90ZiBlb3Rm OworCWVudW0gaGRtaV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5cGU7CisJc3RydWN0IHsKKwkJ dWludDE2X3QgeCwgeTsKKwl9IGRpc3BsYXlfcHJpbWFyaWVzWzNdOworCXN0cnVjdCB7CisJCXVp bnQxNl90IHgsIHk7CisJfSB3aGl0ZV9wb2ludDsKKwl1aW50MTZfdCBtYXhfbWFzdGVyaW5nX2Rp c3BsYXlfbHVtaW5hbmNlOworCXVpbnQxNl90IG1pbl9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFu Y2U7CisJdWludDE2X3QgbWF4X2ZhbGw7CisJdWludDE2X3QgbWF4X2NsbDsKKwl1aW50MTZfdCBt aW5fY2xsOworfTsKKwogaW50IGhkbWlfYXZpX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1pX2F2 aV9pbmZvZnJhbWUgKmZyYW1lKTsKIHNzaXplX3QgaGRtaV9hdmlfaW5mb2ZyYW1lX3BhY2soc3Ry dWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3Qg c2l6ZSk7CiBzc2l6ZV90IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0 IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsCiAJCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVf dCBzaXplKTsKIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfYXZpX2lu Zm9mcmFtZSAqZnJhbWUpOworaW50IGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1p X2RybV9pbmZvZnJhbWUgKmZyYW1lKTsKIAogZW51bSBoZG1pX3NwZF9zZGkgewogCUhETUlfU1BE X1NESV9VTktOT1dOLApAQCAtMzY1LDYgKzM4Niw3IEBAIHNzaXplX3QgaGRtaV92ZW5kb3JfaW5m b2ZyYW1lX3BhY2tfb25seShjb25zdCBzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFt CiAJc3RydWN0IGhkbWlfc3BkX2luZm9mcmFtZSBzcGQ7CiAJdW5pb24gaGRtaV92ZW5kb3JfYW55 X2luZm9mcmFtZSB2ZW5kb3I7CiAJc3RydWN0IGhkbWlfYXVkaW9faW5mb2ZyYW1lIGF1ZGlvOwor CXN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgZHJtOwogfTsKIAogc3NpemVfdCBoZG1pX2luZm9m cmFtZV9wYWNrKHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFtZSwgdm9pZCAqYnVmZmVyLAotLSAK MS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==