From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sandeep Panda Subject: [[RFC]DPU PATCH 3/4] drm/panel: add Innolux TV123WAM eDP panel driver Date: Thu, 19 Apr 2018 23:26:07 +0530 Message-ID: <1524160568-27583-4-git-send-email-spanda@codeaurora.org> References: <1524160568-27583-1-git-send-email-spanda@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1524160568-27583-1-git-send-email-spanda-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Sandeep Panda , abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, nganji-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: devicetree@vger.kernel.org QWRkIHN1cHBvcnQgZm9yIElubm9sdXggVFYxMjNXQU0gMTIuMyIgcGFuZWwgd2hpY2gKaXMgYW4g ZURQIHBhbmVsLgoKU2lnbmVkLW9mZi1ieTogU2FuZGVlcCBQYW5kYSA8c3BhbmRhQGNvZGVhdXJv cmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbm5vbHV4LXR2MTIzd2Ft LmMgfCAyOTMgKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI5MyBp bnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3Bh bmVsLWlubm9sdXgtdHYxMjN3YW0uYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5l bC9wYW5lbC1pbm5vbHV4LXR2MTIzd2FtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwt aW5ub2x1eC10djEyM3dhbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2 MzJiMDIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaW5u b2x1eC10djEyM3dhbS5jCkBAIC0wLDAgKzEsMjkzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAy MDE4LCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSB2ZXJzaW9uIDIgYW5kCisgKiBvbmx5IHZlcnNpb24gMiBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICovCisKKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGRybS9kcm1fcGFuZWwu aD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CisjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL2NvbnN1bWVyLmg+CisK K3N0cnVjdCBpbm5vbHV4X2VkcF8ya19wYW5lbF9kZXNjIHsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZXM7CisJdW5zaWduZWQgaW50IG51bV9tb2RlczsKKwl1MzIgYnBjOwor CXUzMiBidXNfZmxhZ3M7Cit9OworCitzdHJ1Y3QgaW5ub2x1eF9lZHBfMmtfcGFuZWwgeworCXN0 cnVjdCBkcm1fcGFuZWwgYmFzZTsKKwlib29sIGVuYWJsZWQ7CisJYm9vbCBwcmVwYXJlZDsKKwlj b25zdCBzdHJ1Y3QgaW5ub2x1eF9lZHBfMmtfcGFuZWxfZGVzYyAqZGVzYzsKKwlzdHJ1Y3QgcmVn dWxhdG9yICpzdXBwbHk7CisJc3RydWN0IGdwaW9fZGVzYyAqZW5hYmxlX2dwaW87CisJc3RydWN0 IGJhY2tsaWdodF9kZXZpY2UgKmJhY2tsaWdodDsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSBpbm5vbHV4X2VkcF8ya19tb2RlID0geworCS5jbG9jayA9IDIwNjAx NiwKKwkuaGRpc3BsYXkgPSAyMTYwLAorCS5oc3luY19zdGFydCA9IDIxNjAgKyA0OCwKKwkuaHN5 bmNfZW5kID0gMjE2MCArIDQ4ICsgMzIsCisJLmh0b3RhbCA9IDIxNjAgKyA0OCArIDMyICsgODAs CisJLnZkaXNwbGF5ID0gMTQ0MCwKKwkudnN5bmNfc3RhcnQgPSAxNDQwICsgMywKKwkudnN5bmNf ZW5kID0gMTQ0MCArIDMgKyAxMCwKKwkudnRvdGFsID0gMTQ0MCArIDMgKyAxMCArIDI3LAorCS52 cmVmcmVzaCA9IDYwLAorCS5mbGFncyA9IERSTV9NT0RFX0ZMQUdfUEhTWU5DIHwgRFJNX01PREVf RkxBR19QVlNZTkMsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGlubm9sdXhfZWRwXzJrX3Bh bmVsX2Rlc2MgaW5ub2x1eF9lZHBfMmsgPSB7CisJLm1vZGVzID0gJmlubm9sdXhfZWRwXzJrX21v ZGUsCisJLm51bV9tb2RlcyA9IDEsCisJLmJwYyA9IDgsCisJLmJ1c19mbGFncyA9IERSTV9CVVNf RkxBR19QSVhEQVRBX1BPU0VER0UsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCBwbGF0Zm9ybV9vZl9tYXRjaFtdID0geworCXsKKwkJLmNvbXBhdGlibGUgPSAiaW5ub2x1 eCwgZWRwXzJrX3BhbmVsIiwKKwkJLmRhdGEgPSAmaW5ub2x1eF9lZHBfMmssCisJfSwKK307CisK K3N0YXRpYyBpbmxpbmUgc3RydWN0IGlubm9sdXhfZWRwXzJrX3BhbmVsICoKK3RvX2lubm9sdXhf ZWRwXzJrX3BhbmVsKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXJldHVybiBjb250YWlu ZXJfb2YocGFuZWwsIHN0cnVjdCBpbm5vbHV4X2VkcF8ya19wYW5lbCwgYmFzZSk7Cit9CisKK3N0 YXRpYyBpbnQgaW5ub2x1eF9lZHBfMmtfcGFuZWxfZGlzYWJsZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCkKK3sKKwlzdHJ1Y3QgaW5ub2x1eF9lZHBfMmtfcGFuZWwgKnBkYXRhID0gdG9faW5ub2x1 eF9lZHBfMmtfcGFuZWwocGFuZWwpOworCisJaWYgKCFwZGF0YS0+ZW5hYmxlZCkKKwkJcmV0dXJu IDA7CisKKwlpZiAocGRhdGEtPmJhY2tsaWdodCkgeworCQlwZGF0YS0+YmFja2xpZ2h0LT5wcm9w cy5wb3dlciA9IEZCX0JMQU5LX1BPV0VSRE9XTjsKKwkJcGRhdGEtPmJhY2tsaWdodC0+cHJvcHMu c3RhdGUgfD0gQkxfQ09SRV9GQkJMQU5LOworCQliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhwZGF0 YS0+YmFja2xpZ2h0KTsKKwl9CisKKwlwZGF0YS0+ZW5hYmxlZCA9IGZhbHNlOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgaW5ub2x1eF9lZHBfMmtfcGFuZWxfdW5wcmVwYXJlKHN0cnVj dCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBpbm5vbHV4X2VkcF8ya19wYW5lbCAqcGRh dGEgPSB0b19pbm5vbHV4X2VkcF8ya19wYW5lbChwYW5lbCk7CisKKwlpZiAoIXBkYXRhLT5wcmVw YXJlZCkKKwkJcmV0dXJuIDA7CisKKwlpZiAocGRhdGEtPmVuYWJsZV9ncGlvKQorCQlncGlvZF9z ZXRfdmFsdWVfY2Fuc2xlZXAocGRhdGEtPmVuYWJsZV9ncGlvLCAwKTsKKworCXJlZ3VsYXRvcl9k aXNhYmxlKHBkYXRhLT5zdXBwbHkpOworCisJcGRhdGEtPnByZXBhcmVkID0gZmFsc2U7CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbm5vbHV4X2VkcF8ya19wYW5lbF9wcmVwYXJlKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBpbm5vbHV4X2VkcF8ya19wYW5lbCAq cGRhdGEgPSB0b19pbm5vbHV4X2VkcF8ya19wYW5lbChwYW5lbCk7CisJaW50IHJldDsKKworCWlm IChwZGF0YS0+cHJlcGFyZWQpCisJCXJldHVybiAwOworCisJcmV0ID0gcmVndWxhdG9yX2VuYWJs ZShwZGF0YS0+c3VwcGx5KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHBhbmVsLT5kZXYs ICJmYWlsZWQgdG8gZW5hYmxlIHN1cHBseTogJWRcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJ fQorCisJaWYgKHBkYXRhLT5lbmFibGVfZ3BpbykKKwkJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVw KHBkYXRhLT5lbmFibGVfZ3BpbywgMSk7CisKKwlwZGF0YS0+cHJlcGFyZWQgPSB0cnVlOworCisJ cmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW5ub2x1eF9lZHBfMmtfcGFuZWxfZW5hYmxlKHN0 cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQoreworCXN0cnVjdCBpbm5vbHV4X2VkcF8ya19wYW5lbCAq cGRhdGEgPSB0b19pbm5vbHV4X2VkcF8ya19wYW5lbChwYW5lbCk7CisKKwlpZiAocGRhdGEtPmVu YWJsZWQpCisJCXJldHVybiAwOworCisJaWYgKHBkYXRhLT5iYWNrbGlnaHQpIHsKKwkJcGRhdGEt PmJhY2tsaWdodC0+cHJvcHMuc3RhdGUgJj0gfkJMX0NPUkVfRkJCTEFOSzsKKwkJcGRhdGEtPmJh Y2tsaWdodC0+cHJvcHMucG93ZXIgPSBGQl9CTEFOS19VTkJMQU5LOworCQliYWNrbGlnaHRfdXBk YXRlX3N0YXR1cyhwZGF0YS0+YmFja2xpZ2h0KTsKKwl9CisKKwlwZGF0YS0+ZW5hYmxlZCA9IHRy dWU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBpbm5vbHV4X2VkcF8ya19wYW5lbF9n ZXRfbW9kZXMoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCit7CisJc3RydWN0IGlubm9sdXhfZWRw XzJrX3BhbmVsICpwZGF0YSA9IHRvX2lubm9sdXhfZWRwXzJrX3BhbmVsKHBhbmVsKTsKKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGRhdGEtPmJhc2UuY29ubmVjdG9yOworCXN0 cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwZGF0YS0+YmFzZS5kcm07CisJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGU7CisJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CisKKwlpZiAoIXBkYXRh LT5kZXNjIHx8ICFjb25uZWN0b3IgfHwgIWRybSkKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAw OyBpIDwgcGRhdGEtPmRlc2MtPm51bV9tb2RlczsgaSsrKSB7CisJCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptID0gJnBkYXRhLT5kZXNjLT5tb2Rlc1tpXTsKKworCQltb2RlID0gZHJt X21vZGVfZHVwbGljYXRlKGRybSwgbSk7CisJCWlmICghbW9kZSkgeworCQkJZGV2X2Vycihkcm0t PmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldUAldVxuIiwKKwkJCQltLT5oZGlzcGxheSwg bS0+dmRpc3BsYXksIG0tPnZyZWZyZXNoKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJbW9kZS0+ dHlwZSB8PSBEUk1fTU9ERV9UWVBFX0RSSVZFUjsKKworCQlpZiAocGRhdGEtPmRlc2MtPm51bV9t b2RlcyA9PSAxKQorCQkJbW9kZS0+dHlwZSB8PSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKKwor CQlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKKworCQlkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5l Y3RvciwgbW9kZSk7CisJCW51bSsrOworCX0KKworCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmJw YyA9IHBkYXRhLT5kZXNjLT5icGM7CisJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2ZsYWdz ID0gcGRhdGEtPmRlc2MtPmJ1c19mbGFnczsKKworCXJldHVybiBudW07Cit9CisKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIGlubm9sdXhfZWRwXzJrX3BhbmVsX2Z1bmNzID0g eworCS5kaXNhYmxlID0gaW5ub2x1eF9lZHBfMmtfcGFuZWxfZGlzYWJsZSwKKwkudW5wcmVwYXJl ID0gaW5ub2x1eF9lZHBfMmtfcGFuZWxfdW5wcmVwYXJlLAorCS5wcmVwYXJlID0gaW5ub2x1eF9l ZHBfMmtfcGFuZWxfcHJlcGFyZSwKKwkuZW5hYmxlID0gaW5ub2x1eF9lZHBfMmtfcGFuZWxfZW5h YmxlLAorCS5nZXRfbW9kZXMgPSBpbm5vbHV4X2VkcF8ya19wYW5lbF9nZXRfbW9kZXMsCit9Owor CitzdGF0aWMgaW50IGlubm9sdXhfZWRwXzJrX3BhbmVsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKKwljb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICppZDsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUgKmJhY2tsaWdo dDsKKwlzdHJ1Y3QgaW5ub2x1eF9lZHBfMmtfcGFuZWwgKnBkYXRhOworCWludCByZXQ7CisKKwlp ZCA9IG9mX21hdGNoX25vZGUocGxhdGZvcm1fb2ZfbWF0Y2gsIHBkZXYtPmRldi5vZl9ub2RlKTsK KwlpZiAoIWlkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXBkYXRhID0gZGV2bV9remFsbG9jKGRl diwgc2l6ZW9mKCpwZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghcGRhdGEpCisJCXJldHVybiAt RU5PTUVNOworCisJcGRhdGEtPmVuYWJsZWQgPSBmYWxzZTsKKwlwZGF0YS0+cHJlcGFyZWQgPSBm YWxzZTsKKwlwZGF0YS0+ZGVzYyA9IGlkLT5kYXRhOworCisJcGRhdGEtPnN1cHBseSA9IGRldm1f cmVndWxhdG9yX2dldChkZXYsICJwb3dlciIpOworCWlmIChJU19FUlIocGRhdGEtPnN1cHBseSkp CisJCXJldHVybiBQVFJfRVJSKHBkYXRhLT5zdXBwbHkpOworCisJcGRhdGEtPmVuYWJsZV9ncGlv ID0gZGV2bV9ncGlvZF9nZXQoZGV2LCAiZW5hYmxlIiwgR1BJT0RfT1VUX0xPVyk7CisJaWYgKElT X0VSUihwZGF0YS0+ZW5hYmxlX2dwaW8pKQorCQlyZXR1cm4gUFRSX0VSUihwZGF0YS0+ZW5hYmxl X2dwaW8pOworCisJYmFja2xpZ2h0ID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJi YWNrbGlnaHQiLCAwKTsKKwlpZiAoYmFja2xpZ2h0KSB7CisJCXBkYXRhLT5iYWNrbGlnaHQgPSBv Zl9maW5kX2JhY2tsaWdodF9ieV9ub2RlKGJhY2tsaWdodCk7CisJCW9mX25vZGVfcHV0KGJhY2ts aWdodCk7CisKKwkJaWYgKCFwZGF0YS0+YmFja2xpZ2h0KQorCQkJcmV0dXJuIC1FUFJPQkVfREVG RVI7CisJfQorCisJZHJtX3BhbmVsX2luaXQoJnBkYXRhLT5iYXNlKTsKKwlwZGF0YS0+YmFzZS5k ZXYgPSBkZXY7CisJcGRhdGEtPmJhc2UuZnVuY3MgPSAmaW5ub2x1eF9lZHBfMmtfcGFuZWxfZnVu Y3M7CisKKwlyZXQgPSBkcm1fcGFuZWxfYWRkKCZwZGF0YS0+YmFzZSk7CisJaWYgKHJldCA8IDAp CisJCWdvdG8gZnJlZV9iYWNrbGlnaHQ7CisKKwlkZXZfc2V0X2RydmRhdGEoZGV2LCBwZGF0YSk7 CisKKwlyZXR1cm4gMDsKKworZnJlZV9iYWNrbGlnaHQ6CisJaWYgKHBkYXRhLT5iYWNrbGlnaHQp CisJCXB1dF9kZXZpY2UoJnBkYXRhLT5iYWNrbGlnaHQtPmRldik7CisKKwlyZXR1cm4gcmV0Owor fQorCitzdGF0aWMgaW50IGlubm9sdXhfZWRwXzJrX3BhbmVsX3JlbW92ZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7CisJ c3RydWN0IGlubm9sdXhfZWRwXzJrX3BhbmVsICpwZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp OworCisJZHJtX3BhbmVsX2RldGFjaCgmcGRhdGEtPmJhc2UpOworCWRybV9wYW5lbF9yZW1vdmUo JnBkYXRhLT5iYXNlKTsKKworCWlubm9sdXhfZWRwXzJrX3BhbmVsX2Rpc2FibGUoJnBkYXRhLT5i YXNlKTsKKwlpbm5vbHV4X2VkcF8ya19wYW5lbF91bnByZXBhcmUoJnBkYXRhLT5iYXNlKTsKKwor CWlmIChwZGF0YS0+YmFja2xpZ2h0KQorCQlwdXRfZGV2aWNlKCZwZGF0YS0+YmFja2xpZ2h0LT5k ZXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlu bm9sdXhfZWRwXzJrX3BhbmVsX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJp bm5vbHV4LTJrLWVkcC1wYW5lbCIsCisJCS5vZl9tYXRjaF90YWJsZSA9IHBsYXRmb3JtX29mX21h dGNoLAorCX0sCisJLnByb2JlID0gaW5ub2x1eF9lZHBfMmtfcGFuZWxfcHJvYmUsCisJLnJlbW92 ZSA9IGlubm9sdXhfZWRwXzJrX3BhbmVsX3JlbW92ZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0 IGlubm9sdXhfZWRwXzJrX3BhbmVsX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0g cGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZpbm5vbHV4X2VkcF8ya19wYW5lbF9kcml2ZXIpOwor CWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIDA7Cit9Cittb2R1bGVfaW5p dChpbm5vbHV4X2VkcF8ya19wYW5lbF9pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IGlubm9s dXhfZWRwXzJrX3BhbmVsX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3Rl cigmaW5ub2x1eF9lZHBfMmtfcGFuZWxfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0KGlubm9sdXhf ZWRwXzJrX3BhbmVsX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIklubm9sdXggMmsgZURQ IHBhbmVsIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotLSAKVGhlIFF1YWxjb21t IElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBG b3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcg bGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==