From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH 02/22] drm/cma-helper: Add drm_fb_cma_fbdev_init/fini() Date: Mon, 6 Nov 2017 13:40:41 +0100 Message-ID: References: <20171104130416.12423-1-noralf@tronnes.org> <20171104130416.12423-3-noralf@tronnes.org> <20171106090433.aprvzhh6i6fla5tx@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id A85C96E135 for ; Mon, 6 Nov 2017 12:40:49 +0000 (UTC) In-Reply-To: <20171106090433.aprvzhh6i6fla5tx@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: marex@denx.de, boris.brezillon@free-electrons.com, david@lechnology.com, narmstrong@baylibre.com, abrodkin@synopsys.com, alison.wang@freescale.com, liviu.dudau@arm.com, philippe.cornu@st.com, dri-devel@lists.freedesktop.org, z.liuxinliang@hisilicon.com, kong.kongxinwei@hisilicon.com, tomi.valkeinen@ti.com, laurent.pinchart@ideasonboard.com, puck.chen@hisilicon.com, zourongrong@gmail.com, shawnguo@kernel.org, maxime.ripard@free-electrons.com, jsarha@ti.com, vincent.abriou@st.com, yannick.fertre@st.com List-Id: dri-devel@lists.freedesktop.org CkRlbiAwNi4xMS4yMDE3IDEwLjA0LCBza3JldiBEYW5pZWwgVmV0dGVyOgo+IE9uIFNhdCwgTm92 IDA0LCAyMDE3IGF0IDAyOjAzOjU2UE0gKzAxMDAsIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPj4g QWRkIGZ1bmN0aW9ucyBkcm1fZmJfY21hX2ZiZGV2X2luaXQoKSwgZHJtX2ZiX2NtYV9mYmRldl9m aW5pKCkgYW5kCj4+IGRybV9mYl9jbWFfZmJkZXZfaW5pdF93aXRoX2Z1bmNzKCkuIFRoZXNlIGZ1 bmN0aW9ucyByZWxpZXMgb24gdGhlIGZhY3QKPj4gdGhhdCB0aGUgZHJtX2ZiX2hlbHBlciBzdHJ1 Y3QgaXMgc3RvcmVkIGluIGRldi0+ZHJtX2ZiX2hlbHBlcl9wcml2YXRlCj4+IHNvIGRyaXZlcnMg ZG9uJ3QgbmVlZCB0byBzdG9yZSBpdC4KPj4KPj4gQ2M6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJl bnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRy w7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4gSSBndWVzcyB5b3UndmUgcHJvdmVuIG1lIHdy b25nLCBzaW5jZSBhdCB0aGUgZW5kIG9mIHRoaXMgcGF0Y2ggc2VyaWVzIHdlCj4gZG8gaGF2ZSBz b21lIG5lYXQgZnVuY3Rpb25zIHRoYXQgZG8gdGhlIHNhbWUgdGhpbmcgYW4gZWFybGllciBwYXRj aCBzZXJpZXMKPiBkaWQsIGV4cGVjdCB0aGVyZSdzIGEgX2NtYV8gaW4gdGhlIG5hbWUuIEJ1dCB0 aGUgZnVuY3Rpb24gaXRzZWxmIGlzIDEwMCUKPiBnZW5lcmljLgo+Cj4gU3J5IGZvciBhbGwgdGhl IG1lYW5kZXJpbmcsIEkgZ3Vlc3MgdGhpcyBvbmNlIGFnYWluIHNob3dzIHRoYXQgYW55IHByb2Js ZW0KPiBpbiBzb2Z0d2FyZSBjYW4gaW5kZWVkIGJlIHNvbHZlZCBieSBhZGRpbmcgYW5vdGhlciBh YnN0cmFjdGlvbiBsYXllciBvbgo+IHRvcC4gWW91J2xsIHByb2JhYmx5IGJlIHNsaWdodGx5IG1h ZCwgYnV0IEknZCB2b3RlIGZvciB0aGUgcGF0Y2ggdG8gZHJvcAo+IHRoZSBfY21hXyBpbmZpeCBh Z2FpbiAob25jZSBldmVyeXRoaW5nIGhhcyBsYW5kZWQsIG5vIG5lZWQgdG8gcmVzcGluIGFsbAo+ IHRoZSBwYXRjaGVzIGFnYWluKS4KPgoKVGhlIHB1cnBvc2UgaGVyZSBpcyBub3QgdG8gYWRkIGEg bGF5ZXIsIGJ1dCB0byBjaGFuZ2UgYW4gZXhpc3Rpbmcgb25lLgpJIHdhbnQgdG8gZ2V0IHJpZCBv ZiBzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSBhbmQgSSBoYXZlIDIgb3B0aW9uczoKLSBPbmUgcGF0Y2gg dGhhdCB0b3VjaGVzIGFsbCBkcml2ZXJzCi0gQWRkIG5ldyBmdW5jdGlvbnMsIHN3aXRjaCBvdmVy IGRyaXZlcnMgb25lIHBhdGNoIGF0IGEgdGltZQoKSW4gZWZmZWN0IHRoaXMgaXMgd2hhdCBJIGRv IGluIHRoaXMgcGF0Y2hzZXQ6CgppbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5oOgoKK2lu dCBkcm1fZmJfY21hX2ZiZGV2X2luaXRfd2l0aF9mdW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorwqDCoMKgIHVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwLCB1bnNpZ25lZCBpbnQgbWF4X2Nv bm5fY291bnQsCivCoMKgwqAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyAqZnVu Y3MpOworaW50IGRybV9mYl9jbWFfZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgCnByZWZlcnJlZF9icHAsCivCoMKgwqAgwqDCoMKgIMKgwqDCoCDCoCB1bnNp Z25lZCBpbnQgbWF4X2Nvbm5fY291bnQpOwordm9pZCBkcm1fZmJfY21hX2ZiZGV2X2Zpbmkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CisKCi1zdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZHJtX2ZiZGV2 X2NtYV9pbml0X3dpdGhfZnVuY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLcKgwqDCoCB1bnNp Z25lZCBpbnQgcHJlZmVycmVkX2JwcCwgdW5zaWduZWQgaW50IG1heF9jb25uX2NvdW50LAotwqDC oMKgIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgKmZ1bmNzKTsKLXN0cnVjdCBk cm1fZmJkZXZfY21hICpkcm1fZmJkZXZfY21hX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK LcKgwqDCoCB1bnNpZ25lZCBpbnQgcHJlZmVycmVkX2JwcCwgdW5zaWduZWQgaW50IG1heF9jb25u X2NvdW50KTsKLXZvaWQgZHJtX2ZiZGV2X2NtYV9maW5pKHN0cnVjdCBkcm1fZmJkZXZfY21hICpm YmRldl9jbWEpOwotCgpIb3cgYWJvdXQgdGhpcyBjb21taXQgbWVzc2FnZToKCmRybS9jbWEtaGVs cGVyOiBBZGQgZHJtX2ZiX2NtYV9mYmRldl9pbml0L2ZpbmkoKQoKVGhlcmUgaXMgbm8gbmVlZCBm b3IgZHJpdmVycyB0byBjYXJyeSBhIHBvaW50ZXIgdG8gdGhlIHRoZSBmYmRldgplbXVsYXRpb24g c3RydWN0dXJlIG5vdyB0aGF0IGRybV9kZXZpY2UgaGFzIG9uZS4gQ3VycmVudGx5IGRyaXZlcnMg aGFzCmEgcG9pbnRlciB0byBzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSBpbiB0aGVpciBkcml2ZXIgc3Ry dWN0dXJlLiBUaGlzCnBvaW50ZXIgaXMgcmV0dXJuZWQgYnkgZHJtX2ZiZGV2X2NtYV9pbml0KCku CgpJbiBvcmRlciB0byBnZXQgcmlkIG9mIHN0cnVjdCBkcm1fZmJkZXZfY21hLCBhZGQgZnVuY3Rp b25zCmRybV9mYl9jbWFfZmJkZXZfaW5pdCgpLCBkcm1fZmJfY21hX2ZiZGV2X2ZpbmkoKSBhbmQK ZHJtX2ZiX2NtYV9mYmRldl9pbml0X3dpdGhfZnVuY3MoKS4gVGhlc2UgZnVuY3Rpb25zIHJlbGll cyBvbiB0aGUgZmFjdAp0aGF0IHRoZSBkcm1fZmJfaGVscGVyIHN0cnVjdCBpcyBzdG9yZWQgaW4g ZHJtX2RldmljZS0+ZmJfaGVscGVyIHNvCmRyaXZlcnMgZG9uJ3QgbmVlZCB0byBzdG9yZSBpdC4g V2hlbiBkcml2ZXJzIGhhdmUgYmVlbiBtb3ZlZCBvdmVyIHRvCnRoZXNlIGZ1bmN0aW9ucywgdGhl IG9sZCBpbml0L2ZpbmkgZnVuY3Rpb25zIGNhbiBiZSByZW1vdmVkLgoKQ2M6IExhdXJlbnQgUGlu Y2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KU2lnbmVkLW9mZi1ieTog Tm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+CgoKTm9yYWxmLgoKPj4gLS0tCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMgfCAxMTYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystCj4+ICAgaW5jbHVkZS9kcm0vZHJtX2ZiX2NtYV9oZWxw ZXIuaCAgICAgfCAgIDcgKysrCj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfY21hX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMKPj4g aW5kZXggMGUzYzE0MTc0ZDA4Li4yNjdjMDQyMTYyODEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfY21hX2hlbHBlci5jCj4+IEBAIC0yMyw2ICsyMyw3IEBACj4+ICAgI2luY2x1ZGUgPGRybS9k cm1fZ2VtX2NtYV9oZWxwZXIuaD4KPj4gICAjaW5jbHVkZSA8ZHJtL2RybV9nZW1fZnJhbWVidWZm ZXJfaGVscGVyLmg+Cj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fZmJfY21hX2hlbHBlci5oPgo+PiAr I2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ Cj4+ICAgCj4+ICAgI2RlZmluZSBERUZBVUxUX0ZCREVGSU9fREVMQVlfTVMgNTAKPj4gQEAgLTQy LDcgKzQzLDcgQEAgc3RydWN0IGRybV9mYmRldl9jbWEgewo+PiAgICAqIGNhbGxiYWNrIGZ1bmN0 aW9uIHRvIGNyZWF0ZSBhIGNtYSBiYWNrZWQgZnJhbWVidWZmZXIuCj4+ICAgICoKPj4gICAgKiBB biBmYmRldiBmcmFtZWJ1ZmZlciBiYWNrZWQgYnkgY21hIGlzIGFsc28gYXZhaWxhYmxlIGJ5IGNh bGxpbmcKPj4gLSAqIGRybV9mYmRldl9jbWFfaW5pdCgpLiBkcm1fZmJkZXZfY21hX2ZpbmkoKSB0 ZWFycyBpdCBkb3duLgo+PiArICogZHJtX2ZiX2NtYV9mYmRldl9pbml0KCkuIGRybV9mYl9jbWFf ZmJkZXZfZmluaSgpIHRlYXJzIGl0IGRvd24uCj4+ICAgICogSWYgdGhlICZkcm1fZnJhbWVidWZm ZXJfZnVuY3MuZGlydHkgY2FsbGJhY2sgaXMgc2V0LCBmYl9kZWZlcnJlZF9pbyB3aWxsIGJlCj4+ ICAgICogc2V0IHVwIGF1dG9tYXRpY2FsbHkuICZkcm1fZnJhbWVidWZmZXJfZnVuY3MuZGlydHkg aXMgY2FsbGVkIGJ5Cj4+ICAgICogZHJtX2ZiX2hlbHBlcl9kZWZlcnJlZF9pbygpIGluIHByb2Nl c3MgY29udGV4dCAoJnN0cnVjdCBkZWxheWVkX3dvcmspLgo+PiBAQCAtNjgsNyArNjksNyBAQCBz dHJ1Y3QgZHJtX2ZiZGV2X2NtYSB7Cj4+ICAgICoKPj4gICAgKiBJbml0aWFsaXplOjoKPj4gICAg Kgo+PiAtICogICAgIGZiZGV2ID0gZHJtX2ZiZGV2X2NtYV9pbml0X3dpdGhfZnVuY3MoZGV2LCAx NiwKPj4gKyAqICAgICBmYmRldiA9IGRybV9mYl9jbWFfZmJkZXZfaW5pdF93aXRoX2Z1bmNzKGRl diwgMTYsCj4+ICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YywKPj4gICAgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZXYtPm1vZGVfY29uZmlnLm51bV9jb25uZWN0b3IsCj4+ICAg ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRyaXZlcl9mYl9m dW5jcyk7Cj4+IEBAIC0zMTQsNiArMzE1LDExNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9m Yl9oZWxwZXJfZnVuY3MgZHJtX2ZiX2NtYV9oZWxwZXJfZnVuY3MgPSB7Cj4+ICAgCS5mYl9wcm9i ZSA9IGRybV9mYmRldl9jbWFfY3JlYXRlLAo+PiAgIH07Cj4+ICAgCj4+ICsvKioKPj4gKyAqIGRy bV9mYl9jbWFfZmJkZXZfaW5pdF93aXRoX2Z1bmNzKCkgLSBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6 ZSBmYmRldiBlbXVsYXRpb24KPj4gKyAqIEBkZXY6IERSTSBkZXZpY2UKPj4gKyAqIEBwcmVmZXJy ZWRfYnBwOiBQcmVmZXJyZWQgYml0cyBwZXIgcGl4ZWwgZm9yIHRoZSBkZXZpY2UuCj4+ICsgKiAg ICAgICAgICAgICAgICAgQGRldi0+bW9kZV9jb25maWcucHJlZmVycmVkX2RlcHRoIGlzIHVzZWQg aWYgdGhpcyBpcyB6ZXJvLgo+PiArICogQG1heF9jb25uX2NvdW50OiBNYXhpbXVtIG51bWJlciBv ZiBjb25uZWN0b3JzLgo+PiArICogICAgICAgICAgICAgICAgICBAZGV2LT5tb2RlX2NvbmZpZy5u dW1fY29ubmVjdG9yIGlzIHVzZWQgaWYgdGhpcyBpcyB6ZXJvLgo+PiArICogQGZ1bmNzOiBGcmFt ZWJ1ZmZlciBmdW5jdGlvbnMsIGluIHBhcnRpY3VsYXIgYSBjdXN0b20gZGlydHkoKSBjYWxsYmFj ay4KPiBXaXRoIHRoZSBwcmV2aW91cyBwYXRjaCB0aGlzIGlzIGFsbG93ZWQgdG8gYmUgTlVMTCwg cmlnaHQ/IFBsZWFzZQo+IGRvY3VtZW50Lgo+Cj4gQW5kIHNpbmNlIHRoYXQgYWxzbyBleHBsYWlu cyB0aGUgcGF0Y2ggMSwgb24gYm90aCBwYXRjaGVzOgo+Cj4gUmV2aWV3ZWQtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4KPiBCdXQgcGxlYXNlIGdldCBhbiBhY2sg ZnJvbSBMYXVyZW50IHRvby4KPiAtRGFuaWVsCj4KPj4gKyAqCj4+ICsgKiBSZXR1cm5zOgo+PiAr ICogWmVybyBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPj4g KyAqLwo+PiAraW50IGRybV9mYl9jbWFfZmJkZXZfaW5pdF93aXRoX2Z1bmNzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4+ICsJdW5zaWduZWQgaW50IHByZWZlcnJlZF9icHAsIHVuc2lnbmVkIGlu dCBtYXhfY29ubl9jb3VudCwKPj4gKwljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNz ICpmdW5jcykKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2ZiZGV2X2NtYSAqZmJkZXZfY21hOwo+PiAr CXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXI7Cj4+ICsJaW50IHJldDsKPj4gKwo+PiAr CWlmICghcHJlZmVycmVkX2JwcCkKPj4gKwkJcHJlZmVycmVkX2JwcCA9IGRldi0+bW9kZV9jb25m aWcucHJlZmVycmVkX2RlcHRoOwo+PiArCWlmICghcHJlZmVycmVkX2JwcCkKPj4gKwkJcHJlZmVy cmVkX2JwcCA9IDMyOwo+PiArCj4+ICsJaWYgKCFtYXhfY29ubl9jb3VudCkKPj4gKwkJbWF4X2Nv bm5fY291bnQgPSBkZXYtPm1vZGVfY29uZmlnLm51bV9jb25uZWN0b3I7Cj4+ICsKPj4gKwlmYmRl dl9jbWEgPSBremFsbG9jKHNpemVvZigqZmJkZXZfY21hKSwgR0ZQX0tFUk5FTCk7Cj4+ICsJaWYg KCFmYmRldl9jbWEpCj4+ICsJCXJldHVybiAtRU5PTUVNOwo+PiArCj4+ICsJZmJkZXZfY21hLT5m Yl9mdW5jcyA9IGZ1bmNzOwo+PiArCWZiX2hlbHBlciA9ICZmYmRldl9jbWEtPmZiX2hlbHBlcjsK Pj4gKwo+PiArCWRybV9mYl9oZWxwZXJfcHJlcGFyZShkZXYsIGZiX2hlbHBlciwgJmRybV9mYl9j bWFfaGVscGVyX2Z1bmNzKTsKPj4gKwo+PiArCXJldCA9IGRybV9mYl9oZWxwZXJfaW5pdChkZXYs IGZiX2hlbHBlciwgbWF4X2Nvbm5fY291bnQpOwo+PiArCWlmIChyZXQgPCAwKSB7Cj4+ICsJCURS TV9ERVZfRVJST1IoZGV2LT5kZXYsICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBmYmRldiBoZWxwZXIu XG4iKTsKPj4gKwkJZ290byBlcnJfZnJlZTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXQgPSBkcm1fZmJf aGVscGVyX3NpbmdsZV9hZGRfYWxsX2Nvbm5lY3RvcnMoZmJfaGVscGVyKTsKPj4gKwlpZiAocmV0 IDwgMCkgewo+PiArCQlEUk1fREVWX0VSUk9SKGRldi0+ZGV2LCAiRmFpbGVkIHRvIGFkZCBjb25u ZWN0b3JzLlxuIik7Cj4+ICsJCWdvdG8gZXJyX2RybV9mYl9oZWxwZXJfZmluaTsKPj4gKwl9Cj4+ ICsKPj4gKwlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGZiX2hlbHBlciwgcHJl ZmVycmVkX2JwcCk7Cj4+ICsJaWYgKHJldCA8IDApIHsKPj4gKwkJRFJNX0RFVl9FUlJPUihkZXYt PmRldiwgIkZhaWxlZCB0byBzZXQgZmJkZXYgY29uZmlndXJhdGlvbi5cbiIpOwo+PiArCQlnb3Rv IGVycl9kcm1fZmJfaGVscGVyX2Zpbmk7Cj4+ICsJfQo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICsK Pj4gK2Vycl9kcm1fZmJfaGVscGVyX2Zpbmk6Cj4+ICsJZHJtX2ZiX2hlbHBlcl9maW5pKGZiX2hl bHBlcik7Cj4+ICtlcnJfZnJlZToKPj4gKwlrZnJlZShmYmRldl9jbWEpOwo+PiArCj4+ICsJcmV0 dXJuIHJldDsKPj4gK30KPj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9mYl9jbWFfZmJkZXZfaW5p dF93aXRoX2Z1bmNzKTsKPj4gKwo+PiArLyoqCj4+ICsgKiBkcm1fZmJfY21hX2ZiZGV2X2luaXQo KSAtIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIGZiZGV2IGVtdWxhdGlvbgo+PiArICogQGRldjog RFJNIGRldmljZQo+PiArICogQHByZWZlcnJlZF9icHA6IFByZWZlcnJlZCBiaXRzIHBlciBwaXhl bCBmb3IgdGhlIGRldmljZS4KPj4gKyAqICAgICAgICAgICAgICAgICBAZGV2LT5tb2RlX2NvbmZp Zy5wcmVmZXJyZWRfZGVwdGggaXMgdXNlZCBpZiB0aGlzIGlzIHplcm8uCj4+ICsgKiBAbWF4X2Nv bm5fY291bnQ6IE1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3RvcnMuCj4+ICsgKiAgICAgICAgICAg ICAgICAgIEBkZXYtPm1vZGVfY29uZmlnLm51bV9jb25uZWN0b3IgaXMgdXNlZCBpZiB0aGlzIGlz IHplcm8uCj4+ICsgKgo+PiArICogUmV0dXJuczoKPj4gKyAqIFplcm8gb24gc3VjY2VzcyBvciBu ZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+ICsgKi8KPj4gK2ludCBkcm1fZmJfY21h X2ZiZGV2X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHByZWZlcnJl ZF9icHAsCj4+ICsJCQkgIHVuc2lnbmVkIGludCBtYXhfY29ubl9jb3VudCkKPj4gK3sKPj4gKwly ZXR1cm4gZHJtX2ZiX2NtYV9mYmRldl9pbml0X3dpdGhfZnVuY3MoZGV2LCBwcmVmZXJyZWRfYnBw LAo+PiArCQkJCQkJbWF4X2Nvbm5fY291bnQsIE5VTEwpOwo+PiArfQo+PiArRVhQT1JUX1NZTUJP TF9HUEwoZHJtX2ZiX2NtYV9mYmRldl9pbml0KTsKPj4gKwo+PiArLyoqCj4+ICsgKiBkcm1fZmJf Y21hX2ZiZGV2X2ZpbmkoKSAtIFRlYXJkb3duIGZiZGV2IGVtdWxhdGlvbgo+PiArICogQGRldjog RFJNIGRldmljZQo+PiArICovCj4+ICt2b2lkIGRybV9mYl9jbWFfZmJkZXZfZmluaShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+PiArewo+PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxw ZXIgPSBkZXYtPmZiX2hlbHBlcjsKPj4gKwo+PiArCWlmICghZmJfaGVscGVyKQo+PiArCQlyZXR1 cm47Cj4+ICsKPj4gKwkvKiBVbnJlZ2lzdGVyIGlmIGl0IGhhc24ndCBiZWVuIGRvbmUgYWxyZWFk eSAqLwo+PiArCWlmIChmYl9oZWxwZXItPmZiZGV2ICYmIGZiX2hlbHBlci0+ZmJkZXYtPmRldikK Pj4gKwkJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaShmYl9oZWxwZXIpOwo+PiArCj4+ICsJ aWYgKGZiX2hlbHBlci0+ZmJkZXYpCj4+ICsJCWRybV9mYmRldl9jbWFfZGVmaW9fZmluaShmYl9o ZWxwZXItPmZiZGV2KTsKPj4gKwo+PiArCWlmIChmYl9oZWxwZXItPmZiKQo+PiArCQlkcm1fZnJh bWVidWZmZXJfcmVtb3ZlKGZiX2hlbHBlci0+ZmIpOwo+PiArCj4+ICsJZHJtX2ZiX2hlbHBlcl9m aW5pKGZiX2hlbHBlcik7Cj4+ICsJa2ZyZWUodG9fZmJkZXZfY21hKGZiX2hlbHBlcikpOwo+PiAr fQo+PiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2ZiX2NtYV9mYmRldl9maW5pKTsKPj4gKwo+PiAg IC8qKgo+PiAgICAqIGRybV9mYmRldl9jbWFfaW5pdF93aXRoX2Z1bmNzKCkgLSBBbGxvY2F0ZSBh bmQgaW5pdGlhbGl6ZXMgYSBkcm1fZmJkZXZfY21hIHN0cnVjdAo+PiAgICAqIEBkZXY6IERSTSBk ZXZpY2UKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmggYi9p bmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5oCj4+IGluZGV4IDAyM2YwNTJhNTg3My4uMjJi ZTIyZTY0MWE0IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZmJfY21hX2hlbHBlci5o Cj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmgKPj4gQEAgLTE1LDYgKzE1 LDEzIEBAIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyOwo+PiAgIHN0cnVjdCBkcm1fcGxhbmU7Cj4+ ICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZTsKPj4gICAKPj4gK2ludCBkcm1fZmJfY21hX2ZiZGV2 X2luaXRfd2l0aF9mdW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArCXVuc2lnbmVkIGlu dCBwcmVmZXJyZWRfYnBwLCB1bnNpZ25lZCBpbnQgbWF4X2Nvbm5fY291bnQsCj4+ICsJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyAqZnVuY3MpOwo+PiAraW50IGRybV9mYl9jbWFf ZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcHJlZmVycmVk X2JwcCwKPj4gKwkJCSAgdW5zaWduZWQgaW50IG1heF9jb25uX2NvdW50KTsKPj4gK3ZvaWQgZHJt X2ZiX2NtYV9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+PiArCj4+ICAgc3Ry dWN0IGRybV9mYmRldl9jbWEgKmRybV9mYmRldl9jbWFfaW5pdF93aXRoX2Z1bmNzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4+ICAgCXVuc2lnbmVkIGludCBwcmVmZXJyZWRfYnBwLCB1bnNpZ25l ZCBpbnQgbWF4X2Nvbm5fY291bnQsCj4+ICAgCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJf ZnVuY3MgKmZ1bmNzKTsKPj4gLS0gCj4+IDIuMTQuMgo+Pgo+PiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+ IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=