From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: Re: [PATCH 3/9] gpu: ipu-v3: add driver for Prefetch Resolve Engine Date: Fri, 03 Mar 2017 19:25:39 +0100 Message-ID: <1488565539.11464.1.camel@pengutronix.de> References: <20170217182830.32618-1-l.stach@pengutronix.de> <20170217182830.32618-4-l.stach@pengutronix.de> <1487604055.3878.25.camel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1487604055.3878.25.camel@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Philipp Zabel Cc: Mark Rutland , devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, patchwork-lst@pengutronix.de, Rob Herring , kernel@pengutronix.de List-Id: devicetree@vger.kernel.org QW0gTW9udGFnLCBkZW4gMjAuMDIuMjAxNywgMTY6MjAgKzAxMDAgc2NocmllYiBQaGlsaXBwIFph YmVsOgo+IE9uIEZyaSwgMjAxNy0wMi0xNyBhdCAxOToyOCArMDEwMCwgTHVjYXMgU3RhY2ggd3Jv dGU6Cj4gPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGkuTVg2IFF1YWRQbHVzIFBSRSB1bml0 cy4gQ3VycmVudGx5IG9ubHkKPiA+IGxpbmVhciBwcmVmZXRjaCBpbnRvIFNSQU0gaXMgc3VwcG9y dGVkLCBvdGhlciBtb2RlcyBvZiBvcGVyYXRpb24KPiA+IGxpa2UgdGhlIHRpbGVkLXRvLWxpbmVh ciBjb252ZXJzaW9uIHdpbGwgYmUgYWRkZWQgbGF0ZXIuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6 IEx1Y2FzIFN0YWNoIDxsLnN0YWNoQHBlbmd1dHJvbml4LmRlPgo+ID4gLS0tCj4gPiDCoGRyaXZl cnMvZ3B1L2lwdS12My9NYWtlZmlsZcKgwqB8wqDCoMKgMiArLQo+ID4gwqBkcml2ZXJzL2dwdS9p cHUtdjMvaXB1LXByZS5jIHwgMjkwCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gPiDCoGRyaXZlcnMvZ3B1L2lwdS12My9pcHUtcHJ2LmggfMKgwqAxMSAr Kwo+ID4gwqAzIGZpbGVzIGNoYW5nZWQsIDMwMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4gPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9pcHUtdjMvaXB1LXByZS5jCj4g PiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9pcHUtdjMvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9pcHUtCj4gPiB2My9NYWtlZmlsZQo+ID4gaW5kZXggNWY5NjE0MTZjNGVlLi44YWU5MGRl NDZiNGQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9pcHUtdjMvTWFrZWZpbGUKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2lwdS12My9NYWtlZmlsZQo+ID4gQEAgLTIsNCArMiw0IEBAIG9iai0k KENPTkZJR19JTVhfSVBVVjNfQ09SRSkgKz0gaW14LWlwdS12My5vCj4gPiDCoAo+ID4gwqBpbXgt aXB1LXYzLW9ianMgOj0gaXB1LWNvbW1vbi5vIGlwdS1jcG1lbS5vIGlwdS1jc2kubyBpcHUtZGMu bwo+ID4gaXB1LWRpLm8gXAo+ID4gwqAJCWlwdS1kcC5vIGlwdS1kbWZjLm8gaXB1LWljLm8gaXB1 LWltYWdlLWNvbnZlcnQubyBcCj4gPiAtCQlpcHUtc21mYy5vIGlwdS12ZGkubwo+ID4gKwkJaXB1 LXByZS5vIGlwdS1zbWZjLm8gaXB1LXZkaS5vCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv aXB1LXYzL2lwdS1wcmUuYyBiL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtCj4gPiBwcmUuYwo+ID4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZmViZTBjYjhiMDk0 Cj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LXByZS5j Cj4gPiBAQCAtMCwwICsxLDI5MCBAQAo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDE3 IEx1Y2FzIFN0YWNoLCBQZW5ndXRyb25peAo+ID4gKyAqCj4gPiArICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ID4gbW9kaWZ5 IGl0Cj4gPiArICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMKPiA+IExpY2Vuc2UsCj4gPiArICogdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KPiA+ICsgKgo+ID4gKyAqIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cj4g PiBXSVRIT1VUCj4gPiArICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKPiA+IE1FUkNIQU5UQUJJTElUWSBvcgo+ID4gKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLsKgwqBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwo+ID4gTGlj ZW5zZSBmb3IKPiA+ICsgKiBtb3JlIGRldGFpbHMuCj4gPiArICovCj4gPiArCj4gPiArI2luY2x1 ZGUgPGRybS9kcm1fZm91cmNjLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+ID4gKyNp bmNsdWRlIDxsaW51eC9lcnIuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvZ2VuYWxsb2MuaD4KPiA+ ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4g PiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4gKyNpbmNsdWRlIDx2aWRl by9pbXgtaXB1LXYzLmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgImlwdS1wcnYuaCIKPiA+ICsKPiA+ ICsjZGVmaW5lIElQVV9QUkVfTUFYX1dJRFRICTIwNDgKPiA+ICsjZGVmaW5lIElQVV9QUkVfTlVN X1NDQU5MSU5FUwk4Cj4gPiArCj4gPiArI2RlZmluZSBJUFVfUFJFX0NUUkwJCQkJCTB4MDAwCj4g PiArI2RlZmluZSBJUFVfUFJFX0NUUkxfU0VUCQkJCTB4MDA0Cj4gPiArI2RlZmluZcKgwqBJUFVf UFJFX0NUUkxfRU5BQkxFCQkJCSgxIDw8Cj4gPiAwKQo+IAo+IFNpbmdsZSBiaXQgZmllbGRzIGNv dWxkIHVzZSBCSVQoMCkgZXRjLgo+IAo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX0JMT0NL X0VOCQkJCSgxCj4gPiA8PCAxKQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX0JMT0NLXzE2 CQkJCSgxCj4gPiA8PCAyKQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX1NEV19VUERBVEUJ CQkoMSA8PCA0KQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX1ZGTElQCQkJCSgxIDw8Cj4g PiA1KQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX1NPCQkJCSgxIDw8IDYpCj4gPiArI2Rl ZmluZcKgwqBJUFVfUFJFX0NUUkxfSU5URVJMQUNFRF9GSUVMRAkJCSgxCj4gPiA8PCA3KQo+ID4g KyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX0hBTkRTSEFLRV9FTgkJCSgxIDw8IDgpCj4gPiArI2Rl ZmluZcKgwqBJUFVfUFJFX0NUUkxfSEFORFNIQUtFX0xJTkVfTlVNKHYpCQkoKHYgJgo+ID4gMHgz KSA8PCA5KQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9DVFJMX0hBTkRTSEFLRV9BQk9SVF9TS0lQ X0VOCQkoMSA8PAo+ID4gMTEpCj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX0NUUkxfRU5fUkVQRUFU CQkJCSgxCj4gPiA8PCAyOCkKPiA+ICsjZGVmaW5lwqDCoElQVV9QUkVfQ1RSTF9UUFJfUkVTVF9T RUwJCQkoMSA8PAo+ID4gMjkpCj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX0NUUkxfQ0xLR0FURQkJ CQkoMSA8PAo+ID4gMzApCj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX0NUUkxfU0ZUUlNUCQkJCSgx IDw8Cj4gPiAzMSkKPiA+ICsKPiA+ICsjZGVmaW5lIElQVV9QUkVfQ1VSX0JVRgkJCQkJMHgwCj4g PiAzMAo+ID4gKwo+ID4gKyNkZWZpbmUgSVBVX1BSRV9ORVhUX0JVRgkJCQkweDA0MAo+ID4gKwo+ ID4gKyNkZWZpbmUgSVBVX1BSRV9UUFJfQ1RSTAkJCQkweDA3MAo+ID4gKyNkZWZpbmXCoMKgSVBV X1BSRV9UUFJfQ1RSTF9USUxFX0ZPUk1BVCh2KQkJKCh2ICYKPiA+IDB4ZmYpIDw8IDApCj4gPiAr I2RlZmluZcKgwqBJUFVfUFJFX1RQUl9DVFJMX1RJTEVfRk9STUFUX01BU0sJCTB4ZmYKPiA+ICsK PiA+ICsjZGVmaW5lIElQVV9QUkVfUFJFRkVUQ0hfRU5HX0NUUkwJCQkweDA4MAo+ID4gKyNkZWZp bmXCoMKgSVBVX1BSRV9QUkVGX0VOR19DVFJMX1BSRUZFVENIX0VOCQkoMSA8PCAwKQo+ID4gKyNk ZWZpbmXCoMKgSVBVX1BSRV9QUkVGX0VOR19DVFJMX1JEX05VTV9CWVRFUyh2KQkJKCh2Cj4gPiAm IDB4NykgPDwgMSkKPiA+ICsjZGVmaW5lwqDCoElQVV9QUkVfUFJFRl9FTkdfQ1RSTF9JTlBVVF9B Q1RJVkVfQlBQKHYpCSgodiAmCj4gPiAweDMpIDw8IDQpCj4gPiArI2RlZmluZcKgwqBJUFVfUFJF X1BSRUZfRU5HX0NUUkxfSU5QVVRfUElYRUxfRk9STUFUKHYpCSgodiAmCj4gPiAweDcpIDw8IDgp Cj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX1BSRUZfRU5HX0NUUkxfU0hJRlRfQllQQVNTCQkoMSA8 PAo+ID4gMTEpCj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX1BSRUZfRU5HX0NUUkxfRklFTERfSU5W RVJTRQkJKDEgPDwKPiA+IDEyKQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9QUkVGX0VOR19DVFJM X1BBUlRJQUxfVVZfU1dBUAkJKDEKPiA+IDw8IDE0KQo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9Q UkVGX0VOR19DVFJMX1RQUl9DT09SX09GRlNFVF9FTgkoMSA8PCAxNSkKPiA+ICsKPiA+ICsjZGVm aW5lIElQVV9QUkVfUFJFRkVUQ0hfRU5HX0lOUFVUX1NJWkUJCQkweDAKPiA+IGEwCj4gPiArI2Rl ZmluZcKgwqBJUFVfUFJFX1BSRUZFVENIX0VOR19JTlBVVF9TSVpFX1dJRFRIKHYpCSgodiAmCj4g PiAweGZmZmYpIDw8IDApCj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX1BSRUZFVENIX0VOR19JTlBV VF9TSVpFX0hFSUdIVCh2KQkoKHYgJgo+ID4gMHhmZmZmKSA8PCAxNikKPiA+ICsKPiA+ICsjZGVm aW5lIElQVV9QUkVfUFJFRkVUQ0hfRU5HX1BJVENICQkJMHgwZDAKPiA+ICsjZGVmaW5lwqDCoElQ VV9QUkVfUFJFRkVUQ0hfRU5HX1BJVENIX1kodikJCSgodiAmCj4gPiAweGZmZmYpIDw8IDApCj4g PiArI2RlZmluZcKgwqBJUFVfUFJFX1BSRUZFVENIX0VOR19QSVRDSF9VVih2KQkJKCh2ICYKPiA+ IDB4ZmZmZikgPDwgMTYpCj4gPiArCj4gPiArI2RlZmluZSBJUFVfUFJFX1NUT1JFX0VOR19DVFJM CQkJCTB4MTEKPiA+IDAKPiA+ICsjZGVmaW5lwqDCoElQVV9QUkVfU1RPUkVfRU5HX0NUUkxfU1RP UkVfRU4JCSgxIDw8IDApCj4gPiArI2RlZmluZcKgwqBJUFVfUFJFX1NUT1JFX0VOR19DVFJMX1dS X05VTV9CWVRFUyh2KQkJKCh2Cj4gPiAmIDB4NykgPDwgMSkKPiA+ICsjZGVmaW5lwqDCoElQVV9Q UkVfU1RPUkVfRU5HX0NUUkxfT1VUUFVUX0FDVElWRV9CUFAodikJKCh2ICYKPiA+IDB4MykgPDwg NCkKPiA+ICsKPiA+ICsjZGVmaW5lIElQVV9QUkVfU1RPUkVfRU5HX1NJWkUJCQkJMHgxMwo+ID4g MAo+ID4gKyNkZWZpbmXCoMKgSVBVX1BSRV9TVE9SRV9FTkdfU0laRV9JTlBVVF9XSURUSCh2KQkJ KCh2Cj4gPiAmIDB4ZmZmZikgPDwgMCkKPiA+ICsjZGVmaW5lwqDCoElQVV9QUkVfU1RPUkVfRU5H X1NJWkVfSU5QVVRfSEVJR0hUKHYpCQkoKHYKPiA+ICYgMHhmZmZmKSA8PCAxNikKPiA+ICsKPiA+ ICsjZGVmaW5lIElQVV9QUkVfU1RPUkVfRU5HX1BJVENICQkJCTB4MQo+ID4gNDAKPiA+ICsjZGVm aW5lwqDCoElQVV9QUkVfU1RPUkVfRU5HX1BJVENIX09VVF9QSVRDSCh2KQkJKCh2ICYKPiA+IDB4 ZmZmZikgPDwgMCkKPiA+ICsKPiA+ICsjZGVmaW5lIElQVV9QUkVfU1RPUkVfRU5HX0FERFIJCQkJ MHgxNQo+ID4gMAo+ID4gKwo+ID4gK3N0cnVjdCBpcHVfcHJlIHsKPiA+ICsJc3RydWN0IGxpc3Rf aGVhZAlsaXN0Owo+ID4gKwlzdHJ1Y3QgZGV2aWNlCQkqZGV2Owo+ID4gKwo+ID4gKwl2b2lkIF9f aW9tZW0JCSpyZWdzOwo+ID4gKwlzdHJ1Y3QgY2xrCQkqY2xrX2F4aTsKPiA+ICsJc3RydWN0IGdl bl9wb29sCQkqb2NyYW07Cj4gPiArCj4gPiArCWRtYV9hZGRyX3QJCWJ1ZmZlcl9wYWRkcjsKPiA+ ICsJdm9pZAkJCSpidWZmZXJfdmlydDsKPiA+ICsJYm9vbAkJCWluX3VzZTsKPiA+ICt9Owo+ID4g Kwo+ID4gK3N0YXRpYyBERUZJTkVfTVVURVgoaXB1X3ByZV9saXN0X211dGV4KTsKPiA+ICtzdGF0 aWMgTElTVF9IRUFEKGlwdV9wcmVfbGlzdCk7Cj4gPiArc3RhdGljIGludCBhdmFpbGFibGVfcHJl czsKPiA+ICsKPiA+ICtpbnQgaXB1X3ByZV9nZXRfYXZhaWxhYmxlX2NvdW50KHZvaWQpCj4gPiAr ewo+ID4gKwlyZXR1cm4gYXZhaWxhYmxlX3ByZXM7Cj4gPiArfQo+ID4gKwo+ID4gK3N0cnVjdCBp cHVfcHJlICoKPiA+ICtpcHVfcHJlX2dldF9ieV9wcmdfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRl diwgaW50IGluZGV4KQo+IAo+IEknZCBjYWxsIHRoaXMgaXB1X3ByZV9sb29rdXBfYnlfcGhhbmRs ZSBhbmQgcGFzcyB0aGUgZGV2aWNlX25vZGUgYW5kCj4gcHJvcGVydHkgbmFtZSBzdHJpbmcgcGFy YW1ldGVyLgo+IFRoYXQgd2F5IHRoZSBuYW1lIGlzIGJldHRlciBzZXBhcmF0ZWQgZnJvbSBpcHVf cHJlX2dldCAuLi4KPiAKPiA+ICt7Cj4gPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcHJlX25vZGUg PSBvZl9wYXJzZV9waGFuZGxlKGRldi0KPiA+ID5vZl9ub2RlLAo+ID4gKwkJCQkJCQkiZnNsLHBy ZXMiCj4gPiAsIGluZGV4KTsKPiAKPiAuLi4gYW5kIHRoZSBQUkcgc3BlY2lmaWMgImZzbCxwcmVz IiBzdHJpbmcgY291bGQgbW92ZSBpbnRvIHRoZSBQUkcKPiBkcml2ZXIuCgpHb29kIHBvaW50LCB3 aWxsIGRvLgoKPiAKPiA+ICsJc3RydWN0IGlwdV9wcmUgKnByZTsKPiA+ICsKPiA+ICsJbXV0ZXhf bG9jaygmaXB1X3ByZV9saXN0X211dGV4KTsKPiA+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShwcmUs ICZpcHVfcHJlX2xpc3QsIGxpc3QpIHsKPiA+ICsJCWlmIChwcmVfbm9kZSA9PSBwcmUtPmRldi0+ b2Zfbm9kZSkgewo+ID4gKwkJCW11dGV4X3VubG9jaygmaXB1X3ByZV9saXN0X211dGV4KTsKPiA+ ICsJCQlkZXZpY2VfbGlua19hZGQoZGV2LCBwcmUtPmRldiwKPiA+IERMX0ZMQUdfQVVUT1JFTU9W RSk7Cj4gPiArCQkJcmV0dXJuIHByZTsKPiA+ICsJCX0KPiA+ICsJfQo+ID4gKwltdXRleF91bmxv Y2soJmlwdV9wcmVfbGlzdF9tdXRleCk7Cj4gPiArCj4gPiArCXJldHVybiBOVUxMOwo+ID4gK30K PiA+ICsKPiA+ICtpbnQgaXB1X3ByZV9nZXQoc3RydWN0IGlwdV9wcmUgKnByZSkKPiA+ICt7Cj4g PiArCXUzMiB2YWw7Cj4gPiArCj4gPiArCWlmIChwcmUtPmluX3VzZSkKPiA+ICsJCXJldHVybiAt RUJVU1k7Cj4gCj4gVGhpcyBjb3VsZCByYWNlIGZvciBpbl91c2UgLi4uCgpBbGwgdGhlIFBSRS9Q UkcgY29uZmlndXJhdGlvbiBmdW5jdGlvbnMgYXJlIHRocmVhZCB1bnNhZmUsIHdpdGggdGhlCnBy ZW1pc2UgdGhhdCB0aGV5IGFyZSBvbmx5IHVzZWQgZHVyaW5nIGFuIGF0b21pYyBjb21taXQsIHdo aWNoIGlzCmluaGVyZW50bHkgc2luZ2xlIHRocmVhZGVkLiBJIHdvdWxkIHJhdGhlciBsaWtlIHRv IGF2b2lkIGludHJvZHVjaW5nCnVubmVjZXNzYXJ5IHRocmVhZCBzYWZldHkgaGVyZS4KCj4gCj4g PiArCWNsa19wcmVwYXJlX2VuYWJsZShwcmUtPmNsa19heGkpOwo+ID4gKwo+ID4gKwkvKiBmaXJz dCBnZXQgdGhlIGVuZ2luZSBvdXQgb2YgcmVzZXQgYW5kIHJlbW92ZSBjbG9jawo+ID4gZ2F0aW5n ICovCj4gPiArCXdyaXRlbCgwLCBwcmUtPnJlZ3MgKyBJUFVfUFJFX0NUUkwpOwo+ID4gKwo+ID4g KwkvKiBpbml0IGRlZmF1bHRzIHRoYXQgc2hvdWxkIGJlIGFwcGxpZWQgdG8gYWxsIHN0cmVhbXMg Ki8KPiA+ICsJdmFsID0gSVBVX1BSRV9DVFJMX0hBTkRTSEFLRV9BQk9SVF9TS0lQX0VOIHwKPiA+ ICsJwqDCoMKgwqDCoMKgSVBVX1BSRV9DVFJMX0hBTkRTSEFLRV9FTiB8Cj4gPiArCcKgwqDCoMKg wqDCoElQVV9QUkVfQ1RSTF9UUFJfUkVTVF9TRUwgfAo+ID4gKwnCoMKgwqDCoMKgwqBJUFVfUFJF X0NUUkxfQkxPQ0tfMTYgfCBJUFVfUFJFX0NUUkxfU0RXX1VQREFURTsKPiA+ICsJd3JpdGVsKHZh bCwgcHJlLT5yZWdzICsgSVBVX1BSRV9DVFJMKTsKPiA+ICsKPiA+ICsJcHJlLT5pbl91c2UgPSB0 cnVlOwo+IAo+IC4uLiB1bnRpbCBoZXJlLgo+IAo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiAr Cj4gPiArdm9pZCBpcHVfcHJlX3B1dChzdHJ1Y3QgaXB1X3ByZSAqcHJlKQo+ID4gK3sKPiA+ICsJ dTMyIHZhbDsKPiA+ICsKPiA+ICsJdmFsID0gSVBVX1BSRV9DVFJMX1NGVFJTVCB8IElQVV9QUkVf Q1RSTF9DTEtHQVRFOwo+ID4gKwl3cml0ZWwodmFsLCBwcmUtPnJlZ3MgKyBJUFVfUFJFX0NUUkwp Owo+ID4gKwo+ID4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUocHJlLT5jbGtfYXhpKTsKPiA+ICsK PiA+ICsJcHJlLT5pbl91c2UgPSBmYWxzZTsKPiA+ICt9Cj4gPiArCj4gPiArdm9pZCBpcHVfcHJl X2NvbmZpZ3VyZShzdHJ1Y3QgaXB1X3ByZSAqcHJlLCB1bnNpZ25lZCBpbnQgd2lkdGgsCj4gPiAr CQnCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBoZWlnaHQsIHVuc2lnbmVkIGludCBzdHJpZGUs Cj4gPiB1MzIgZm9ybWF0LAo+ID4gKwkJwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgYnVmYWRk cikKPiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmluZm8gPQo+ID4g ZHJtX2Zvcm1hdF9pbmZvKGZvcm1hdCk7Cj4gPiArCXUzMiBhY3RpdmVfYnBwID0gaW5mby0+Y3Bw WzBdID4+IDE7Cj4gPiArCXUzMiB2YWw7Cj4gPiArCj4gPiArCXdyaXRlbChidWZhZGRyLCBwcmUt PnJlZ3MgKyBJUFVfUFJFX0NVUl9CVUYpOwo+ID4gKwl3cml0ZWwoYnVmYWRkciwgcHJlLT5yZWdz ICsgSVBVX1BSRV9ORVhUX0JVRik7Cj4gPiArCj4gPiArCXZhbCA9IElQVV9QUkVfUFJFRl9FTkdf Q1RSTF9JTlBVVF9QSVhFTF9GT1JNQVQoMCkgfAo+ID4gKwnCoMKgwqDCoMKgwqBJUFVfUFJFX1BS RUZfRU5HX0NUUkxfSU5QVVRfQUNUSVZFX0JQUChhY3RpdmVfYnBwKSB8Cj4gPiArCcKgwqDCoMKg wqDCoElQVV9QUkVfUFJFRl9FTkdfQ1RSTF9SRF9OVU1fQllURVMoNCkgfAo+ID4gKwnCoMKgwqDC oMKgwqBJUFVfUFJFX1BSRUZfRU5HX0NUUkxfU0hJRlRfQllQQVNTIHwKPiA+ICsJwqDCoMKgwqDC oMKgSVBVX1BSRV9QUkVGX0VOR19DVFJMX1BSRUZFVENIX0VOOwo+ID4gKwl3cml0ZWwodmFsLCBw cmUtPnJlZ3MgKyBJUFVfUFJFX1BSRUZFVENIX0VOR19DVFJMKTsKPiA+ICsKPiA+ICsJdmFsID0g SVBVX1BSRV9QUkVGRVRDSF9FTkdfSU5QVVRfU0laRV9XSURUSCh3aWR0aCkgfAo+ID4gKwnCoMKg wqDCoMKgwqBJUFVfUFJFX1BSRUZFVENIX0VOR19JTlBVVF9TSVpFX0hFSUdIVChoZWlnaHQpOwo+ ID4gKwl3cml0ZWwodmFsLCBwcmUtPnJlZ3MgKyBJUFVfUFJFX1BSRUZFVENIX0VOR19JTlBVVF9T SVpFKTsKPiA+ICsKPiA+ICsJdmFsID0gSVBVX1BSRV9QUkVGRVRDSF9FTkdfUElUQ0hfWShzdHJp ZGUpOwo+ID4gKwl3cml0ZWwodmFsLCBwcmUtPnJlZ3MgKyBJUFVfUFJFX1BSRUZFVENIX0VOR19Q SVRDSCk7Cj4gPiArCj4gPiArCXZhbCA9IElQVV9QUkVfU1RPUkVfRU5HX0NUUkxfT1VUUFVUX0FD VElWRV9CUFAoYWN0aXZlX2JwcCkKPiA+IHwKPiA+ICsJwqDCoMKgwqDCoMKgSVBVX1BSRV9TVE9S RV9FTkdfQ1RSTF9XUl9OVU1fQllURVMoNCkgfAo+ID4gKwnCoMKgwqDCoMKgwqBJUFVfUFJFX1NU T1JFX0VOR19DVFJMX1NUT1JFX0VOOwo+ID4gKwl3cml0ZWwodmFsLCBwcmUtPnJlZ3MgKyBJUFVf UFJFX1NUT1JFX0VOR19DVFJMKTsKPiA+ICsKPiA+ICsJdmFsID0gSVBVX1BSRV9TVE9SRV9FTkdf U0laRV9JTlBVVF9XSURUSCh3aWR0aCkgfAo+ID4gKwnCoMKgwqDCoMKgwqBJUFVfUFJFX1NUT1JF X0VOR19TSVpFX0lOUFVUX0hFSUdIVChoZWlnaHQpOwo+ID4gKwl3cml0ZWwodmFsLCBwcmUtPnJl Z3MgKyBJUFVfUFJFX1NUT1JFX0VOR19TSVpFKTsKPiA+ICsKPiA+ICsJdmFsID0gSVBVX1BSRV9T VE9SRV9FTkdfUElUQ0hfT1VUX1BJVENIKHN0cmlkZSk7Cj4gPiArCXdyaXRlbCh2YWwsIHByZS0+ cmVncyArIElQVV9QUkVfU1RPUkVfRU5HX1BJVENIKTsKPiA+ICsKPiA+ICsJd3JpdGVsKHByZS0+ YnVmZmVyX3BhZGRyLCBwcmUtPnJlZ3MgKwo+ID4gSVBVX1BSRV9TVE9SRV9FTkdfQUREUik7Cj4g PiArCj4gPiArCXZhbCA9IHJlYWRsKHByZS0+cmVncyArIElQVV9QUkVfQ1RSTCk7Cj4gPiArCXZh bCB8PSBJUFVfUFJFX0NUUkxfRU5fUkVQRUFUIHwgSVBVX1BSRV9DVFJMX0VOQUJMRSB8Cj4gPiAr CcKgwqDCoMKgwqDCoMKgSVBVX1BSRV9DVFJMX1NEV19VUERBVEU7Cj4gPiArCXdyaXRlbCh2YWws IHByZS0+cmVncyArIElQVV9QUkVfQ1RSTCk7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgaXB1X3By ZV91cGRhdGUoc3RydWN0IGlwdV9wcmUgKnByZSwgdW5zaWduZWQgaW50IGJ1ZmFkZHIpCj4gPiAr ewo+ID4gKwl3cml0ZWwoYnVmYWRkciwgcHJlLT5yZWdzICsgSVBVX1BSRV9ORVhUX0JVRik7Cj4g PiArCXdyaXRlbChJUFVfUFJFX0NUUkxfU0RXX1VQREFURSwgcHJlLT5yZWdzICsKPiA+IElQVV9Q UkVfQ1RSTF9TRVQpOwo+ID4gK30KPiA+ICsKPiA+ICt1MzIgaXB1X3ByZV9nZXRfYmFkZHIoc3Ry dWN0IGlwdV9wcmUgKnByZSkKPiA+ICt7Cj4gPiArCXJldHVybiAodTMyKXByZS0+YnVmZmVyX3Bh ZGRyOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGlwdV9wcmVfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKPiA+ICt7Cj4gPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZw ZGV2LT5kZXY7Cj4gPiArCXN0cnVjdCByZXNvdXJjZSAqcmVzOwo+ID4gKwlzdHJ1Y3QgaXB1X3By ZSAqcHJlOwo+ID4gKwo+ID4gKwlwcmUgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByZSks IEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoIXByZSkKPiA+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4g Kwo+ID4gKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0s IDApOwo+ID4gKwlwcmUtPnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoJnBkZXYtPmRldiwg cmVzKTsKPiA+ICsJaWYgKElTX0VSUihwcmUtPnJlZ3MpKQo+ID4gKwkJcmV0dXJuIFBUUl9FUlIo cHJlLT5yZWdzKTsKPiA+ICsKPiA+ICsJcHJlLT5jbGtfYXhpID0gZGV2bV9jbGtfZ2V0KGRldiwg ImF4aSIpOwo+ID4gKwlpZiAoSVNfRVJSKHByZS0+Y2xrX2F4aSkpCj4gPiArCQlyZXR1cm4gUFRS X0VSUihwcmUtPmNsa19heGkpOwo+ID4gKwo+ID4gKwlwcmUtPm9jcmFtID0gb2ZfZ2VuX3Bvb2xf Z2V0KGRldi0+b2Zfbm9kZSwgImZzbCxvY3JhbSIsCj4gPiAwKTsKPiA+ICsJaWYgKCFwcmUtPm9j cmFtKQo+ID4gKwkJcmV0dXJuIC1FUFJPQkVfREVGRVI7Cj4gCj4gSSdkIGNhbGwgdGhpcyBpcmFt LCBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IG9mIHRoZSBQUkUuCj4gCj4gPiArCj4gPiArCS8qCj4g PiArCcKgKiBBbGxvY2F0ZSBPQ1JBTSBidWZmZXIgd2l0aCBtYXhpbXVtIHNpemUuIFRoaXMgY291 bGQgYmUKPiA+IG1hZGUgZHluYW1pYywKPiA+ICsJwqAqIGJ1dCBhcyB0aGVyZSBpcyBubyBvdGhl ciB1c2VyIG9mIHRoaXMgT0NSQU0gcmVnaW9uIGFuZAo+ID4gd2UgY2FuIGZpdCBhbGwKPiA+ICsJ wqAqIG1heCBzaXplZCBidWZmZXJzIGludG8gaXQsIHRoZXJlIGlzIG5vIG5lZWQgeWV0Lgo+ID4g KwnCoCovCj4gPiArCXByZS0+YnVmZmVyX3ZpcnQgPSBnZW5fcG9vbF9kbWFfYWxsb2MocHJlLT5v Y3JhbSwKPiA+IElQVV9QUkVfTUFYX1dJRFRIICoKPiA+ICsJCQkJCcKgwqDCoMKgwqDCoElQVV9Q UkVfTlVNX1NDQU5MSU5FCj4gPiBTICogNCwKPiA+ICsJCQkJCcKgwqDCoMKgwqDCoCZwcmUtPmJ1 ZmZlcl9wYWRkcik7Cj4gPiArCWlmICghcHJlLT5idWZmZXJfdmlydCkKPiA+ICsJCXJldHVybiAt RU5PTUVNOwo+ID4gKwo+ID4gKwlwcmUtPmRldiA9IGRldjsKPiA+ICsJcGxhdGZvcm1fc2V0X2Ry dmRhdGEocGRldiwgcHJlKTsKPiA+ICsJbXV0ZXhfbG9jaygmaXB1X3ByZV9saXN0X211dGV4KTsK PiA+ICsJbGlzdF9hZGQoJnByZS0+bGlzdCwgJmlwdV9wcmVfbGlzdCk7Cj4gPiArCWF2YWlsYWJs ZV9wcmVzKys7Cj4gPiArCW11dGV4X3VubG9jaygmaXB1X3ByZV9saXN0X211dGV4KTsKPiA+ICsK PiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaXB1X3ByZV9yZW1v dmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ICt7Cj4gPiArCXN0cnVjdCBpcHVf cHJlICpwcmUgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiA+ICsKPiA+ICsJbXV0ZXhf bG9jaygmaXB1X3ByZV9saXN0X211dGV4KTsKPiA+ICsJbGlzdF9kZWwoJnByZS0+bGlzdCk7Cj4g PiArCWF2YWlsYWJsZV9wcmVzLS07Cj4gPiArCW11dGV4X3VubG9jaygmaXB1X3ByZV9saXN0X211 dGV4KTsKPiA+ICsKPiA+ICsJaWYgKHByZS0+YnVmZmVyX3ZpcnQpCj4gPiArCQlnZW5fcG9vbF9m cmVlKHByZS0+b2NyYW0sICh1bnNpZ25lZCBsb25nKXByZS0KPiA+ID5idWZmZXJfdmlydCwKPiA+ ICsJCQnCoMKgwqDCoMKgwqBJUFVfUFJFX01BWF9XSURUSCAqCj4gPiBJUFVfUFJFX05VTV9TQ0FO TElORVMgKiA0KTsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwdV9wcmVfZHRfaWRzW10gPSB7Cj4gPiArCXsgLmNvbXBh dGlibGUgPSAiZnNsLGlteDZxcC1wcmUiLCB9LAo+ID4gKwl7IC8qIHNlbnRpbmVsICovIH0sCj4g PiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpcHVfcHJlX2Ry diA9IHsKPiA+ICsJLnByb2JlCQk9IGlwdV9wcmVfcHJvYmUsCj4gPiArCS5yZW1vdmUJCT0gaXB1 X3ByZV9yZW1vdmUsCj4gPiArCS5kcml2ZXIJCT0gewo+ID4gKwkJLm5hbWUJPSAiaW14LWlwdS1w cmUiLAo+ID4gKwkJLm9mX21hdGNoX3RhYmxlID0gaXB1X3ByZV9kdF9pZHMsCj4gPiArCX0sCj4g PiArfTsKPiA+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGlwdV9wcmVfZHJ2KTsKPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LXBydi5oIGIvZHJpdmVycy9ncHUvaXB1LXYz L2lwdS0KPiA+IHBydi5oCj4gPiBpbmRleCAyMmU0N2I2OGIxNGEuLjUzNmExNTZhNWViNiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2lwdS12My9pcHUtcHJ2LmgKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2lwdS12My9pcHUtcHJ2LmgKPiA+IEBAIC0xNjgsNiArMTY4LDcgQEAgc3RydWN0IGlw dV9pY19wcml2Owo+ID4gwqBzdHJ1Y3QgaXB1X3ZkaTsKPiA+IMKgc3RydWN0IGlwdV9pbWFnZV9j b252ZXJ0X3ByaXY7Cj4gPiDCoHN0cnVjdCBpcHVfc21mY19wcml2Owo+ID4gK3N0cnVjdCBpcHVf cHJlOwo+ID4gwqAKPiA+IMKgc3RydWN0IGlwdV9kZXZ0eXBlOwo+ID4gwqAKPiA+IEBAIC0yNTks NCArMjYwLDE0IEBAIHZvaWQgaXB1X2NwbWVtX2V4aXQoc3RydWN0IGlwdV9zb2MgKmlwdSk7Cj4g PiDCoGludCBpcHVfc21mY19pbml0KHN0cnVjdCBpcHVfc29jICppcHUsIHN0cnVjdCBkZXZpY2Ug KmRldiwKPiA+IHVuc2lnbmVkIGxvbmcgYmFzZSk7Cj4gPiDCoHZvaWQgaXB1X3NtZmNfZXhpdChz dHJ1Y3QgaXB1X3NvYyAqaXB1KTsKPiA+IMKgCj4gPiArc3RydWN0IGlwdV9wcmUgKmlwdV9wcmVf Z2V0X2J5X3ByZ19kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBpbnQKPiA+IGluZGV4KTsKPiA+ ICtpbnQgaXB1X3ByZV9nZXRfYXZhaWxhYmxlX2NvdW50KHZvaWQpOwo+ID4gK2ludCBpcHVfcHJl X2dldChzdHJ1Y3QgaXB1X3ByZSAqcHJlKTsKPiA+ICt2b2lkIGlwdV9wcmVfcHV0KHN0cnVjdCBp cHVfcHJlICpwcmUpOwo+ID4gK3UzMiBpcHVfcHJlX2dldF9iYWRkcihzdHJ1Y3QgaXB1X3ByZSAq cHJlKTsKPiA+ICt2b2lkIGlwdV9wcmVfY29uZmlndXJlKHN0cnVjdCBpcHVfcHJlICpwcmUsIHVu c2lnbmVkIGludCB3aWR0aCwKPiA+ICsJCcKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IGhlaWdo dCwKPiA+ICsJCcKgwqDCoMKgwqDCoMKgdW5zaWduZWQgaW50IHN0cmlkZSwgdTMyIGZvcm1hdCwg dW5zaWduZWQKPiA+IGludCBidWZhZGRyKTsKPiA+ICt2b2lkIGlwdV9wcmVfdXBkYXRlKHN0cnVj dCBpcHVfcHJlICpwcmUsIHVuc2lnbmVkIGludCBidWZhZGRyKTsKPiA+ICsKPiA+IMKgI2VuZGlm CQkJCS8qIF9fSVBVX1BSVl9IX18gKi8KPiAKPiByZWdhcmRzCj4gUGhpbGlwcAo+IApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK