From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [v4 07/12] drm: Enable HDR infoframe support Date: Tue, 8 Jan 2019 14:41:22 +0530 Message-ID: <1546938687-27306-8-git-send-email-uma.shankar@intel.com> References: <1546938687-27306-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: <1546938687-27306-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 IGNvbnN0YW50LgoKU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyB8ICA1OCArKysrKysr KysrKysrKysrKysrKwogZHJpdmVycy92aWRlby9oZG1pLmMgICAgICAgfCAxMjkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1fZWRp ZC5oICAgICB8ICAgNCArKwogaW5jbHVkZS9saW51eC9oZG1pLmggICAgICAgfCAgMjIgKysrKysr KysKIDQgZmlsZXMgY2hhbmdlZCwgMjEzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCmluZGV4 IGM5NjRjNWMuLmRmMjcwMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCkBAIC00OTA5LDYgKzQ5MDksNjQgQEAg dm9pZCBkcm1fc2V0X3ByZWZlcnJlZF9tb2RlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCiBFWFBPUlRfU1lNQk9MKGRybV9zZXRfcHJlZmVycmVkX21vZGUpOwogCiAvKioKKyAqIGRy bV9oZG1pX2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKCkgLSBmaWxsIGFuIEhETUkgQVZJIGlu Zm9mcmFtZSB3aXRoCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SERSIG1ldGFkYXRhIGZyb20gdXNlcnNwYWNlCisgKiBAZnJhbWU6IEhETUkgQVZJIGluZm9mcmFt ZQorICogQGhkcl9zb3VyY2VfbWV0YWRhdGE6IGhkcl9zb3VyY2VfbWV0YWRhdGEgaW5mbyBmcm9t IHVzZXJzcGFjZQorICoKKyAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJy b3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQKK2RybV9oZG1pX2luZm9mcmFtZV9zZXRfaGRy X21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lLAorCQkJCSAgICB2b2lk ICpoZHJfbWV0YWRhdGEpCit7CisJc3RydWN0IGhkcl9zdGF0aWNfbWV0YWRhdGEgKmhkcl9zb3Vy Y2VfbWV0YWRhdGE7CisJaW50IGVyciwgaTsKKworCWlmICghZnJhbWUgfHwgIWhkcl9tZXRhZGF0 YSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwllcnIgPSBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChm cmFtZSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlEUk1fREVCVUdfS01TKCJ0 eXBlID0gJXhcbiIsIGZyYW1lLT50eXBlKTsKKworCWhkcl9zb3VyY2VfbWV0YWRhdGEgPSAoc3Ry dWN0IGhkcl9zdGF0aWNfbWV0YWRhdGEgKiloZHJfbWV0YWRhdGE7CisKKwlmcmFtZS0+bGVuZ3Ro ID0gc2l6ZW9mKHN0cnVjdCBoZHJfc3RhdGljX21ldGFkYXRhKTsKKworCisJZnJhbWUtPmVvdGYg PSBoZHJfc291cmNlX21ldGFkYXRhLT5lb3RmOworCWZyYW1lLT5tZXRhZGF0YV90eXBlID0gaGRy X3NvdXJjZV9tZXRhZGF0YS0+bWV0YWRhdGFfdHlwZTsKKworCWZvciAoaSA9IDA7IGkgPCAzOyBp KyspIHsKKwkJZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnggPQorCQkJaGRyX3NvdXJjZV9t ZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueDsKKwkJZnJhbWUtPmRpc3BsYXlfcHJpbWFy aWVzW2ldLnkgPQorCQkJaGRyX3NvdXJjZV9tZXRhZGF0YS0+ZGlzcGxheV9wcmltYXJpZXNbaV0u eTsKKwl9CisKKwlmcmFtZS0+d2hpdGVfcG9pbnQueCA9IGhkcl9zb3VyY2VfbWV0YWRhdGEtPndo aXRlX3BvaW50Lng7CisJZnJhbWUtPndoaXRlX3BvaW50LnkgPSBoZHJfc291cmNlX21ldGFkYXRh LT53aGl0ZV9wb2ludC55OworCisJZnJhbWUtPm1heF9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFu Y2UgPQorCQloZHJfc291cmNlX21ldGFkYXRhLT5tYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5h bmNlOworCWZyYW1lLT5taW5fbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlID0KKwkJaGRyX3Nv dXJjZV9tZXRhZGF0YS0+bWluX21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZTsKKworCWZyYW1l LT5tYXhfY2xsID0gaGRyX3NvdXJjZV9tZXRhZGF0YS0+bWF4X2NsbDsKKwlmcmFtZS0+bWF4X2Zh bGwgPSBoZHJfc291cmNlX21ldGFkYXRhLT5tYXhfZmFsbDsKKworCWhkbWlfaW5mb2ZyYW1lX2xv ZyhLRVJOX0NSSVQsIE5VTEwsCisJCQkgICAodW5pb24gaGRtaV9pbmZvZnJhbWUgKilmcmFtZSk7 CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9o ZHJfbWV0YWRhdGEpOworCisKKy8qKgogICogZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rp c3BsYXlfbW9kZSgpIC0gZmlsbCBhbiBIRE1JIEFWSSBpbmZvZnJhbWUgd2l0aAogICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSBmcm9tIGEgRFJNIGRp c3BsYXkgbW9kZQogICogQGZyYW1lOiBIRE1JIEFWSSBpbmZvZnJhbWUKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlkZW8vaGRtaS5jIGIvZHJpdmVycy92aWRlby9oZG1pLmMKaW5kZXggNzk5YWU0OS4u N2FiODA4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9oZG1pLmMKKysrIGIvZHJpdmVycy92 aWRlby9oZG1pLmMKQEAgLTY1MCw2ICs2NTAsOTMgQEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZv ZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFtZSwKIAlyZXR1cm4g MDsKIH0KIAorLyoqCisgKiBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdCgpIC0gaW5pdGlhbGl6ZSBh biBIRE1JIER5bmFtaW5jIFJhbmdlIGFuZAorICogbWFzdGVyaW5nIGluZm9mcmFtZQorICogQGZy YW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBh IG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGhkbWlfZHJtX2luZm9m cmFtZV9pbml0KHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKQoreworCW1lbXNldChm cmFtZSwgMCwgc2l6ZW9mKCpmcmFtZSkpOworCisJZnJhbWUtPnR5cGUgPSBIRE1JX0lORk9GUkFN RV9UWVBFX0RSTTsKKwlmcmFtZS0+dmVyc2lvbiA9IDE7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9S VF9TWU1CT0woaGRtaV9kcm1faW5mb2ZyYW1lX2luaXQpOworCisvKioKKyAqIGhkbWlfZHJtX2lu Zm9mcmFtZV9wYWNrKCkgLSB3cml0ZSBIRE1JIERSTSBpbmZvZnJhbWUgdG8gYmluYXJ5IGJ1ZmZl cgorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqIEBidWZmZXI6IGRlc3RpbmF0aW9u IGJ1ZmZlcgorICogQHNpemU6IHNpemUgb2YgYnVmZmVyCisgKgorICogUGFja3MgdGhlIGluZm9y bWF0aW9uIGNvbnRhaW5lZCBpbiB0aGUgQGZyYW1lIHN0cnVjdHVyZSBpbnRvIGEgYmluYXJ5Cisg KiByZXByZXNlbnRhdGlvbiB0aGF0IGNhbiBiZSB3cml0dGVuIGludG8gdGhlIGNvcnJlc3BvbmRp bmcgY29udHJvbGxlcgorICogcmVnaXN0ZXJzLiBBbHNvIGNvbXB1dGVzIHRoZSBjaGVja3N1bSBh cyByZXF1aXJlZCBieSBzZWN0aW9uIDUuMy41IG9mCisgKiB0aGUgSERNSSAxLjQgc3BlY2lmaWNh dGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcGFja2VkIGludG8gdGhl IGJpbmFyeSBidWZmZXIgb3IgYSBuZWdhdGl2ZQorICogZXJyb3IgY29kZSBvbiBmYWlsdXJlLgor ICovCitzc2l6ZV90IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKHN0cnVjdCBoZG1pX2RybV9pbmZv ZnJhbWUgKmZyYW1lLCB2b2lkICpidWZmZXIsCisJCQkJc2l6ZV90IHNpemUpCit7CisJdTggKnB0 ciA9IGJ1ZmZlcjsKKwlzaXplX3QgbGVuZ3RoOworCWludCBpOworCisJbGVuZ3RoID0gSERNSV9J TkZPRlJBTUVfSEVBREVSX1NJWkUgKyBmcmFtZS0+bGVuZ3RoOworCisJaWYgKHNpemUgPCBsZW5n dGgpCisJCXJldHVybiAtRU5PU1BDOworCisJbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZSk7CisKKwlw dHJbMF0gPSBmcmFtZS0+dHlwZTsKKwlwdHJbMV0gPSBmcmFtZS0+dmVyc2lvbjsKKwlwdHJbMl0g PSBmcmFtZS0+bGVuZ3RoOworCXB0clszXSA9IDA7IC8qIGNoZWNrc3VtICovCisKKwkvKiBzdGFy dCBpbmZvZnJhbWUgcGF5bG9hZCAqLworCXB0ciArPSBIRE1JX0lORk9GUkFNRV9IRUFERVJfU0la RTsKKworCSpwdHIrKyA9IGZyYW1lLT5lb3RmOworCSpwdHIrKyA9IGZyYW1lLT5tZXRhZGF0YV90 eXBlOworCisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQkqcHRyKysgPSBmcmFtZS0+ZGlz cGxheV9wcmltYXJpZXNbaV0ueCAmIDB4ZmY7CisJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3By aW1hcmllc1tpXS54ID4+IDg7CisJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3ByaW1hcmllc1tp XS55ICYgMHhmZjsKKwkJKnB0cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLnkgPj4g ODsKKwl9CisKKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueCAmIDB4ZmY7CisJKnB0cisr ID0gZnJhbWUtPndoaXRlX3BvaW50LnggPj4gODsKKworCSpwdHIrKyA9IGZyYW1lLT53aGl0ZV9w b2ludC55ICYgMHhmZjsKKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueSA+PiA4OworCisJ KnB0cisrID0gZnJhbWUtPm1heF9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2UgJiAweGZmOwor CSpwdHIrKyA9IGZyYW1lLT5tYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlID4+IDg7CisK KwkqcHRyKysgPSBmcmFtZS0+bWluX21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZSAmIDB4ZmY7 CisJKnB0cisrID0gZnJhbWUtPm1pbl9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2UgPj4gODsK KworCSpwdHIrKyA9IGZyYW1lLT5tYXhfY2xsICYgMHhmZjsKKwkqcHRyKysgPSBmcmFtZS0+bWF4 X2NsbCA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPm1heF9mYWxsICYgMHhmZjsKKwkqcHRyKysg PSBmcmFtZS0+bWF4X2ZhbGwgPj4gODsKKworCWhkbWlfaW5mb2ZyYW1lX3NldF9jaGVja3N1bShi dWZmZXIsIGxlbmd0aCk7CisKKwlyZXR1cm4gbGVuZ3RoOworfQorCiAvKgogICogaGRtaV92ZW5k b3JfYW55X2luZm9mcmFtZV9jaGVjaygpIC0gY2hlY2sgYSB2ZW5kb3IgaW5mb2ZyYW1lCiAgKi8K QEAgLTgwNiw2ICs4OTMsOSBAQCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFtZV9wYWNrKHN0 cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLAogCWNhc2UgSERNSV9JTkZPRlJBTUVf VFlQRV9BVkk6CiAJCWxlbmd0aCA9IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrKCZmcmFtZS0+YXZp LCBidWZmZXIsIHNpemUpOwogCQlicmVhazsKKwljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJN OgorCQlsZW5ndGggPSBoZG1pX2RybV9pbmZvZnJhbWVfcGFjaygmZnJhbWUtPmRybSwgYnVmZmVy LCBzaXplKTsKKwkJYnJlYWs7CiAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX1NQRDoKIAkJbGVu Z3RoID0gaGRtaV9zcGRfaW5mb2ZyYW1lX3BhY2soJmZyYW1lLT5zcGQsIGJ1ZmZlciwgc2l6ZSk7 CiAJCWJyZWFrOwpAQCAtODM4LDYgKzkyOCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpoZG1pX2lu Zm9mcmFtZV90eXBlX2dldF9uYW1lKGVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlKQogCQly ZXR1cm4gIlNvdXJjZSBQcm9kdWN0IERlc2NyaXB0aW9uIChTUEQpIjsKIAljYXNlIEhETUlfSU5G T0ZSQU1FX1RZUEVfQVVESU86CiAJCXJldHVybiAiQXVkaW8iOworCWNhc2UgSERNSV9JTkZPRlJB TUVfVFlQRV9EUk06CisJCXJldHVybiAiRHluYW1pYyBSYW5nZSBhbmQgTWFzdGVyaW5nIjsKIAl9 CiAJcmV0dXJuICJSZXNlcnZlZCI7CiB9CkBAIC0xMjg0LDYgKzEzNzYsNDAgQEAgc3RhdGljIHZv aWQgaGRtaV9hdWRpb19pbmZvZnJhbWVfbG9nKGNvbnN0IGNoYXIgKmxldmVsLAogCQkJZnJhbWUt PmRvd25taXhfaW5oaWJpdCA/ICJZZXMiIDogIk5vIik7CiB9CiAKKy8qKgorICogaGRtaV9kcm1f aW5mb2ZyYW1lX2xvZygpIC0gbG9nIGluZm8gb2YgSERNSSBEUk0gaW5mb2ZyYW1lCisgKiBAbGV2 ZWw6IGxvZ2dpbmcgbGV2ZWwKKyAqIEBkZXY6IGRldmljZQorICogQGZyYW1lOiBIRE1JIERSTSBp bmZvZnJhbWUKKyAqLworc3RhdGljIHZvaWQgaGRtaV9kcm1faW5mb2ZyYW1lX2xvZyhjb25zdCBj aGFyICpsZXZlbCwKKwkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICAgY29uc3Qgc3Ry dWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpCit7CisJaW50IGk7CisKKwloZG1pX2luZm9m cmFtZV9sb2dfaGVhZGVyKGxldmVsLCBkZXYsCisJCQkoc3RydWN0IGhkbWlfYW55X2luZm9mcmFt ZSAqKWZyYW1lKTsKKwloZG1pX2xvZygibGVuZ3RoOiAlZFxuIiwgZnJhbWUtPmxlbmd0aCk7CisJ aGRtaV9sb2coIm1ldGFkYXRhIHR5cGU6ICVkXG4iLCBmcmFtZS0+bWV0YWRhdGFfdHlwZSk7CisJ aGRtaV9sb2coImVvdGY6ICVkXG4iLCBmcmFtZS0+ZW90Zik7CisJZm9yIChpID0gMDsgaSA8IDM7 IGkrKykgeworCQloZG1pX2xvZygieFslZF06ICVkXG4iLCBpLCBmcmFtZS0+ZGlzcGxheV9wcmlt YXJpZXNbaV0ueCk7CisJCWhkbWlfbG9nKCJ5WyVkXTogJWRcbiIsIGksIGZyYW1lLT5kaXNwbGF5 X3ByaW1hcmllc1tpXS55KTsKKwl9CisKKwloZG1pX2xvZygid2hpdGUgcG9pbnQgeDogJWRcbiIs IGZyYW1lLT53aGl0ZV9wb2ludC54KTsKKwloZG1pX2xvZygid2hpdGUgcG9pbnQgeTogJWRcbiIs IGZyYW1lLT53aGl0ZV9wb2ludC55KTsKKworCWhkbWlfbG9nKCJtYXhfbWFzdGVyaW5nX2Rpc3Bs YXlfbHVtaW5hbmNlOiAlZFxuIiwKKwkJCWZyYW1lLT5tYXhfbWFzdGVyaW5nX2Rpc3BsYXlfbHVt aW5hbmNlKTsKKwloZG1pX2xvZygibWluX21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZTogJWRc biIsCisJCQlmcmFtZS0+bWluX21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZSk7CisKKwloZG1p X2xvZygibWF4X2NsbDogJWRcbiIsIGZyYW1lLT5tYXhfY2xsKTsKKwloZG1pX2xvZygibWF4X2Zh bGw6ICVkXG4iLCBmcmFtZS0+bWF4X2ZhbGwpOworfQorCiBzdGF0aWMgY29uc3QgY2hhciAqCiBo ZG1pXzNkX3N0cnVjdHVyZV9nZXRfbmFtZShlbnVtIGhkbWlfM2Rfc3RydWN0dXJlIHMzZF9zdHJ1 Y3QpCiB7CkBAIC0xMzcyLDYgKzE0OTgsOSBAQCB2b2lkIGhkbWlfaW5mb2ZyYW1lX2xvZyhjb25z dCBjaGFyICpsZXZlbCwKIAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfVkVORE9SOgogCQloZG1p X3ZlbmRvcl9hbnlfaW5mb2ZyYW1lX2xvZyhsZXZlbCwgZGV2LCAmZnJhbWUtPnZlbmRvcik7CiAJ CWJyZWFrOworCWNhc2UgSERNSV9JTkZPRlJBTUVfVFlQRV9EUk06CisJCWhkbWlfZHJtX2luZm9m cmFtZV9sb2cobGV2ZWwsIGRldiwgJmZyYW1lLT5kcm0pOworCQlicmVhazsKIAl9CiB9CiBFWFBP UlRfU1lNQk9MKGhkbWlfaW5mb2ZyYW1lX2xvZyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9k cm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAppbmRleCBlM2M0MDQ4Li4wNTExNjA3 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCisrKyBiL2luY2x1ZGUvZHJtL2Ry bV9lZGlkLmgKQEAgLTM2NSw2ICszNjUsMTAgQEAgaW50IGRybV9hdl9zeW5jX2RlbGF5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkJICAgYm9vbCByZ2JfcXVhbnRfcmFuZ2Vf c2VsZWN0YWJsZSwKIAkJCQkgICBib29sIGlzX2hkbWkyX3NpbmspOwogCitpbnQKK2RybV9oZG1p X2luZm9mcmFtZV9zZXRfaGRyX21ldGFkYXRhKHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZy YW1lLAorCQkJCSAgICB2b2lkICpoZHJfc291cmNlX21ldGFkYXRhKTsKKwogLyoqCiAgKiBkcm1f ZWxkX21ubCAtIEdldCBFTEQgbW9uaXRvciBuYW1lIGxlbmd0aCBpbiBieXRlcy4KICAqIEBlbGQ6 IHBvaW50ZXIgdG8gYW4gZWxkIG1lbW9yeSBzdHJ1Y3R1cmUgd2l0aCBtbmwgc2V0CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgvaGRtaS5oCmluZGV4IGJl ZDNlMDguLmNlMDBlMWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaGRtaS5oCisrKyBiL2lu Y2x1ZGUvbGludXgvaGRtaS5oCkBAIC0zMiw2ICszMiw3IEBAIGVudW0gaGRtaV9pbmZvZnJhbWVf dHlwZSB7CiAJSERNSV9JTkZPRlJBTUVfVFlQRV9BVkkgPSAweDgyLAogCUhETUlfSU5GT0ZSQU1F X1RZUEVfU1BEID0gMHg4MywKIAlIRE1JX0lORk9GUkFNRV9UWVBFX0FVRElPID0gMHg4NCwKKwlI RE1JX0lORk9GUkFNRV9UWVBFX0RSTSA9IDB4ODcsCiB9OwogCiAjZGVmaW5lIEhETUlfSUVFRV9P VUkgMHgwMDBjMDMKQEAgLTE3MCwxMiArMTcxLDMyIEBAIHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJh bWUgewogCXVuc2lnbmVkIHNob3J0IHJpZ2h0X2JhcjsKIH07CiAKK3N0cnVjdCBoZG1pX2RybV9p bmZvZnJhbWUgeworCWVudW0gaGRtaV9pbmZvZnJhbWVfdHlwZSB0eXBlOworCXVuc2lnbmVkIGNo YXIgdmVyc2lvbjsKKwl1bnNpZ25lZCBjaGFyIGxlbmd0aDsKKwllbnVtIGhkbWlfZW90ZiBlb3Rm OworCWVudW0gaGRtaV9tZXRhZGF0YV90eXBlIG1ldGFkYXRhX3R5cGU7CisJc3RydWN0IHsKKwkJ dWludDE2X3QgeCwgeTsKKwl9IGRpc3BsYXlfcHJpbWFyaWVzWzNdOworCXN0cnVjdCB7CisJCXVp bnQxNl90IHgsIHk7CisJfSB3aGl0ZV9wb2ludDsKKwl1aW50MTZfdCBtYXhfbWFzdGVyaW5nX2Rp c3BsYXlfbHVtaW5hbmNlOworCXVpbnQxNl90IG1pbl9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFu Y2U7CisJdWludDE2X3QgbWF4X2ZhbGw7CisJdWludDE2X3QgbWF4X2NsbDsKKwl1aW50MTZfdCBt aW5fY2xsOworfTsKKwogaW50IGhkbWlfYXZpX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1pX2F2 aV9pbmZvZnJhbWUgKmZyYW1lKTsKIHNzaXplX3QgaGRtaV9hdmlfaW5mb2ZyYW1lX3BhY2soc3Ry dWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3Qg c2l6ZSk7CiBzc2l6ZV90IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0 IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsCiAJCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVf dCBzaXplKTsKIGludCBoZG1pX2F2aV9pbmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfYXZpX2lu Zm9mcmFtZSAqZnJhbWUpOworaW50IGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1p X2RybV9pbmZvZnJhbWUgKmZyYW1lKTsKIAogZW51bSBoZG1pX3NwZF9zZGkgewogCUhETUlfU1BE X1NESV9VTktOT1dOLApAQCAtMzUwLDYgKzM3MSw3IEBAIHNzaXplX3QgaGRtaV92ZW5kb3JfaW5m b2ZyYW1lX3BhY2tfb25seShjb25zdCBzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFt CiAJc3RydWN0IGhkbWlfc3BkX2luZm9mcmFtZSBzcGQ7CiAJdW5pb24gaGRtaV92ZW5kb3JfYW55 X2luZm9mcmFtZSB2ZW5kb3I7CiAJc3RydWN0IGhkbWlfYXVkaW9faW5mb2ZyYW1lIGF1ZGlvOwor CXN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgZHJtOwogfTsKIAogc3NpemVfdCBoZG1pX2luZm9m cmFtZV9wYWNrKHVuaW9uIGhkbWlfaW5mb2ZyYW1lICpmcmFtZSwgdm9pZCAqYnVmZmVyLAotLSAK MS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=