From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: Re: [PATCH/RFC 1/4] drm: Add colorkey properties Date: Tue, 19 Dec 2017 10:00:28 +0100 Message-ID: <774a29ec-fd51-7bc5-bcbb-ce0d49a76aa8@baylibre.com> References: <20171217001724.1348-1-laurent.pinchart+renesas@ideasonboard.com> <20171217001724.1348-2-laurent.pinchart+renesas@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) by gabe.freedesktop.org (Postfix) with ESMTPS id 06BAA6E273 for ; Tue, 19 Dec 2017 09:00:32 +0000 (UTC) Received: by mail-wm0-x236.google.com with SMTP id f9so2090010wmh.0 for ; Tue, 19 Dec 2017 01:00:32 -0800 (PST) In-Reply-To: <20171217001724.1348-2-laurent.pinchart+renesas@ideasonboard.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: Laurent Pinchart , dri-devel@lists.freedesktop.org Cc: Thomas Hellstrom , Joonas Lahtinen , Russell King , linux-renesas-soc@vger.kernel.org, Ben Skeggs , Rodrigo Vivi , Alexandru Gheorghe , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGkgTGF1cmVudCwKCk9uIDE3LzEyLzIwMTcgMDE6MTcsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6 Cj4gQ29sb3Iga2V5aW5nIGlzIHRoZSBhY3Rpb24gb2YgcmVwbGFjaW5nIHBpeGVscyBtYXRjaGlu ZyBhIGdpdmVuIGNvbG9yCj4gKG9yIHJhbmdlIG9mIGNvbG9ycykgd2l0aCB0cmFuc3BhcmVudCBw aXhlbHMgaW4gYW4gb3ZlcmxheSB3aGVuCj4gcGVyZm9ybWluZyBibGl0dGluZy4gRGVwZW5kaW5n IG9uIHRoZSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMsIHRoZQo+IG1hdGNoaW5nIHBpeGVsIGNhbiBl aXRoZXIgYmVjb21lIGZ1bGx5IHRyYW5zcGFyZW50LCBvciBnYWluIGEKPiBwcm9ncmFtbWFibGUg YWxwaGEgdmFsdWUuCj4gCj4gQ29sb3Iga2V5aW5nIGlzIGZvdW5kIGluIGEgbGFyZ2UgbnVtYmVy IG9mIGRldmljZXMgd2hvc2UgY2FwYWJpbGl0aWVzCj4gb2Z0ZW4gZGlmZmVyLCBidXQgdGhleSBz dGlsbCBoYXZlIGVub3VnaCBjb21tb24gZmVhdHVyZXMgaW4gcmFuZ2UgdG8KPiBzdGFuZGFyZGl6 ZSBjb2xvciBrZXkgcHJvcGVydGllcy4gVGhpcyBjb21taXQgYWRkcyBmb3VyIHByb3BlcnRpZXMK PiByZWxhdGVkIHRvIGNvbG9yIGtleWluZyBuYW1lZCBjb2xvcmtleS5taW4sIGNvbG9ya2V5Lm1h eCwgY29sb3JrZXkuYWxwaGEKPiBhbmQgY29sb3JrZXkubW9kZS4gQWRkaXRpb25hbCBwcm9wZXJ0 aWVzIGNhbiBiZSBkZWZpbmVkIGJ5IGRyaXZlcnMgdG8KPiBleHBvc2UgZGV2aWNlLXNwZWNpZmlj IGZlYXR1cmVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQu cGluY2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jIHwgIDE2ICsrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9ibGVu ZC5jICB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IGluY2x1ZGUvZHJtL2RybV9ibGVuZC5oICAgICAgfCAgIDQgKysKPiAgaW5jbHVkZS9kcm0vZHJt X3BsYW5lLmggICAgICB8ICAyOCArKysrKysrKysrLQo+ICA0IGZpbGVzIGNoYW5nZWQsIDE1NSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gaW5kZXgg Mzc0NDVkNTA4MTZhLi40ZjU3ZWMyNWUwNGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiBAQCAt NzU2LDYgKzc1NiwxNCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5 KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXN0YXRlLT5yb3RhdGlvbiA9IHZhbDsKPiAg CX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKPiAgCQlzdGF0 ZS0+enBvcyA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9ya2V5 Lm1vZGVfcHJvcGVydHkpIHsKPiArCQlzdGF0ZS0+Y29sb3JrZXkubW9kZSA9IHZhbDsKPiArCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9ya2V5Lm1pbl9wcm9wZXJ0eSkgewo+ICsJ CXN0YXRlLT5jb2xvcmtleS5taW4gPSB2YWw7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBs YW5lLT5jb2xvcmtleS5tYXhfcHJvcGVydHkpIHsKPiArCQlzdGF0ZS0+Y29sb3JrZXkubWF4ID0g dmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JrZXkudmFsdWVfcHJv cGVydHkpIHsKPiArCQlzdGF0ZS0+Y29sb3JrZXkudmFsdWUgPSB2YWw7Cj4gIAl9IGVsc2UgaWYg KHBsYW5lLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ICAJCXJldHVybiBwbGFuZS0+ ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLAo+ICAJCQkJcHJvcGVydHks IHZhbCk7Cj4gQEAgLTgxNSw2ICs4MjMsMTQgQEAgZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVy dHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJKnZhbCA9IHN0YXRlLT5yb3RhdGlvbjsK PiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKPiAgCQkq dmFsID0gc3RhdGUtPnpwb3M7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xv cmtleS5tb2RlX3Byb3BlcnR5KSB7Cj4gKwkJKnZhbCA9IHN0YXRlLT5jb2xvcmtleS5tb2RlOwo+ ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JrZXkubWluX3Byb3BlcnR5KSB7 Cj4gKwkJKnZhbCA9IHN0YXRlLT5jb2xvcmtleS5taW47Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5 ID09IHBsYW5lLT5jb2xvcmtleS5tYXhfcHJvcGVydHkpIHsKPiArCQkqdmFsID0gc3RhdGUtPmNv bG9ya2V5Lm1heDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9ya2V5LnZh bHVlX3Byb3BlcnR5KSB7Cj4gKwkJKnZhbCA9IHN0YXRlLT5jb2xvcmtleS52YWx1ZTsKPiAgCX0g ZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJu IHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsIHByb3BlcnR5 LCB2YWwpOwo+ICAJfSBlbHNlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9i bGVuZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jCj4gaW5kZXggMmU1ZTA4OWRkOTEy Li43OWRhN2Q4YTIyZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9ibGVuZC5jCj4gQEAgLTk4LDYgKzk4LDEwIEBA Cj4gICAqICAgcGxhbmVzLiBXaXRob3V0IHRoaXMgcHJvcGVydHkgdGhlIHByaW1hcnkgcGxhbmUg aXMgYWx3YXlzIGJlbG93IHRoZSBjdXJzb3IKPiAgICogICBwbGFuZSwgYW5kIG9yZGVyaW5nIGJl dHdlZW4gYWxsIG90aGVyIHBsYW5lcyBpcyB1bmRlZmluZWQuCj4gICAqCj4gKyAqIC0gQ29sb3Ig a2V5aW5nIGlzIHNldCB1cCB3aXRoIGRybV9wbGFuZV9jcmVhdGVfY29sb3JrZXlfcHJvcGVydGll cygpLiBJdCBhZGRzCj4gKyAqICAgc3VwcG9ydCBmb3IgcmVwbGFjaW5nIGEgcmFuZ2Ugb2YgY29s b3JzIHdpdGggYSB0cmFuc3BhcmVudCBjb2xvciBpbiB0aGUKPiArICogICBwbGFuZS4KPiArICoK PiAgICogTm90ZSB0aGF0IGFsbCB0aGUgcHJvcGVydHkgZXh0ZW5zaW9ucyBkZXNjcmliZWQgaGVy ZSBhcHBseSBlaXRoZXIgdG8gdGhlCj4gICAqIHBsYW5lIG9yIHRoZSBDUlRDIChlLmcuIGZvciB0 aGUgYmFja2dyb3VuZCBjb2xvciwgd2hpY2ggY3VycmVudGx5IGlzIG5vdAo+ICAgKiBleHBvc2Vk IGFuZCBhc3N1bWVkIHRvIGJlIGJsYWNrKS4KPiBAQCAtNDA1LDMgKzQwOSwxMDcgQEAgaW50IGRy bV9hdG9taWNfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJldHVy biAwOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19ub3JtYWxpemVfenBvcyk7Cj4g Kwo+ICsvKioKPiArICogZHJtX3BsYW5lX2NyZWF0ZV9jb2xvcmtleV9wcm9wZXJ0aWVzIC0gY3Jl YXRlIGNvbG9ya2V5IHByb3BlcnRpZXMKPiArICogQHBsYW5lOiBkcm0gcGxhbmUKPiArICogQG1v ZGVzOiBhcnJheSBvZiBzdXBwb3J0ZWQgY29sb3Iga2V5aW5nIG1vZGVzCj4gKyAqIEBudW1fbW9k ZXM6IG51bWJlciBvZiBtb2RlcyBpbiB0aGUgbW9kZXMgYXJyYXkKPiArICogQHJlcGxhY2U6IGlm IHRydWUgY3JlYXRlIHRoZSBjb2xvcmtleS5yZXBsYWNlbWVudCBwcm9wZXJ0eQo+ICsgKgo+ICsg KiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgdGhlIGdlbmVyaWMgY29sb3Iga2V5aW5nIHByb3BlcnRp ZXMgYW5kIGF0dGFjaCB0aGVtIHRvCj4gKyAqIHRoZSBwbGFuZSB0byBlbmFibGUgY29sb3Iga2V5 aW5nIGNvbnRyb2wgZm9yIGJsZW5kaW5nIG9wZXJhdGlvbnMuCj4gKyAqCj4gKyAqIENvbG9yIGtl eWluZyBpcyBjb250cm9sbGVkIHRocm91Z2ggZm91ciBwcm9wZXJ0aWVzOgo+ICsgKgo+ICsgKiBj b2xvcmtleS5tb2RlOgo+ICsgKglUaGUgbW9kZSBpcyBhbiBlbnVtZXJhdGVkIHByb3BlcnR5IHRo YXQgY29udHJvbHMgaG93IGNvbG9yIGtleWluZwo+ICsgKglvcGVyYXRlcy4gTW9kZXMgYXJlIGRy aXZlci1zcGVjaWZpYywgZXhjZXB0IGZvciBhICJkaXNhYmxlZCIgbW9kZSB0aGF0Cj4gKyAqCWRp c2FibGVzIGNvbG9yIGtleWluZyBhbmQgaXMgZ3VhcmFudGVlZCB0byBleGlzdCBpZiBjb2xvciBr ZXlpbmcgaXMKPiArICoJc3VwcG9ydGVkLgo+ICsgKgo+ICsgKiBjb2xvcmtleS5taW4sIGNvbG9y a2V5Lm1heDoKPiArICoJVGhvc2UgdHdvIHByb3BlcnRpZXMgc3BlY2lmeSB0aGUgY29sb3JzIHRo YXQgYXJlIHJlcGxhY2VkIGJ5IHRyYW5zcGFyZW50Cj4gKyAqCXBpeGVscy4gUGl4ZWwgd2hvc2Ug dmFsdWVzIGFyZSBpbiB0aGUgW21pbiwgbWF4XSByYW5nZSBhcmUgcmVwbGFjZWQsIGFsbAo+ICsg KglvdGhlciBwaXhlbHMgYXJlIGxlZnQgdW50b3VjaGVkLiBUaGUgbWluaW11bSBhbmQgbWF4aW11 bSB2YWx1ZXMgYXJlCj4gKyAqCWV4cHJlc3NlZCBhcyBhIDY0LWJpdCBpbnRlZ2VyIGluIEFYWVox NjE2MTYxNiBmb3JtYXQsIHdoZXJlIEEgaXMgdGhlCj4gKyAqCWFscGhhIHZhbHVlIGFuZCBYLCBZ IGFuZCBaIGNvcnJlc3BvbmQgdG8gdGhlIGNvbG9yIGNvbXBvbmVudHMgb2YgdGhlCj4gKyAqCXBs YW5lJ3MgcGl4ZWwgZm9ybWF0LiBJbiBtb3N0IGNhc2VzIFhZWiB3aWxsIGJlIGVpdGhlciBSR0Ig b3IgWVVWLgo+ICsgKgo+ICsgKglXaGVuIGEgc2luZ2xlIGNvbG9yIGtleSBpcyBzdXBwb3J0ZWQg aW5zdGVhZCBvZiBhIHJhbmdlLCB1c2Vyc3BhY2Ugc2hhbGwKPiArICoJc2V0IHRoZSBtaW4gYW5k IG1heCBwcm9wZXJ0aWVzIHRvIHRoZSBzYW1lIHZhbHVlLCBhbmQgZHJpdmVycyByZXR1cm4gYW4K PiArICoJZXJyb3IgZnJvbSB0aGVpciBwbGFuZSBhdG9taWMgY2hlY2sgd2hlbiB0aGUgbWluIGFu ZCBtYXggdmFsdWVzIGRpZmZlci4KPiArICoKPiArICoJTm90ZSB0aGF0IGRlcGVuZGluZyBvbiB0 aGUgc2VsZWN0ZWQgbW9kZSwgbm90IGFsbCBjb21wb25lbnRzIG1pZ2h0IGJlCj4gKyAqCXVzZWQg Zm9yIGNvbXBhcmlzb24uIEZvciBpbnN0YW5jZSBhIGRldmljZSBjb3VsZCBzdXBwb3J0IGNvbG9y IGtleWluZyBpbgo+ICsgKglZVVYgZm9ybWF0IHVzaW5nIGx1bWEgKFkpIG1hdGNoaW5nIG9ubHks IGlnbm9yaW5nIHRoZSBjaHJvbWEgY29tcG9uZW50cy4KPiArICoJVGhpcyBiZWhhdmlvdXIgaXMg ZHJpdmVyLXNwZWNpZmljLgo+ICsgKgo+ICsgKiBjb2xvcmtleS52YWx1ZToKPiArICoJVGhpcyBw cm9wZXJ0eSBzcGVjaWZpZXMgdGhlIGNvbG9yIHZhbHVlIHRoYXQgcmVwbGFjZXMgcGl4ZWxzIG1h dGNoaW5nCj4gKyAqCXRoZSBbbWluLCBtYXhdIHJhbmdlLiBUaGUgdmFsdWUgaXMgZXhwcmVzc2Vk IGluIEFYWVoxNjE2MTYxNiBmb3JtYXQgYXMKPiArICoJdGhlIG1pbiBhbmQgbWF4IHByb3BlcnRp ZXMuCj4gKyAqCj4gKyAqCVRoaXMgcHJvcGVydHkgaXMgb3B0aW9uYWwgYW5kIG9ubHkgcHJlc2Vu dCB3aGVuIHRoZSBkZXZpY2Ugc3VwcG9ydHMKPiArICoJY29uZmlndXJhYmxlIGNvbG9yIHJlcGxh Y2VtZW50IGZvciBtYXRjaGluZyBwaXhlbHMgaW4gdGhlIHBsYW5lLiBJZgo+ICsgKgljb2xvciBr ZXlpbmcgY2FwYWJpbGl0aWVzIG9mIHRoZSBkZXZpY2UgYXJlIGxpbWl0ZWQgdG8gbWFraW5nIHRo ZQo+ICsgKgltYXRjaGluZyBwaXhlbHMgZnVsbHkgdHJhbnNwYXJlbnQgdGhlIGNvbG9ya2V5LnZh bHVlIHByb3BlcnR5IHdvbid0IGJlCj4gKyAqCWNyZWF0ZWQuCj4gKyAqCj4gKyAqCU5vdGUgdGhh dCBkZXBlbmRpbmcgb24gdGhlIGRldmljZSwgb3IgdGhlIHNlbGVjdGVkIG1vZGUsIG5vdCBhbGwK PiArICoJY29tcG9uZW50cyBtaWdodCBiZSB1c2VkIGZvciB2YWx1ZSByZXBsYWNlbWVudC4gRm9y IGluc3RhbmNlIGEgZGV2aWNlCj4gKyAqCWNvdWxkIHN1cHBvcnQgcmVwbGFjaW5nIHRoZSBhbHBo YSB2YWx1ZSBvZiB0aGUgbWF0Y2hpbmcgcGl4ZWxzIGJ1dCBub3QKPiArICoJaXRzIGNvbG9yIGNv bXBvbmVudHMuIFRoaXMgYmVoYXZpb3VyIGlzIGRyaXZlci1zcGVjaWZpYy4KPiArICoKPiArICog VGhlIEBtb2RlcyBwYXJhbWV0ZXIgcG9pbnRzIHRvIGFuIGFycmF5IG9mIGFsbCBjb2xvciBrZXlp bmcgbW9kZXMgc3VwcG9ydGVkCj4gKyAqIGJ5IHRoZSBwbGFuZS4gVGhlIGZpcnN0IG1vZGUgaGFz IHRvIGJlIG5hbWVkICJkaXNhYmxlZCIgYW5kIGhhdmUgdmFsdWUgMC4gQWxsCj4gKyAqIG90aGVy IG1vZGVzIGFyZSBkcml2ZXItc3BlY2lmaWMsIGFuZCBhdCBsZWFzdCBvbmUgbW9kZSBoYXMgdG8g YmUgcHJvdmlkZWQgaW4KPiArICogYWRkaXRpb24gdG8gdGhlICJkaXNhYmxlZCIgbW9kZS4KPiAr ICoKPiArICogUmV0dXJuczoKPiArICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBv biBmYWlsdXJlLgo+ICsgKi8KPiAraW50IGRybV9wbGFuZV9jcmVhdGVfY29sb3JrZXlfcHJvcGVy dGllcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCQkgY29uc3Qgc3RydWN0IGRybV9w cm9wX2VudW1fbGlzdCAqbW9kZXMsCj4gKwkJCQkJIHVuc2lnbmVkIGludCBudW1fbW9kZXMsIGJv b2wgcmVwbGFjZSkKPiArewo+ICsjZGVmaW5lIENSRUFURV9DT0xPUktFWV9QUk9QKHBsYW5lLCBu YW1lLCB0eXBlLCBhcmdzLi4uKSAoewkJICAgICAgIFwKPiArCXByb3AgPSBkcm1fcHJvcGVydHlf Y3JlYXRlXyMjdHlwZShwbGFuZS0+ZGV2LCAwLCAiY29sb3JrZXkuIiAjbmFtZSwgICAgXAo+ICsJ CQkJCSAgYXJncyk7CQkJICAgICAgIFwKPiArCWlmIChwcm9wKSB7CQkJCQkJCSAgICAgICBcCj4g KwkJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBwcm9wLCAwKTsJICAg ICAgIFwKPiArCQlwbGFuZS0+Y29sb3JrZXkubmFtZSMjX3Byb3BlcnR5ID0gcHJvcDsJCQkgICAg ICAgXAo+ICsJfQkJCQkJCQkJICAgICAgIFwKPiArCXByb3A7CQkJCQkJCQkgICAgICAgXAo+ICt9 KQo+ICsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gKwo+ICsJLyoKPiArCSAqIEEg bWluaW11bSBvZiB0d28gbW9kZXMgYXJlIHJlcXVpcmVkLCB3aXRoIHRoZSBmaXJzdCBtb2RlIG11 c3QgbmFtZWQKPiArCSAqICJkaXNhYmxlZCIuCj4gKwkgKi8KPiArCWlmICghbW9kZXMgfHwgbnVt X21vZGVzID09IDAgfHwgc3RyY21wKG1vZGVzWzBdLm5hbWUsICJkaXNhYmxlZCIpKQo+ICsJCXJl dHVybiAtRUlOVkFMOwo+ICsKPiArCXByb3AgPSBDUkVBVEVfQ09MT1JLRVlfUFJPUChwbGFuZSwg bW9kZSwgZW51bSwgbW9kZXMsIG51bV9tb2Rlcyk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJu IC1FTk9NRU07Cj4gKwo+ICsJcHJvcCA9IENSRUFURV9DT0xPUktFWV9QUk9QKHBsYW5lLCBtaW4s IHJhbmdlLCAwLCBVNjRfTUFYKTsKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01FTTsK PiArCj4gKwlwcm9wID0gQ1JFQVRFX0NPTE9SS0VZX1BST1AocGxhbmUsIG1heCwgcmFuZ2UsIDAs IFU2NF9NQVgpOwo+ICsJaWYgKCFwcm9wKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWlm IChyZXBsYWNlKSB7Cj4gKwkJcHJvcCA9IENSRUFURV9DT0xPUktFWV9QUk9QKHBsYW5lLCB2YWx1 ZSwgcmFuZ2UsIDAsIFU2NF9NQVgpOwo+ICsJCWlmICghcHJvcCkKPiArCQkJcmV0dXJuIC1FTk9N RU07Cj4gKwl9CgoKI3VuZGVmIENSRUFURV9DT0xPUktFWV9QUk9QID8KCj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfY3JlYXRlX2NvbG9ya2V5X3Byb3Bl cnRpZXMpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYmxlbmQuaCBiL2luY2x1ZGUv ZHJtL2RybV9ibGVuZC5oCj4gaW5kZXggMTc2MDYwMjY1OTBiLi4xZDRjOTY1ZGQ1ZTIgMTAwNjQ0 Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2JsZW5kLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1f YmxlbmQuaAo+IEBAIC00OSw0ICs0OSw4IEBAIGludCBkcm1fcGxhbmVfY3JlYXRlX3pwb3NfaW1t dXRhYmxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkJCSAgICAgdW5z aWduZWQgaW50IHpwb3MpOwo+ICBpbnQgZHJtX2F0b21pY19ub3JtYWxpemVfenBvcyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpOwo+ICsKPiAraW50IGRybV9wbGFuZV9jcmVhdGVfY29sb3JrZXlfcHJvcGVydGllcyhzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCQkgY29uc3Qgc3RydWN0IGRybV9wcm9wX2VudW1f bGlzdCAqbW9kZXMsCj4gKwkJCQkJIHVuc2lnbmVkIGludCBudW1fbW9kZXMsIGJvb2wgcmVwbGFj ZSk7Cj4gICNlbmRpZgo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaCBiL2lu Y2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gaW5kZXggODE4NWUzNDY4YTIzLi5hNTgwNGE0ZWE1YzMg MTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fcGxhbmUuaAo+IEBAIC01Miw2ICs1MiwxMyBAQCBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNx dWlyZV9jdHg7Cj4gICAqCXdoZXJlIE4gaXMgdGhlIG51bWJlciBvZiBhY3RpdmUgcGxhbmVzIGZv ciBnaXZlbiBjcnRjLiBOb3RlIHRoYXQKPiAgICoJdGhlIGRyaXZlciBtdXN0IGNhbGwgZHJtX2F0 b21pY19ub3JtYWxpemVfenBvcygpIHRvIHVwZGF0ZSB0aGlzIGJlZm9yZQo+ICAgKglpdCBjYW4g YmUgdHJ1c3RlZC4KPiArICogQGNvbG9ya2V5Lm1vZGU6IGNvbG9yIGtleSBtb2RlLiAwIGRpc2Fi bGVkIGNvbG9yIGtleWluZywgb3RoZXIgdmFsdWVzIGFyZQo+ICsgKglkcml2ZXItc3BlY2lmaWMu Cj4gKyAqIEBjb2xvcmtleS5taW46IGNvbG9yIGtleSByYW5nZSBtaW5pbXVtLiBUaGUgdmFsdWUg aXMgc3RvcmVkIGluIEFYWVoxNjE2MTYxNgo+ICsgKglmb3JtYXQsIHdoZXJlIEEgaXMgdGhlIGFs cGhhIHZhbHVlIGFuZCBYLCBZIGFuZCBaIGNvcnJlc3BvbmQgdG8gdGhlCj4gKyAqCWNvbG9yIGNv bXBvbmVudHMgb2YgdGhlIHBsYW5lJ3MgcGl4ZWwgZm9ybWF0ICh1c3VhbGx5IFJHQiBvciBZVVYp Lgo+ICsgKiBAY29sb3JrZXkubWF4OiBjb2xvciBrZXkgcmFuZ2UgbWF4aW11bSAoaW4gQVhZWjE2 MTYxNjE2IGZvcm1hdCkKPiArICogQGNvbG9ya2V5LnZhbHVlOiBjb2xvciBrZXkgcmVwbGFjZW1l bnQgdmFsdWUgKGluIGluIEFYWVoxNjE2MTYxNiBmb3JtYXQpCj4gICAqIEBzcmM6IGNsaXBwZWQg c291cmNlIGNvb3JkaW5hdGVzIG9mIHRoZSBwbGFuZSAoaW4gMTYuMTYpCj4gICAqIEBkc3Q6IGNs aXBwZWQgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgb2YgdGhlIHBsYW5lCj4gICAqIEBzdGF0ZTog YmFja3BvaW50ZXIgdG8gZ2xvYmFsIGRybV9hdG9taWNfc3RhdGUKPiBAQCAtMTEyLDYgKzExOSwx NCBAQCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlIHsKPiAgCXVuc2lnbmVkIGludCB6cG9zOwo+ICAJ dW5zaWduZWQgaW50IG5vcm1hbGl6ZWRfenBvczsKPiAgCj4gKwkvKiBQbGFuZSBjb2xvcmtleSAq Lwo+ICsJc3RydWN0IHsKPiArCQl1bnNpZ25lZCBpbnQgbW9kZTsKPiArCQl1NjQgbWluOwo+ICsJ CXU2NCBtYXg7Cj4gKwkJdTY0IHZhbHVlOwo+ICsJfSBjb2xvcmtleTsKPiArCj4gIAkvKiBDbGlw cGVkIGNvb3JkaW5hdGVzICovCj4gIAlzdHJ1Y3QgZHJtX3JlY3Qgc3JjLCBkc3Q7Cj4gIAo+IEBA IC00ODEsOSArNDk2LDEzIEBAIGVudW0gZHJtX3BsYW5lX3R5cGUgewo+ICAgKiBAZnVuY3M6IGhl bHBlciBmdW5jdGlvbnMKPiAgICogQHByb3BlcnRpZXM6IHByb3BlcnR5IHRyYWNraW5nIGZvciB0 aGlzIHBsYW5lCj4gICAqIEB0eXBlOiB0eXBlIG9mIHBsYW5lIChvdmVybGF5LCBwcmltYXJ5LCBj dXJzb3IpCj4gKyAqIEBoZWxwZXJfcHJpdmF0ZTogbWlkLWxheWVyIHByaXZhdGUgZGF0YQo+ICAg KiBAenBvc19wcm9wZXJ0eTogenBvcyBwcm9wZXJ0eSBmb3IgdGhpcyBwbGFuZQo+ICAgKiBAcm90 YXRpb25fcHJvcGVydHk6IHJvdGF0aW9uIHByb3BlcnR5IGZvciB0aGlzIHBsYW5lCj4gLSAqIEBo ZWxwZXJfcHJpdmF0ZTogbWlkLWxheWVyIHByaXZhdGUgZGF0YQo+ICsgKiBAY29sb3JrZXkubW9k ZV9wcm9wZXJ0eTogY29sb3Iga2V5IG1vZGUgcHJvcGVydHkKPiArICogQGNvbG9ya2V5Lm1pbl9w cm9wZXJ0eTogY29sb3Iga2V5IHJhbmdlIG1pbmltdW0gcHJvcGVydHkKPiArICogQGNvbG9ya2V5 Lm1heF9wcm9wZXJ0eTogY29sb3Iga2V5IHJhbmdlIG1heGltdW0gcHJvcGVydHkKPiArICogQGNv bG9ya2V5LnZhbHVlX3Byb3BlcnR5OiBjb2xvciBrZXkgcmVwbGFjZW1lbnQgdmFsdWUgcHJvcGVy dHkKPiAgICovCj4gIHN0cnVjdCBkcm1fcGxhbmUgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRl djsKPiBAQCAtNTU4LDYgKzU3NywxMyBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsKPiAgCj4gIAlzdHJ1 Y3QgZHJtX3Byb3BlcnR5ICp6cG9zX3Byb3BlcnR5Owo+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAq cm90YXRpb25fcHJvcGVydHk7Cj4gKwo+ICsJc3RydWN0IHsKPiArCQlzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICptb2RlX3Byb3BlcnR5Owo+ICsJCXN0cnVjdCBkcm1fcHJvcGVydHkgKm1pbl9wcm9wZXJ0 eTsKPiArCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICptYXhfcHJvcGVydHk7Cj4gKwkJc3RydWN0IGRy bV9wcm9wZXJ0eSAqdmFsdWVfcHJvcGVydHk7Cj4gKwl9IGNvbG9ya2V5Owo+ICB9Owo+ICAKPiAg I2RlZmluZSBvYmpfdG9fcGxhbmUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBkcm1fcGxhbmUs IGJhc2UpCj4gCgpBcGFydCBmcm9tIHRoYXQsCgpSZXZpZXdlZC1ieTogTmVpbCBBcm1zdHJvbmcg PG5hcm1zdHJvbmdAYmF5bGlicmUuY29tPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK