From mboxrd@z Thu Jan 1 00:00:00 1970 From: Uma Shankar Subject: [v7 3/9] drm: Enable HDR infoframe support Date: Wed, 3 Apr 2019 01:50:24 +0530 Message-ID: <1554236430-7466-4-git-send-email-uma.shankar@intel.com> References: <1554236430-7466-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: <1554236430-7466-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, 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 dmlldyBjb21tZW50cy4gTWVyZ2VkIDIgcGF0Y2hlcwppbnRvIG9uZS4KClNpZ25lZC1vZmYtYnk6 IFVtYSBTaGFua2FyIDx1bWEuc2hhbmthckBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBT aGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2RybV9lZGlkLmMgfCAgNTEgKysrKysrKysrKysrKwogZHJpdmVycy92aWRlby9oZG1p LmMgICAgICAgfCAxODYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBpbmNsdWRlL2RybS9kcm1fZWRpZC5oICAgICB8ICAgNSArKwogaW5jbHVkZS9saW51eC9o ZG1pLmggICAgICAgfCAgMjcgKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyNjkgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9lZGlkLmMKaW5kZXggZmZjY2E4MS4uNTE5NDVmNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9lZGlkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMK QEAgLTQ4ODIsNiArNDg4Miw1NyBAQCBzdGF0aWMgYm9vbCBpc19oZG1pMl9zaW5rKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB9CiAKIC8qKgorICogZHJtX2hkbWlfaW5mb2ZyYW1l X3NldF9oZHJfbWV0YWRhdGEoKSAtIGZpbGwgYW4gSERNSSBBVkkgaW5mb2ZyYW1lIHdpdGgKKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIRFIgbWV0YWRhdGEgZnJv bSB1c2Vyc3BhY2UKKyAqIEBmcmFtZTogSERNSSBBVkkgaW5mb2ZyYW1lCisgKiBAaGRyX3NvdXJj ZV9tZXRhZGF0YTogaGRyX3NvdXJjZV9tZXRhZGF0YSBpbmZvIGZyb20gdXNlcnNwYWNlCisgKgor ICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1 cmUuCisgKi8KK2ludAorZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJfbWV0YWRhdGEoc3RydWN0 IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsCisJCQkJICAgIHN0cnVjdCBoZHJfb3V0cHV0X21l dGFkYXRhICpoZHJfbWV0YWRhdGEpCit7CisJc3RydWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgKmhk cl9vdXRwdXRfbWV0YWRhdGE7CisJaW50IGVycjsKKworCWlmICghZnJhbWUgfHwgIWhkcl9tZXRh ZGF0YSkKKwkJcmV0dXJuIHRydWU7CisKKwllcnIgPSBoZG1pX2RybV9pbmZvZnJhbWVfaW5pdChm cmFtZSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlEUk1fREVCVUdfS01TKCJ0 eXBlID0gJXhcbiIsIGZyYW1lLT50eXBlKTsKKworCWhkcl9vdXRwdXRfbWV0YWRhdGEgPSAoc3Ry dWN0IGhkcl9vdXRwdXRfbWV0YWRhdGEgKiloZHJfbWV0YWRhdGE7CisKKwlmcmFtZS0+bGVuZ3Ro ID0gc2l6ZW9mKHN0cnVjdCBoZHJfc3RhdGljX21ldGFkYXRhKTsKKworCWZyYW1lLT5lb3RmID0g aGRyX291dHB1dF9tZXRhZGF0YS0+aGRtaV90eXBlMS5lb3RmOworCWZyYW1lLT5tZXRhZGF0YV90 eXBlID0gaGRyX291dHB1dF9tZXRhZGF0YS0+aGRtaV90eXBlMS5tZXRhZGF0YV90eXBlOworCisJ bWVtY3B5KCZmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXMsCisJICAgICAgICZoZHJfb3V0cHV0X21l dGFkYXRhLT5oZG1pX3R5cGUxLmRpc3BsYXlfcHJpbWFyaWVzLCAxMik7CisKKwltZW1jcHkoJmZy YW1lLT53aGl0ZV9wb2ludCwKKwkgICAgICAgJmhkcl9vdXRwdXRfbWV0YWRhdGEtPmhkbWlfdHlw ZTEud2hpdGVfcG9pbnQsIDQpOworCisJZnJhbWUtPm1heF9tYXN0ZXJpbmdfZGlzcGxheV9sdW1p bmFuY2UgPQorCQloZHJfb3V0cHV0X21ldGFkYXRhLT5oZG1pX3R5cGUxLm1heF9jbGw7CisJZnJh bWUtPm1pbl9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2UgPQorCQloZHJfb3V0cHV0X21ldGFk YXRhLT5oZG1pX3R5cGUxLm1pbl9jbGw7CisJZnJhbWUtPm1heF9mYWxsID0gaGRyX291dHB1dF9t ZXRhZGF0YS0+aGRtaV90eXBlMS5tYXhfZmFsbDsKKwlmcmFtZS0+bWF4X2NsbCA9IGhkcl9vdXRw dXRfbWV0YWRhdGEtPmhkbWlfdHlwZTEubWF4X2NsbDsKKworCWhkbWlfaW5mb2ZyYW1lX2xvZyhL RVJOX0NSSVQsIE5VTEwsCisJCQkgICAodW5pb24gaGRtaV9pbmZvZnJhbWUgKilmcmFtZSk7CisK KwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2hkbWlfaW5mb2ZyYW1lX3NldF9oZHJf bWV0YWRhdGEpOworCisvKioKICAqIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5 X21vZGUoKSAtIGZpbGwgYW4gSERNSSBBVkkgaW5mb2ZyYW1lIHdpdGgKICAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgZnJvbSBhIERSTSBkaXNwbGF5 IG1vZGUKICAqIEBmcmFtZTogSERNSSBBVkkgaW5mb2ZyYW1lCmRpZmYgLS1naXQgYS9kcml2ZXJz L3ZpZGVvL2hkbWkuYyBiL2RyaXZlcnMvdmlkZW8vaGRtaS5jCmluZGV4IDc5OWFlNDkuLjEzM2Ez YzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vaGRtaS5jCisrKyBiL2RyaXZlcnMvdmlkZW8v aGRtaS5jCkBAIC02NTAsNiArNjUwLDE0NiBAQCBzc2l6ZV90IGhkbWlfdmVuZG9yX2luZm9mcmFt ZV9wYWNrKHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLAogCXJldHVybiAwOwog fQogCisvKioKKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9pbml0KCkgLSBpbml0aWFsaXplIGFuIEhE TUkgRHluYW1pbmMgUmFuZ2UgYW5kCisgKiBtYXN0ZXJpbmcgaW5mb2ZyYW1lCisgKiBAZnJhbWU6 IEhETUkgRFJNIGluZm9mcmFtZQorICoKKyAqIFJldHVybnMgMCBvbiBzdWNjZXNzIG9yIGEgbmVn YXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitpbnQgaGRtaV9kcm1faW5mb2ZyYW1l X2luaXQoc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpCit7CisJbWVtc2V0KGZyYW1l LCAwLCBzaXplb2YoKmZyYW1lKSk7CisKKwlmcmFtZS0+dHlwZSA9IEhETUlfSU5GT0ZSQU1FX1RZ UEVfRFJNOworCWZyYW1lLT52ZXJzaW9uID0gMTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZ TUJPTChoZG1pX2RybV9pbmZvZnJhbWVfaW5pdCk7CisKK3N0YXRpYyBpbnQgaGRtaV9kcm1faW5m b2ZyYW1lX2NoZWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUp Cit7CisJaWYgKGZyYW1lLT50eXBlICE9IEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNIHx8CisJICAg IGZyYW1lLT52ZXJzaW9uICE9IDEpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIDA7Cit9 CisKKy8qKgorICogaGRtaV9kcm1faW5mb2ZyYW1lX2NoZWNrKCkgLSBjaGVjayBhIEhETUkgRFJN IGluZm9mcmFtZQorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqCisgKiBWYWxpZGF0 ZXMgdGhhdCB0aGUgaW5mb2ZyYW1lIGlzIGNvbnNpc3RlbnQuCisgKiBSZXR1cm5zIDAgb24gc3Vj Y2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGhkbWlf ZHJtX2luZm9mcmFtZV9jaGVjayhzdHJ1Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSkKK3sK KwlyZXR1cm4gaGRtaV9kcm1faW5mb2ZyYW1lX2NoZWNrX29ubHkoZnJhbWUpOworfQorRVhQT1JU X1NZTUJPTChoZG1pX2RybV9pbmZvZnJhbWVfY2hlY2spOworCisvKioKKyAqIGhkbWlfZHJtX2lu Zm9mcmFtZV9wYWNrKCkgLSB3cml0ZSBIRE1JIERSTSBpbmZvZnJhbWUgdG8gYmluYXJ5IGJ1ZmZl cgorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqIEBidWZmZXI6IGRlc3RpbmF0aW9u IGJ1ZmZlcgorICogQHNpemU6IHNpemUgb2YgYnVmZmVyCisgKgorICogUGFja3MgdGhlIGluZm9y bWF0aW9uIGNvbnRhaW5lZCBpbiB0aGUgQGZyYW1lIHN0cnVjdHVyZSBpbnRvIGEgYmluYXJ5Cisg KiByZXByZXNlbnRhdGlvbiB0aGF0IGNhbiBiZSB3cml0dGVuIGludG8gdGhlIGNvcnJlc3BvbmRp bmcgY29udHJvbGxlcgorICogcmVnaXN0ZXJzLiBBbHNvIGNvbXB1dGVzIHRoZSBjaGVja3N1bSBh cyByZXF1aXJlZCBieSBzZWN0aW9uIDUuMy41IG9mCisgKiB0aGUgSERNSSAxLjQgc3BlY2lmaWNh dGlvbi4KKyAqCisgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcGFja2VkIGludG8gdGhl IGJpbmFyeSBidWZmZXIgb3IgYSBuZWdhdGl2ZQorICogZXJyb3IgY29kZSBvbiBmYWlsdXJlLgor ICovCitzc2l6ZV90IGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhk bWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsCisJCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCBz aXplKQoreworCXU4ICpwdHIgPSBidWZmZXI7CisJc2l6ZV90IGxlbmd0aDsKKwlpbnQgaTsKKwor CWxlbmd0aCA9IEhETUlfSU5GT0ZSQU1FX0hFQURFUl9TSVpFICsgZnJhbWUtPmxlbmd0aDsKKwor CWlmIChzaXplIDwgbGVuZ3RoKQorCQlyZXR1cm4gLUVOT1NQQzsKKworCW1lbXNldChidWZmZXIs IDAsIHNpemUpOworCisJcHRyWzBdID0gZnJhbWUtPnR5cGU7CisJcHRyWzFdID0gZnJhbWUtPnZl cnNpb247CisJcHRyWzJdID0gZnJhbWUtPmxlbmd0aDsKKwlwdHJbM10gPSAwOyAvKiBjaGVja3N1 bSAqLworCisJLyogc3RhcnQgaW5mb2ZyYW1lIHBheWxvYWQgKi8KKwlwdHIgKz0gSERNSV9JTkZP RlJBTUVfSEVBREVSX1NJWkU7CisKKwkqcHRyKysgPSBmcmFtZS0+ZW90ZjsKKwkqcHRyKysgPSBm cmFtZS0+bWV0YWRhdGFfdHlwZTsKKworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJKnB0 cisrID0gZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLng7CisJCSpwdHIrKyA9IGZyYW1lLT5k aXNwbGF5X3ByaW1hcmllc1tpXS54ID4+IDg7CisJCSpwdHIrKyA9IGZyYW1lLT5kaXNwbGF5X3By aW1hcmllc1tpXS55OworCQkqcHRyKysgPSBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueSA+ PiA4OworCX0KKworCSpwdHIrKyA9IGZyYW1lLT53aGl0ZV9wb2ludC54OworCSpwdHIrKyA9IGZy YW1lLT53aGl0ZV9wb2ludC54ID4+IDg7CisKKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQu eTsKKwkqcHRyKysgPSBmcmFtZS0+d2hpdGVfcG9pbnQueSA+PiA4OworCisJKnB0cisrID0gZnJh bWUtPm1heF9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2U7CisJKnB0cisrID0gZnJhbWUtPm1h eF9tYXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2UgPj4gODsKKworCSpwdHIrKyA9IGZyYW1lLT5t aW5fbWFzdGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlOworCSpwdHIrKyA9IGZyYW1lLT5taW5fbWFz dGVyaW5nX2Rpc3BsYXlfbHVtaW5hbmNlID4+IDg7CisKKwkqcHRyKysgPSBmcmFtZS0+bWF4X2Ns bDsKKwkqcHRyKysgPSBmcmFtZS0+bWF4X2NsbCA+PiA4OworCisJKnB0cisrID0gZnJhbWUtPm1h eF9mYWxsOworCSpwdHIrKyA9IGZyYW1lLT5tYXhfZmFsbCA+PiA4OworCisJaGRtaV9pbmZvZnJh bWVfc2V0X2NoZWNrc3VtKGJ1ZmZlciwgbGVuZ3RoKTsKKworCXJldHVybiBsZW5ndGg7Cit9CitF WFBPUlRfU1lNQk9MKGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkpOworCisvKioKKyAqIGhk bWlfZHJtX2luZm9mcmFtZV9wYWNrKCkgLSBjaGVjayBhIEhETUkgRFJNIGluZm9mcmFtZSwKKyAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgd3JpdGUgaXQgdG8gYmluYXJ5IGJ1ZmZl cgorICogQGZyYW1lOiBIRE1JIERSTSBpbmZvZnJhbWUKKyAqIEBidWZmZXI6IGRlc3RpbmF0aW9u IGJ1ZmZlcgorICogQHNpemU6IHNpemUgb2YgYnVmZmVyCisgKgorICogVmFsaWRhdGVzIHRoYXQg dGhlIGluZm9mcmFtZSBpcyBjb25zaXN0ZW50IGFuZCB1cGRhdGVzIGRlcml2ZWQgZmllbGRzCisg KiAoZWcuIGxlbmd0aCkgYmFzZWQgb24gb3RoZXIgZmllbGRzLCBhZnRlciB3aGljaCBpdCBwYWNr cyB0aGUgaW5mb3JtYXRpb24KKyAqIGNvbnRhaW5lZCBpbiB0aGUgQGZyYW1lIHN0cnVjdHVyZSBp bnRvIGEgYmluYXJ5IHJlcHJlc2VudGF0aW9uIHRoYXQKKyAqIGNhbiBiZSB3cml0dGVuIGludG8g dGhlIGNvcnJlc3BvbmRpbmcgY29udHJvbGxlciByZWdpc3RlcnMuIFRoaXMgZnVuY3Rpb24KKyAq IGFsc28gY29tcHV0ZXMgdGhlIGNoZWNrc3VtIGFzIHJlcXVpcmVkIGJ5IHNlY3Rpb24gNS4zLjUg b2YgdGhlIEhETUkgMS40CisgKiBzcGVjaWZpY2F0aW9uLgorICoKKyAqIFJldHVybnMgdGhlIG51 bWJlciBvZiBieXRlcyBwYWNrZWQgaW50byB0aGUgYmluYXJ5IGJ1ZmZlciBvciBhIG5lZ2F0aXZl CisgKiBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK3NzaXplX3QgaGRtaV9kcm1faW5mb2Zy YW1lX3BhY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUsCisJCQkJdm9pZCAqYnVm ZmVyLCBzaXplX3Qgc2l6ZSkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gaGRtaV9kcm1faW5mb2Zy YW1lX2NoZWNrKGZyYW1lKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGhk bWlfZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoZnJhbWUsIGJ1ZmZlciwgc2l6ZSk7Cit9CitFWFBP UlRfU1lNQk9MKGhkbWlfZHJtX2luZm9mcmFtZV9wYWNrKTsKKwogLyoKICAqIGhkbWlfdmVuZG9y X2FueV9pbmZvZnJhbWVfY2hlY2soKSAtIGNoZWNrIGEgdmVuZG9yIGluZm9mcmFtZQogICovCkBA IC03NTgsNiArODk4LDEwIEBAIHNzaXplX3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lX3BhY2soc3Ry dWN0IGhkbWlfdmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsCiAJCWxlbmd0aCA9IGhkbWlfYXZpX2lu Zm9mcmFtZV9wYWNrX29ubHkoJmZyYW1lLT5hdmksCiAJCQkJCQkgICAgICBidWZmZXIsIHNpemUp OwogCQlicmVhazsKKwljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOgorCQlsZW5ndGggPSBo ZG1pX2RybV9pbmZvZnJhbWVfcGFja19vbmx5KCZmcmFtZS0+ZHJtLAorCQkJCQkJICAgICAgYnVm ZmVyLCBzaXplKTsKKwkJYnJlYWs7CiAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX1NQRDoKIAkJ bGVuZ3RoID0gaGRtaV9zcGRfaW5mb2ZyYW1lX3BhY2tfb25seSgmZnJhbWUtPnNwZCwKIAkJCQkJ CSAgICAgIGJ1ZmZlciwgc2l6ZSk7CkBAIC04MDYsNiArOTUwLDkgQEAgc3NpemVfdCBoZG1pX3Zl bmRvcl9pbmZvZnJhbWVfcGFjayhzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1lICpmcmFtZSwK IAljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJOgogCQlsZW5ndGggPSBoZG1pX2F2aV9pbmZv ZnJhbWVfcGFjaygmZnJhbWUtPmF2aSwgYnVmZmVyLCBzaXplKTsKIAkJYnJlYWs7CisJY2FzZSBI RE1JX0lORk9GUkFNRV9UWVBFX0RSTToKKwkJbGVuZ3RoID0gaGRtaV9kcm1faW5mb2ZyYW1lX3Bh Y2soJmZyYW1lLT5kcm0sIGJ1ZmZlciwgc2l6ZSk7CisJCWJyZWFrOwogCWNhc2UgSERNSV9JTkZP RlJBTUVfVFlQRV9TUEQ6CiAJCWxlbmd0aCA9IGhkbWlfc3BkX2luZm9mcmFtZV9wYWNrKCZmcmFt ZS0+c3BkLCBidWZmZXIsIHNpemUpOwogCQlicmVhazsKQEAgLTgzOCw2ICs5ODUsOCBAQCBzdGF0 aWMgY29uc3QgY2hhciAqaGRtaV9pbmZvZnJhbWVfdHlwZV9nZXRfbmFtZShlbnVtIGhkbWlfaW5m b2ZyYW1lX3R5cGUgdHlwZSkKIAkJcmV0dXJuICJTb3VyY2UgUHJvZHVjdCBEZXNjcmlwdGlvbiAo U1BEKSI7CiAJY2FzZSBIRE1JX0lORk9GUkFNRV9UWVBFX0FVRElPOgogCQlyZXR1cm4gIkF1ZGlv IjsKKwljYXNlIEhETUlfSU5GT0ZSQU1FX1RZUEVfRFJNOgorCQlyZXR1cm4gIkR5bmFtaWMgUmFu Z2UgYW5kIE1hc3RlcmluZyI7CiAJfQogCXJldHVybiAiUmVzZXJ2ZWQiOwogfQpAQCAtMTI4NCw2 ICsxNDMzLDQwIEBAIHN0YXRpYyB2b2lkIGhkbWlfYXVkaW9faW5mb2ZyYW1lX2xvZyhjb25zdCBj aGFyICpsZXZlbCwKIAkJCWZyYW1lLT5kb3dubWl4X2luaGliaXQgPyAiWWVzIiA6ICJObyIpOwog fQogCisvKioKKyAqIGhkbWlfZHJtX2luZm9mcmFtZV9sb2coKSAtIGxvZyBpbmZvIG9mIEhETUkg RFJNIGluZm9mcmFtZQorICogQGxldmVsOiBsb2dnaW5nIGxldmVsCisgKiBAZGV2OiBkZXZpY2UK KyAqIEBmcmFtZTogSERNSSBEUk0gaW5mb2ZyYW1lCisgKi8KK3N0YXRpYyB2b2lkIGhkbWlfZHJt X2luZm9mcmFtZV9sb2coY29uc3QgY2hhciAqbGV2ZWwsCisJCQkJICAgc3RydWN0IGRldmljZSAq ZGV2LAorCQkJCSAgIGNvbnN0IHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKQorewor CWludCBpOworCisJaGRtaV9pbmZvZnJhbWVfbG9nX2hlYWRlcihsZXZlbCwgZGV2LAorCQkJCSAg KHN0cnVjdCBoZG1pX2FueV9pbmZvZnJhbWUgKilmcmFtZSk7CisJaGRtaV9sb2coImxlbmd0aDog JWRcbiIsIGZyYW1lLT5sZW5ndGgpOworCWhkbWlfbG9nKCJtZXRhZGF0YSB0eXBlOiAlZFxuIiwg ZnJhbWUtPm1ldGFkYXRhX3R5cGUpOworCWhkbWlfbG9nKCJlb3RmOiAlZFxuIiwgZnJhbWUtPmVv dGYpOworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKKwkJaGRtaV9sb2coInhbJWRdOiAlZFxu IiwgaSwgZnJhbWUtPmRpc3BsYXlfcHJpbWFyaWVzW2ldLngpOworCQloZG1pX2xvZygieVslZF06 ICVkXG4iLCBpLCBmcmFtZS0+ZGlzcGxheV9wcmltYXJpZXNbaV0ueSk7CisJfQorCisJaGRtaV9s b2coIndoaXRlIHBvaW50IHg6ICVkXG4iLCBmcmFtZS0+d2hpdGVfcG9pbnQueCk7CisJaGRtaV9s b2coIndoaXRlIHBvaW50IHk6ICVkXG4iLCBmcmFtZS0+d2hpdGVfcG9pbnQueSk7CisKKwloZG1p X2xvZygibWF4X21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZTogJWRcbiIsCisJCSBmcmFtZS0+ bWF4X21hc3RlcmluZ19kaXNwbGF5X2x1bWluYW5jZSk7CisJaGRtaV9sb2coIm1pbl9tYXN0ZXJp bmdfZGlzcGxheV9sdW1pbmFuY2U6ICVkXG4iLAorCQkgZnJhbWUtPm1pbl9tYXN0ZXJpbmdfZGlz cGxheV9sdW1pbmFuY2UpOworCisJaGRtaV9sb2coIm1heF9jbGw6ICVkXG4iLCBmcmFtZS0+bWF4 X2NsbCk7CisJaGRtaV9sb2coIm1heF9mYWxsOiAlZFxuIiwgZnJhbWUtPm1heF9mYWxsKTsKK30K Kwogc3RhdGljIGNvbnN0IGNoYXIgKgogaGRtaV8zZF9zdHJ1Y3R1cmVfZ2V0X25hbWUoZW51bSBo ZG1pXzNkX3N0cnVjdHVyZSBzM2Rfc3RydWN0KQogewpAQCAtMTM3Miw2ICsxNTU1LDkgQEAgdm9p ZCBoZG1pX2luZm9mcmFtZV9sb2coY29uc3QgY2hhciAqbGV2ZWwsCiAJY2FzZSBIRE1JX0lORk9G UkFNRV9UWVBFX1ZFTkRPUjoKIAkJaGRtaV92ZW5kb3JfYW55X2luZm9mcmFtZV9sb2cobGV2ZWws IGRldiwgJmZyYW1lLT52ZW5kb3IpOwogCQlicmVhazsKKwljYXNlIEhETUlfSU5GT0ZSQU1FX1RZ UEVfRFJNOgorCQloZG1pX2RybV9pbmZvZnJhbWVfbG9nKGxldmVsLCBkZXYsICZmcmFtZS0+ZHJt KTsKKwkJYnJlYWs7CiAJfQogfQogRVhQT1JUX1NZTUJPTChoZG1pX2luZm9mcmFtZV9sb2cpOwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaCBiL2luY2x1ZGUvZHJtL2RybV9lZGlk LmgKaW5kZXggOWQzYjViOS4uZDgxYzVjMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Vk aWQuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNp bmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2hkbWkuaD4KKyNpbmNsdWRl IDxkcm0vZHJtX21vZGUuaD4KIAogc3RydWN0IGRybV9kZXZpY2U7CiBzdHJ1Y3QgaTJjX2FkYXB0 ZXI7CkBAIC0zNzAsNiArMzcxLDEwIEBAIGludCBkcm1fYXZfc3luY19kZWxheShzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlLAogCQkJCSAgIGVudW0gaGRtaV9xdWFudGl6YXRpb25fcmFuZ2UgcmdiX3F1YW50 X3JhbmdlKTsKIAoraW50Citkcm1faGRtaV9pbmZvZnJhbWVfc2V0X2hkcl9tZXRhZGF0YShzdHJ1 Y3QgaGRtaV9kcm1faW5mb2ZyYW1lICpmcmFtZSwKKwkJCQkgICAgc3RydWN0IGhkcl9vdXRwdXRf bWV0YWRhdGEgKmhkcl9tZXRhZGF0YSk7CisKIC8qKgogICogZHJtX2VsZF9tbmwgLSBHZXQgRUxE IG1vbml0b3IgbmFtZSBsZW5ndGggaW4gYnl0ZXMuCiAgKiBAZWxkOiBwb2ludGVyIHRvIGFuIGVs ZCBtZW1vcnkgc3RydWN0dXJlIHdpdGggbW5sIHNldApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9oZG1pLmggYi9pbmNsdWRlL2xpbnV4L2hkbWkuaAppbmRleCBhMDY1MTk0Li5hMjNjNWU3IDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2hkbWkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2hkbWku aApAQCAtNDcsNiArNDcsNyBAQCBlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgewogCUhETUlfSU5G T0ZSQU1FX1RZUEVfQVZJID0gMHg4MiwKIAlIRE1JX0lORk9GUkFNRV9UWVBFX1NQRCA9IDB4ODMs CiAJSERNSV9JTkZPRlJBTUVfVFlQRV9BVURJTyA9IDB4ODQsCisJSERNSV9JTkZPRlJBTUVfVFlQ RV9EUk0gPSAweDg3LAogfTsKIAogI2RlZmluZSBIRE1JX0lFRUVfT1VJIDB4MDAwYzAzCkBAIC0x ODUsMTIgKzE4NiwzNyBAQCBzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lIHsKIAl1bnNpZ25lZCBz aG9ydCByaWdodF9iYXI7CiB9OwogCisvKiBEUk0gSW5mb2ZyYW1lIGFzIHBlciBDVEEgODYxLkcg c3BlYyAqLworc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSB7CisJZW51bSBoZG1pX2luZm9mcmFt ZV90eXBlIHR5cGU7CisJdW5zaWduZWQgY2hhciB2ZXJzaW9uOworCXVuc2lnbmVkIGNoYXIgbGVu Z3RoOworCWVudW0gaGRtaV9lb3RmIGVvdGY7CisJZW51bSBoZG1pX21ldGFkYXRhX3R5cGUgbWV0 YWRhdGFfdHlwZTsKKwlzdHJ1Y3QgeworCQl1MTYgeCwgeTsKKwl9IGRpc3BsYXlfcHJpbWFyaWVz WzNdOworCXN0cnVjdCB7CisJCXUxNiB4LCB5OworCX0gd2hpdGVfcG9pbnQ7CisJdTE2IG1heF9t YXN0ZXJpbmdfZGlzcGxheV9sdW1pbmFuY2U7CisJdTE2IG1pbl9tYXN0ZXJpbmdfZGlzcGxheV9s dW1pbmFuY2U7CisJdTE2IG1heF9jbGw7CisJdTE2IG1heF9mYWxsOworfTsKKwogaW50IGhkbWlf YXZpX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lKTsKIHNz aXplX3QgaGRtaV9hdmlfaW5mb2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAq ZnJhbWUsIHZvaWQgKmJ1ZmZlciwKIAkJCQlzaXplX3Qgc2l6ZSk7CiBzc2l6ZV90IGhkbWlfYXZp X2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJh bWUsCiAJCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsKIGludCBoZG1pX2F2aV9p bmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUpOworaW50IGhk bWlfZHJtX2luZm9mcmFtZV9pbml0KHN0cnVjdCBoZG1pX2RybV9pbmZvZnJhbWUgKmZyYW1lKTsK K3NzaXplX3QgaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFt ZSAqZnJhbWUsIHZvaWQgKmJ1ZmZlciwKKwkJCQlzaXplX3Qgc2l6ZSk7Citzc2l6ZV90IGhkbWlf ZHJtX2luZm9mcmFtZV9wYWNrX29ubHkoY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAq ZnJhbWUsCisJCQkJICAgICB2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKTsKK2ludCBoZG1pX2Ry bV9pbmZvZnJhbWVfY2hlY2soc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZnJhbWUpOwogCiBl bnVtIGhkbWlfc3BkX3NkaSB7CiAJSERNSV9TUERfU0RJX1VOS05PV04sCkBAIC0zNjUsNiArMzkx LDcgQEAgc3NpemVfdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfcGFja19vbmx5KGNvbnN0IHN0cnVj dCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW0KIAlzdHJ1Y3QgaGRtaV9zcGRfaW5mb2ZyYW1l IHNwZDsKIAl1bmlvbiBoZG1pX3ZlbmRvcl9hbnlfaW5mb2ZyYW1lIHZlbmRvcjsKIAlzdHJ1Y3Qg aGRtaV9hdWRpb19pbmZvZnJhbWUgYXVkaW87CisJc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSBk cm07CiB9OwogCiBzc2l6ZV90IGhkbWlfaW5mb2ZyYW1lX3BhY2sodW5pb24gaGRtaV9pbmZvZnJh bWUgKmZyYW1lLCB2b2lkICpidWZmZXIsCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4