From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kieran Bingham Subject: Re: [PATCH v5 3/8] drm: rcar-du: Add support for CMM Date: Tue, 15 Oct 2019 12:53:55 +0100 Message-ID: <2aefe646-45db-aafa-b22b-e1cf9616259d@ideasonboard.com> References: <20191015104621.62514-1-jacopo+renesas@jmondi.org> <20191015104621.62514-4-jacopo+renesas@jmondi.org> Reply-To: kieran.bingham+renesas@ideasonboard.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id A1CDA6E22B for ; Tue, 15 Oct 2019 11:54:00 +0000 (UTC) In-Reply-To: <20191015104621.62514-4-jacopo+renesas@jmondi.org> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jacopo Mondi , laurent.pinchart@ideasonboard.com, geert@linux-m68k.org, horms@verge.net.au, uli+renesas@fpond.eu, VenkataRajesh.Kalakodima@in.bosch.com Cc: muroya@ksk.co.jp, airlied@linux.ie, koji.matsuoka.xm@renesas.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, seanpaul@chromium.org, Harsha.ManjulaMallikarjun@in.bosch.com, ezequiel@collabora.com List-Id: dri-devel@lists.freedesktop.org SGkgSmFjb3BvLAoKT24gMTUvMTAvMjAxOSAxMTo0NiwgSmFjb3BvIE1vbmRpIHdyb3RlOgo+IEFk ZCBhIGRyaXZlciBmb3IgdGhlIFItQ2FyIERpc3BsYXkgVW5pdCBDb2xvciBDb3JyZWN0aW9uIE1v ZHVsZS4KPiAKPiBJbiBtb3N0IG9mIEdlbjMgU29DcywgZWFjaCBEVSBvdXRwdXQgY2hhbm5lbCBp cyBwcm92aWRlZCB3aXRoIGEgQ01NIHVuaXQKPiB0byBwZXJmb3JtIGltYWdlIGVuaGFuY2VtZW50 IGFuZCBjb2xvciBjb3JyZWN0aW9uLgo+IAo+IEFkZCBzdXBwb3J0IGZvciBDTU0gdGhyb3VnaCBh IGRyaXZlciB0aGF0IHN1cHBvcnRzIGNvbmZpZ3VyYXRpb24gb2YKPiB0aGUgMS1kaW1lbnNpb25h bCBMVVQgdGFibGUuIE1vcmUgYWR2YW5jZWQgQ01NIGZlYXR1cmVzIHdpbGwgYmUKPiBpbXBsZW1l bnRlZCBvbiB0b3Agb2YgdGhpcyBpbml0aWFsIG9uZS4KPiAKClRoaXMgaXMgbG9va2luZyBnb29k IHRvIG1lLgoKSSBoYXZlIHBhdGNoZXMgd2hpY2ggc3RhcnQgdG8gYWRkIENMVSBvbiB0b3Agb2Yg dGhpcywgd2hpY2ggcmVmYWN0b3IKdGhpbmdzIHNsaWdodGx5IC0gYnV0IEkgZG9uJ3QgdGhpbmsg dGhhdCByZWZhY3RvcmluZyBuZWVkcyB0byBiZSBpbiB0aGlzCnNlcmllcywgYW5kIHRoaXMgdmVy c2lvbiBpcyBpbmRlcGVuZGVudCBhbmQgbG9va3MgZ29vZCAuLi4gdGh1czoKClJldmlld2VkLWJ5 OiBLaWVyYW4gQmluZ2hhbSA8a2llcmFuLmJpbmdoYW0rcmVuZXNhc0BpZGVhc29uYm9hcmQuY29t PgoKCj4gU2lnbmVkLW9mZi1ieTogSmFjb3BvIE1vbmRpIDxqYWNvcG8rcmVuZXNhc0BqbW9uZGku b3JnPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9LY29uZmlnICAgIHwgICA3ICsK PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvTWFrZWZpbGUgICB8ICAgMSArCj4gIGRyaXZlcnMv Z3B1L2RybS9yY2FyLWR1L3JjYXJfY21tLmMgfCAxOTggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9jbW0uaCB8ICA2MCArKysrKysr KysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNjYgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9jbW0uYwo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9jbW0uaAo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvS2NvbmZpZwo+IGluZGV4IDE1Mjk4NDllMjE3ZS4uNTM5ZDIzMjc5MGQxIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L0tjb25maWcKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmNhci1kdS9LY29uZmlnCj4gQEAgLTEzLDYgKzEzLDEzIEBAIGNvbmZpZyBEUk1fUkNBUl9E VQo+ICAJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYW4gUi1DYXIgY2hpcHNldC4K PiAgCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHJjYXItZHUt ZHJtLgo+ICAKPiArY29uZmlnIERSTV9SQ0FSX0NNTQo+ICsJYm9vbCAiUi1DYXIgRFUgQ29sb3Ig TWFuYWdlbWVudCBNb2R1bGUgKENNTSkgU3VwcG9ydCIKPiArCWRlcGVuZHMgb24gRFJNICYmIE9G Cj4gKwlkZXBlbmRzIG9uIERSTV9SQ0FSX0RVCgoKRFJNX1JDQVJfRFUgYWxyZWFkeSBkZXBlbmRz IG9uIGJvdGggRFJNICYmIE9GLCBzbyBJIHdvbmRlciBpZiB0aG9zZSBhcmUKbmVlZGVkIHRvIGJl IHNwZWNpZmllZCBleHBsaWNpdGx5LgoKRG9lc24ndCBodXJ0IG9mIGNvdXJzZSwgYnV0IEkgc2Vl IERSTV9SQ0FSX0RXX0hETUkgZG9lcyB0aGUgc2FtZSwgYW5kIHNvCmRvZXMgRFJNX1JDQVJfTFZE Uywgc28gSSBkb24ndCB0aGluayB5b3UgbmVlZCB0byByZW1vdmUgaXQuCgo+ICsJaGVscAo+ICsJ ICBFbmFibGUgc3VwcG9ydCBmb3IgUi1DYXIgQ29sb3IgTWFuYWdlbWVudCBNb2R1bGUgKENNTSku Cj4gKwo+ICBjb25maWcgRFJNX1JDQVJfRFdfSERNSQo+ICAJdHJpc3RhdGUgIlItQ2FyIERVIEdl bjMgSERNSSBFbmNvZGVyIFN1cHBvcnQiCj4gIAlkZXBlbmRzIG9uIERSTSAmJiBPRgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L01ha2VmaWxlCj4gaW5kZXggNmMyZWQ5YzQ2NDY3Li40ZDExODdjY2MzZTUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvTWFrZWZpbGUKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmNhci1kdS9NYWtlZmlsZQo+IEBAIC0xNSw2ICsxNSw3IEBAIHJjYXItZHUt ZHJtLSQoQ09ORklHX0RSTV9SQ0FSX0xWRFMpCSs9IHJjYXJfZHVfb2YubyBcCj4gIHJjYXItZHUt ZHJtLSQoQ09ORklHX0RSTV9SQ0FSX1ZTUCkJKz0gcmNhcl9kdV92c3Aubwo+ICByY2FyLWR1LWRy bS0kKENPTkZJR19EUk1fUkNBUl9XUklURUJBQ0spICs9IHJjYXJfZHVfd3JpdGViYWNrLm8KPiAg Cj4gK29iai0kKENPTkZJR19EUk1fUkNBUl9DTU0pCQkrPSByY2FyX2NtbS5vCj4gIG9iai0kKENP TkZJR19EUk1fUkNBUl9EVSkJCSs9IHJjYXItZHUtZHJtLm8KPiAgb2JqLSQoQ09ORklHX0RSTV9S Q0FSX0RXX0hETUkpCQkrPSByY2FyX2R3X2hkbWkubwo+ICBvYmotJChDT05GSUdfRFJNX1JDQVJf TFZEUykJCSs9IHJjYXJfbHZkcy5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfY21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2NtbS5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjk2NzVhODU4N2RlZQo+IC0t LSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2NtbS5jCj4g QEAgLTAsMCArMSwxOTggQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAr Cj4gKy8qCj4gKyAqIHJjYXJfY21tLmMgLS0gUi1DYXIgRGlzcGxheSBVbml0IENvbG9yIE1hbmFn ZW1lbnQgTW9kdWxlCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoQykgMjAxOSBKYWNvcG8gTW9uZGkg PGphY29wbytyZW5lc2FzQGptb25kaS5vcmc+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4 L2lvLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L29m Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiArI2luY2x1ZGUgPGxp bnV4L3BtX3J1bnRpbWUuaD4KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NvbG9yX21nbXQuaD4K PiArCj4gKyNpbmNsdWRlICJyY2FyX2NtbS5oIgo+ICsKPiArI2RlZmluZSBDTTJfTFVUX0NUUkwJ CTB4MDAwMAo+ICsjZGVmaW5lIENNMl9MVVRfQ1RSTF9MVVRfRU4JQklUKDApCj4gKyNkZWZpbmUg Q00yX0xVVF9UQkxfQkFTRQkweDA2MDAKPiArI2RlZmluZSBDTTJfTFVUX1RCTChfX2kpCShDTTJf TFVUX1RCTF9CQVNFICsgKF9faSkgKiA0KQo+ICsKPiArc3RydWN0IHJjYXJfY21tIHsKPiArCXZv aWQgX19pb21lbSAqYmFzZTsKPiArCj4gKwkvKgo+ICsJICogQGx1dDoJCTFELUxVVCBzdGF0dXMK PiArCSAqIEBsdXQuZW5hYmxlZDoJMUQtTFVUIGVuYWJsZWQgZmxhZwo+ICsJICovCj4gKwlzdHJ1 Y3Qgewo+ICsJCWJvb2wgZW5hYmxlZDsKPiArCX0gbHV0OwoKVGhpcyB1c2VkIHRvIGJlIGEgbW9y ZSBjb21wbGV4IHN0cnVjdHVyZSBpbiBhbiBlYXJsaWVyIHZlcnNpb24gc3RvcmluZyBhCmNhY2hl ZCB2ZXJzaW9uIG9mIHRoZSB0YWJsZS4gTm93IHRoYXQgdGhlIGNhY2hlZCBlbnRyeSBpcyByZW1v dmVkLCBkb2VzCnRoaXMgbmVlZCB0byBiZSBzdWNoIGEgY29tcGxleCBzdHJ1Y3R1cmUgcmF0aGVy IHRoYW4ganVzdCBzYXksIGEgYm9vbApsdXRfZW5hYmxlZD8KCihXZSB3aWxsIHNvb24gYWRkIGFu IGVxdWl2YWxlbnQgY2x1X2VuYWJsZWQgdG9vLCBidXQgSSBkb24ndCBrbm93IHdoYXQKb3RoZXIg cGVyLXRhYmxlIG9wdGlvbnMgd2UnbGwgbmVlZC4pCgpJbiBmYWN0LCB3ZSdsbCBwb3RlbnRpYWxs eSBoYXZlIG90aGVyIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIEhHTywgYW5kCkNTQyBhdCBzb21l IHBvaW50IGluIHRoZSBmdXR1cmUgLSBzbyBncm91cGluZyBieSBlbnRpdHkgaXMgaW5kZWVkIGEg Z29vZAp0aGluZyBJTU8uCgo+ICt9Owo+ICsKPiArc3RhdGljIGlubGluZSBpbnQgcmNhcl9jbW1f cmVhZChzdHJ1Y3QgcmNhcl9jbW0gKnJjbW0sIHUzMiByZWcpCj4gK3sKPiArCXJldHVybiBpb3Jl YWQzMihyY21tLT5iYXNlICsgcmVnKTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkIHJj YXJfY21tX3dyaXRlKHN0cnVjdCByY2FyX2NtbSAqcmNtbSwgdTMyIHJlZywgdTMyIGRhdGEpCj4g K3sKPiArCWlvd3JpdGUzMihkYXRhLCByY21tLT5iYXNlICsgcmVnKTsKPiArfQo+ICsKPiArLyoK PiArICogcmNhcl9jbW1fbHV0X3dyaXRlKCkgLSBTY2FsZSB0aGUgRFJNIExVVCB0YWJsZSBlbnRy aWVzIHRvIGhhcmR3YXJlIHByZWNpc2lvbgo+ICsgKgkJCSAgYW5kIHdyaXRlIHRvIHRoZSBDTU0g cmVnaXN0ZXJzLgo+ICsgKiBAcmNtbTogUG9pbnRlciB0byB0aGUgQ01NIGRldmljZQo+ICsgKiBA ZHJtX2x1dDogUG9pbnRlciB0byB0aGUgRFJNIExVVCB0YWJsZQo+ICsgKi8KPiArc3RhdGljIHZv aWQgcmNhcl9jbW1fbHV0X3dyaXRlKHN0cnVjdCByY2FyX2NtbSAqcmNtbSwKPiArCQkJICAgICAg IGNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpkcm1fbHV0KQo+ICt7Cj4gKwl1bnNpZ25lZCBp bnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQ00yX0xVVF9TSVpFOyArK2kpIHsKPiArCQl1 MzIgZW50cnkgPSAgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGRybV9sdXRbaV0ucmVkLCA4KSA8PCAx Ngo+ICsJCQkgIHwgZHJtX2NvbG9yX2x1dF9leHRyYWN0KGRybV9sdXRbaV0uZ3JlZW4sIDgpIDw8 IDgKPiArCQkJICB8IGRybV9jb2xvcl9sdXRfZXh0cmFjdChkcm1fbHV0W2ldLmJsdWUsIDgpOwo+ ICsKPiArCQlyY2FyX2NtbV93cml0ZShyY21tLCBDTTJfTFVUX1RCTChpKSwgZW50cnkpOwo+ICsJ fQo+ICt9Cj4gKwo+ICsvKgo+ICsgKiByY2FyX2NtbV9zZXR1cCgpIC0gQ29uZmlndXJlIHRoZSBD TU0gdW5pdC4KPiArICogQHBkZXY6IFRoZSBwbGF0Zm9ybSBkZXZpY2UgYXNzb2NpYXRlZCB3aXRo IHRoZSBDTU0gaW5zdGFuY2UKPiArICogQGNvbmZpZzogVGhlIENNTSB1bml0IGNvbmZpZ3VyYXRp b24KPiArICoKPiArICogQ29uZmlndXJlIHRoZSBDTU0gdW5pdCB3aXRoIHRoZSBnaXZlbiBjb25m aWd1cmF0aW9uLiBDdXJyZW50bHkgZW5hYmxpbmcsCj4gKyAqIGRpc2FibGluZyBhbmQgcHJvZ3Jh bW1pbmcgb2YgdGhlIDEtRCBMVVQgdW5pdCBpcyBzdXBwb3J0ZWQuCj4gKyAqLwo+ICtpbnQgcmNh cl9jbW1fc2V0dXAoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiArCQkgICBjb25zdCBz dHJ1Y3QgcmNhcl9jbW1fY29uZmlnICpjb25maWcpCj4gK3sKPiArCXN0cnVjdCByY2FyX2NtbSAq cmNtbSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+ICsKPiArCS8qIERpc2FibGUgTFVU IGlmIHJlcXVlc3RlZC4gKi8KPiArCWlmICghY29uZmlnLT5sdXQuZW5hYmxlKSB7Cj4gKwkJaWYg KHJjbW0tPmx1dC5lbmFibGVkKSB7Cj4gKwkJCXJjYXJfY21tX3dyaXRlKHJjbW0sIENNMl9MVVRf Q1RSTCwgMCk7Cj4gKwkJCXJjbW0tPmx1dC5lbmFibGVkID0gZmFsc2U7Cj4gKwkJfQo+ICsKPiAr CQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwkvKiBFbmFibGUgTFVUIGFuZCBwcm9ncmFtIHRoZSBu ZXcgZ2FtbWEgdGFibGUgdmFsdWVzLiAqLwo+ICsJaWYgKCFyY21tLT5sdXQuZW5hYmxlZCkgewo+ ICsJCXJjYXJfY21tX3dyaXRlKHJjbW0sIENNMl9MVVRfQ1RSTCwgQ00yX0xVVF9DVFJMX0xVVF9F Tik7Cj4gKwkJcmNtbS0+bHV0LmVuYWJsZWQgPSB0cnVlOwo+ICsJfQo+ICsKPiArCXJjYXJfY21t X2x1dF93cml0ZShyY21tLCBjb25maWctPmx1dC50YWJsZSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArRVhQT1JUX1NZTUJPTF9HUEwocmNhcl9jbW1fc2V0dXApOwo+ICsKPiArLyoKPiArICog cmNhcl9jbW1fZW5hYmxlKCkgLSBFbmFibGUgdGhlIENNTSB1bml0Lgo+ICsgKiBAcGRldjogVGhl IHBsYXRmb3JtIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIENNTSBpbnN0YW5jZQo+ICsgKgo+ ICsgKiBFbmFibGUgdGhlIENNTSB1bml0IGJ5IGVuYWJsaW5nIHRoZSBwYXJlbnQgY2xvY2suCj4g KyAqLwo+ICtpbnQgcmNhcl9jbW1fZW5hYmxlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYygmcGRl di0+ZGV2KTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwocmNhcl9jbW1fZW5hYmxlKTsKPiArCj4gKy8q Cj4gKyAqIHJjYXJfY21tX2Rpc2FibGUoKSAtIERpc2FibGUgdGhlIENNTSB1bml0Lgo+ICsgKiBA cGRldjogVGhlIHBsYXRmb3JtIGRldmljZSBhc3NvY2lhdGVkIHdpdGggdGhlIENNTSBpbnN0YW5j ZQo+ICsgKgo+ICsgKiBEaXNhYmxlIHRoZSBDTU0gdW5pdCBieSBzdG9wcGluZyB0aGUgcGFyZW50 IGNsb2NrLgo+ICsgKi8KPiArdm9pZCByY2FyX2NtbV9kaXNhYmxlKHN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCByY2FyX2NtbSAqcmNtbSA9IHBsYXRmb3JtX2dl dF9kcnZkYXRhKHBkZXYpOwo+ICsKPiArCXJjYXJfY21tX3dyaXRlKHJjbW0sIENNMl9MVVRfQ1RS TCwgMCk7Cj4gKwlyY21tLT5sdXQuZW5hYmxlZCA9IGZhbHNlOwo+ICsKPiArCXBtX3J1bnRpbWVf cHV0KCZwZGV2LT5kZXYpOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKHJjYXJfY21tX2Rpc2Fi bGUpOwo+ICsKPiArLyoKPiArICogcmNhcl9jbW1faW5pdCgpIC0gSW5pdGlhbGl6ZSB0aGUgQ01N Cj4gKyAqIEBwZGV2OiBUaGUgcGxhdGZvcm0gZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQ01N IGluc3RhbmNlCj4gKyAqCj4gKyAqIFJldHVybjogMCBvbiBzdWNjZXNzLCAtRVBST0JFX0RFRkVS IGlmIHRoZSBDTU0gaXMgbm90IGF2YWlsYWJsZSB5ZXQsCj4gKyAqICAgICAgICAgLUVOT0RFViBp ZiB0aGUgRFJNX1JDQVJfQ01NIGNvbmZpZyBvcHRpb24gaXMgZGlzYWJsZWQKPiArICovCj4gK2lu dCByY2FyX2NtbV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0 cnVjdCByY2FyX2NtbSAqcmNtbSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+ICsKPiAr CWlmICghcmNtbSkKPiArCQlyZXR1cm4gLUVQUk9CRV9ERUZFUjsKPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICtFWFBPUlRfU1lNQk9MX0dQTChyY2FyX2NtbV9pbml0KTsKPiArCj4gK3N0YXRpYyBp bnQgcmNhcl9jbW1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsJ c3RydWN0IHJjYXJfY21tICpyY21tOwo+ICsKPiArCXJjbW0gPSBkZXZtX2t6YWxsb2MoJnBkZXYt PmRldiwgc2l6ZW9mKCpyY21tKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXJjbW0pCj4gKwkJcmV0 dXJuIC1FTk9NRU07Cj4gKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCByY21tKTsKPiArCj4g KwlyY21tLT5iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApOwo+ ICsJaWYgKElTX0VSUihyY21tLT5iYXNlKSkKPiArCQlyZXR1cm4gUFRSX0VSUihyY21tLT5iYXNl KTsKPiArCj4gKwlwbV9ydW50aW1lX2VuYWJsZSgmcGRldi0+ZGV2KTsKPiArCj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIGludCByY2FyX2NtbV9yZW1vdmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiArewo+ICsJcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCByY2FyX2NtbV9vZl90YWJsZVtdID0gewo+ICsJeyAuY29tcGF0aWJsZSA9ICJyZW5lc2Fz LHJjYXItZ2VuMy1jbW0iLCB9LAo+ICsJeyAuY29tcGF0aWJsZSA9ICJyZW5lc2FzLHJjYXItZ2Vu Mi1jbW0iLCB9LAo+ICsJeyB9LAo+ICt9Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByY2Fy X2NtbV9vZl90YWJsZSk7Cj4gKwo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciByY2Fy X2NtbV9wbGF0Zm9ybV9kcml2ZXIgPSB7Cj4gKwkucHJvYmUJCT0gcmNhcl9jbW1fcHJvYmUsCj4g KwkucmVtb3ZlCQk9IHJjYXJfY21tX3JlbW92ZSwKPiArCS5kcml2ZXIJCT0gewo+ICsJCS5uYW1l CT0gInJjYXItY21tIiwKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSByY2FyX2NtbV9vZl90YWJsZSwK PiArCX0sCj4gK307Cj4gKwo+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKHJjYXJfY21tX3BsYXRm b3JtX2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVfQVVUSE9SKCJKYWNvcG8gTW9uZGkgPGphY29wbyty ZW5lc2FzQGptb25kaS5vcmc+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiUmVuZXNhcyBSLUNh ciBDTU0gRHJpdmVyIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9jbW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9y Y2FyLWR1L3JjYXJfY21tLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAw MDAwMC4uMzU4ZWMwM2NmNDhhCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yY2FyLWR1L3JjYXJfY21tLmgKPiBAQCAtMCwwICsxLDYwIEBACj4gKy8qIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wKyAqLwo+ICsvKgo+ICsgKiByY2FyX2NtbS5oIC0tIFItQ2Fy IERpc3BsYXkgVW5pdCBDb2xvciBNYW5hZ2VtZW50IE1vZHVsZQo+ICsgKgo+ICsgKiBDb3B5cmln aHQgKEMpIDIwMTkgSmFjb3BvIE1vbmRpIDxqYWNvcG8rcmVuZXNhc0BqbW9uZGkub3JnPgo+ICsg Ki8KPiArCj4gKyNpZm5kZWYgX19SQ0FSX0NNTV9IX18KPiArI2RlZmluZSBfX1JDQVJfQ01NX0hf Xwo+ICsKPiArI2RlZmluZSBDTTJfTFVUX1NJWkUJCTI1Ngo+ICsKPiArc3RydWN0IGRybV9jb2xv cl9sdXQ7Cj4gK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2U7Cj4gKwo+ICsvKioKPiArICogc3RydWN0 IHJjYXJfY21tX2NvbmZpZyAtIENNTSBjb25maWd1cmF0aW9uCj4gKyAqCj4gKyAqIEBsdXQ6CTFE LUxVVCBjb25maWd1cmF0aW9uCj4gKyAqIEBsdXQuZW5hYmxlOgkxRC1MVVQgZW5hYmxlIGZsYWcK PiArICogQGx1dC50YWJsZToJMUQtTFVUIHRhYmxlIGVudHJpZXMKPiArICovCj4gK3N0cnVjdCBy Y2FyX2NtbV9jb25maWcgewo+ICsJc3RydWN0IHsKPiArCQlib29sIGVuYWJsZTsKPiArCQlzdHJ1 Y3QgZHJtX2NvbG9yX2x1dCAqdGFibGU7Cj4gKwl9IGx1dDsKPiArfTsKPiArCj4gKyNpZiBJU19F TkFCTEVEKENPTkZJR19EUk1fUkNBUl9DTU0pCj4gK2ludCByY2FyX2NtbV9pbml0KHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwo+ICsKPiAraW50IHJjYXJfY21tX2VuYWJsZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKPiArdm9pZCByY2FyX2NtbV9kaXNhYmxlKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwo+ICsKPiAraW50IHJjYXJfY21tX3NldHVwKHN0cnVjdCBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gKwkJICAgY29uc3Qgc3RydWN0IHJjYXJfY21tX2NvbmZp ZyAqY29uZmlnKTsKPiArI2Vsc2UKPiArc3RhdGljIGlubGluZSBpbnQgcmNhcl9jbW1faW5pdChz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlyZXR1cm4gLUVOT0RFVjsKCkV4 Y2VsbGVudCA6LUQKCj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgaW50IHJjYXJfY21tX2VuYWJs ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ ICsKPiArc3RhdGljIGlubGluZSB2b2lkIHJjYXJfY21tX2Rpc2FibGUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKPiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIGludCByY2FyX2Nt bV9zZXR1cChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICsJCQkJIGNvbnN0IHN0cnVj dCByY2FyX2NtbV9jb25maWcgKmNvbmZpZykKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KPiArI2Vu ZGlmIC8qIElTX0VOQUJMRUQoQ09ORklHX0RSTV9SQ0FSX0NNTSkgKi8KPiArCj4gKyNlbmRpZiAv KiBfX1JDQVJfQ01NX0hfXyAqLwo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVs