From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v4 1/2] drm: Add per-plane pixel blend mode property Date: Wed, 22 Aug 2018 15:27:44 +0200 Message-ID: <226092b6-315d-b4b8-1c3f-b5d6cdc7da3f@linux.intel.com> References: <1534314933-23182-1-git-send-email-lowry.li@arm.com> <1534314933-23182-2-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0CE086E063 for ; Wed, 22 Aug 2018 13:27:50 +0000 (UTC) In-Reply-To: <1534314933-23182-2-git-send-email-lowry.li@arm.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lowry Li , liviu.dudau@arm.com Cc: airlied@linux.ie, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, malidp@foss.arm.com, daniel.vetter@intel.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org T3AgMTUtMDgtMTggb20gMDg6MzUgc2NocmVlZiBMb3dyeSBMaToKPiBQaXhlbCBibGVuZCBtb2Rl cyByZXByZXNlbnQgdGhlIGFscGhhIGJsZW5kaW5nIGVxdWF0aW9uCj4gc2VsZWN0aW9uLCBkZXNj cmliaW5nIGhvdyB0aGUgcGl4ZWxzIGZyb20gdGhlIGN1cnJlbnQKPiBwbGFuZSBhcmUgY29tcG9z aXRlZCB3aXRoIHRoZSBiYWNrZ3JvdW5kLgo+Cj4gQWRkcyBhIHBpeGVsX2JsZW5kX21vZGUgdG8g ZHJtX3BsYW5lX3N0YXRlIGFuZCBhCj4gYmxlbmRfbW9kZV9wcm9wZXJ0eSB0byBkcm1fcGxhbmUs IGFuZCByZWxhdGVkIHN1cHBvcnQKPiBmdW5jdGlvbnMuCj4KPiBEZWZpbmVzIHRocmVlIGJsZW5k IG1vZGVzIGluIGRybV9ibGVuZC5oLgo+Cj4gQ2hhbmdlcyBzaW5jZSB2MToKPiAgLSBNb3ZlcyB0 aGUgYmxlbmRpbmcgZXF1YXRpb24gaW50byB0aGUgRE9DIGNvbW1lbnQKPiAgLSBSZWZpbmVzIHRo ZSBjb21tZW50cyBvZiBkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHkgdG8gbm90 Cj4gICAgZW51bWVyYXRlIHRoZSAjZGVmaW5lcywgYnV0IGluc3RlYWQgdGhlIHN0cmluZyB2YWx1 ZXMKPiAgLSBVc2VzIGZnLiogaW5zdGVhZCBvZiBwaXhlbC4qIGFuZCBwbGFuZV9hbHBoYSBpbnN0 ZWFkIG9mIHBsYW5lLmFscGhhCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAgLSBSZWZpbmVzIHRoZSBj b21tZW50cyBvZiBkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHk6Cj4gICAgICAg MSkgUHV0cyB0aGUgZGVzY3JpcHRpb25zIChhZnRlciB0aGUgIjoiKSBvbiBhIG5ldyBsaW5lCj4g ICAgICAgMikgQWRkcyBleHBsYWluaW5nIHdoeSBAc3VwcG9ydGVkX21vZGVzIG5lZWQgUFJFTVVM IGFzIGRlZmF1bHQKPiBDaGFuZ2VzIHNpbmNlIHYzOgo+ICAtIFJlZmluZXMgZHJtX3BsYW5lX2Ny ZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KCkuIGRybV9wcm9wZXJ0eV9hZGRfZW51bSgpCj4gICAg Y2FuIGNhbGN1bGF0ZSB0aGUgaW5kZXggaXRzZWxmIGp1c3QgZmluZSwgc28gbm8gcG9pbnQgaW4g aGF2aW5nIHRoZQo+ICAgIGNhbGxlciBwYXNzIGl0IGluLgo+ICAtIFNpbmNlIHRoZSBjdXJyZW50 IERSTSBhc3N1bXB0aW9uIGlzIHRoYXQgYWxwaGEgaXMgcHJlbXVsdGlwbGllZAo+ICAgIGFzIGRl ZmF1bHQsIGRlZmluZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSSBhcyAwIHdpbGwgYmUgYmV0dGVy Lgo+ICAtIFJlZmluZXMgc29tZSBjb21tZW50cy4KPgo+IFNpZ25lZC1vZmYtYnk6IExvd3J5IExp IDxsb3dyeS5saUBhcm0uY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j ICAgICAgICB8ICAgNCArKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8 ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYyAgICAgICAgIHwgMTI2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fYmxlbmQu aCAgICAgICAgICAgICB8ICAgNiArKwo+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAg ICAgICB8ICAgMiArCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKykKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYwo+IGluZGV4IDNlYjA2MWUuLmQwNDc4YWIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljLmMKPiBAQCAtODk1LDYgKzg5NSw4IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJc3RhdGUtPnNyY19oID0g dmFsOwo+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+YWxwaGFfcHJvcGVydHkpIHsK PiAgCQlzdGF0ZS0+YWxwaGEgPSB2YWw7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5l LT5ibGVuZF9tb2RlX3Byb3BlcnR5KSB7Cj4gKwkJc3RhdGUtPnBpeGVsX2JsZW5kX21vZGUgPSB2 YWw7Cj4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eSkg ewo+ICAJCWlmICghaXNfcG93ZXJfb2ZfMih2YWwgJiBEUk1fTU9ERV9ST1RBVEVfTUFTSykpIHsK PiAgCQkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVkOiVzXSBiYWQgcm90YXRpb24gYml0bWFz azogMHglbGx4XG4iLAo+IEBAIC05NjgsNiArOTcwLDggQEAgc3RhdGljIGludCBkcm1fYXRvbWlj X3BsYW5lX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkqdmFsID0g c3RhdGUtPnNyY19oOwo+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+YWxwaGFfcHJv cGVydHkpIHsKPiAgCQkqdmFsID0gc3RhdGUtPmFscGhhOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0 eSA9PSBwbGFuZS0+YmxlbmRfbW9kZV9wcm9wZXJ0eSkgewo+ICsJCSp2YWwgPSBzdGF0ZS0+cGl4 ZWxfYmxlbmRfbW9kZTsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnJvdGF0aW9u X3Byb3BlcnR5KSB7Cj4gIAkJKnZhbCA9IHN0YXRlLT5yb3RhdGlvbjsKPiAgCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gcGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwo+IGluZGV4IDZkZDUwMzYuLjU2M2FmMDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYwo+IEBAIC0zNTY5LDYgKzM1NjksNyBAQCB2b2lkIF9fZHJtX2F0b21p Y19oZWxwZXJfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkvKiBSZXNl dCB0aGUgYWxwaGEgdmFsdWUgdG8gZnVsbHkgb3BhcXVlIGlmIGl0IG1hdHRlcnMgKi8KPiAgCWlm IChwbGFuZS0+YWxwaGFfcHJvcGVydHkpCj4gIAkJc3RhdGUtPmFscGhhID0gcGxhbmUtPmFscGhh X3Byb3BlcnR5LT52YWx1ZXNbMV07Cj4gKwlwbGFuZS0+c3RhdGUtPnBpeGVsX2JsZW5kX21vZGUg PSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSTsKPiAgCj4gIAlwbGFuZS0+c3RhdGUgPSBzdGF0ZTsK PiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2JsZW5kLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2JsZW5kLmMKPiBpbmRleCBhMTZhNzRkLi4yNDAxNmM5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYmxlbmQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYmxlbmQuYwo+IEBAIC0xMDcsNiArMTA3LDUyIEBACj4gICAqCXBsYW5lcy4gV2l0aG91dCB0 aGlzIHByb3BlcnR5IHRoZSBwcmltYXJ5IHBsYW5lIGlzIGFsd2F5cyBiZWxvdyB0aGUgY3Vyc29y Cj4gICAqCXBsYW5lLCBhbmQgb3JkZXJpbmcgYmV0d2VlbiBhbGwgb3RoZXIgcGxhbmVzIGlzIHVu ZGVmaW5lZC4KPiAgICoKPiArICogcGl4ZWwgYmxlbmQgbW9kZToKPiArICoJUGl4ZWwgYmxlbmQg bW9kZSBpcyBzZXQgdXAgd2l0aCBkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHko KS4KPiArICoJSXQgYWRkcyBhIGJsZW5kIG1vZGUgZm9yIGFscGhhIGJsZW5kaW5nIGVxdWF0aW9u IHNlbGVjdGlvbiwgZGVzY3JpYmluZwo+ICsgKglob3cgdGhlIHBpeGVscyBmcm9tIHRoZSBjdXJy ZW50IHBsYW5lIGFyZSBjb21wb3NpdGVkIHdpdGggdGhlCj4gKyAqCWJhY2tncm91bmQuCj4gKyAq Cj4gKyAqCSBUaHJlZSBhbHBoYSBibGVuZGluZyBlcXVhdGlvbnMgYXJlIGRlZmluZWQ6Cj4gKyAq Cj4gKyAqCSAiTm9uZSI6Cj4gKyAqCQkgQmxlbmQgZm9ybXVsYSB0aGF0IGlnbm9yZXMgdGhlIHBp eGVsIGFscGhhOjoKPiArICoKPiArICoJCQkgb3V0LnJnYiA9IHBsYW5lX2FscGhhICogZmcucmdi ICsKPiArICoJCQkJICgxIC0gcGxhbmVfYWxwaGEpICogYmcucmdiCj4gKyAqCj4gKyAqCSAiUHJl LW11bHRpcGxpZWQiOgo+ICsgKgkJIEJsZW5kIGZvcm11bGEgdGhhdCBhc3N1bWVzIHRoZSBwaXhl bCBjb2xvciB2YWx1ZXMKPiArICoJCSBoYXZlIGJlZW4gYWxyZWFkeSBwcmUtbXVsdGlwbGllZCB3 aXRoIHRoZSBhbHBoYQo+ICsgKgkJIGNoYW5uZWwgdmFsdWVzOjoKPiArICoKPiArICoJCQkgb3V0 LnJnYiA9IHBsYW5lX2FscGhhICogZmcucmdiICsKPiArICoJCQkJICgxIC0gKHBsYW5lX2FscGhh ICogZmcuYWxwaGEpKSAqIGJnLnJnYgo+ICsgKgo+ICsgKgkgIkNvdmVyYWdlIjoKPiArICoJCSBC bGVuZCBmb3JtdWxhIHRoYXQgYXNzdW1lcyB0aGUgcGl4ZWwgY29sb3IgdmFsdWVzIGhhdmUgbm90 Cj4gKyAqCQkgYmVlbiBwcmUtbXVsdGlwbGllZCBhbmQgd2lsbCBkbyBzbyB3aGVuIGJsZW5kaW5n IHRoZW0gdG8gdGhlCj4gKyAqCQkgYmFja2dyb3VuZCBjb2xvciB2YWx1ZXM6Ogo+ICsgKgo+ICsg KgkJCSBvdXQucmdiID0gcGxhbmVfYWxwaGEgKiBmZy5hbHBoYSAqIGZnLnJnYiArCj4gKyAqCQkJ CSAoMSAtIChwbGFuZV9hbHBoYSAqIGZnLmFscGhhKSkgKiBiZy5yZ2IKPiArICoKPiArICoJIFVz aW5nIHRoZSBmb2xsb3dpbmcgc3ltYm9sczoKPiArICoKPiArICoJICJmZy5yZ2IiOgo+ICsgKgkJ IEVhY2ggb2YgdGhlIFJHQiBjb21wb25lbnQgdmFsdWVzIGZyb20gdGhlIHBsYW5lJ3MgcGl4ZWwK PiArICoJICJmZy5hbHBoYSI6Cj4gKyAqCQkgQWxwaGEgY29tcG9uZW50IHZhbHVlIGZyb20gdGhl IHBsYW5lJ3MgcGl4ZWwuIElmIHRoZSBwbGFuZSdzCj4gKyAqCQkgcGl4ZWwgZm9ybWF0IGhhcyBu byBhbHBoYSBjb21wb25lbnQsIHRoZW4gdGhpcyBpcyBhc3N1bWVkIHRvIGJlCj4gKyAqCQkgMS4w LiBJbiB0aGVzZSBjYXNlcywgdGhpcyBwcm9wZXJ0eSBoYXMgbm8gZWZmZWN0LCBhcyBhbGwgdGhy ZWUKPiArICoJCSBlcXVhdGlvbnMgYmVjb21lIGVxdWl2YWxlbnQuCj4gKyAqCSAiYmcucmdiIjoK PiArICoJCSBFYWNoIG9mIHRoZSBSR0IgY29tcG9uZW50IHZhbHVlcyBmcm9tIHRoZSBiYWNrZ3Jv dW5kCj4gKyAqCSAicGxhbmVfYWxwaGEiOgo+ICsgKgkJIFBsYW5lIGFscGhhIHZhbHVlIHNldCBi eSB0aGUgcGxhbmUgImFscGhhIiBwcm9wZXJ0eS4gSWYgdGhlCj4gKyAqCQkgcGxhbmUgZG9lcyBu b3QgZXhwb3NlIHRoZSAiYWxwaGEiIHByb3BlcnR5LCB0aGVuIHRoaXMgaXMKPiArICoJCSBhc3N1 bWVkIHRvIGJlIDEuMAo+ICsgKgo+ICAgKiBOb3RlIHRoYXQgYWxsIHRoZSBwcm9wZXJ0eSBleHRl bnNpb25zIGRlc2NyaWJlZCBoZXJlIGFwcGx5IGVpdGhlciB0byB0aGUKPiAgICogcGxhbmUgb3Ig dGhlIENSVEMgKGUuZy4gZm9yIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLCB3aGljaCBjdXJyZW50bHkg aXMgbm90Cj4gICAqIGV4cG9zZWQgYW5kIGFzc3VtZWQgdG8gYmUgYmxhY2spLgo+IEBAIC00NDgs MyArNDk0LDgzIEBAIGludCBkcm1fYXRvbWljX25vcm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNf bm9ybWFsaXplX3pwb3MpOwo+ICsKPiArLyoqCj4gKyAqIGRybV9wbGFuZV9jcmVhdGVfYmxlbmRf bW9kZV9wcm9wZXJ0eSAtIGNyZWF0ZSBhIG5ldyBibGVuZCBtb2RlIHByb3BlcnR5Cj4gKyAqIEBw bGFuZTogZHJtIHBsYW5lCj4gKyAqIEBzdXBwb3J0ZWRfbW9kZXM6IGJpdG1hc2sgb2Ygc3VwcG9y dGVkIG1vZGVzLCBtdXN0IGluY2x1ZGUKPiArICoJCSAgICAgQklUKERSTV9NT0RFX0JMRU5EX1BS RU1VTFRJKS4gQ3VycmVudCBEUk0gYXNzdW1wdGlvbiBpcwo+ICsgKgkJICAgICB0aGF0IGFscGhh IGlzIHByZW11bHRpcGxpZWQsIGFuZCBvbGQgdXNlcnNwYWNlIGNhbiBicmVhayBpZgo+ICsgKgkJ ICAgICB0aGUgcHJvcGVydHkgZGVmYXVsdHMgdG8gYW55dGhpbmcgZWxzZS4KPiArICoKPiArICog VGhpcyBjcmVhdGVzIGEgbmV3IHByb3BlcnR5IGRlc2NyaWJpbmcgdGhlIGJsZW5kIG1vZGUuCj4g KyAqCj4gKyAqIFRoZSBwcm9wZXJ0eSBleHBvc2VkIHRvIHVzZXJzcGFjZSBpcyBhbiBlbnVtZXJh dGlvbiBwcm9wZXJ0eSAoc2VlCj4gKyAqIGRybV9wcm9wZXJ0eV9jcmVhdGVfZW51bSgpKSBjYWxs ZWQgInBpeGVsIGJsZW5kIG1vZGUiIGFuZCBoYXMgdGhlCj4gKyAqIGZvbGxvd2luZyBlbnVtZXJh dGlvbiB2YWx1ZXM6Cj4gKyAqCj4gKyAqICJOb25lIjoKPiArICoJQmxlbmQgZm9ybXVsYSB0aGF0 IGlnbm9yZXMgdGhlIHBpeGVsIGFscGhhLgo+ICsgKgo+ICsgKiAiUHJlLW11bHRpcGxpZWQiOgo+ ICsgKglCbGVuZCBmb3JtdWxhIHRoYXQgYXNzdW1lcyB0aGUgcGl4ZWwgY29sb3IgdmFsdWVzIGhh dmUgYmVlbiBhbHJlYWR5Cj4gKyAqCXByZS1tdWx0aXBsaWVkIHdpdGggdGhlIGFscGhhIGNoYW5u ZWwgdmFsdWVzLgo+ICsgKgo+ICsgKiAiQ292ZXJhZ2UiOgo+ICsgKglCbGVuZCBmb3JtdWxhIHRo YXQgYXNzdW1lcyB0aGUgcGl4ZWwgY29sb3IgdmFsdWVzIGhhdmUgbm90IGJlZW4KPiArICoJcHJl LW11bHRpcGxpZWQgYW5kIHdpbGwgZG8gc28gd2hlbiBibGVuZGluZyB0aGVtIHRvIHRoZSBiYWNr Z3JvdW5kIGNvbG9yCj4gKyAqCXZhbHVlcy4KPiArICoKPiArICogUkVUVVJOUzoKPiArICogWmVy byBmb3Igc3VjY2VzcyBvciAtZXJybm8KPiArICovCj4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX2Js ZW5kX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkJIHVuc2ln bmVkIGludCBzdXBwb3J0ZWRfbW9kZXMpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBwbGFuZS0+ZGV2Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiArCXN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IHByb3BzW10gPSB7Cj4gKwkJeyBEUk1fTU9E RV9CTEVORF9QSVhFTF9OT05FLCAiTm9uZSIgfSwKPiArCQl7IERSTV9NT0RFX0JMRU5EX1BSRU1V TFRJLCAiUHJlLW11bHRpcGxpZWQiIH0sCj4gKwkJeyBEUk1fTU9ERV9CTEVORF9DT1ZFUkFHRSwg IkNvdmVyYWdlIiB9LAo+ICsJfTsKPiArCXVuc2lnbmVkIGludCB2YWxpZF9tb2RlX21hc2sgPSBC SVQoRFJNX01PREVfQkxFTkRfUElYRUxfTk9ORSkgfAo+ICsJCQkJICAgICAgIEJJVChEUk1fTU9E RV9CTEVORF9QUkVNVUxUSSkgICB8Cj4gKwkJCQkgICAgICAgQklUKERSTV9NT0RFX0JMRU5EX0NP VkVSQUdFKTsKPiArCWludCBpOwo+ICsKPiArCWlmIChXQVJOX09OKChzdXBwb3J0ZWRfbW9kZXMg JiB+dmFsaWRfbW9kZV9tYXNrKSB8fAo+ICsJCSAgICAoKHN1cHBvcnRlZF9tb2RlcyAmIEJJVChE Uk1fTU9ERV9CTEVORF9QUkVNVUxUSSkpID09IDApKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAr Cj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZShkZXYsIERSTV9NT0RFX1BST1BfRU5VTSwK PiArCQkJCSAgICJwaXhlbCBibGVuZCBtb2RlIiwKPiArCQkJCSAgIGh3ZWlnaHQzMihzdXBwb3J0 ZWRfbW9kZXMpKTsKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlm b3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwcm9wcyk7IGkrKykgewo+ICsJCWludCByZXQ7Cj4g Kwo+ICsJCWlmICghKEJJVChwcm9wc1tpXS50eXBlKSAmIHN1cHBvcnRlZF9tb2RlcykpCj4gKwkJ CWNvbnRpbnVlOwo+ICsKPiArCQlyZXQgPSBkcm1fcHJvcGVydHlfYWRkX2VudW0ocHJvcCwgcHJv cHNbaV0udHlwZSwKPiArCQkJCQkgICAgcHJvcHNbaV0ubmFtZSk7Cj4gKwo+ICsJCWlmIChyZXQp IHsKPiArCQkJZHJtX3Byb3BlcnR5X2Rlc3Ryb3koZGV2LCBwcm9wKTsKPiArCj4gKwkJCXJldHVy biByZXQ7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZw bGFuZS0+YmFzZSwgcHJvcCwgRFJNX01PREVfQkxFTkRfUFJFTVVMVEkpOwpEbyB3ZSBzdGlsbCBj YXJlIGFib3V0ICFhdG9taWMga2VybmVsIGRyaXZlcnM/Cj4gKwlwbGFuZS0+YmxlbmRfbW9kZV9w cm9wZXJ0eSA9IHByb3A7Cj4gKwo+ICsJaWYgKHBsYW5lLT5zdGF0ZSkKPiArCQlwbGFuZS0+c3Rh dGUtPnBpeGVsX2JsZW5kX21vZGUgPSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSTsKCklzIHRoaXMg c3RpbGwgbmVlZGVkIHdpdGggdGhlIGh1bmsgaW4gX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9y ZXNldCgpID8gSSB3b3VsZCBqdXN0IHJlbW92ZSBpdC4KCgo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KTsK PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2JsZW5kLmggYi9pbmNsdWRlL2RybS9kcm1f YmxlbmQuaAo+IGluZGV4IDMzMGM1NjEuLjg4YmRmZWMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2JsZW5kLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaAo+IEBAIC0yNyw2 ICsyNywxMCBAQAo+ICAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KPiAgI2luY2x1ZGUgPGRybS9k cm1fbW9kZS5oPgo+ICAKPiArI2RlZmluZSBEUk1fTU9ERV9CTEVORF9QUkVNVUxUSQkJMAo+ICsj ZGVmaW5lIERSTV9NT0RFX0JMRU5EX0NPVkVSQUdFCQkxCj4gKyNkZWZpbmUgRFJNX01PREVfQkxF TkRfUElYRUxfTk9ORQkyCj4gKwo+ICBzdHJ1Y3QgZHJtX2RldmljZTsKPiAgc3RydWN0IGRybV9h dG9taWNfc3RhdGU7Cj4gIHN0cnVjdCBkcm1fcGxhbmU7Cj4gQEAgLTUyLDQgKzU2LDYgQEAgaW50 IGRybV9wbGFuZV9jcmVhdGVfenBvc19pbW11dGFibGVfcHJvcGVydHkoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsCj4gIAkJCQkJICAgICB1bnNpZ25lZCBpbnQgenBvcyk7Cj4gIGludCBkcm1fYXRv bWljX25vcm1hbGl6ZV96cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSAgICAgIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gK2ludCBkcm1fcGxhbmVfY3JlYXRlX2Js ZW5kX21vZGVfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gKwkJCQkJIHVuc2ln bmVkIGludCBzdXBwb3J0ZWRfbW9kZXMpOwo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IGluZGV4IDhhMTUy ZGMuLmM1MjYxNGEgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IEBAIC0xMTcsNiArMTE3LDcgQEAgc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSB7Cj4gIAkgKiBkZXRhaWxzLgo+ICAJICovCj4gIAl1MTYgYWxwaGE7Cj4g Kwl1aW50MTZfdCBwaXhlbF9ibGVuZF9tb2RlOwo+ICAKPiAgCS8qKgo+ICAJICogQHJvdGF0aW9u Ogo+IEBAIC02NTksNiArNjYwLDcgQEAgc3RydWN0IGRybV9wbGFuZSB7Cj4gIAkgKiBkcm1fcGxh bmVfY3JlYXRlX3JvdGF0aW9uX3Byb3BlcnR5KCkuCj4gIAkgKi8KPiAgCXN0cnVjdCBkcm1fcHJv cGVydHkgKnJvdGF0aW9uX3Byb3BlcnR5Owo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqYmxlbmRf bW9kZV9wcm9wZXJ0eTsKPiAgCj4gIAkvKioKPiAgCSAqIEBjb2xvcl9lbmNvZGluZ19wcm9wZXJ0 eToKClRoZXNlIG5lZWQgdG8gYmUgZG9jdW1lbnRlZC4KCldpdGggdGhvc2UgY2hhbmdlczoKClJl dmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50 ZWwuY29tPgoKfk1hYXJ0ZW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=