From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 1/8] drm: Add optional COLOR_ENCODING and COLOR_RANGE properties to drm_plane Date: Wed, 14 Feb 2018 21:23:20 +0200 Message-ID: <20180214192327.3250-2-ville.syrjala@linux.intel.com> References: <20180214192327.3250-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180214192327.3250-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, Russell King - ARM Linux , Hans Verkuil , Uma Shankar , Jyri Sarha List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSnlyaSBTYXJoYSA8anNhcmhhQHRpLmNvbT4KCkFkZCBhIHN0YW5kYXJkIG9wdGlvbmFs IHByb3BlcnRpZXMgdG8gc3VwcG9ydCBkaWZmZXJlbnQgbm9uIFJHQiBjb2xvcgplbmNvZGluZ3Mg aW4gRFJNIHBsYW5lcy4gQ09MT1JfRU5DT0RJTkcgc2VsZWN0IHRoZSBzdXBwb3J0ZWQgbm9uIFJH Qgpjb2xvciBlbmNvZGluZywgZm9yIGluc3RhbmNlIElUVS1SIEJULjcwOSBZQ2JDci4gQ09MT1Jf UkFOR0Ugc2VsZWN0cwp0aGUgdmFsdWUgcmFuZ2VzIHdpdGhpbiB0aGUgc2VsZWN0ZWQgY29sb3Ig ZW5jb2RpbmcuIFRoZSBwcm9wZXJ0aWVzCmFyZSBzdG9yZWQgdG8gZHJtX3BsYW5lIG9iamVjdCB0 byBhbGxvdyBkaWZmZXJlbnQgc2V0IG9mIHN1cHBvcnRlZAplbmNvZGluZyBmb3IgZGlmZmVyZW50 IHBsYW5lcyBvbiB0aGUgZGV2aWNlLgoKQ2M6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFu ZEBhbWQuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgpDYzogRGFuaWVs IFN0b25lIDxkYW5pZWxAZm9vaXNoYmFyLm9yZz4KQ2M6IFJ1c3NlbGwgS2luZyAtIEFSTSBMaW51 eCA8bGludXhAYXJtbGludXgub3JnLnVrPgpDYzogSWxpYSBNaXJraW4gPGltaXJraW5AYWx1bS5t aXQuZWR1PgpDYzogSGFucyBWZXJrdWlsIDxodmVya3VpbEB4czRhbGwubmw+CkNjOiBVbWEgU2hh bmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPgpDYzogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFu ay5zaGFybWFAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSnlyaSBTYXJoYSA8anNhcmhh QHRpLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICB8ICA4ICsrKysK IGRyaXZlcnMvZ3B1L2RybS9kcm1fY29sb3JfbWdtdC5jIHwgOTEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaCAgICAg fCAxOSArKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9wbGFuZS5oICAgICAgICAgIHwgIDggKysr KwogNCBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCmlu ZGV4IDQ2NzMzZDUzNDU4Ny4uNDUyYTBiMGJhZmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKQEAgLTc1 OSw2ICs3NTksMTAgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX3BsYW5lX3NldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJc3RhdGUtPnJvdGF0aW9uID0gdmFsOwogCX0gZWxz ZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKIAkJc3RhdGUtPnpwb3Mg PSB2YWw7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JfZW5jb2RpbmdfcHJv cGVydHkpIHsKKwkJc3RhdGUtPmNvbG9yX2VuY29kaW5nID0gdmFsOworCX0gZWxzZSBpZiAocHJv cGVydHkgPT0gcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5KSB7CisJCXN0YXRlLT5jb2xvcl9y YW5nZSA9IHZhbDsKIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0 eSkgewogCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBz dGF0ZSwKIAkJCQlwcm9wZXJ0eSwgdmFsKTsKQEAgLTgxOCw2ICs4MjIsMTAgQEAgZHJtX2F0b21p Y19wbGFuZV9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCSp2YWwgPSBz dGF0ZS0+cm90YXRpb247CiAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+enBvc19wcm9w ZXJ0eSkgewogCQkqdmFsID0gc3RhdGUtPnpwb3M7CisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBw bGFuZS0+Y29sb3JfZW5jb2RpbmdfcHJvcGVydHkpIHsKKwkJKnZhbCA9IHN0YXRlLT5jb2xvcl9l bmNvZGluZzsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9wcm9w ZXJ0eSkgeworCQkqdmFsID0gc3RhdGUtPmNvbG9yX3JhbmdlOwogCX0gZWxzZSBpZiAocGxhbmUt PmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7CiAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0 b21pY19nZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKIAl9IGVsc2Ug ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwppbmRleCAwZDAwMmIwNDViZDIuLmE4NGZjODYxZTQw NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMKQEAgLTg4LDYgKzg4LDE5IEBACiAgKiBkcm1f bW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKCkuIERyaXZlcnMgd2hpY2ggc3VwcG9ydCBib3RoIHNo b3VsZCB1c2UKICAqIGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQoKSB0byBhbGlh cyB0aGUgbGVnYWN5IGdhbW1hIHJhbXAgd2l0aCB0aGUKICAqICJHQU1NQV9MVVQiIHByb3BlcnR5 IGFib3ZlLgorICoKKyAqIFN1cHBvcnQgZm9yIGRpZmZlcmVudCBub24gUkdCIGNvbG9yIGVuY29k aW5ncyBpcyBjb250cm9sbGVkIHRocm91Z2gKKyAqICZkcm1fcGxhbmUgc3BlY2lmaWMgQ09MT1Jf RU5DT0RJTkcgYW5kIENPTE9SX1JBTkdFIHByb3BlcnRpZXM6CisgKgorICogIkNPTE9SX0VOQ09E SU5HIgorICogCU9wdGlvbmFsIHBsYW5lIGVudW0gcHJvcGVydHkgdG8gc3VwcG9ydCBkaWZmZXJl bnQgbm9uIFJHQgorICogCWNvbG9yIGVuY29kaW5ncy4gVGhlIGRyaXZlciBjYW4gcHJvdmlkZSBh IHN1YnNldCBvZiBzdGFuZGFyZAorICogCWVudW0gdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgRFJN IHBsYW5lLgorICoKKyAqICJDT0xPUl9SQU5HRSIKKyAqIAlPcHRpb25hbCBwbGFuZSBlbnVtIHBy b3BlcnR5IHRvIHN1cHBvcnQgZGlmZmVyZW50IG5vbiBSR0IKKyAqIAljb2xvciBwYXJhbWV0ZXIg cmFuZ2VzLiBUaGUgZHJpdmVyIGNhbiBwcm92aWRlIGEgc3Vic2V0IG9mCisgKiAJc3RhbmRhcmQg ZW51bSB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBEUk0gcGxhbmUuCiAgKi8KIAogLyoqCkBAIC0z MzksMyArMzUyLDgxIEBAIGludCBkcm1fbW9kZV9nYW1tYV9nZXRfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAlkcm1fbW9kZXNldF91bmxvY2soJmNydGMtPm11dGV4KTsKIAlyZXR1cm4g cmV0OwogfQorCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNvbG9yX2VuY29kaW5nX25hbWVb XSA9IHsKKwlbRFJNX0NPTE9SX1lDQkNSX0JUNjAxXSA9ICJJVFUtUiBCVC42MDEgWUNiQ3IiLAor CVtEUk1fQ09MT1JfWUNCQ1JfQlQ3MDldID0gIklUVS1SIEJULjcwOSBZQ2JDciIsCisJW0RSTV9D T0xPUl9ZQ0JDUl9CVDIwMjBdID0gIklUVS1SIEJULjIwMjAgWUNiQ3IiLAorfTsKKworc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBjb2xvcl9yYW5nZV9uYW1lW10gPSB7CisJW0RSTV9DT0xPUl9Z Q0JDUl9GVUxMX1JBTkdFXSA9ICJZQ2JDciBmdWxsIHJhbmdlIiwKKwlbRFJNX0NPTE9SX1lDQkNS X0xJTUlURURfUkFOR0VdID0gIllDYkNyIGxpbWl0ZWQgcmFuZ2UiLAorfTsKKworLyoqCisgKiBk cm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMgLSBjb2xvciBlbmNvZGluZyByZWxhdGVk IHBsYW5lIHByb3BlcnRpZXMKKyAqIEBzdXBwb3J0ZWRfZW5jb2RpbmdzOiBiaXRmaWVsZCBpbmRp Y2F0aW5nIHN1cHBvcnRlZCBjb2xvciBlbmNvZGluZ3MKKyAqIEBzdXBwb3J0ZWRfcmFuZ2VzOiBi aXRmaWxlbGQgaW5kaWNhdGluZyBzdXBwb3J0ZWQgY29sb3IgcmFuZ2VzCisgKiBAZGVmYXVsdF9l bmNvZGluZzogZGVmYXVsdCBjb2xvciBlbmNvZGluZworICogQGRlZmF1bHRfcmFuZ2U6IGRlZmF1 bHQgY29sb3IgcmFuZ2UKKyAqCisgKiBDcmVhdGUgYW5kIGF0dGFjaCBwbGFuZSBzcGVjaWZpYyBD T0xPUl9FTkNPRElORyBhbmQgQ09MT1JfUkFOR0UKKyAqIHByb3BlcnRpZXMgdG8gdG8gdGhlIGRy bV9wbGFuZSBvYmplY3QuIFRoZSBzdXBwb3J0ZWQgZW5jb2RpbmdzIGFuZAorICogcmFuZ2VzIHNo b3VsZCBiZSBwcm92aWRlZCBpbiBzdXBwb3J0ZWRfZW5jb2RpbmdzIGFuZAorICogc3VwcG9ydGVk X3JhbmdlcyBiaXRtYXNrcy4gRWFjaCBiaXQgc2V0IGluIHRoZSBiaXRtYXNrIGluZGljYXRlcwor ICogdGhlIGl0cyBudW1iZXIgYXMgZW51bSB2YWx1ZSBiZWluZyBzdXBwb3J0ZWQuCisgKi8KK2lu dCBkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCisJCQkJICAgICAgdTMyIHN1cHBvcnRlZF9lbmNvZGluZ3MsCisJCQkJICAgICAgdTMyIHN1 cHBvcnRlZF9yYW5nZXMsCisJCQkJICAgICAgZW51bSBkcm1fY29sb3JfZW5jb2RpbmcgZGVmYXVs dF9lbmNvZGluZywKKwkJCQkgICAgICBlbnVtIGRybV9jb2xvcl9yYW5nZSBkZWZhdWx0X3Jhbmdl KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3A7CisJc3RydWN0IGRybV9wcm9wX2VudW1fbGlzdCBlbnVtX2xpc3RbbWF4 KERSTV9DT0xPUl9FTkNPRElOR19NQVgsCisJCQkJCQlEUk1fQ09MT1JfUkFOR0VfTUFYKV07CisJ aW50IGksIGxlbjsKKworCWxlbiA9IDA7CisJZm9yIChpID0gMDsgaSA8IERSTV9DT0xPUl9FTkNP RElOR19NQVg7IGkrKykgeworCQlpZiAoKHN1cHBvcnRlZF9lbmNvZGluZ3MgJiBCSVQoaSkpID09 IDApCisJCQljb250aW51ZTsKKworCQllbnVtX2xpc3RbbGVuXS50eXBlID0gaTsKKwkJZW51bV9s aXN0W2xlbl0ubmFtZSA9IGNvbG9yX2VuY29kaW5nX25hbWVbaV07CisJCWxlbisrOworCX0KKwor CXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2LCAwLCAiQ09MT1JfRU5DT0RJTkci LAorCQkJCQllbnVtX2xpc3QsIGxlbik7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsK KwlwbGFuZS0+Y29sb3JfZW5jb2RpbmdfcHJvcGVydHkgPSBwcm9wOworCWRybV9vYmplY3RfYXR0 YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgZGVmYXVsdF9lbmNvZGluZyk7CisJaWYg KHBsYW5lLT5zdGF0ZSkKKwkJcGxhbmUtPnN0YXRlLT5jb2xvcl9lbmNvZGluZyA9IGRlZmF1bHRf ZW5jb2Rpbmc7CisKKwlsZW4gPSAwOworCWZvciAoaSA9IDA7IGkgPCBEUk1fQ09MT1JfUkFOR0Vf TUFYOyBpKyspIHsKKwkJaWYgKChzdXBwb3J0ZWRfcmFuZ2VzICYgQklUKGkpKSA9PSAwKQorCQkJ Y29udGludWU7CisKKwkJZW51bV9saXN0W2xlbl0udHlwZSA9IGk7CisJCWVudW1fbGlzdFtsZW5d Lm5hbWUgPSBjb2xvcl9yYW5nZV9uYW1lW2ldOworCQlsZW4rKzsKKwl9CisKKwlwcm9wID0gZHJt X3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgMCwJIkNPTE9SX1JBTkdFIiwKKwkJCQkJZW51bV9s aXN0LCBsZW4pOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJcGxhbmUtPmNvbG9y X3JhbmdlX3Byb3BlcnR5ID0gcHJvcDsKKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxh bmUtPmJhc2UsIHByb3AsIGRlZmF1bHRfcmFuZ2UpOworCWlmIChwbGFuZS0+c3RhdGUpCisJCXBs YW5lLT5zdGF0ZS0+Y29sb3JfcmFuZ2UgPSBkZWZhdWx0X3JhbmdlOworCisJcmV0dXJuIDA7Cit9 CitFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9jcmVhdGVfY29sb3JfcHJvcGVydGllcyk7CmRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29sb3JfbWdtdC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nv bG9yX21nbXQuaAppbmRleCAwM2E1OWNiY2U2MjEuLmIzYjZkMzAyY2E4YyAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fY29sb3Jf bWdtdC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KIAogc3Ry dWN0IGRybV9jcnRjOworc3RydWN0IGRybV9wbGFuZTsKIAogdWludDMyX3QgZHJtX2NvbG9yX2x1 dF9leHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsIHVpbnQzMl90IGJpdF9wcmVjaXNpb24pOwog CkBAIC0zNyw0ICszOCwyMiBAQCB2b2lkIGRybV9jcnRjX2VuYWJsZV9jb2xvcl9tZ210KHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIGludCBkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgaW50IGdhbW1hX3NpemUpOwogCitlbnVtIGRybV9jb2xv cl9lbmNvZGluZyB7CisJRFJNX0NPTE9SX1lDQkNSX0JUNjAxLAorCURSTV9DT0xPUl9ZQ0JDUl9C VDcwOSwKKwlEUk1fQ09MT1JfWUNCQ1JfQlQyMDIwLAorCURSTV9DT0xPUl9FTkNPRElOR19NQVgs Cit9OworCitlbnVtIGRybV9jb2xvcl9yYW5nZSB7CisJRFJNX0NPTE9SX1lDQkNSX0xJTUlURURf UkFOR0UsCisJRFJNX0NPTE9SX1lDQkNSX0ZVTExfUkFOR0UsCisJRFJNX0NPTE9SX1JBTkdFX01B WCwKK307CisKK2ludCBkcm1fcGxhbmVfY3JlYXRlX2NvbG9yX3Byb3BlcnRpZXMoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCisJCQkJICAgICAgdTMyIHN1cHBvcnRlZF9lbmNvZGluZ3MsCisJCQkJ ICAgICAgdTMyIHN1cHBvcnRlZF9yYW5nZXMsCisJCQkJICAgICAgZW51bSBkcm1fY29sb3JfZW5j b2RpbmcgZGVmYXVsdF9lbmNvZGluZywKKwkJCQkgICAgICBlbnVtIGRybV9jb2xvcl9yYW5nZSBk ZWZhdWx0X3JhbmdlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5l LmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAppbmRleCA4MTg1ZTM0NjhhMjMuLmMwYTI0MmRj ZGE0NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKKysrIGIvaW5jbHVkZS9k cm0vZHJtX3BsYW5lLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+ CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21vZGVfb2JqZWN0 Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jb2xvcl9tZ210Lmg+CiAKIHN0cnVjdCBkcm1fY3J0YzsK IHN0cnVjdCBkcm1fcHJpbnRlcjsKQEAgLTExMiw2ICsxMTMsMTAgQEAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSB7CiAJdW5zaWduZWQgaW50IHpwb3M7CiAJdW5zaWduZWQgaW50IG5vcm1hbGl6ZWRf enBvczsKIAorCS8qIENvbG9yIGVuY29kaW5nIGZvciBub24gUkdCIGZvcm1hdHMgKi8KKwllbnVt IGRybV9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZzsKKwllbnVtIGRybV9jb2xvcl9yYW5n ZSBjb2xvcl9yYW5nZTsKKwogCS8qIENsaXBwZWQgY29vcmRpbmF0ZXMgKi8KIAlzdHJ1Y3QgZHJt X3JlY3Qgc3JjLCBkc3Q7CiAKQEAgLTU1OCw2ICs1NjMsOSBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsK IAogCXN0cnVjdCBkcm1fcHJvcGVydHkgKnpwb3NfcHJvcGVydHk7CiAJc3RydWN0IGRybV9wcm9w ZXJ0eSAqcm90YXRpb25fcHJvcGVydHk7CisKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjb2xvcl9l bmNvZGluZ19wcm9wZXJ0eTsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjb2xvcl9yYW5nZV9wcm9w ZXJ0eTsKIH07CiAKICNkZWZpbmUgb2JqX3RvX3BsYW5lKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1 Y3QgZHJtX3BsYW5lLCBiYXNlKQotLSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwK