From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH 10/10] drm/tinydrm: Move tinydrm_display_pipe_init() to mipi-dbi Date: Wed, 17 Jul 2019 15:34:08 +0200 Message-ID: <20190717133408.GC4852@ravnborg.org> References: <20190717115817.30110-1-noralf@tronnes.org> <20190717115817.30110-11-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from asavdk3.altibox.net (asavdk3.altibox.net [109.247.116.14]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E0636E180 for ; Wed, 17 Jul 2019 13:34:11 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190717115817.30110-11-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: david@lechnology.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKdWwgMTcsIDIwMTkgYXQgMDE6NTg6MTdQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoKSBoYXMgb25seSBvbmUgdXNlciBu b3csIHNvIG1vdmUgaXQgdG8gbWlwaS1kYmkuCj4gCj4gQ2hhbmdlczoKPiAtIFJlbW92ZSBkcm1f Y29ubmVjdG9yX2hlbHBlcl9mdW5jcy5kZXRlY3QsIGl0J3MgYWx3YXlzIGNvbm5lY3RlZC4KPiAt IFN0b3JlIHRoZSBjb25uZWN0b3IgYW5kIG1vZGUgaW4gbWlwaV9kYmkgaW5zdGVhZCBvZiBpdCdz IG93biBzdHJ1Y3QuCj4gCj4gT3RoZXJ3aXNlIHJlbW92ZSBzb21lIGxlZnRvdmVyIHRpbnlkcm0t aGVscGVycy5oIGluY2x1c2lvbnMuCgpGb3IgcmV2aWV3IHB1cnBvc2VzIGl0IHdvdWxkIGhhdmUg YmVlbiBlYXNpZXIgaGFkIHRoaXMgYmVlbiBzcGxpdCBpbiBhCmZldyBtb3JlIHBhdGNoZXMuCkJ1 dCBhbnl3YXksIEkgdGhpbmsgSSBtYW5hZ2VkIHRvIGZvbGxvdyBhbGwgY2hhbmdlcy4KU28gaXQg aGFzIG15OgpSZXZpZXdlZC1ieTogU2FtIFJhdm5ib3JnIDxzYW1AcmF2bmJvcmcub3JnPgoKPiAK PiBDYzogRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KPiBDYzogRGF2aWQgTGVjaG5lciA8 ZGF2aWRAbGVjaG5vbG9neS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxu b3JhbGZAdHJvbm5lcy5vcmc+Cj4gLS0tCj4gIERvY3VtZW50YXRpb24vZ3B1L3Rpbnlkcm0ucnN0 ICAgICAgICAgICAgICAgfCAgIDkgLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9NYWtlZmls ZSAgICAgICAgICAgIHwgICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS9NYWtl ZmlsZSAgICAgICB8ICAgNCAtCj4gIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRy bS1waXBlLmMgfCAxODMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vaHg4MzU3ZC5jICAgICAgICAgICB8ICAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS90aW55 ZHJtL2lsaTkzNDEuYyAgICAgICAgICAgfCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9taTAyODNxdC5jICAgICAgICAgIHwgICAxIC0KPiAgZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v bWlwaS1kYmkuYyAgICAgICAgICB8ICA4NyArKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS90 aW55ZHJtL3N0NzczNXIuYyAgICAgICAgICAgfCAgIDEgLQo+ICBpbmNsdWRlL2RybS90aW55ZHJt L21pcGktZGJpLmggICAgICAgICAgICAgIHwgIDEwICsrCj4gIGluY2x1ZGUvZHJtL3Rpbnlkcm0v dGlueWRybS1oZWxwZXJzLmggICAgICAgfCAgMjcgLS0tCj4gIDExIGZpbGVzIGNoYW5nZWQsIDkx IGluc2VydGlvbnMoKyksIDIzNCBkZWxldGlvbnMoLSkKPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvTWFrZWZpbGUKPiAgZGVsZXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1waXBlLmMKPiAgZGVsZXRlIG1v ZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmgKPiAKPiBkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvdGlueWRybS5yc3QgYi9Eb2N1bWVudGF0aW9uL2dw dS90aW55ZHJtLnJzdAo+IGluZGV4IDJjMjg2MGZhMTUxMC4uNjRiZGY2MzU2MDI0IDEwMDY0NAo+ IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L3Rpbnlkcm0ucnN0Cj4gKysrIGIvRG9jdW1lbnRhdGlv bi9ncHUvdGlueWRybS5yc3QKPiBAQCAtNSwxNSArNSw2IEBAIGRybS90aW55ZHJtIFRpbnkgRFJN IGRyaXZlcnMKPiAgdGlueWRybSBpcyBhIGNvbGxlY3Rpb24gb2YgRFJNIGRyaXZlcnMgdGhhdCBh cmUgc28gc21hbGwgdGhleSBjYW4gZml0IGluIGEKPiAgc2luZ2xlIHNvdXJjZSBmaWxlLgo+ICAK PiAtSGVscGVycwo+IC09PT09PT09Cj4gLQo+IC0uLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0v dGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAo+IC0gICA6aW50ZXJuYWw6Cj4gLQo+IC0uLiBrZXJu ZWwtZG9jOjogZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLXBpcGUuYwo+IC0g ICA6ZXhwb3J0Ogo+IC0KPiAgTUlQSSBEQkkgQ29tcGF0aWJsZSBDb250cm9sbGVycwo+ICA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdGlueWRybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL01ha2VmaWxl Cj4gaW5kZXggNDhlYzhlZDlkYzE2Li5hYjZiOWJlYmYzMjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Rpbnlkcm0vTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9NYWtlZmlsZQo+IEBAIC0xLDUgKzEsNCBAQAo+ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wLW9ubHkKPiAtb2JqLSQoQ09ORklHX0RSTV9USU5ZRFJNKQkJKz0gY29yZS8KPiAg Cj4gICMgQ29udHJvbGxlcnMKPiAgb2JqLSQoQ09ORklHX1RJTllEUk1fTUlQSV9EQkkpCQkrPSBt aXBpLWRiaS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL01ha2VmaWxlCj4gZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggNzhlMTc5MTI3ZTU1Li4wMDAwMDAwMDAwMDAKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL01ha2VmaWxlCj4gKysrIC9kZXYvbnVsbAo+ IEBAIC0xLDQgKzAsMCBAQAo+IC0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9u bHkKPiAtdGlueWRybS15IDo9IHRpbnlkcm0tcGlwZS5vCj4gLQo+IC1vYmotJChDT05GSUdfRFJN X1RJTllEUk0pICs9IHRpbnlkcm0ubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlu eWRybS9jb3JlL3Rpbnlkcm0tcGlwZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90 aW55ZHJtLXBpcGUuYwo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGE2MmQxZGZl ODdmOC4uMDAwMDAwMDAwMDAwCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90 aW55ZHJtLXBpcGUuYwo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwxODMgKzAsMCBAQAo+IC0vLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgo+IC0vKgo+IC0gKiBDb3B5 cmlnaHQgKEMpIDIwMTYgTm9yYWxmIFRyw7hubmVzCj4gLSAqLwo+IC0KPiAtI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPgo+IC0KPiAtI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ IC0jaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1l YnVmZmVyX2hlbHBlci5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9tb2Rlcy5oPgo+IC0jaW5jbHVk ZSA8ZHJtL2RybV9wcm9iZV9oZWxwZXIuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4K PiAtI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KPiAtCj4gLXN0cnVjdCB0 aW55ZHJtX2Nvbm5lY3RvciB7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBiYXNlOwo+IC0Jc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKPiAtfTsKPiAtCj4gLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IHRpbnlkcm1fY29ubmVjdG9yICoKPiAtdG9fdGlueWRybV9jb25uZWN0b3Ioc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAtewo+IC0JcmV0dXJuIGNvbnRhaW5lcl9vZihjb25u ZWN0b3IsIHN0cnVjdCB0aW55ZHJtX2Nvbm5lY3RvciwgYmFzZSk7Cj4gLX0KPiAtCj4gLXN0YXRp YyBpbnQgdGlueWRybV9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCj4gLXsKPiAtCXN0cnVjdCB0aW55ZHJtX2Nvbm5lY3RvciAqdGNvbm4gPSB0b190 aW55ZHJtX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGU7Cj4gLQo+IC0JbW9kZSA9IGRybV9tb2RlX2R1cGxpY2F0ZShjb25uZWN0b3ItPmRldiwg JnRjb25uLT5tb2RlKTsKPiAtCWlmICghbW9kZSkgewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRv IGR1cGxpY2F0ZSBtb2RlXG4iKTsKPiAtCQlyZXR1cm4gMDsKPiAtCX0KPiAtCj4gLQlpZiAobW9k ZS0+bmFtZVswXSA9PSAnXDAnKQo+IC0JCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwo+IC0KPiAt CW1vZGUtPnR5cGUgfD0gRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7Cj4gLQlkcm1fbW9kZV9wcm9i ZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7Cj4gLQo+IC0JaWYgKG1vZGUtPndpZHRoX21tKSB7Cj4g LQkJY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSBtb2RlLT53aWR0aF9tbTsKPiAt CQljb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZWlnaHRfbW0gPSBtb2RlLT5oZWlnaHRfbW07Cj4g LQl9Cj4gLQo+IC0JcmV0dXJuIDE7Cj4gLX0KPiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgdGlueWRybV9jb25uZWN0b3JfaGZ1bmNzID0gewo+IC0J LmdldF9tb2RlcyA9IHRpbnlkcm1fY29ubmVjdG9yX2dldF9tb2RlcywKPiAtfTsKPiAtCj4gLXN0 YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4gLXRpbnlkcm1fY29ubmVjdG9yX2RldGVj dChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+IC17Cj4gLQlp ZiAoZHJtX2Rldl9pc191bnBsdWdnZWQoY29ubmVjdG9yLT5kZXYpKQo+IC0JCXJldHVybiBjb25u ZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiAtCj4gLQlyZXR1cm4gY29ubmVjdG9yLT5zdGF0 dXM7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIHRpbnlkcm1fY29ubmVjdG9yX2Rlc3Ryb3koc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAtewo+IC0Jc3RydWN0IHRpbnlkcm1fY29u bmVjdG9yICp0Y29ubiA9IHRvX3Rpbnlkcm1fY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gLQo+IC0J ZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNvbm5lY3Rvcik7Cj4gLQlrZnJlZSh0Y29ubik7Cj4gLX0K PiAtCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB0aW55ZHJtX2Nv bm5lY3Rvcl9mdW5jcyA9IHsKPiAtCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9yZXNldCwKPiAtCS5kZXRlY3QgPSB0aW55ZHJtX2Nvbm5lY3Rvcl9kZXRlY3QsCj4gLQkuZmls bF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiAtCS5k ZXN0cm95ID0gdGlueWRybV9jb25uZWN0b3JfZGVzdHJveSwKPiAtCS5hdG9taWNfZHVwbGljYXRl X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSwKPiAt CS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0 cm95X3N0YXRlLAo+IC19Owo+IC0KPiAtc3RydWN0IGRybV9jb25uZWN0b3IgKgo+IC10aW55ZHJt X2Nvbm5lY3Rvcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiAtCQkJIGNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+IC0JCQkgaW50IGNvbm5lY3Rvcl90eXBlKQo+ IC17Cj4gLQlzdHJ1Y3QgdGlueWRybV9jb25uZWN0b3IgKnRjb25uOwo+IC0Jc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcjsKPiAtCWludCByZXQ7Cj4gLQo+IC0JdGNvbm4gPSBremFsbG9j KHNpemVvZigqdGNvbm4pLCBHRlBfS0VSTkVMKTsKPiAtCWlmICghdGNvbm4pCj4gLQkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7Cj4gLQo+IC0JZHJtX21vZGVfY29weSgmdGNvbm4tPm1vZGUsIG1v ZGUpOwo+IC0JY29ubmVjdG9yID0gJnRjb25uLT5iYXNlOwo+IC0KPiAtCWRybV9jb25uZWN0b3Jf aGVscGVyX2FkZChjb25uZWN0b3IsICZ0aW55ZHJtX2Nvbm5lY3Rvcl9oZnVuY3MpOwo+IC0JcmV0 ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGRybSwgY29ubmVjdG9yLCAmdGlueWRybV9jb25uZWN0b3Jf ZnVuY3MsCj4gLQkJCQkgY29ubmVjdG9yX3R5cGUpOwo+IC0JaWYgKHJldCkgewo+IC0JCWtmcmVl KHRjb25uKTsKPiAtCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+IC0JfQo+IC0KPiAtCWNvbm5lY3Rv ci0+c3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gLQo+IC0JcmV0dXJuIGNv bm5lY3RvcjsKPiAtfQo+IC0KPiAtc3RhdGljIGludCB0aW55ZHJtX3JvdGF0ZV9tb2RlKHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+IC0JCQkgICAgICAgdW5zaWduZWQgaW50IHJvdGF0 aW9uKQo+IC17Cj4gLQlpZiAocm90YXRpb24gPT0gMCB8fCByb3RhdGlvbiA9PSAxODApIHsKPiAt CQlyZXR1cm4gMDsKPiAtCX0gZWxzZSBpZiAocm90YXRpb24gPT0gOTAgfHwgcm90YXRpb24gPT0g MjcwKSB7Cj4gLQkJc3dhcChtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwo+IC0JCXN3 YXAobW9kZS0+aHN5bmNfc3RhcnQsIG1vZGUtPnZzeW5jX3N0YXJ0KTsKPiAtCQlzd2FwKG1vZGUt PmhzeW5jX2VuZCwgbW9kZS0+dnN5bmNfZW5kKTsKPiAtCQlzd2FwKG1vZGUtPmh0b3RhbCwgbW9k ZS0+dnRvdGFsKTsKPiAtCQlzd2FwKG1vZGUtPndpZHRoX21tLCBtb2RlLT5oZWlnaHRfbW0pOwo+ IC0JCXJldHVybiAwOwo+IC0JfSBlbHNlIHsKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAtCX0KPiAt fQo+IC0KPiAtLyoqCj4gLSAqIHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQgLSBJbml0aWFsaXpl IGRpc3BsYXkgcGlwZQo+IC0gKiBAZHJtOiBEUk0gZGV2aWNlCj4gLSAqIEBwaXBlOiBEaXNwbGF5 IHBpcGUKPiAtICogQGZ1bmNzOiBEaXNwbGF5IHBpcGUgZnVuY3Rpb25zCj4gLSAqIEBjb25uZWN0 b3JfdHlwZTogQ29ubmVjdG9yIHR5cGUKPiAtICogQGZvcm1hdHM6IEFycmF5IG9mIHN1cHBvcnRl ZCBmb3JtYXRzIChEUk1fRk9STUFUXF9cKikKPiAtICogQGZvcm1hdF9jb3VudDogTnVtYmVyIG9m IGVsZW1lbnRzIGluIEBmb3JtYXRzCj4gLSAqIEBtb2RlOiBTdXBwb3J0ZWQgbW9kZQo+IC0gKiBA cm90YXRpb246IEluaXRpYWwgQG1vZGUgcm90YXRpb24gaW4gZGVncmVlcyBDb3VudGVyIENsb2Nr IFdpc2UKPiAtICoKPiAtICogVGhpcyBmdW5jdGlvbiBzZXRzIHVwIGEgJmRybV9zaW1wbGVfZGlz cGxheV9waXBlIHdpdGggYSAmZHJtX2Nvbm5lY3RvciB0aGF0Cj4gLSAqIGhhcyBvbmUgZml4ZWQg JmRybV9kaXNwbGF5X21vZGUgd2hpY2ggaXMgcm90YXRlZCBhY2NvcmRpbmcgdG8gQHJvdGF0aW9u Lgo+IC0gKgo+IC0gKiBSZXR1cm5zOgo+IC0gKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVy cm9yIGNvZGUgb24gZmFpbHVyZS4KPiAtICovCj4gLWludCB0aW55ZHJtX2Rpc3BsYXlfcGlwZV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gLQkJCSAgICAgIHN0cnVjdCBkcm1fc2ltcGxl X2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiAtCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlX2Z1bmNzICpmdW5jcywKPiAtCQkJICAgICAgaW50IGNvbm5lY3Rvcl90eXBl LAo+IC0JCQkgICAgICBjb25zdCB1aW50MzJfdCAqZm9ybWF0cywKPiAtCQkJICAgICAgdW5zaWdu ZWQgaW50IGZvcm1hdF9jb3VudCwKPiAtCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUsCj4gLQkJCSAgICAgIHVuc2lnbmVkIGludCByb3RhdGlvbikKPiAtewo+IC0J c3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZV9jb3B5Owo+IC0Jc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcjsKPiAtCWludCByZXQ7Cj4gLQlzdGF0aWMgY29uc3QgdWludDY0X3QgbW9k aWZpZXJzW10gPSB7Cj4gLQkJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAo+IC0JCURSTV9GT1JNQVRf TU9EX0lOVkFMSUQKPiAtCX07Cj4gLQo+IC0JZHJtX21vZGVfY29weSgmbW9kZV9jb3B5LCBtb2Rl KTsKPiAtCXJldCA9IHRpbnlkcm1fcm90YXRlX21vZGUoJm1vZGVfY29weSwgcm90YXRpb24pOwo+ IC0JaWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigiSWxsZWdhbCByb3RhdGlvbiB2YWx1ZSAldVxu Iiwgcm90YXRpb24pOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAtCWRybS0+bW9k ZV9jb25maWcubWluX3dpZHRoID0gbW9kZV9jb3B5LmhkaXNwbGF5Owo+IC0JZHJtLT5tb2RlX2Nv bmZpZy5tYXhfd2lkdGggPSBtb2RlX2NvcHkuaGRpc3BsYXk7Cj4gLQlkcm0tPm1vZGVfY29uZmln Lm1pbl9oZWlnaHQgPSBtb2RlX2NvcHkudmRpc3BsYXk7Cj4gLQlkcm0tPm1vZGVfY29uZmlnLm1h eF9oZWlnaHQgPSBtb2RlX2NvcHkudmRpc3BsYXk7Cj4gLQo+IC0JY29ubmVjdG9yID0gdGlueWRy bV9jb25uZWN0b3JfY3JlYXRlKGRybSwgJm1vZGVfY29weSwgY29ubmVjdG9yX3R5cGUpOwo+IC0J aWYgKElTX0VSUihjb25uZWN0b3IpKQo+IC0JCXJldHVybiBQVFJfRVJSKGNvbm5lY3Rvcik7Cj4g LQo+IC0JcmV0dXJuIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoZHJtLCBwaXBlLCBmdW5j cywgZm9ybWF0cywKPiAtCQkJCQkgICAgZm9ybWF0X2NvdW50LCBtb2RpZmllcnMsIGNvbm5lY3Rv cik7Cj4gLX0KPiAtRVhQT1JUX1NZTUJPTCh0aW55ZHJtX2Rpc3BsYXlfcGlwZV9pbml0KTsKPiAt Cj4gLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Rpbnlkcm0vaHg4MzU3ZC5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaHg4MzU3ZC5jCj4g aW5kZXggYmUxOTdjNWMzMjExLi43ZDJkZmE5MmI2NjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Rpbnlkcm0vaHg4MzU3ZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v aHg4MzU3ZC5jCj4gQEAgLTIzLDcgKzIzLDYgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2Zy YW1lYnVmZmVyX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5o Pgo+ICAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KPiAtI2luY2x1ZGUgPGRybS90 aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgo+ICAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5 Lmg+Cj4gIAo+ICAjZGVmaW5lIEhYODM1N0RfU0VUT1NDIDB4YjAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTM0MS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v aWxpOTM0MS5jCj4gaW5kZXggMDBmMjhiOGU0MzQ1Li5jYjBhMGRkYmMwOTAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTM0MS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Rpbnlkcm0vaWxpOTM0MS5jCj4gQEAgLTIyLDcgKzIyLDYgQEAKPiAgI2luY2x1ZGUgPGRy bS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rl c2V0X2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KPiAtI2lu Y2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgo+ICAjaW5jbHVkZSA8dmlkZW8v bWlwaV9kaXNwbGF5Lmg+Cj4gIAo+ICAjZGVmaW5lIElMSTkzNDFfRlJNQ1RSMQkJMHhiMQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jIGIvZHJpdmVycy9n cHUvZHJtL3Rpbnlkcm0vbWkwMjgzcXQuYwo+IGluZGV4IDdhMTRkNmIzNTVmMi4uZjIxZDU4ZGNh YTVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jCj4gQEAgLTIwLDcgKzIwLDYg QEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgo+ICAjaW5j bHVkZSA8ZHJtL2RybV9tb2Rlc2V0X2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0v bWlwaS1kYmkuaD4KPiAtI2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgo+ ICAjaW5jbHVkZSA8dmlkZW8vbWlwaV9kaXNwbGF5Lmg+Cj4gIAo+ICAjZGVmaW5lIElMSTkzNDFf RlJNQ1RSMQkJMHhiMQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBp LWRiaS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYwo+IGluZGV4IGEyNjRj MGJiNzRiMC4uNDI0NjUyMjgxMjljIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55 ZHJtL21pcGktZGJpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5j Cj4gQEAgLTEzLDYgKzEzLDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9jb25zdW1l ci5oPgo+ICAjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgo+ICAKPiArI2luY2x1ZGUgPGRybS9k cm1fY29ubmVjdG9yLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9oZWxwZXIuaD4KPiAg I2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2NtYV9oZWxw ZXIuaD4KPiBAQCAtMjAsMTAgKzIxLDExIEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX2Zvcm1hdF9o ZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+Cj4gICNpbmNsdWRlIDxkcm0v ZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fdmJsYW5r Lmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX21vZGVzLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3By b2JlX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+Cj4gKyNpbmNsdWRlIDxk cm0vZHJtX3ZibGFuay5oPgo+ICAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KPiAt I2luY2x1ZGUgPGRybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgo+ICAjaW5jbHVkZSA8dmlk ZW8vbWlwaV9kaXNwbGF5Lmg+Cj4gIAo+ICAjZGVmaW5lIE1JUElfREJJX01BWF9TUElfUkVBRF9T UEVFRCAyMDAwMDAwIC8qIDJNSHogKi8KPiBAQCAtNDAwLDYgKzQwMiw2MCBAQCB2b2lkIG1pcGlf ZGJpX3BpcGVfZGlzYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCj4g IH0KPiAgRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9waXBlX2Rpc2FibGUpOwo+ICAKPiArc3RhdGlj IGludCBtaXBpX2RiaV9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBtaXBpX2RiaSAqbWlwaSA9IGRybV90b19taXBpX2Ri aShjb25uZWN0b3ItPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiAr Cj4gKwltb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGNvbm5lY3Rvci0+ZGV2LCAmbWlwaS0+bW9k ZSk7Cj4gKwlpZiAoIW1vZGUpIHsKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBkdXBsaWNhdGUg bW9kZVxuIik7Cj4gKwkJcmV0dXJuIDA7Cj4gKwl9Cj4gKwo+ICsJaWYgKG1vZGUtPm5hbWVbMF0g PT0gJ1wwJykKPiArCQlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKPiArCj4gKwltb2RlLT50eXBl IHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwo+ICsJZHJtX21vZGVfcHJvYmVkX2FkZChjb25u ZWN0b3IsIG1vZGUpOwo+ICsKPiArCWlmIChtb2RlLT53aWR0aF9tbSkgewo+ICsJCWNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLndpZHRoX21tID0gbW9kZS0+d2lkdGhfbW07Cj4gKwkJY29ubmVjdG9y LT5kaXNwbGF5X2luZm8uaGVpZ2h0X21tID0gbW9kZS0+aGVpZ2h0X21tOwo+ICsJfQo+ICsKPiAr CXJldHVybiAxOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf aGVscGVyX2Z1bmNzIG1pcGlfZGJpX2Nvbm5lY3Rvcl9oZnVuY3MgPSB7Cj4gKwkuZ2V0X21vZGVz ID0gbWlwaV9kYmlfY29ubmVjdG9yX2dldF9tb2RlcywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBtaXBpX2RiaV9jb25uZWN0b3JfZnVuY3MgPSB7 Cj4gKwkucmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfcmVzZXQsCj4gKwkuZmls bF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKPiArCS5k ZXN0cm95ID0gZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwLAo+ICsJLmF0b21pY19kdXBsaWNhdGVfc3Rh dGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlLAo+ICsJLmF0 b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lf c3RhdGUsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IG1pcGlfZGJpX3JvdGF0ZV9tb2RlKHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICsJCQkJdW5zaWduZWQgaW50IHJvdGF0aW9uKQo+ ICt7Cj4gKwlpZiAocm90YXRpb24gPT0gMCB8fCByb3RhdGlvbiA9PSAxODApIHsKPiArCQlyZXR1 cm4gMDsKPiArCX0gZWxzZSBpZiAocm90YXRpb24gPT0gOTAgfHwgcm90YXRpb24gPT0gMjcwKSB7 Cj4gKwkJc3dhcChtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwo+ICsJCXN3YXAobW9k ZS0+aHN5bmNfc3RhcnQsIG1vZGUtPnZzeW5jX3N0YXJ0KTsKPiArCQlzd2FwKG1vZGUtPmhzeW5j X2VuZCwgbW9kZS0+dnN5bmNfZW5kKTsKPiArCQlzd2FwKG1vZGUtPmh0b3RhbCwgbW9kZS0+dnRv dGFsKTsKPiArCQlzd2FwKG1vZGUtPndpZHRoX21tLCBtb2RlLT5oZWlnaHRfbW0pOwo+ICsJCXJl dHVybiAwOwo+ICsJfSBlbHNlIHsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiArfQo+ICsK PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgbWlwaV9kYmlfbW9k ZV9jb25maWdfZnVuY3MgPSB7Cj4gIAkuZmJfY3JlYXRlID0gZHJtX2dlbV9mYl9jcmVhdGVfd2l0 aF9kaXJ0eSwKPiAgCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjaywKPiBA QCAtNDQwLDYgKzQ5NiwxMCBAQCBpbnQgbWlwaV9kYmlfaW5pdF93aXRoX2Zvcm1hdHMoc3RydWN0 IG1pcGlfZGJpICptaXBpLAo+ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCj4gIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24sIHNpemVfdCB0eF9i dWZfc2l6ZSkKPiAgewo+ICsJc3RhdGljIGNvbnN0IHVpbnQ2NF90IG1vZGlmaWVyc1tdID0gewo+ ICsJCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKPiArCQlEUk1fRk9STUFUX01PRF9JTlZBTElECj4g Kwl9Owo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9ICZtaXBpLT5kcm07Cj4gIAlpbnQgcmV0 Owo+ICAKPiBAQCAtNDUyLDE2ICs1MTIsMzEgQEAgaW50IG1pcGlfZGJpX2luaXRfd2l0aF9mb3Jt YXRzKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKPiAgCWlmICghbWlwaS0+dHhfYnVmKQo+ICAJCXJl dHVybiAtRU5PTUVNOwo+ICAKPiAtCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoZHJt LCAmbWlwaS0+cGlwZSwgZnVuY3MsCj4gLQkJCQkJRFJNX01PREVfQ09OTkVDVE9SX1NQSSwKPiAt CQkJCQlmb3JtYXRzLCBmb3JtYXRfY291bnQsIG1vZGUsCj4gLQkJCQkJcm90YXRpb24pOwo+ICsJ ZHJtX21vZGVfY29weSgmbWlwaS0+bW9kZSwgbW9kZSk7Cj4gKwlyZXQgPSBtaXBpX2RiaV9yb3Rh dGVfbW9kZSgmbWlwaS0+bW9kZSwgcm90YXRpb24pOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9F UlJPUigiSWxsZWdhbCByb3RhdGlvbiB2YWx1ZSAldVxuIiwgcm90YXRpb24pOwo+ICsJCXJldHVy biAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmbWlwaS0+ Y29ubmVjdG9yLCAmbWlwaV9kYmlfY29ubmVjdG9yX2hmdW5jcyk7Cj4gKwlyZXQgPSBkcm1fY29u bmVjdG9yX2luaXQoZHJtLCAmbWlwaS0+Y29ubmVjdG9yLCAmbWlwaV9kYmlfY29ubmVjdG9yX2Z1 bmNzLAo+ICsJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9TUEkpOwo+ICsJaWYgKHJldCkKPiArCQly ZXR1cm4gcmV0Owo+ICsKPiArCXJldCA9IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQoZHJt LCAmbWlwaS0+cGlwZSwgZnVuY3MsIGZvcm1hdHMsIGZvcm1hdF9jb3VudCwKPiArCQkJCQkgICBt b2RpZmllcnMsICZtaXBpLT5jb25uZWN0b3IpOwo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0 Owo+ICAKPiAgCWRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdlX2NsaXBzKCZtaXBpLT5waXBlLnBs YW5lKTsKPiAgCj4gIAlkcm0tPm1vZGVfY29uZmlnLmZ1bmNzID0gJm1pcGlfZGJpX21vZGVfY29u ZmlnX2Z1bmNzOwo+ICsJZHJtLT5tb2RlX2NvbmZpZy5taW5fd2lkdGggPSBtaXBpLT5tb2RlLmhk aXNwbGF5Owo+ICsJZHJtLT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSBtaXBpLT5tb2RlLmhkaXNw bGF5Owo+ICsJZHJtLT5tb2RlX2NvbmZpZy5taW5faGVpZ2h0ID0gbWlwaS0+bW9kZS52ZGlzcGxh eTsKPiArCWRybS0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9IG1pcGktPm1vZGUudmRpc3BsYXk7 Cj4gIAltaXBpLT5yb3RhdGlvbiA9IHJvdGF0aW9uOwo+ICAKPiAgCURSTV9ERUJVR19LTVMoInJv dGF0aW9uID0gJXVcbiIsIHJvdGF0aW9uKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Rpbnlkcm0vc3Q3NzM1ci5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NzM1ci5jCj4g aW5kZXggYjIzODk5Nzg4ZjViLi4xNTE3NDkwMzVhMTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Rpbnlkcm0vc3Q3NzM1ci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0v c3Q3NzM1ci5jCj4gQEAgLTIwLDcgKzIwLDYgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2Nt YV9oZWxwZXIuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5o Pgo+ICAjaW5jbHVkZSA8ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaD4KPiAtI2luY2x1ZGUgPGRybS90 aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oPgo+ICAKPiAgI2RlZmluZSBTVDc3MzVSX0ZSTUNUUjEJ CTB4YjEKPiAgI2RlZmluZSBTVDc3MzVSX0ZSTUNUUjIJCTB4YjIKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRi aS5oCj4gaW5kZXggMmYwMTE5ZTJjNDdlLi44YWIzYmRlNzg3MjMgMTAwNjQ0Cj4gLS0tIGEvaW5j bHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vdGlueWRybS9t aXBpLWRiaS5oCj4gQEAgLTQ2LDYgKzQ2LDE2IEBAIHN0cnVjdCBtaXBpX2RiaSB7Cj4gIAkgKi8K PiAgCXN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBwaXBlOwo+ICAKPiArCS8qKgo+ICsJ ICogQGNvbm5lY3RvcjogQ29ubmVjdG9yCj4gKwkgKi8KPiArCXN0cnVjdCBkcm1fY29ubmVjdG9y IGNvbm5lY3RvcjsKPiArCj4gKwkvKioKPiArCSAqIEBtb2RlOiBGaXhlZCBkaXNwbGF5IG1vZGUK PiArCSAqLwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKPiArCj4gIAlzdHJ1Y3Qg c3BpX2RldmljZSAqc3BpOwo+ICAJYm9vbCBlbmFibGVkOwo+ICAJc3RydWN0IG11dGV4IGNtZGxv Y2s7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmgg Yi9pbmNsdWRlL2RybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oCj4gZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMGU3NDcwNzcxYzVlLi4wMDAwMDAwMDAwMDAKPiAtLS0gYS9pbmNs dWRlL2RybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0x LDI3ICswLDAgQEAKPiAtLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb3ItbGF0 ZXIgKi8KPiAtLyoKPiAtICogQ29weXJpZ2h0IChDKSAyMDE2IE5vcmFsZiBUcsO4bm5lcwo+IC0g Ki8KPiAtCj4gLSNpZm5kZWYgX19MSU5VWF9USU5ZRFJNX0hFTFBFUlNfSAo+IC0jZGVmaW5lIF9f TElOVVhfVElOWURSTV9IRUxQRVJTX0gKPiAtCj4gLXN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlOwo+ IC1zdHJ1Y3QgZHJtX2RldmljZTsKPiAtc3RydWN0IGRybV9kaXNwbGF5X21vZGU7Cj4gLXN0cnVj dCBkcm1fZnJhbWVidWZmZXI7Cj4gLXN0cnVjdCBkcm1fcmVjdDsKPiAtc3RydWN0IGRybV9zaW1w bGVfZGlzcGxheV9waXBlOwo+IC1zdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGVfZnVuY3M7 Cj4gLXN0cnVjdCBkZXZpY2U7Cj4gLQo+IC1pbnQgdGlueWRybV9kaXNwbGF5X3BpcGVfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+IC0JCQkgICAgICBzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNw bGF5X3BpcGUgKnBpcGUsCj4gLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3Bs YXlfcGlwZV9mdW5jcyAqZnVuY3MsCj4gLQkJCSAgICAgIGludCBjb25uZWN0b3JfdHlwZSwKPiAt CQkJICAgICAgY29uc3QgdWludDMyX3QgKmZvcm1hdHMsCj4gLQkJCSAgICAgIHVuc2lnbmVkIGlu dCBmb3JtYXRfY291bnQsCj4gLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlLAo+IC0JCQkgICAgICB1bnNpZ25lZCBpbnQgcm90YXRpb24pOwo+IC0KPiAtI2VuZGlm IC8qIF9fTElOVVhfVElOWURSTV9IRUxQRVJTX0ggKi8KPiAtLSAKPiAyLjIwLjEKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs