From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jyri Sarha Subject: [PATCH RFC 6/6] drm/omap: Enable ycbcr_to_rgb_properties for omapdrm planes REVISIT Date: Fri, 21 Apr 2017 12:51:17 +0300 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from lelnx194.ext.ti.com (lelnx194.ext.ti.com [198.47.27.80]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1190E6E418 for ; Fri, 21 Apr 2017 09:51:50 +0000 (UTC) In-Reply-To: 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: Liviu.Dudau@arm.com, Jyri Sarha , tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org QWRkcyBzdXBwb3J0IGZvciBZQ0JDUl9UT19SR0JfTU9ERSBhbmQgWUNCQ1JfVE9fUkdCX0NTQyBw cm9wZXJ0aWVzIHRvCm9tYXBfcGxhbmUuYyBhbmQgZGlzcGMuYy4gVGhlIHN1cHBvcnRlZCBDU0Mg cHJlc2V0cyBhcmU6CgotIFlDYkN0IEJULjYwMSBsaW1pdGVkIHJhbmdlIHRvIFJHQiBCVC42MDEg ZnVsbCByYW5nZQotIFlDYkN0IEJULjYwMSBmdWxsIHJhbmdlIHRvIFJHQiBCVC42MDEgZnVsbCBy YW5nZQotIFlDYkN0IEJULjcwOSBsaW1pdGVkIHJhbmdlIHRvIFJHQiBCVC43MDkgZnVsbCByYW5n ZQoKQ3VzdG9tIENTQyB3aXRoIFlDYkNyIGxpbWl0ZWQgYW5kIGZ1bGwgcmFuZ2UgcHJlb2Zmc2V0 cyBhcmUKYWxzbyBzdXBwb3J0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBKeXJpIFNhcmhhIDxqc2FyaGFA dGkuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jICAgfCAxMzEg KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL29tYXBkc3MuaCB8ICAxNCArKysrCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFw X3BsYW5lLmMgIHwgIDQxICsrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRp b25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21h cGRybS9kc3MvZGlzcGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCmlu ZGV4IGYyYTJkMDguLjQ4ZGZiOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L2Rzcy9kaXNwYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwYy5jCkBA IC03NTIsMTYgKzc1Miw2IEBAIHN0YXRpYyB2b2lkIGRpc3BjX292bF9zZXRfc2NhbGVfY29lZihl bnVtIG9tYXBfcGxhbmVfaWQgcGxhbmUsIGludCBmaXJfaGluYywKIAl9CiB9CiAKLXN0cnVjdCBj c2NfY29lZl95dXYycmdiIHsKLQlpbnQgcnksIHJjYiwgcmNyLCBneSwgZ2NiLCBnY3IsIGJ5LCBi Y2IsIGJjcjsKLQlib29sIGZ1bGxfcmFuZ2U7Ci19OwotCi1zdHJ1Y3QgY3NjX2NvZWZfcmdiMnl1 diB7Ci0JaW50IHlyLCB5ZywgeWIsIGNiciwgY2JnLCBjYmIsIGNyciwgY3JnLCBjcmI7Ci0JYm9v bCBmdWxsX3JhbmdlOwotfTsKLQogc3RhdGljIHZvaWQgZGlzcGNfb3ZsX3dyaXRlX2NvbG9yX2Nv bnZfY29lZihlbnVtIG9tYXBfcGxhbmVfaWQgcGxhbmUsCiAJCWNvbnN0IHN0cnVjdCBjc2NfY29l Zl95dXYycmdiICpjdCkKIHsKQEAgLTc5NSw2ICs3ODUsNTQgQEAgc3RhdGljIHZvaWQgZGlzcGNf d2Jfd3JpdGVfY29sb3JfY29udl9jb2VmKGNvbnN0IHN0cnVjdCBjc2NfY29lZl9yZ2IyeXV2ICpj dCkKICN1bmRlZiBDVkFMCiB9CiAKKy8qIFlVViAtPiBSR0IsIElUVS1SIEJULjYwMSwgZnVsbCBy YW5nZSAqLworY29uc3Qgc3RhdGljIHN0cnVjdCBjc2NfY29lZl95dXYycmdiIGNvZWZzX3l1djJy Z2JfYnQ2MDFfZnVsbCA9IHsKKwkyNTYsICAgMCwgIDM1OCwJCS8qIHJ5LCByY2IsIHJjciB8MS4w MDAgIDAuMDAwICAxLjQwMnwqLworCTI1NiwgLTg4LCAtMTgyLAkJLyogZ3ksIGdjYiwgZ2NyIHwx LjAwMCAtMC4zNDQgLTAuNzE0fCovCisJMjU2LCA0NTIsICAgIDAsCQkvKiBieSwgYmNiLCBiY3Ig fDEuMDAwICAxLjc3MiAgMC4wMDB8Ki8KKwl0cnVlLAkJCS8qIGZ1bGwgcmFuZ2UgKi8KK307CisK Ky8qIFlVViAtPiBSR0IsIElUVS1SIEJULjYwMSwgbGltaXRlZCByYW5nZSAqLworY29uc3Qgc3Rh dGljIHN0cnVjdCBjc2NfY29lZl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ2MDFfbGltID0gewor CTI5OCwgICAgMCwgIDQwOSwJLyogcnksIHJjYiwgcmNyIHwxLjE2NCAgMC4wMDAgIDEuNTk2fCov CisJMjk4LCAtMTAwLCAtMjA4LAkvKiBneSwgZ2NiLCBnY3IgfDEuMTY0IC0wLjM5MiAtMC44MTN8 Ki8KKwkyOTgsICA1MTYsICAgIDAsCS8qIGJ5LCBiY2IsIGJjciB8MS4xNjQgIDIuMDE3ICAwLjAw MHwqLworCWZhbHNlLAkJCS8qIGxpbWl0ZWQgcmFuZ2UgKi8KK307CisKKy8qIFlVViAtPiBSR0Is IElUVS1SIEJULjcwOSwgbGltaXRlZCByYW5nZSAqLworY29uc3Qgc3RhdGljIHN0cnVjdCBjc2Nf Y29lZl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ3MDlfbGltID0geworCTI5OCwgICAgMCwgIDQ1 OSwJLyogcnksIHJjYiwgcmNyIHwxLjE2NCAgMC4wMDAgIDEuNzkzfCovCisJMjk4LCAgLTU1LCAt MTM2LAkvKiBneSwgZ2NiLCBnY3IgfDEuMTY0IC0wLjIxMyAtMC41MzN8Ki8KKwkyOTgsICA1NDEs ICAgIDAsCS8qIGJ5LCBiY2IsIGJjciB8MS4xNjQgIDIuMTEyICAwLjAwMHwqLworCWZhbHNlLAkJ CS8qIGxpbWl0ZWQgcmFuZ2UgKi8KK307CisKKy8qIFJHQiAtPiBZVVYsIElUVS1SIEJULjYwMSwg bGltaXRlZCByYW5nZSAqLworY29uc3Qgc3RydWN0IGNzY19jb2VmX3JnYjJ5dXYgY29lZnNfcmdi Mnl1dl9idDYwMV9saW0gPSB7CisJIDY2LCAxMjksICAyNSwJCS8qIHlyLCAgIHlnLCAgeWIgfCAw LjI1NyAgMC41MDQgIDAuMDk4fCovCisJLTM4LCAtNzQsIDExMiwJCS8qIGNiciwgY2JnLCBjYmIg fC0wLjE0OCAtMC4yOTEgIDAuNDM5fCovCisJMTEyLCAtOTQsIC0xOCwJCS8qIGNyciwgY3JnLCBj cmIgfCAwLjQzOSAtMC4zNjggLTAuMDcxfCovCisJZmFsc2UsCQkJLyogbGltaXRlZCByYW5nZSAq LworfTsKKworLyogUkdCIC0+IFlVViwgSVRVLVIgQlQuNjAxLCBmdWxsIHJhbmdlICovCitjb25z dCBzdGF0aWMgc3RydWN0IGNzY19jb2VmX3JnYjJ5dXYgY29lZnNfcmdiMnl1dl9idDYwMV9mdWxs ID0geworCSA3NywgIDE1MCwgIDI5LAkJLyogeXIsICAgeWcsICB5YiB8IDAuMjk5ICAwLjU4NyAg MC4xMTR8Ki8KKwktNDMsICAtODUsIDEyOCwJCS8qIGNiciwgY2JnLCBjYmIgfC0wLjE3MyAtMC4z MzkgIDAuNTExfCovCisJMTI4LCAtMTA3LCAtMjEsCQkvKiBjcnIsIGNyZywgY3JiIHwgMC41MTEg LTAuNDI4IC0wLjA4M3wqLworCXRydWUsCQkJLyogZnVsbCByYW5nZSAqLworfTsKKworLyogUkdC IC0+IFlVViwgSVRVLVIgQlQuNzA5LCBsaW1pdGVkIHJhbmdlICovCitjb25zdCBzdHJ1Y3QgY3Nj X2NvZWZfcmdiMnl1diBjb2Vmc19yZ2IyeXV2X2J0NzAxX2xpbSA9IHsKKwkgNDcsICAxNTcsICAg MTYsCS8qIHlyLCAgIHlnLCAgeWIgfCAwLjE4MjYgIDAuNjE0MiAgMC4wNjIwfCovCisJLTI2LCAg LTg3LCAgMTEyLAkvKiBjYnIsIGNiZywgY2JiIHwtMC4xMDA2IC0wLjMzODYgIDAuNDM5MnwqLwor CTExMiwgLTEwMiwgIC0xMCwJLyogY3JyLCBjcmcsIGNyYiB8IDAuNDM5MiAtMC4zOTg5IC0wLjA0 MDN8Ki8KKwlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdlICovCit9OworCiBzdGF0aWMgdm9pZCBk aXNwY19zZXR1cF9jb2xvcl9jb252X2NvZWYodm9pZCkKIHsKIAlpbnQgaTsKQEAgLTgwMiwzOCAr ODQwLDYgQEAgc3RhdGljIHZvaWQgZGlzcGNfc2V0dXBfY29sb3JfY29udl9jb2VmKHZvaWQpCiAJ LyogYWx3YXlzIHVzZSBmdWxsIHJhbmdlIGZvciBub3cgKi8KIAlib29sIHVzZV9mdWxsX3Jhbmdl ID0gdHJ1ZTsKIAotCS8qIFlVViAtPiBSR0IsIElUVS1SIEJULjYwMSwgbGltaXRlZCByYW5nZSAq LwotCWNvbnN0IHN0cnVjdCBjc2NfY29lZl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ2MDFfbGlt ID0gewotCQkyOTgsICAgIDAsICA0MDksCS8qIHJ5LCByY2IsIHJjciAqLwotCQkyOTgsIC0xMDAs IC0yMDgsCS8qIGd5LCBnY2IsIGdjciAqLwotCQkyOTgsICA1MTYsICAgIDAsCS8qIGJ5LCBiY2Is IGJjciAqLwotCQlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdlICovCi0JfTsKLQotCS8qIFlVViAt PiBSR0IsIElUVS1SIEJULjYwMSwgZnVsbCByYW5nZSAqLwotCWNvbnN0IHN0cnVjdCBjc2NfY29l Zl95dXYycmdiIGNvZWZzX3l1djJyZ2JfYnQ2MDFfZnVsbCA9IHsKLQkJMjU2LCAgIDAsICAzNTgs CQkvKiByeSwgcmNiLCByY3IgKi8KLQkJMjU2LCAtODgsIC0xODIsCQkvKiBneSwgZ2NiLCBnY3Ig Ki8KLQkJMjU2LCA0NTIsICAgIDAsCQkvKiBieSwgYmNiLCBiY3IgKi8KLQkJdHJ1ZSwJCQkvKiBm dWxsIHJhbmdlICovCi0JfTsKLQotCS8qIFJHQiAtPiBZVVYsIElUVS1SIEJULjYwMSwgbGltaXRl ZCByYW5nZSAqLwotCWNvbnN0IHN0cnVjdCBjc2NfY29lZl9yZ2IyeXV2IGNvZWZzX3JnYjJ5dXZf YnQ2MDFfbGltID0gewotCQkgNjYsIDEyOSwgIDI1LAkJLyogeXIsICAgeWcsICB5YiAqLwotCQkt MzgsIC03NCwgMTEyLAkJLyogY2JyLCBjYmcsIGNiYiAqLwotCQkxMTIsIC05NCwgLTE4LAkJLyog Y3JyLCBjcmcsIGNyYiAqLwotCQlmYWxzZSwJCQkvKiBsaW1pdGVkIHJhbmdlICovCi0JfTsKLQot CS8qIFJHQiAtPiBZVVYsIElUVS1SIEJULjYwMSwgZnVsbCByYW5nZSAqLwotCWNvbnN0IHN0cnVj dCBjc2NfY29lZl9yZ2IyeXV2IGNvZWZzX3JnYjJ5dXZfYnQ2MDFfZnVsbCA9IHsKLQkJIDc3LCAg MTUwLCAgMjksCQkvKiB5ciwgICB5ZywgIHliICovCi0JCS00MywgIC04NSwgMTI4LAkJLyogY2Jy LCBjYmcsIGNiYiAqLwotCQkxMjgsIC0xMDcsIC0yMSwJCS8qIGNyciwgY3JnLCBjcmIgKi8KLQkJ dHJ1ZSwJCQkvKiBmdWxsIHJhbmdlICovCi0JfTsKLQogCWNvbnN0IHN0cnVjdCBjc2NfY29lZl95 dXYycmdiICp5dXYycmdiOwogCWNvbnN0IHN0cnVjdCBjc2NfY29lZl9yZ2IyeXV2ICpyZ2IyeXV2 OwogCkBAIC0yODkwLDYgKzI4OTYsNDIgQEAgc3RhdGljIGludCBkaXNwY19vdmxfc2V0dXBfY29t bW9uKGVudW0gb21hcF9wbGFuZV9pZCBwbGFuZSwKIAlyZXR1cm4gMDsKIH0KIAorCitzdGF0aWMg aW50IGRpc3BjX292bF9zZXRfY3NjKGVudW0gb21hcF9wbGFuZV9pZCBwbGFuZSwKKwkJCSAgICAg Y29uc3Qgc3RydWN0IG9tYXBfb3ZlcmxheV9pbmZvICpvaSkKK3sKKwlzdHJ1Y3QgY3NjX2NvZWZf eXV2MnJnYiBjc2M7CisJY29uc3Qgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgKmNzY3AgPSAmY3Nj OworCisJc3dpdGNoIChvaS0+eWNiY3JfdG9fcmdiX21vZGUpIHsKKwljYXNlIERSTV9QTEFORV9Z Q0JDUl9UT19SR0JfQ1NDX0xJTV9QUkVPRkZTRVQ6CisJCWNzYyA9IG9pLT55Y2Jjcl90b19yZ2Jf Y3NjOworCQljc2MuZnVsbF9yYW5nZSA9IGZhbHNlOworCQlicmVhazsKKwljYXNlIERSTV9QTEFO RV9ZQ0JDUl9UT19SR0JfQ1NDX0ZVTExfUFJFT0ZGU0VUOgorCQljc2MgPSBvaS0+eWNiY3JfdG9f cmdiX2NzYzsKKwkJY3NjLmZ1bGxfcmFuZ2UgPSB0cnVlOworCQlicmVhazsKKwljYXNlIERSTV9Q TEFORV9ZQ0JDUl9CVDYwMV9MSU1fVE9fUkdCX0JUNjAxX0ZVTEw6CisJCWNzY3AgPSAmY29lZnNf eXV2MnJnYl9idDYwMV9saW07CisJCWJyZWFrOworCWNhc2UgRFJNX1BMQU5FX1lDQkNSX0JUNjAx X0ZVTExfVE9fUkdCX0JUNjAxX0ZVTEw6CisJCWNzY3AgPSAmY29lZnNfeXV2MnJnYl9idDYwMV9m dWxsOworCQlicmVhazsKKwljYXNlIERSTV9QTEFORV9ZQ0JDUl9CVDcwOV9MSU1fVE9fUkdCX0JU NzA5X0ZVTEw6CisJCWNzY3AgPSAmY29lZnNfeXV2MnJnYl9idDcwOV9saW07CisJCWJyZWFrOwor CWRlZmF1bHQ6CisJCURTU0VSUigiVW5zdXBwb3J0ZWQgQ1NDIG1vZGUgJWQgZm9yIHBsYW5lICVk XG4iLAorCQkgICAgICAgb2ktPnljYmNyX3RvX3JnYl9tb2RlLCBwbGFuZSk7CisJCXJldHVybiAt RUlOVkFMOworCX0KKworCWRpc3BjX292bF93cml0ZV9jb2xvcl9jb252X2NvZWYocGxhbmUsIGNz Y3ApOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgZGlzcGNfb3ZsX3NldHVwKGVudW0g b21hcF9wbGFuZV9pZCBwbGFuZSwKIAkJY29uc3Qgc3RydWN0IG9tYXBfb3ZlcmxheV9pbmZvICpv aSwKIAkJY29uc3Qgc3RydWN0IHZpZGVvbW9kZSAqdm0sIGJvb2wgbWVtX3RvX21lbSkKQEAgLTI5 MTIsNiArMjk1NCwxMSBAQCBzdGF0aWMgaW50IGRpc3BjX292bF9zZXR1cChlbnVtIG9tYXBfcGxh bmVfaWQgcGxhbmUsCiAJCW9pLT5vdXRfd2lkdGgsIG9pLT5vdXRfaGVpZ2h0LCBvaS0+Y29sb3Jf bW9kZSwgb2ktPnJvdGF0aW9uLAogCQlvaS0+bWlycm9yLCBvaS0+em9yZGVyLCBvaS0+cHJlX211 bHRfYWxwaGEsIG9pLT5nbG9iYWxfYWxwaGEsCiAJCW9pLT5yb3RhdGlvbl90eXBlLCByZXBsaWNh dGlvbiwgdm0sIG1lbV90b19tZW0pOworCWlmIChyKQorCQlyZXR1cm4gcjsKKworCWlmIChkc3Nf ZmVhdF9jb2xvcl9tb2RlX3N1cHBvcnRlZChwbGFuZSwgT01BUF9EU1NfQ09MT1JfVVlWWSkpCisJ CXIgPSBkaXNwY19vdmxfc2V0X2NzYyhwbGFuZSwgb2kpOwogCiAJcmV0dXJuIHI7CiB9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oIGIvZHJpdmVycy9n cHUvZHJtL29tYXBkcm0vZHNzL29tYXBkc3MuaAppbmRleCA2M2MyNjg0Li5mNGFhYjk5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs dWRlIDx2aWRlby92aWRlb21vZGUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL29t YXBkc3MuaD4KICNpbmNsdWRlIDx1YXBpL2RybS9kcm1fbW9kZS5oPgorI2luY2x1ZGUgPGRybS9k cm1fY29sb3JfbWdtdC5oPgogCiAjZGVmaW5lIERJU1BDX0lSUV9GUkFNRURPTkUJCSgxIDw8IDAp CiAjZGVmaW5lIERJU1BDX0lSUV9WU1lOQwkJCSgxIDw8IDEpCkBAIC0zMTIsNiArMzEzLDE2IEBA IHN0cnVjdCBvbWFwX2Rzc19jcHJfY29lZnMgewogCXMxNiBiciwgYmcsIGJiOwogfTsKIAorc3Ry dWN0IGNzY19jb2VmX3l1djJyZ2IgeworCWludCByeSwgcmNiLCByY3IsIGd5LCBnY2IsIGdjciwg YnksIGJjYiwgYmNyOworCWJvb2wgZnVsbF9yYW5nZTsKK307CisKK3N0cnVjdCBjc2NfY29lZl9y Z2IyeXV2IHsKKwlpbnQgeXIsIHlnLCB5YiwgY2JyLCBjYmcsIGNiYiwgY3JyLCBjcmcsIGNyYjsK Kwlib29sIGZ1bGxfcmFuZ2U7Cit9OworCiBzdHJ1Y3Qgb21hcF9vdmVybGF5X2luZm8gewogCWRt YV9hZGRyX3QgcGFkZHI7CiAJZG1hX2FkZHJfdCBwX3V2X2FkZHI7ICAvKiBmb3IgTlYxMiBmb3Jt YXQgKi8KQEAgLTMzMCw2ICszNDEsOSBAQCBzdHJ1Y3Qgb21hcF9vdmVybGF5X2luZm8gewogCXU4 IGdsb2JhbF9hbHBoYTsKIAl1OCBwcmVfbXVsdF9hbHBoYTsKIAl1OCB6b3JkZXI7CisKKwllbnVt IGRybV9wbGFuZV95Y2Jjcl90b19yZ2JfbW9kZSB5Y2Jjcl90b19yZ2JfbW9kZTsKKwlzdHJ1Y3Qg Y3NjX2NvZWZfeXV2MnJnYiB5Y2Jjcl90b19yZ2JfY3NjOwogfTsKIAogc3RydWN0IG9tYXBfb3Zl cmxheSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX3BsYW5lLmMKaW5kZXggOTE2ODE1NC4uZWMz OGY5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9wbGFuZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfcGxhbmUuYwpAQCAtNjcsNiArNjcsMjcg QEAgc3RhdGljIHZvaWQgb21hcF9wbGFuZV9jbGVhbnVwX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCQlvbWFwX2ZyYW1lYnVmZmVyX3VucGluKG9sZF9zdGF0ZS0+ZmIpOwogfQogCitzdGF0 aWMgaW50IG9tYXBfcGxhbmVfczMyXzMyX3RvX3MyXzgoczY0IGNvZWYpCit7CisJcmV0dXJuIGNs YW1wX3ZhbCgoaW50KShjb2VmID4+IDI0KSwgLTB4MUZGIC0gMSwgMHgxRkYpOworfQorCitzdGF0 aWMgdm9pZCBvbWFwX3BsYW5lX2NzY19jb2Vmc19mcm9tX2Jsb2IoY29uc3Qgdm9pZCAqYmxvYiwK KwkJCQkJICAgc3RydWN0IGNzY19jb2VmX3l1djJyZ2IgKmNzYykKK3sKKwljb25zdCBzdHJ1Y3Qg ZHJtX3ljYmNyX3RvX3JnYl9jc2MgKmNzY2JwID0gYmxvYjsKKworCWNzYy0+cnkgPSBvbWFwX3Bs YW5lX3MzMl8zMl90b19zMl84KGNzY2JwLT5yeSk7CisJY3NjLT5yY2IgPSBvbWFwX3BsYW5lX3Mz Ml8zMl90b19zMl84KGNzY2JwLT5yY2IpOworCWNzYy0+cmNyID0gb21hcF9wbGFuZV9zMzJfMzJf dG9fczJfOChjc2NicC0+cmNyKTsKKwljc2MtPmd5ID0gb21hcF9wbGFuZV9zMzJfMzJfdG9fczJf OChjc2NicC0+Z3kpOworCWNzYy0+Z2NiID0gb21hcF9wbGFuZV9zMzJfMzJfdG9fczJfOChjc2Ni cC0+Z2NiKTsKKwljc2MtPmdjciA9IG9tYXBfcGxhbmVfczMyXzMyX3RvX3MyXzgoY3NjYnAtPmdj cik7CisJY3NjLT5ieSA9IG9tYXBfcGxhbmVfczMyXzMyX3RvX3MyXzgoY3NjYnAtPmJ5KTsKKwlj c2MtPmJjYiA9IG9tYXBfcGxhbmVfczMyXzMyX3RvX3MyXzgoY3NjYnAtPmJjYik7CisJY3NjLT5i Y3IgPSBvbWFwX3BsYW5lX3MzMl8zMl90b19zMl84KGNzY2JwLT5iY3IpOworfQorCiBzdGF0aWMg dm9pZCBvbWFwX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCiB7CkBAIC04Niw2ICsx MDcsMTAgQEAgc3RhdGljIHZvaWQgb21hcF9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAogCWluZm8uZ2xvYmFsX2FscGhhID0gMHhmZjsKIAlpbmZvLm1pcnJvciA9 IDA7CiAJaW5mby56b3JkZXIgPSBvbWFwX3N0YXRlLT56b3JkZXI7CisJaW5mby55Y2Jjcl90b19y Z2JfbW9kZSA9IHN0YXRlLT55Y2Jjcl90b19yZ2JfbW9kZTsKKwlpZiAoc3RhdGUtPnljYmNyX3Rv X3JnYl9jc2MpCisJCW9tYXBfcGxhbmVfY3NjX2NvZWZzX2Zyb21fYmxvYihzdGF0ZS0+eWNiY3Jf dG9fcmdiX2NzYy0+ZGF0YSwKKwkJCQkJICAgICAgICZpbmZvLnljYmNyX3RvX3JnYl9jc2MpOwog CiAJbWVtc2V0KCZ3aW4sIDAsIHNpemVvZih3aW4pKTsKIAl3aW4ucm90YXRpb24gPSBzdGF0ZS0+ cm90YXRpb247CkBAIC0zMjQsNiArMzQ5LDE1IEBAIHN0YXRpYyBpbnQgb21hcF9wbGFuZV9hdG9t aWNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCS5hdG9taWNfZ2V0X3By b3BlcnR5ID0gb21hcF9wbGFuZV9hdG9taWNfZ2V0X3Byb3BlcnR5LAogfTsKIAorLyogVGhlIGVu dW0gbmFtZXMgYXJlIGZpbGxlZCBieSBkcm1fcGxhbmVfY3JlYXRlX3ljYmNyX3RvX3JnYl9wcm9w ZXJ0aWVzKCkgKi8KK3N0YXRpYyBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IG9tYXBfeWNiY3Jf dG9fcmdiX2VudW1fbGlzdFtdID0geworCXsgRFJNX1BMQU5FX1lDQkNSX0JUNjAxX0xJTV9UT19S R0JfQlQ2MDFfRlVMTCwgTlVMTCB9LAorCXsgRFJNX1BMQU5FX1lDQkNSX0JUNjAxX0ZVTExfVE9f UkdCX0JUNjAxX0ZVTEwsIE5VTEwgfSwKKwl7IERSTV9QTEFORV9ZQ0JDUl9CVDcwOV9MSU1fVE9f UkdCX0JUNzA5X0ZVTEwsIE5VTEwgfSwKKwl7IERSTV9QTEFORV9ZQ0JDUl9UT19SR0JfQ1NDX0xJ TV9QUkVPRkZTRVQsIE5VTEwgfSwKKwl7IERSTV9QTEFORV9ZQ0JDUl9UT19SR0JfQ1NDX0ZVTExf UFJFT0ZGU0VULCBOVUxMIH0sCit9OworCiBzdGF0aWMgY29uc3QgY2hhciAqcGxhbmVfaWRfdG9f bmFtZVtdID0gewogCVtPTUFQX0RTU19HRlhdID0gImdmeCIsCiAJW09NQVBfRFNTX1ZJREVPMV0g PSAidmlkMSIsCkBAIC0zNzgsNiArNDEyLDEzIEBAIHN0cnVjdCBkcm1fcGxhbmUgKm9tYXBfcGxh bmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJb21hcF9wbGFuZV9pbnN0YWxsX3By b3BlcnRpZXMocGxhbmUsICZwbGFuZS0+YmFzZSk7CiAKKwlpZiAoKHByaXYtPmRpc3BjX29wcy0+ b3ZsX2dldF9jb2xvcl9tb2RlcyhvbWFwX3BsYW5lLT5pZCkgJgorCSAgICAgT01BUF9EU1NfQ09M T1JfVVlWWSkgIT0gMCkKKwkJZHJtX3BsYW5lX2NyZWF0ZV95Y2Jjcl90b19yZ2JfcHJvcGVydGll cyhwbGFuZSwKKwkJCQlvbWFwX3ljYmNyX3RvX3JnYl9lbnVtX2xpc3QsCisJCQkJQVJSQVlfU0la RShvbWFwX3ljYmNyX3RvX3JnYl9lbnVtX2xpc3QpLAorCQkJCURSTV9QTEFORV9ZQ0JDUl9CVDYw MV9GVUxMX1RPX1JHQl9CVDYwMV9GVUxMKTsKKwogCXJldHVybiBwbGFuZTsKIAogZXJyb3I6Ci0t IAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==