From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4] drm/imx: ipuv3-plane: use drm_plane_helper_check_state, clipped coordinates Date: Fri, 3 Feb 2017 15:20:56 +0200 Message-ID: <20170203132056.GJ31595@intel.com> References: <1486114299-9990-1-git-send-email-p.zabel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2EE846EB7F for ; Fri, 3 Feb 2017 13:21:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1486114299-9990-1-git-send-email-p.zabel@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Philipp Zabel Cc: kernel@pengutronix.de, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBGZWIgMDMsIDIwMTcgYXQgMTA6MzE6MzlBTSArMDEwMCwgUGhpbGlwcCBaYWJlbCB3 cm90ZToKPiBVc2UgZHJtX3BsYW5lX2hlbHBlcl9jaGVja19zdGF0ZSB0byBjbGlwIHJhdyB1c2Vy IGNvb3JkaW5hdGVzIHRvIGNydGMKPiBib3VuZHMuIFRoaXMgY2hlY2tzIGZvciBmdWxsIHBsYW5l IGNvdmVyYWdlIGFuZCBzY2FsaW5nIGFscmVhZHksIHNvCj4gd2UgY2FuIGRyb3Agc29tZSBjdXN0 b20gY2hlY2tzLiBVc2UgdGhlIGNsaXBwZWQgY29vcmRpbmF0ZXMgZXZlcnl3aGVyZS4KPiAKPiBT dWdnZXN0ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gU2lnbmVkLW9mZi1ieTogUGhpbGlwcCBaYWJlbCA8cC56YWJlbEBwZW5ndXRyb25peC5k ZT4KPiAtLS0KPiBDaGFuZ2VzIHNpbmNlIHYzOgo+ICAtIERpc2FsbG93IHRhcmdldCBmcmFtZXMg dGhhdCBzdGFydCBvZmZzY3JlZW4gKHN0YXRlLT5jcnRjX3gveSA8IDApLCB0byBhdm9pZAo+ICAg IGNvbmZ1c2luZyB1c2Vyc3BhY2U6IGR1ZSB0byB0aGUgbmVjZXNzYXJ5IGxpbmUgc3RhcnQgYWRk cmVzcyBhbGlnbm1lbnQsIHdlCj4gICAgY291bGQgb25seSBzdXBwb3J0IHZlcnkgc3BlY2lmaWMg bmVnYXRpdmUgdmFsdWVzIGZvciBjcnRjX3gveSwgZGVwZW5kaW5nIG9uCj4gICAgdGhlIHBpeGVs IGZvcm1hdC4KClRoYXQncyByZWFsbHkgbm8gZGlmZmVyZW50IHRvIHRoZSB1c2VyIHNwZWNpZnlp bmcgbm9uLXplcm8gc3JjCmNvb3JkaW5hdGVzLiBTbyBJJ20gd29uZGVyaW5nIHdoYXQncyB0aGUg cG9pbnQgb2Ygc3BlY2lhbCBjYXNpbmcKY3J0YyBjb29yZGluYXRlcyB0aGlzIHdheSBiZWNhdXNl IHlvdSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBzcmMKY29vcmRpbmF0ZXMgYW55d2F5LgoKPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jIHwgODAgKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRpb25z KCspLCA0MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lt eC9pcHV2My1wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2My1wbGFuZS5jCj4gaW5k ZXggZTc0YTBhZDUyOTUwYy4uNWNlZmE3MGJkOGQxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaW14L2lwdXYzLXBsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lwdXYz LXBsYW5lLmMKPiBAQCAtNzAsOCArNzAsOCBAQCBkcm1fcGxhbmVfc3RhdGVfdG9fZWJhKHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiA9IHN0YXRlLT5mYjsKPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmo7 Cj4gLQlpbnQgeCA9IHN0YXRlLT5zcmNfeCA+PiAxNjsKPiAtCWludCB5ID0gc3RhdGUtPnNyY195 ID4+IDE2Owo+ICsJaW50IHggPSBzdGF0ZS0+c3JjLngxID4+IDE2Owo+ICsJaW50IHkgPSBzdGF0 ZS0+c3JjLnkxID4+IDE2Owo+ICAKPiAgCWNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2Jq KGZiLCAwKTsKPiAgCUJVR19PTighY21hX29iaik7Cj4gQEAgLTg2LDggKzg2LDggQEAgZHJtX3Bs YW5lX3N0YXRlX3RvX3VibyhzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAgCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmZiOwo+ICAJc3RydWN0IGRybV9nZW1fY21h X29iamVjdCAqY21hX29iajsKPiAgCXVuc2lnbmVkIGxvbmcgZWJhID0gZHJtX3BsYW5lX3N0YXRl X3RvX2ViYShzdGF0ZSk7Cj4gLQlpbnQgeCA9IHN0YXRlLT5zcmNfeCA+PiAxNjsKPiAtCWludCB5 ID0gc3RhdGUtPnNyY195ID4+IDE2Owo+ICsJaW50IHggPSBzdGF0ZS0+c3JjLngxID4+IDE2Owo+ ICsJaW50IHkgPSBzdGF0ZS0+c3JjLnkxID4+IDE2Owo+ICAKPiAgCWNtYV9vYmogPSBkcm1fZmJf Y21hX2dldF9nZW1fb2JqKGZiLCAxKTsKPiAgCUJVR19PTighY21hX29iaik7Cj4gQEAgLTEwNSw4 ICsxMDUsOCBAQCBkcm1fcGxhbmVfc3RhdGVfdG9fdmJvKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnN0YXRlKQo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+ZmI7Cj4gIAlz dHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpjbWFfb2JqOwo+ICAJdW5zaWduZWQgbG9uZyBlYmEg PSBkcm1fcGxhbmVfc3RhdGVfdG9fZWJhKHN0YXRlKTsKPiAtCWludCB4ID0gc3RhdGUtPnNyY194 ID4+IDE2Owo+IC0JaW50IHkgPSBzdGF0ZS0+c3JjX3kgPj4gMTY7Cj4gKwlpbnQgeCA9IHN0YXRl LT5zcmMueDEgPj4gMTY7Cj4gKwlpbnQgeSA9IHN0YXRlLT5zcmMueTEgPj4gMTY7Cj4gIAo+ICAJ Y21hX29iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDIpOwo+ICAJQlVHX09OKCFjbWFf b2JqKTsKPiBAQCAtMjE4LDcgKzIxOCwxMCBAQCBzdGF0aWMgaW50IGlwdV9wbGFuZV9hdG9taWNf Y2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiA9IHN0YXRlLT5mYjsKPiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYiA9IG9s ZF9zdGF0ZS0+ZmI7Cj4gIAl1bnNpZ25lZCBsb25nIGViYSwgdWJvLCB2Ym8sIG9sZF91Ym8sIG9s ZF92Ym87Cj4gKwlib29sIGNhbl9wb3NpdGlvbiA9IChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVf VFlQRV9PVkVSTEFZKTsKPiArCXN0cnVjdCBkcm1fcmVjdCBjbGlwOwo+ICAJaW50IGhzdWIsIHZz dWI7Cj4gKwlpbnQgcmV0Owo+ICAKPiAgCS8qIE9rIHRvIGRpc2FibGUgKi8KPiAgCWlmICghZmIp Cj4gQEAgLTIzMiw0NCArMjM1LDM5IEBAIHN0YXRpYyBpbnQgaXB1X3BsYW5lX2F0b21pY19jaGVj ayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlKSkK PiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gKwljbGlwLngxID0gMDsKPiArCWNsaXAueTEgPSAw Owo+ICsJY2xpcC54MiA9IGNydGNfc3RhdGUtPmFkanVzdGVkX21vZGUuaGRpc3BsYXk7Cj4gKwlj bGlwLnkyID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS52ZGlzcGxheTsKPiArCXJldCA9IGRy bV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoc3RhdGUsICZjbGlwLAo+ICsJCQkJCSAgIERSTV9Q TEFORV9IRUxQRVJfTk9fU0NBTElORywKPiArCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1ND QUxJTkcsCj4gKwkJCQkJICAgY2FuX3Bvc2l0aW9uLCB0cnVlKTsKPiArCWlmIChyZXQpCj4gKwkJ cmV0dXJuIHJldDsKPiArCj4gIAkvKiBDUlRDIHNob3VsZCBiZSBlbmFibGVkICovCj4gIAlpZiAo IWNydGNfc3RhdGUtPmVuYWJsZSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gLQkvKiBubyBz Y2FsaW5nICovCj4gLQlpZiAoc3RhdGUtPnNyY193ID4+IDE2ICE9IHN0YXRlLT5jcnRjX3cgfHwK PiAtCSAgICBzdGF0ZS0+c3JjX2ggPj4gMTYgIT0gc3RhdGUtPmNydGNfaCkKPiArCS8qIFRhcmdl dCBmcmFtZSBtdXN0IG5vdCBzdGFydCBvZmYtc2NyZWVuICovCj4gKwlpZiAoc3RhdGUtPmNydGNf eCA8IDAgfHwgc3RhdGUtPmNydGNfeSA8IDApCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICAJ c3dpdGNoIChwbGFuZS0+dHlwZSkgewo+ICAJY2FzZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgo+ IC0JCS8qIGZ1bGwgcGxhbmUgZG9lc24ndCBzdXBwb3J0IHBhcnRpYWwgb2ZmIHNjcmVlbiAqLwo+ IC0JCWlmIChzdGF0ZS0+Y3J0Y194IHx8IHN0YXRlLT5jcnRjX3kgfHwKPiAtCQkgICAgc3RhdGUt PmNydGNfdyAhPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlLmhkaXNwbGF5IHx8Cj4gLQkJICAg IHN0YXRlLT5jcnRjX2ggIT0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS52ZGlzcGxheSkKPiAt CQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQo+ICAJCS8qIGZ1bGwgcGxhbmUgbWluaW11bSB3aWR0aCBp cyAxMyBwaXhlbHMgKi8KPiAtCQlpZiAoc3RhdGUtPmNydGNfdyA8IDEzKQo+ICsJCWlmIChkcm1f cmVjdF93aWR0aCgmc3RhdGUtPmRzdCkgPCAxMykKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJ YnJlYWs7Cj4gIAljYXNlIERSTV9QTEFORV9UWVBFX09WRVJMQVk6Cj4gLQkJaWYgKHN0YXRlLT5j cnRjX3ggPCAwIHx8IHN0YXRlLT5jcnRjX3kgPCAwKQo+IC0JCQlyZXR1cm4gLUVJTlZBTDsKPiAt Cj4gLQkJaWYgKHN0YXRlLT5jcnRjX3ggKyBzdGF0ZS0+Y3J0Y193ID4KPiAtCQkgICAgY3J0Y19z dGF0ZS0+YWRqdXN0ZWRfbW9kZS5oZGlzcGxheSkKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gLQkJ aWYgKHN0YXRlLT5jcnRjX3kgKyBzdGF0ZS0+Y3J0Y19oID4KPiAtCQkgICAgY3J0Y19zdGF0ZS0+ YWRqdXN0ZWRfbW9kZS52ZGlzcGxheSkKPiAtCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAkJYnJlYWs7 Cj4gIAlkZWZhdWx0Ogo+IC0JCWRldl93YXJuKGRldiwgIlVuc3VwcG9ydGVkIHBsYW5lIHR5cGVc biIpOwo+ICsJCWRldl93YXJuKGRldiwgIlVuc3VwcG9ydGVkIHBsYW5lIHR5cGUgJWRcbiIsIHBs YW5lLT50eXBlKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiAgCj4gLQlpZiAoc3RhdGUt PmNydGNfaCA8IDIpCj4gKwlpZiAoZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ZHN0KSA8IDIpCj4g IAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICAJLyoKPiBAQCAtMjc5LDkgKzI3NywxMCBAQCBzdGF0 aWMgaW50IGlwdV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g IAkgKiBjYWxsYmFjay4gIFRoZSBwbGFuZXMgd2lsbCBiZSByZWVuYWJsZWQgaW4gcGxhbmUncyAt PmF0b21pY191cGRhdGUKPiAgCSAqIGNhbGxiYWNrLgo+ICAJICovCj4gLQlpZiAob2xkX2ZiICYm IChzdGF0ZS0+c3JjX3cgIT0gb2xkX3N0YXRlLT5zcmNfdyB8fAo+IC0JCQkgICAgICBzdGF0ZS0+ c3JjX2ggIT0gb2xkX3N0YXRlLT5zcmNfaCB8fAo+IC0JCQkgICAgICBmYi0+cGl4ZWxfZm9ybWF0 ICE9IG9sZF9mYi0+cGl4ZWxfZm9ybWF0KSkKPiArCWlmIChvbGRfZmIgJiYKPiArCSAgICAoZHJt X3JlY3Rfd2lkdGgoJnN0YXRlLT5kc3QpICE9IGRybV9yZWN0X3dpZHRoKCZvbGRfc3RhdGUtPmRz dCkgfHwKPiArCSAgICAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ZHN0KSAhPSBkcm1fcmVjdF9o ZWlnaHQoJm9sZF9zdGF0ZS0+ZHN0KSB8fAo+ICsJICAgICBmYi0+cGl4ZWxfZm9ybWF0ICE9IG9s ZF9mYi0+cGl4ZWxfZm9ybWF0KSkKPiAgCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVl Owo+ICAKPiAgCWViYSA9IGRybV9wbGFuZV9zdGF0ZV90b19lYmEoc3RhdGUpOwo+IEBAIC0zNTAs OCArMzQ5LDggQEAgc3RhdGljIGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f cGxhbmUgKnBsYW5lLAo+ICAJCSAqLwo+ICAJCWhzdWIgPSBkcm1fZm9ybWF0X2hvcnpfY2hyb21h X3N1YnNhbXBsaW5nKGZiLT5waXhlbF9mb3JtYXQpOwo+ICAJCXZzdWIgPSBkcm1fZm9ybWF0X3Zl cnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5waXhlbF9mb3JtYXQpOwo+IC0JCWlmICgoKHN0YXRl LT5zcmNfeCA+PiAxNikgJiAoaHN1YiAtIDEpKSB8fAo+IC0JCSAgICAoKHN0YXRlLT5zcmNfeSA+ PiAxNikgJiAodnN1YiAtIDEpKSkKPiArCQlpZiAoKChzdGF0ZS0+c3JjLngxID4+IDE2KSAmICho c3ViIC0gMSkpIHx8Cj4gKwkJICAgICgoc3RhdGUtPnNyYy55MSA+PiAxNikgJiAodnN1YiAtIDEp KSkKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IEBAIC0zOTUsOCArMzk0LDggQEAg c3RhdGljIHZvaWQgaXB1X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4gIAkJaWNzID0gaXB1X2RybV9mb3VyY2NfdG9fY29sb3JzcGFjZShzdGF0ZS0+ZmItPnBp eGVsX2Zvcm1hdCk7Cj4gIAkJaXB1X2RwX3NldHVwX2NoYW5uZWwoaXB1X3BsYW5lLT5kcCwgaWNz LAo+ICAJCQkJCUlQVVYzX0NPTE9SU1BBQ0VfVU5LTk9XTik7Cj4gLQkJaXB1X2RwX3NldF93aW5k b3dfcG9zKGlwdV9wbGFuZS0+ZHAsIHN0YXRlLT5jcnRjX3gsCj4gLQkJCQkJc3RhdGUtPmNydGNf eSk7Cj4gKwkJaXB1X2RwX3NldF93aW5kb3dfcG9zKGlwdV9wbGFuZS0+ZHAsCj4gKwkJCQkgICAg ICBzdGF0ZS0+ZHN0LngxLCBzdGF0ZS0+ZHN0LnkxKTsKPiAgCQkvKiBFbmFibGUgbG9jYWwgYWxw aGEgb24gcGFydGlhbCBwbGFuZSAqLwo+ICAJCXN3aXRjaCAoc3RhdGUtPmZiLT5waXhlbF9mb3Jt YXQpIHsKPiAgCQljYXNlIERSTV9GT1JNQVRfQVJHQjE1NTU6Cj4gQEAgLTQxNiwxMSArNDE1LDEy IEBAIHN0YXRpYyB2b2lkIGlwdV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ICAJCX0KPiAgCX0KPiAgCj4gLQlpcHVfZG1mY19jb25maWdfd2FpdDRlb3QoaXB1 X3BsYW5lLT5kbWZjLCBzdGF0ZS0+Y3J0Y193KTsKPiArCWlwdV9kbWZjX2NvbmZpZ193YWl0NGVv dChpcHVfcGxhbmUtPmRtZmMsIGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+ZHN0KSk7Cj4gIAo+ICAJ aXB1X2NwbWVtX3plcm8oaXB1X3BsYW5lLT5pcHVfY2gpOwo+IC0JaXB1X2NwbWVtX3NldF9yZXNv bHV0aW9uKGlwdV9wbGFuZS0+aXB1X2NoLCBzdGF0ZS0+c3JjX3cgPj4gMTYsCj4gLQkJCQkJc3Rh dGUtPnNyY19oID4+IDE2KTsKPiArCWlwdV9jcG1lbV9zZXRfcmVzb2x1dGlvbihpcHVfcGxhbmUt PmlwdV9jaCwKPiArCQkJCSBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPnNyYykgPj4gMTYsCj4gKwkJ CQkgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+c3JjKSA+PiAxNik7Cj4gIAlpcHVfY3BtZW1fc2V0 X2ZtdChpcHVfcGxhbmUtPmlwdV9jaCwgc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpOwo+ICAJaXB1 X2NwbWVtX3NldF9oaWdoX3ByaW9yaXR5KGlwdV9wbGFuZS0+aXB1X2NoKTsKPiAgCWlwdV9pZG1h Y19zZXRfZG91YmxlX2J1ZmZlcihpcHVfcGxhbmUtPmlwdV9jaCwgMSk7Cj4gQEAgLTQ0NCw3ICs0 NDQsNyBAQCBzdGF0aWMgdm9pZCBpcHVfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiAgCj4gIAkJZGV2X2RiZyhpcHVfcGxhbmUtPmJhc2UuZGV2LT5kZXYsCj4g IAkJCSJwaHkgPSAlbHUgJWx1ICVsdSwgeCA9ICVkLCB5ID0gJWQiLCBlYmEsIHVibywgdmJvLAo+ IC0JCQlzdGF0ZS0+c3JjX3ggPj4gMTYsIHN0YXRlLT5zcmNfeSA+PiAxNik7Cj4gKwkJCXN0YXRl LT5zcmMueDEgPj4gMTYsIHN0YXRlLT5zcmMueTEgPj4gMTYpOwo+ICAJCWJyZWFrOwo+ICAJY2Fz ZSBEUk1fRk9STUFUX05WMTI6Cj4gIAljYXNlIERSTV9GT1JNQVRfTlYxNjoKPiBAQCAtNDU1LDEx ICs0NTUsMTEgQEAgc3RhdGljIHZvaWQgaXB1X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAJCWRldl9kYmcoaXB1X3BsYW5lLT5iYXNlLmRldi0+ZGV2 LAo+ICAJCQkicGh5ID0gJWx1ICVsdSwgeCA9ICVkLCB5ID0gJWQiLCBlYmEsIHVibywKPiAtCQkJ c3RhdGUtPnNyY194ID4+IDE2LCBzdGF0ZS0+c3JjX3kgPj4gMTYpOwo+ICsJCQlzdGF0ZS0+c3Jj LngxID4+IDE2LCBzdGF0ZS0+c3JjLnkxID4+IDE2KTsKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6 Cj4gIAkJZGV2X2RiZyhpcHVfcGxhbmUtPmJhc2UuZGV2LT5kZXYsICJwaHlzID0gJWx1LCB4ID0g JWQsIHkgPSAlZCIsCj4gLQkJCWViYSwgc3RhdGUtPnNyY194ID4+IDE2LCBzdGF0ZS0+c3JjX3kg Pj4gMTYpOwo+ICsJCQllYmEsIHN0YXRlLT5zcmMueDEgPj4gMTYsIHN0YXRlLT5zcmMueTEgPj4g MTYpOwo+ICAJCWJyZWFrOwo+ICAJfQo+ICAJaXB1X2NwbWVtX3NldF9idWZmZXIoaXB1X3BsYW5l LT5pcHVfY2gsIDAsIGViYSk7Cj4gLS0gCj4gMi4xMS4wCgotLSAKVmlsbGUgU3lyasOkbMOkCklu dGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK