From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v4 06/14] drm/mxsfb: Update mxsfb with additional pixel formats Date: Tue, 5 Nov 2019 23:42:13 +0200 Message-ID: <20191105214213.GH4869@pendragon.ideasonboard.com> References: <1567078215-31601-1-git-send-email-robert.chiras@nxp.com> <1567078215-31601-7-git-send-email-robert.chiras@nxp.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 [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id C3C856E125 for ; Tue, 5 Nov 2019 21:42:26 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1567078215-31601-7-git-send-email-robert.chiras@nxp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Robert Chiras Cc: Marek Vasut , Mark Rutland , Pengutronix Kernel Team , devicetree@vger.kernel.org, David Airlie , Guido =?utf-8?Q?G=C3=BCnther?= , linux-kernel@vger.kernel.org, Rob Herring , dri-devel@lists.freedesktop.org, Shawn Guo , Sascha Hauer , linux-arm-kernel@lists.infradead.org, NXP Linux Team List-Id: dri-devel@lists.freedesktop.org SGkgUm9iZXJ0LAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBUaHUsIEF1ZyAyOSwgMjAx OSBhdCAwMjozMDowN1BNICswMzAwLCBSb2JlcnQgQ2hpcmFzIHdyb3RlOgo+IFNpbmNlIHZlcnNp b24gNCBvZiBlTENESUYsIHRoZXJlIGFyZSBzb21lIHJlZ2lzdGVycyB0aGF0IGNhbiBkbwo+IHRy YW5zZm9ybWF0aW9ucyBvbiB0aGUgaW5wdXQgZGF0YSwgbGlrZSByZS1hcnJhbmdpbmcgdGhlIHBp eGVsCj4gY29tcG9uZW50cy4gQnkgZG9pbmcgdGhhdCwgd2UgY2FuIHN1cHBvcnQgbW9yZSBwaXhl bCBmb3JtYXRzLgo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBYL0FCR1IgYW5kIFJHQlgv QS4gQWx0aG91Z2gsIHRoZSBsb2NhbCBhbHBoYQo+IGlzIG5vdCBzdXBwb3J0ZWQgYnkgZUxDRElG LCB0aGUgYWxwaGEgcGl4ZWwgZm9ybWF0cyB3ZXJlIGFkZGVkIHRvIHRoZQo+IHN1cHBvcnRlZCBw aXhlbCBmb3JtYXRzIGJ1dCBpdCB3aWxsIGJlIGlnbm9yZWQuIFRoaXMgd2FzIG5lY2Vzc2FyeSBz aW5jZQo+IHRoZXJlIGFyZSBzeXN0ZW1zIChsaWtlIEFuZHJvaWQpIHRoYXQgcmVxdWlyZXMgc3Vj aCBwaXhlbCBmb3JtYXRzLgo+IAo+IEFsc28sIGFkZCBzdXBwb3J0IGZvciB0aGUgZm9sbG93aW5n IHBpeGVsIGZvcm1hdHM6Cj4gICAgICAgICAgICAgMTYgYnBwOiBSRzE2ICxCRzE2LCBYUjE1LCBY QjE1LCBBUjE1LCBBQjE1Cj4gCj4gU2V0IHRoZSBidXMgZm9ybWF0IGJhc2VkIG9uIGlucHV0IGZy b20gdGhlIHVzZXIgYW5kIHBhbmVsCj4gY2FwYWJpbGl0aWVzLgo+IFNhdmUgdGhlIGJ1cyBmb3Jt YXQgaW4gY3J0Yy0+bW9kZS5wcml2YXRlX2ZsYWdzLCBzbyB0aGUgYnJpZGdlIGNhbgo+IHVzZSBp dC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBSb2JlcnQgQ2hpcmFzIDxyb2JlcnQuY2hpcmFzQG54cC5j b20+Cj4gU2lnbmVkLW9mZi1ieTogTWlyZWxhIFJhYnVsZWEgPG1pcmVsYS5yYWJ1bGVhQG54cC5j b20+Cj4gVGVzdGVkLWJ5OiBHdWlkbyBHw7xudGhlciA8YWd4QHNpZ3hjcHUub3JnPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jIHwgMTQ3ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Ry di5jICB8ICAzMCArKysrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfZHJ2Lmgg IHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9yZWdzLmggfCAgMTUgKysr Kwo+ICA0IGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2NydGMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKPiBpbmRleCA1ZTQ0ZjU3Li4xYmUyOWY1 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9teHNmYi9teHNmYl9jcnRjLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfY3J0Yy5jCj4gQEAgLTQzLDE0ICs0MywxNyBA QCBzdGF0aWMgdTMyIHNldF9oc3luY19wdWxzZV93aWR0aChzdHJ1Y3QgbXhzZmJfZHJtX3ByaXZh dGUgKm14c2ZiLCB1MzIgdmFsKQo+ICB9Cj4gIAo+ICAvKiBTZXR1cCB0aGUgTVhTRkIgcmVnaXN0 ZXJzIGZvciBkZWNvZGluZyB0aGUgcGl4ZWxzIG91dCBvZiB0aGUgZnJhbWVidWZmZXIgKi8KPiAt c3RhdGljIGludCBteHNmYl9zZXRfcGl4ZWxfZm10KHN0cnVjdCBteHNmYl9kcm1fcHJpdmF0ZSAq bXhzZmIpCj4gK3N0YXRpYyBpbnQgbXhzZmJfc2V0X3BpeGVsX2ZtdChzdHJ1Y3QgbXhzZmJfZHJt X3ByaXZhdGUgKm14c2ZiLCBib29sIHVwZGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpj cnRjID0gJm14c2ZiLT5waXBlLmNydGM7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gY3J0 Yy0+ZGV2Owo+ICAJY29uc3QgdTMyIGZvcm1hdCA9IGNydGMtPnByaW1hcnktPnN0YXRlLT5mYi0+ Zm9ybWF0LT5mb3JtYXQ7Cj4gLQl1MzIgY3RybCwgY3RybDE7Cj4gKwl1MzIgY3RybCA9IDAsIGN0 cmwxID0gMDsKPiArCWJvb2wgYmdyX2Zvcm1hdCA9IHRydWU7Cj4gKwlzdHJ1Y3QgZHJtX2Zvcm1h dF9uYW1lX2J1ZiBmb3JtYXRfbmFtZV9idWY7Cj4gIAo+IC0JY3RybCA9IENUUkxfQllQQVNTX0NP VU5UIHwgQ1RSTF9NQVNURVI7Cj4gKwlpZiAoIXVwZGF0ZSkKPiArCQljdHJsID0gQ1RSTF9CWVBB U1NfQ09VTlQgfCBDVFJMX01BU1RFUjsKPiAgCj4gIAkvKgo+ICAJICogV0FSTklORzogVGhlIGJ1 cyB3aWR0aCwgQ1RSTF9TRVRfQlVTX1dJRFRIKCksIGlzIGNvbmZpZ3VyZWQgdG8KPiBAQCAtNTks NjQgKzYyLDE1OCBAQCBzdGF0aWMgaW50IG14c2ZiX3NldF9waXhlbF9mbXQoc3RydWN0IG14c2Zi X2RybV9wcml2YXRlICpteHNmYikKPiAgCSAqIHRvIGFyYml0cmFyeSB2YWx1ZS4gVGhpcyBsaW1p dGF0aW9uIHNob3VsZCBub3QgcG9zZSBhbiBpc3N1ZS4KPiAgCSAqLwo+ICAKPiAtCS8qIENUUkwx IGNvbnRhaW5zIElSUSBjb25maWcgYW5kIHN0YXR1cyBiaXRzLCBwcmVzZXJ2ZSB0aG9zZS4gKi8K PiAtCWN0cmwxID0gcmVhZGwobXhzZmItPmJhc2UgKyBMQ0RDX0NUUkwxKTsKPiAtCWN0cmwxICY9 IENUUkwxX0NVUl9GUkFNRV9ET05FX0lSUV9FTiB8IENUUkwxX0NVUl9GUkFNRV9ET05FX0lSUTsK PiArCWlmICghdXBkYXRlKSB7Cj4gKwkJLyogQ1RSTDEgY29udGFpbnMgSVJRIGNvbmZpZyBhbmQg c3RhdHVzIGJpdHMsIHByZXNlcnZlIHRob3NlLiAqLwo+ICsJCWN0cmwxID0gcmVhZGwobXhzZmIt PmJhc2UgKyBMQ0RDX0NUUkwxKTsKPiArCQljdHJsMSAmPSBDVFJMMV9DVVJfRlJBTUVfRE9ORV9J UlFfRU4gfCBDVFJMMV9DVVJfRlJBTUVfRE9ORV9JUlE7Cj4gKwl9Cj4gKwo+ICsJRFJNX0RFVl9E RUJVR19EUklWRVIoZHJtLT5kZXYsICJTZXR0aW5nIHVwICVzIG1vZGVcbiIsCj4gKwkJCSAgICAg ZHJtX2dldF9mb3JtYXRfbmFtZShmb3JtYXQsICZmb3JtYXRfbmFtZV9idWYpKTsKPiArCj4gKwkv KiBEbyBzb21lIGNsZWFuLXVwIHRoYXQgd2UgbWlnaHQgaGF2ZSBmcm9tIGEgcHJldmlvdXMgbW9k ZSAqLwo+ICsJY3RybCAmPSB+Q1RSTF9TSElGVF9ESVIoMSk7Cj4gKwljdHJsICY9IH5DVFJMX1NI SUZUX05VTSgweDNmKTsKPiArCWlmIChteHNmYi0+ZGV2ZGF0YS0+aXB2ZXJzaW9uID49IDQpCj4g KwkJd3JpdGVsKENUUkwyX09ERF9MSU5FX1BBVFRFUk4oQ1RSTDJfTElORV9QQVRURVJOX0NMUikg fAo+ICsJCSAgICAgICBDVFJMMl9FVkVOX0xJTkVfUEFUVEVSTihDVFJMMl9MSU5FX1BBVFRFUk5f Q0xSKSwKPiArCQkgICAgICAgbXhzZmItPmJhc2UgKyBMQ0RDX1Y0X0NUUkwyICsgUkVHX0NMUik7 Cj4gIAo+ICAJc3dpdGNoIChmb3JtYXQpIHsKPiAtCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6Cj4g LQkJZGV2X2RiZyhkcm0tPmRldiwgIlNldHRpbmcgdXAgUkdCNTY1IG1vZGVcbiIpOwo+ICsJY2Fz ZSBEUk1fRk9STUFUX0JHUjU2NTogLyogQkcxNiAqLwo+ICsJCWlmIChteHNmYi0+ZGV2ZGF0YS0+ aXB2ZXJzaW9uIDwgNCkKPiArCQkJZ290byBlcnI7CgpUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3Qg cmV0dXJuIGFuIGVycm9yLiBJbnZhbGlkIHBpeGVsIGZvcm1hdHMgc2hvdWxkCmJlIGNhdWdodCBh dCBhdG9taWMgY2hlY2sgdGltZS4gVGhlIGVhc2llc3Qgd2F5IHRvIGRvIHNvIGlzIHRvIHVzZSB0 d28KZGlmZmVyZW50IGxpc3RzIG9mIHN1cHBvcnRlZCBmb3JtYXRzIHdoZW4gY29uc3RydWN0aW5n IHRoZSBwbGFuZSwgYmFzZWQKb24gdGhlIElQIHZlcnNpb24uCgpCeSB0aGUgd2F5LCB0aGUgSVAg dmVyc2lvbiByZWdpc3RlciBoYXMgYmVlbiByZW1vdmVkIGluIGkuTVg2LiBpLk1YNiBhbmQKbmV3 ZXIgU29DcyBzdXBwb3J0IGEgc2Vjb25kIHBsYW5lLCB3aGljaCBJJ20gdHJ5aW5nIHRvIGdldCB3 b3JraW5nLiBJdAp3b3VsZCBoZWxwIHRvIGtub3cgd2hhdCB2ZXJzaW9uIG51bWJlciB0byB1c2Ug Zm9yIHRoZSBpcHZlcnNpb24gZmllbGQKZm9yIGkuTVg2LCBpLk1YNyBhbmQgaS5NWDggaW4gb3Jk ZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBzZWNvbmQKcGxhbmUgYmFzZWQgb24gdGhlIFNv QyBtb2RlbC4KCk9uIGEgc2ltaWxhciB0b3BpYywgd291bGQgeW91IGhhcHBlbiB0byBoYXZlIHRl c3RlZCB0aGUgc2Vjb25kIHBsYW5lCihjb25maWd1cmVkIHRocm91Z2ggQVNfQ1RSTCwgQVNfQlVG IGFuZCBBU19ORVhUX0JVRikgPyBUaGUgcGxhbmUgIndvcmtzIgpidXQgc2VlbXMgdG8gYWx3YXlz IHVzZSBhIDMyYnBwIGZvcm1hdCByZWdhcmRsZXNzIG9mIGhvdyBJIHByb2dyYW0gaXQsCmFuZCB0 aGUgZnJhbWUgYnVmZmVyIHN0YXJ0IGFkZHJlc3Mgc2VlbXMgdG8gYmUgc2hpZnRlZCBmb3Igc29t ZSByZWFzb24uCgo+ICsJCXdyaXRlbChDVFJMMl9PRERfTElORV9QQVRURVJOKENUUkwyX0xJTkVf UEFUVEVSTl9CR1IpIHwKPiArCQkJQ1RSTDJfRVZFTl9MSU5FX1BBVFRFUk4oQ1RSTDJfTElORV9Q QVRURVJOX0JHUiksCj4gKwkJCW14c2ZiLT5iYXNlICsgTENEQ19WNF9DVFJMMiArIFJFR19TRVQp Owo+ICsJCS8qIEZhbGwgdGhyb3VnaCAqLwo+ICsJY2FzZSBEUk1fRk9STUFUX1JHQjU2NTogLyog UkcxNiAqLwo+ICsJCWN0cmwgfD0gQ1RSTF9TRVRfV09SRF9MRU5HVEgoMCk7Cj4gKwkJY3RybCAm PSB+Q1RSTF9ERjE2Owo+ICsJCWN0cmwxIHw9IENUUkwxX1NFVF9CWVRFX1BBQ0tBR0lORygweGYp Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBEUk1fRk9STUFUX1hCR1IxNTU1OiAvKiBYQjE1ICovCj4g KwljYXNlIERSTV9GT1JNQVRfQUJHUjE1NTU6IC8qIEFCMTUgKi8KPiArCQlpZiAobXhzZmItPmRl dmRhdGEtPmlwdmVyc2lvbiA8IDQpCj4gKwkJCWdvdG8gZXJyOwo+ICsJCXdyaXRlbChDVFJMMl9P RERfTElORV9QQVRURVJOKENUUkwyX0xJTkVfUEFUVEVSTl9CR1IpIHwKPiArCQkJQ1RSTDJfRVZF Tl9MSU5FX1BBVFRFUk4oQ1RSTDJfTElORV9QQVRURVJOX0JHUiksCj4gKwkJCW14c2ZiLT5iYXNl ICsgTENEQ19WNF9DVFJMMiArIFJFR19TRVQpOwo+ICsJCS8qIEZhbGwgdGhyb3VnaCAqLwo+ICsJ Y2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1OiAvKiBYUjE1ICovCj4gKwljYXNlIERSTV9GT1JNQVRf QVJHQjE1NTU6IC8qIEFSMTUgKi8KPiAgCQljdHJsIHw9IENUUkxfU0VUX1dPUkRfTEVOR1RIKDAp Owo+ICsJCWN0cmwgfD0gQ1RSTF9ERjE2Owo+ICAJCWN0cmwxIHw9IENUUkwxX1NFVF9CWVRFX1BB Q0tBR0lORygweGYpOwo+ICAJCWJyZWFrOwo+IC0JY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4Ogo+ IC0JCWRldl9kYmcoZHJtLT5kZXYsICJTZXR0aW5nIHVwIFhSR0I4ODg4IG1vZGVcbiIpOwo+ICsJ Y2FzZSBEUk1fRk9STUFUX1JHQlg4ODg4OiAvKiBSWDI0ICovCj4gKwljYXNlIERSTV9GT1JNQVRf UkdCQTg4ODg6IC8qIFJBMjQgKi8KPiArCQkvKiBSR0JYIC0gPiAwUkdCICovCj4gKwkJY3RybCB8 PSBDVFJMX1NISUZUX0RJUigxKTsKPiArCQljdHJsIHw9IENUUkxfU0hJRlRfTlVNKDgpOwo+ICsJ CWJncl9mb3JtYXQgPSBmYWxzZTsKPiArCQkvKiBGYWxsIHRocm91Z2ggKi8KPiArCWNhc2UgRFJN X0ZPUk1BVF9YQkdSODg4ODogLyogWEIyNCAqLwo+ICsJY2FzZSBEUk1fRk9STUFUX0FCR1I4ODg4 OiAvKiBBQjI0ICovCj4gKwkJaWYgKGJncl9mb3JtYXQpIHsKPiArCQkJaWYgKG14c2ZiLT5kZXZk YXRhLT5pcHZlcnNpb24gPCA0KQo+ICsJCQkJZ290byBlcnI7Cj4gKwkJCXdyaXRlbChDVFJMMl9P RERfTElORV9QQVRURVJOKENUUkwyX0xJTkVfUEFUVEVSTl9CR1IpIHwKPiArCQkJICAgICAgIENU UkwyX0VWRU5fTElORV9QQVRURVJOKENUUkwyX0xJTkVfUEFUVEVSTl9CR1IpLAo+ICsJCQkgICAg ICAgbXhzZmItPmJhc2UgKyBMQ0RDX1Y0X0NUUkwyICsgUkVHX1NFVCk7Cj4gKwkJfQo+ICsJCS8q IEZhbGwgdGhyb3VnaCAqLwo+ICsJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OiAvKiBYUjI0ICov Cj4gKwljYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6IC8qIEFSMjQgKi8KPiAgCQljdHJsIHw9IENU UkxfU0VUX1dPUkRfTEVOR1RIKDMpOwo+ICAJCS8qIERvIG5vdCB1c2UgcGFja2VkIHBpeGVscyA9 IG9uZSBwaXhlbCBwZXIgd29yZCBpbnN0ZWFkLiAqLwo+ICAJCWN0cmwxIHw9IENUUkwxX1NFVF9C WVRFX1BBQ0tBR0lORygweDcpOwo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAtCQlkZXZfZXJy KGRybS0+ZGV2LCAiVW5oYW5kbGVkIHBpeGVsIGZvcm1hdCAlMDh4XG4iLCBmb3JtYXQpOwo+IC0J CXJldHVybiAtRUlOVkFMOwo+ICsJCWdvdG8gZXJyOwo+ICAJfQo+ICAKPiAtCXdyaXRlbChjdHJs MSwgbXhzZmItPmJhc2UgKyBMQ0RDX0NUUkwxKTsKPiAtCXdyaXRlbChjdHJsLCBteHNmYi0+YmFz ZSArIExDRENfQ1RSTCk7Cj4gKwlpZiAodXBkYXRlKSB7Cj4gKwkJd3JpdGVsKGN0cmwsIG14c2Zi LT5iYXNlICsgTENEQ19DVFJMICsgUkVHX1NFVCk7Cj4gKwkJd3JpdGVsKGN0cmwxLCBteHNmYi0+ YmFzZSArIExDRENfQ1RSTDEgKyBSRUdfU0VUKTsKPiArCX0gZWxzZSB7Cj4gKwkJd3JpdGVsKGN0 cmwsIG14c2ZiLT5iYXNlICsgTENEQ19DVFJMKTsKPiArCQl3cml0ZWwoY3RybDEsIG14c2ZiLT5i YXNlICsgTENEQ19DVFJMMSk7Cj4gKwl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gKwo+ICtlcnI6Cj4g KwlEUk1fREVWX0VSUk9SKGRybS0+ZGV2LCAiVW5oYW5kbGVkIHBpeGVsIGZvcm1hdDogJXNcbiIs Cj4gKwkJICAgICAgZHJtX2dldF9mb3JtYXRfbmFtZShmb3JtYXQsICZmb3JtYXRfbmFtZV9idWYp KTsKPiArCj4gKwlyZXR1cm4gLUVJTlZBTDsKPiArfQo+ICsKPiArc3RhdGljIHUzMiBnZXRfYnVz X2Zvcm1hdF9mcm9tX2JwcCh1MzIgYnBwKQo+ICt7Cj4gKwlzd2l0Y2ggKGJwcCkgewo+ICsJY2Fz ZSAxNjoKPiArCQlyZXR1cm4gTUVESUFfQlVTX0ZNVF9SR0I1NjVfMVgxNjsKPiArCWNhc2UgMTg6 Cj4gKwkJcmV0dXJuIE1FRElBX0JVU19GTVRfUkdCNjY2XzFYMTg7Cj4gKwljYXNlIDI0Ogo+ICsJ CXJldHVybiBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Owo+ICsJZGVmYXVsdDoKPiArCQlyZXR1 cm4gTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDsKPiArCX0KPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQgbXhzZmJfc2V0X2J1c19mbXQoc3RydWN0IG14c2ZiX2RybV9wcml2YXRlICpteHNmYikKPiAg ewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJm14c2ZiLT5waXBlLmNydGM7Cj4gKwl1bnNp Z25lZCBpbnQgYml0c19wZXJfcGl4ZWwgPSBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmItPmZvcm1h dC0+ZGVwdGg7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gY3J0Yy0+ZGV2Owo+ICAJdTMy IGJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Owo+IC0JdTMyIHJlZzsKPiAt Cj4gLQlyZWcgPSByZWFkbChteHNmYi0+YmFzZSArIExDRENfQ1RSTCk7Cj4gKwlpbnQgbnVtX2J1 c19mb3JtYXRzID0gbXhzZmItPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLm51bV9idXNfZm9ybWF0 czsKPiArCWNvbnN0IHUzMiAqYnVzX2Zvcm1hdHMgPSBteHNmYi0+Y29ubmVjdG9yLT5kaXNwbGF5 X2luZm8uYnVzX2Zvcm1hdHM7Cj4gKwl1MzIgcmVnID0gMDsKPiArCWludCBpID0gMDsKPiArCj4g KwkvKiBtYXRjaCB0aGUgdXNlciByZXF1ZXN0ZWQgYnVzX2Zvcm1hdCB0byBvbmUgc3VwcG9ydGVk IGJ5IHRoZSBwYW5lbCAqLwo+ICsJaWYgKG51bV9idXNfZm9ybWF0cykgewo+ICsJCXUzMiB1c2Vy X2J1c19mb3JtYXQgPSBnZXRfYnVzX2Zvcm1hdF9mcm9tX2JwcChiaXRzX3Blcl9waXhlbCk7Cj4g Kwo+ICsJCWJ1c19mb3JtYXQgPSBidXNfZm9ybWF0c1swXTsKPiArCQlmb3IgKGkgPSAwOyBpIDwg bnVtX2J1c19mb3JtYXRzOyBpKyspIHsKPiArCQkJaWYgKHVzZXJfYnVzX2Zvcm1hdCA9PSBidXNf Zm9ybWF0c1tpXSkgewo+ICsJCQkJYnVzX2Zvcm1hdCA9IHVzZXJfYnVzX2Zvcm1hdDsKPiArCQkJ CWJyZWFrOwo+ICsJCQl9Cj4gKwkJfQo+ICsJfQo+ICAKPiAtCWlmIChteHNmYi0+Y29ubmVjdG9y LT5kaXNwbGF5X2luZm8ubnVtX2J1c19mb3JtYXRzKQo+IC0JCWJ1c19mb3JtYXQgPSBteHNmYi0+ Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uYnVzX2Zvcm1hdHNbMF07Cj4gKwkvKgo+ICsJICogQ1JU QyB3aWxsIGRpY3RhdGUgdGhlIGJ1cyBmb3JtYXQgdmlhIHByaXZhdGVfZmxhZ3NbMTY6MV0KPiAr CSAqIGFuZCBwcml2YXRlX2ZsYWdzWzBdIHdpbGwgc2lnbmFsIGEgYnVzIGZvcm1hdCBjaGFuZ2UK PiArCSAqLwo+ICsJY3J0Yy0+bW9kZS5wcml2YXRlX2ZsYWdzICY9IH4weDFGRkZGOyAvKiBjbGVh ciBidXMgZm9ybWF0ICovCj4gKwljcnRjLT5tb2RlLnByaXZhdGVfZmxhZ3MgfD0gKGJ1c19mb3Jt YXQgPDwgMSk7IC8qIHNldCBidXMgZm9ybWF0ICovCj4gKwljcnRjLT5tb2RlLnByaXZhdGVfZmxh Z3MgfD0gMHgxOyAvKiBidXMgZm9ybWF0IGNoYW5nZSBpbmRpY2F0aW9uKi8KPiAgCj4gIAlEUk1f REVWX0RFQlVHX0RSSVZFUihkcm0tPmRldiwgIlVzaW5nIGJ1c19mb3JtYXQ6IDB4JTA4WFxuIiwK PiAgCQkJICAgICBidXNfZm9ybWF0KTsKPiAgCj4gLQlyZWcgJj0gfkNUUkxfQlVTX1dJRFRIX01B U0s7Cj4gIAlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKPiAgCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0I1 NjVfMVgxNjoKPiAtCQlyZWcgfD0gQ1RSTF9TRVRfQlVTX1dJRFRIKFNUTUxDRElGXzE2QklUKTsK PiArCQlyZWcgPSBDVFJMX1NFVF9CVVNfV0lEVEgoU1RNTENESUZfMTZCSVQpOwo+ICAJCWJyZWFr Owo+ICAJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjY2Nl8xWDE4Ogo+IC0JCXJlZyB8PSBDVFJMX1NF VF9CVVNfV0lEVEgoU1RNTENESUZfMThCSVQpOwo+ICsJCXJlZyA9IENUUkxfU0VUX0JVU19XSURU SChTVE1MQ0RJRl8xOEJJVCk7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIE1FRElBX0JVU19GTVRfUkdC ODg4XzFYMjQ6Cj4gLQkJcmVnIHw9IENUUkxfU0VUX0JVU19XSURUSChTVE1MQ0RJRl8yNEJJVCk7 Cj4gKwkJcmVnID0gQ1RSTF9TRVRfQlVTX1dJRFRIKFNUTUxDRElGXzI0QklUKTsKPiAgCQlicmVh azsKPiAgCWRlZmF1bHQ6Cj4gIAkJZGV2X2Vycihkcm0tPmRldiwgIlVua25vd24gbWVkaWEgYnVz IGZvcm1hdCAlZFxuIiwgYnVzX2Zvcm1hdCk7Cj4gIAkJYnJlYWs7Cj4gIAl9Cj4gLQl3cml0ZWwo cmVnLCBteHNmYi0+YmFzZSArIExDRENfQ1RSTCk7Cj4gKwl3cml0ZWwocmVnLCBteHNmYi0+YmFz ZSArIExDRENfQ1RSTCArIFJFR19TRVQpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBteHNmYl9l bmFibGVfY29udHJvbGxlcihzdHJ1Y3QgbXhzZmJfZHJtX3ByaXZhdGUgKm14c2ZiKQo+IEBAIC0y MzgsNyArMzM1LDcgQEAgc3RhdGljIHZvaWQgbXhzZmJfY3J0Y19tb2RlX3NldF9ub2ZiKHN0cnVj dCBteHNmYl9kcm1fcHJpdmF0ZSAqbXhzZmIpCj4gIAkvKiBDbGVhciB0aGUgRklGT3MgKi8KPiAg CXdyaXRlbChDVFJMMV9GSUZPX0NMRUFSLCBteHNmYi0+YmFzZSArIExDRENfQ1RSTDEgKyBSRUdf U0VUKTsKPiAgCj4gLQllcnIgPSBteHNmYl9zZXRfcGl4ZWxfZm10KG14c2ZiKTsKPiArCWVyciA9 IG14c2ZiX3NldF9waXhlbF9mbXQobXhzZmIsIGZhbHNlKTsKPiAgCWlmIChlcnIpCj4gIAkJcmV0 dXJuOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5jCj4gaW5kZXggNDk3Y2Y0NC4uMjMw MjdhOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfZHJ2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfZHJ2LmMKPiBAQCAtNDMsNiArNDMsMjcg QEAgZW51bSBteHNmYl9kZXZ0eXBlIHsKPiAgCU1YU0ZCX1Y0LAo+ICB9Owo+ICAKPiArLyoKPiAr ICogV2hlbiBhZGRpbmcgbmV3IGZvcm1hdHMsIG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhlIG51bV9m b3JtYXRzIGZyb20KPiArICogbXhzZmJfZGV2ZGF0YSBiZWxvdy4KPiArICovCj4gK3N0YXRpYyBj b25zdCB1MzIgbXhzZmJfZm9ybWF0c1tdID0gewo+ICsJLyogTVhTRkJfVjMgKi8KPiArCURSTV9G T1JNQVRfWFJHQjg4ODgsCj4gKwlEUk1fRk9STUFUX0FSR0I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9S R0I1NjUsCj4gKwkvKiBNWFNGQl9WNCAqLwo+ICsJRFJNX0ZPUk1BVF9YQkdSODg4OCwKPiArCURS TV9GT1JNQVRfQUJHUjg4ODgsCj4gKwlEUk1fRk9STUFUX1JHQlg4ODg4LAo+ICsJRFJNX0ZPUk1B VF9SR0JBODg4OCwKPiArCURSTV9GT1JNQVRfQVJHQjE1NTUsCj4gKwlEUk1fRk9STUFUX1hSR0Ix NTU1LAo+ICsJRFJNX0ZPUk1BVF9BQkdSMTU1NSwKPiArCURSTV9GT1JNQVRfWEJHUjE1NTUsCj4g KwlEUk1fRk9STUFUX0JHUjU2NQo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBteHNm Yl9kZXZkYXRhIG14c2ZiX2RldmRhdGFbXSA9IHsKPiAgCVtNWFNGQl9WM10gPSB7Cj4gIAkJLnRy YW5zZmVyX2NvdW50CT0gTENEQ19WM19UUkFOU0ZFUl9DT1VOVCwKPiBAQCAtNTIsNiArNzMsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG14c2ZiX2RldmRhdGEgbXhzZmJfZGV2ZGF0YVtdID0gewo+ ICAJCS5oc193ZHRoX21hc2sJPSAweGZmLAo+ICAJCS5oc193ZHRoX3NoaWZ0CT0gMjQsCj4gIAkJ LmlwdmVyc2lvbgk9IDMsCj4gKwkJLm51bV9mb3JtYXRzCT0gMywKPiAgCX0sCj4gIAlbTVhTRkJf VjRdID0gewo+ICAJCS50cmFuc2Zlcl9jb3VudAk9IExDRENfVjRfVFJBTlNGRVJfQ09VTlQsCj4g QEAgLTYxLDE0ICs4MywxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG14c2ZiX2RldmRhdGEgbXhz ZmJfZGV2ZGF0YVtdID0gewo+ICAJCS5oc193ZHRoX21hc2sJPSAweDNmZmYsCj4gIAkJLmhzX3dk dGhfc2hpZnQJPSAxOCwKPiAgCQkuaXB2ZXJzaW9uCT0gNCwKPiArCQkubnVtX2Zvcm1hdHMJPSBB UlJBWV9TSVpFKG14c2ZiX2Zvcm1hdHMpLAo+ICAJfSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25z dCB1aW50MzJfdCBteHNmYl9mb3JtYXRzW10gPSB7Cj4gLQlEUk1fRk9STUFUX1hSR0I4ODg4LAo+ IC0JRFJNX0ZPUk1BVF9SR0I1NjUKPiAtfTsKPiAtCj4gIHN0YXRpYyBzdHJ1Y3QgbXhzZmJfZHJt X3ByaXZhdGUgKgo+ICBkcm1fcGlwZV90b19teHNmYl9kcm1fcHJpdmF0ZShzdHJ1Y3QgZHJtX3Np bXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCj4gIHsKPiBAQCAtMjQ0LDcgKzI2Miw3IEBAIHN0YXRp YyBpbnQgbXhzZmJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCB1bnNpZ25lZCBsb25nIGZs YWdzKQo+ICAJfQo+ICAKPiAgCXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoZHJt LCAmbXhzZmItPnBpcGUsICZteHNmYl9mdW5jcywKPiAtCQkJbXhzZmJfZm9ybWF0cywgQVJSQVlf U0laRShteHNmYl9mb3JtYXRzKSwgTlVMTCwKPiArCQkJbXhzZmJfZm9ybWF0cywgbXhzZmItPmRl dmRhdGEtPm51bV9mb3JtYXRzLCBOVUxMLAo+ICAJCQlteHNmYi0+Y29ubmVjdG9yKTsKPiAgCWlm IChyZXQgPCAwKSB7Cj4gIAkJZGV2X2Vycihkcm0tPmRldiwgIkNhbm5vdCBzZXR1cCBzaW1wbGUg ZGlzcGxheSBwaXBlXG4iKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL214c2ZiL214 c2ZiX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX2Rydi5oCj4gaW5kZXggMGI2 NWI1MS4uOGZiNjVkMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfZHJ2LmgKPiBAQCAtMTYs NiArMTYsNyBAQCBzdHJ1Y3QgbXhzZmJfZGV2ZGF0YSB7Cj4gIAl1bnNpZ25lZCBpbnQJIGhzX3dk dGhfbWFzazsKPiAgCXVuc2lnbmVkIGludAkgaHNfd2R0aF9zaGlmdDsKPiAgCXVuc2lnbmVkIGlu dAkgaXB2ZXJzaW9uOwo+ICsJdW5zaWduZWQgaW50CSBudW1fZm9ybWF0czsKPiAgfTsKPiAgCj4g IHN0cnVjdCBteHNmYl9kcm1fcHJpdmF0ZSB7Cj4gQEAgLTQyLDYgKzQzLDYgQEAgdm9pZCBteHNm Yl9kaXNhYmxlX2F4aV9jbGsoc3RydWN0IG14c2ZiX2RybV9wcml2YXRlICpteHNmYik7Cj4gIHZv aWQgbXhzZmJfY3J0Y19lbmFibGUoc3RydWN0IG14c2ZiX2RybV9wcml2YXRlICpteHNmYik7Cj4g IHZvaWQgbXhzZmJfY3J0Y19kaXNhYmxlKHN0cnVjdCBteHNmYl9kcm1fcHJpdmF0ZSAqbXhzZmIp Owo+ICB2b2lkIG14c2ZiX3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IG14c2ZiX2RybV9wcml2 YXRlICpteHNmYiwKPiAtCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKTsK PiArCQkJICAgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSk7Cj4gIAo+ICAj ZW5kaWYgLyogX19NWFNGQl9EUlZfSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9teHNmYi9teHNmYl9yZWdzLmggYi9kcml2ZXJzL2dwdS9kcm0vbXhzZmIvbXhzZmJfcmVncy5o Cj4gaW5kZXggOWZjYjFkYi4uZGM0ZGFhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXhzZmIvbXhzZmJfcmVncy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL214c2ZiL214c2ZiX3Jl Z3MuaAo+IEBAIC00NCw2ICs0NCwxMSBAQAo+ICAjZGVmaW5lIFJFR19QVVQoeCwgaCwgbCkgKCgo eCkgPDwgKGwpKSAmIEdFTk1BU0soaCwgbCkpCj4gICNkZWZpbmUgUkVHX0dFVCh4LCBoLCBsKSAo KCh4KSAmIEdFTk1BU0soaCwgbCkpID4+IChsKSkKPiAgCj4gKyNkZWZpbmUgU1dJWlpMRV9MRQkJ MCAvKiBMaXR0bGUtRW5kaWFuIG9yIE5vIHN3YXAgKi8KPiArI2RlZmluZSBTV0laWkxFX0JFCQkx IC8qIEJpZy1FbmRpYW4gb3Igc3dhcCBhbGwgKi8KPiArI2RlZmluZSBTV0laWkxFX0hXRAkJMiAv KiBTd2FwIGhhbGYtd29yZHMgKi8KPiArI2RlZmluZSBTV0laWkxFX0hXRF9CWVRFCTMgLyogU3dh cCBieXRlcyB3aXRoaW4gZWFjaCBoYWxmLXdvcmQgKi8KPiArCj4gICNkZWZpbmUgQ1RSTF9TRlRS U1QJCQlCSVQoMzEpCj4gICNkZWZpbmUgQ1RSTF9DTEtHQVRFCQkJQklUKDMwKQo+ICAjZGVmaW5l IENUUkxfU0hJRlRfRElSKHgpCQlSRUdfUFVUKCh4KSwgMjYsIDI2KQo+IEBAIC05Myw2ICs5OCwx NiBAQAo+ICAjZGVmaW5lIFJFUV84CTMKPiAgI2RlZmluZSBSRVFfMTYJNAo+ICAKPiArI2RlZmlu ZSBDVFJMMl9PRERfTElORV9QQVRURVJOKHgpCVJFR19QVVQoKHgpLCAxOCwgMTYpCj4gKyNkZWZp bmUgQ1RSTDJfRVZFTl9MSU5FX1BBVFRFUk4oeCkJUkVHX1BVVCgoeCksIDE0LCAxMikKPiArI2Rl ZmluZSBDVFJMMl9MSU5FX1BBVFRFUk5fUkdCCTAKPiArI2RlZmluZSBDVFJMMl9MSU5FX1BBVFRF Uk5fUkJHCTEKPiArI2RlZmluZSBDVFJMMl9MSU5FX1BBVFRFUk5fR0JSCTIKPiArI2RlZmluZSBD VFJMMl9MSU5FX1BBVFRFUk5fR1JCCTMKPiArI2RlZmluZSBDVFJMMl9MSU5FX1BBVFRFUk5fQlJH CTQKPiArI2RlZmluZSBDVFJMMl9MSU5FX1BBVFRFUk5fQkdSCTUKPiArI2RlZmluZSBDVFJMMl9M SU5FX1BBVFRFUk5fQ0xSCTcKPiArCj4gICNkZWZpbmUgVFJBTlNGRVJfQ09VTlRfU0VUX1ZDT1VO VCh4KQlSRUdfUFVUKCh4KSwgMzEsIDE2KQo+ICAjZGVmaW5lIFRSQU5TRkVSX0NPVU5UX0dFVF9W Q09VTlQoeCkJUkVHX0dFVCgoeCksIDMxLCAxNikKPiAgI2RlZmluZSBUUkFOU0ZFUl9DT1VOVF9T RVRfSENPVU5UKHgpCVJFR19QVVQoKHgpLCAxNSwgMCkKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQ aW5jaGFydApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=