From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: Re: [PATCH 5/9] gpu: ipu-v3: add driver for Prefetch Resolve Gasket Date: Mon, 20 Feb 2017 16:31:32 +0100 Message-ID: <1487604692.3878.30.camel@pengutronix.de> References: <20170217182830.32618-1-l.stach@pengutronix.de> <20170217182830.32618-6-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170217182830.32618-6-l.stach@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lucas Stach 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 T24gRnJpLCAyMDE3LTAyLTE3IGF0IDE5OjI4ICswMTAwLCBMdWNhcyBTdGFjaCB3cm90ZToKPiBU aGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIGkuTVg2IFFVYWRQbHVzIFBSRyB1bml0LiBJdCBnbHVl cyB0b2dldGhlciB0aGUKPiBJUFUgYW5kIHRoZSBQUkUgdW5pdHMuCj4gCj4gU2lnbmVkLW9mZi1i eTogTHVjYXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+Cj4gLS0tCj4gIGRyaXZlcnMv Z3B1L2lwdS12My9NYWtlZmlsZSAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUvaXB1LXYzL2lwdS1w cmcuYyB8IDQxMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g IGRyaXZlcnMvZ3B1L2lwdS12My9pcHUtcHJ2LmggfCAgIDMgKwo+ICBpbmNsdWRlL3ZpZGVvL2lt eC1pcHUtdjMuaCAgIHwgIDE1ICsrCj4gIDQgZmlsZXMgY2hhbmdlZCwgNDMyIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2lwdS12 My9pcHUtcHJnLmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvaXB1LXYzL01ha2VmaWxl IGIvZHJpdmVycy9ncHUvaXB1LXYzL01ha2VmaWxlCj4gaW5kZXggOGFlOTBkZTQ2YjRkLi4xYWI5 YmNlZWU3NTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvaXB1LXYzL01ha2VmaWxlCj4gKysr IGIvZHJpdmVycy9ncHUvaXB1LXYzL01ha2VmaWxlCj4gQEAgLTIsNCArMiw0IEBAIG9iai0kKENP TkZJR19JTVhfSVBVVjNfQ09SRSkgKz0gaW14LWlwdS12My5vCj4gIAo+ICBpbXgtaXB1LXYzLW9i anMgOj0gaXB1LWNvbW1vbi5vIGlwdS1jcG1lbS5vIGlwdS1jc2kubyBpcHUtZGMubyBpcHUtZGku byBcCj4gIAkJaXB1LWRwLm8gaXB1LWRtZmMubyBpcHUtaWMubyBpcHUtaW1hZ2UtY29udmVydC5v IFwKPiAtCQlpcHUtcHJlLm8gaXB1LXNtZmMubyBpcHUtdmRpLm8KPiArCQlpcHUtcHJlLm8gaXB1 LXByZy5vIGlwdS1zbWZjLm8gaXB1LXZkaS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2lw dS12My9pcHUtcHJnLmMgYi9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LXByZy5jCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmMxZTFhYjBlYzVjNQo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LXByZy5jCj4gQEAgLTAsMCArMSw0 MTMgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMTcgTHVjYXMgU3RhY2gsIFBl bmd1dHJvbml4Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0Cj4gKyAqIHVuZGVyIHRoZSB0ZXJt cyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCj4gKyAq IHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24u Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3 aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKPiArICogQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yCj4gKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IKPiArICogbW9yZSBkZXRhaWxzLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxk cm0vZHJtX2ZvdXJjYy5oPgo+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gKyNpbmNsdWRlIDxs aW51eC9lcnIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KPiArI2luY2x1ZGUg PGxpbnV4L21mZC9zeXNjb24vaW14NnEtaW9tdXhjLWdwci5oPgo+ICsjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ICsjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KPiArI2luY2x1ZGUg PHZpZGVvL2lteC1pcHUtdjMuaD4KPiArCj4gKyNpbmNsdWRlICJpcHUtcHJ2LmgiCj4gKwo+ICsj ZGVmaW5lIElQVV9QUkdfQ1RMCQkJCTB4MDAKPiArI2RlZmluZSAgSVBVX1BSR19DVExfQllQQVNT KGkpCQkJKDEgPDwgKDAgKyBpKSkKPiArI2RlZmluZSAgSVBVX1BSR19DVExfU09GVF9BUklEX01B U0sJCTB4Mwo+ICsjZGVmaW5lICBJUFVfUFJHX0NUTF9TT0ZUX0FSSURfU0hJRlQoaSkJCSg4ICsg aSAqIDIpCj4gKyNkZWZpbmUgIElQVV9QUkdfQ1RMX1NPRlRfQVJJRChpLCB2KQkJKCh2ICYgMHgz KSA8PCAoOCArIDIgKiBpKSkKPiArI2RlZmluZSAgSVBVX1BSR19DVExfU08oaSkJCQkoMSA8PCAo MTYgKyBpKSkKPiArI2RlZmluZSAgSVBVX1BSR19DVExfVkZMSVAoaSkJCQkoMSA8PCAoMTkgKyBp KSkKPiArI2RlZmluZSAgSVBVX1BSR19DVExfQkxPQ0tfTU9ERShpKQkJKDEgPDwgKDIyICsgaSkp Cj4gKyNkZWZpbmUgIElQVV9QUkdfQ1RMX0NOVF9MT0FEX0VOKGkpCQkoMSA8PCAoMjUgKyBpKSkK PiArI2RlZmluZSAgSVBVX1BSR19DVExfU09GVFJTVAkJCSgxIDw8IDMwKQo+ICsjZGVmaW5lICBJ UFVfUFJHX0NUTF9TSEFET1dfRU4JCQkoMSA8PCAzMSkKPiArCj4gKyNkZWZpbmUgSVBVX1BSR19T VEFUVVMJCQkJMHgwNAo+ICsjZGVmaW5lICBJUFVfUFJHX1NUQVRVU19CVUZGRVIwX1JFQURZKGkp CSgxIDw8ICgwICsgaSAqIDIpKQo+ICsjZGVmaW5lICBJUFVfUFJHX1NUQVRVU19CVUZGRVIxX1JF QURZKGkpCSgxIDw8ICgxICsgaSAqIDIpKQo+ICsKPiArI2RlZmluZSBJUFVfUFJHX1FPUwkJCQkw eDA4Cj4gKyNkZWZpbmUgIElQVV9QUkdfUU9TX0FSSURfTUFTSwkJCTB4Zgo+ICsjZGVmaW5lICBJ UFVfUFJHX1FPU19BUklEX1NISUZUKGkpCQkoMCArIGkgKiA0KQo+ICsKPiArI2RlZmluZSBJUFVf UFJHX1JFR19VUERBVEUJCQkweDBjCj4gKyNkZWZpbmUgIElQVV9QUkdfUkVHX1VQREFURV9SRUdf VVBEQVRFCQkoMSA8PCAwKQo+ICsKPiArI2RlZmluZSBJUFVfUFJHX1NUUklERShpKQkJCSgweDEw ICsgaSAqIDB4NCkKPiArI2RlZmluZSAgSVBVX1BSR19TVFJJREVfU1RSSURFX01BU0sJCTB4M2Zm Zgo+ICsKPiArI2RlZmluZSBJUFVfUFJHX0NST1BfTElORQkJCTB4MWMKPiArCj4gKyNkZWZpbmUg SVBVX1BSR19USEQJCQkJMHgyMAo+ICsKPiArI2RlZmluZSBJUFVfUFJHX0JBRERSKGkpCQkJKDB4 MjQgKyBpICogMHg0KQo+ICsKPiArI2RlZmluZSBJUFVfUFJHX09GRlNFVChpKQkJCSgweDMwICsg aSAqIDB4NCkKPiArCj4gKyNkZWZpbmUgSVBVX1BSR19JTE8oaSkJCQkJKDB4M2MgKyBpICogMHg0 KQo+ICsKPiArI2RlZmluZSBJUFVfUFJHX0hFSUdIVChpKQkJCSgweDQ4ICsgaSAqIDB4NCkKPiAr I2RlZmluZSAgSVBVX1BSR19IRUlHSFRfUFJFX0hFSUdIVF9NQVNLCQkweGZmZgo+ICsjZGVmaW5l ICBJUFVfUFJHX0hFSUdIVF9QUkVfSEVJR0hUX1NISUZUCTAKPiArI2RlZmluZSAgSVBVX1BSR19I RUlHSFRfSVBVX0hFSUdIVF9NQVNLCQkweGZmZgo+ICsjZGVmaW5lICBJUFVfUFJHX0hFSUdIVF9J UFVfSEVJR0hUX1NISUZUCTE2Cj4gKwo+ICtzdHJ1Y3QgaXB1X3ByZ19jaGFubmVsIHsKPiArCWJv b2wJCQllbmFibGVkOwo+ICsJaW50CQkJdXNlZF9wcmU7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgaXB1 X3ByZyB7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Cj4gKwlzdHJ1Y3QgZGV2aWNlCQkqZGV2 Owo+ICsJaW50CQkJaWQ7Cj4gKwo+ICsJdm9pZCBfX2lvbWVtCQkqcmVnczsKPiArCXN0cnVjdCBj bGsJCSpjbGtfaXBnLCAqY2xrX2F4aTsKPiArCXN0cnVjdCByZWdtYXAJCSppb211eGNfZ3ByOwo+ ICsJc3RydWN0IGlwdV9wcmUJCSpwcmVzWzNdOwo+ICsKPiArCXN0cnVjdCBpcHVfcHJnX2NoYW5u ZWwJY2hhblszXTsKPiArfTsKPiArCj4gK3N0YXRpYyBERUZJTkVfTVVURVgoaXB1X3ByZ19saXN0 X211dGV4KTsKPiArc3RhdGljIExJU1RfSEVBRChpcHVfcHJnX2xpc3QpOwo+ICsKPiArc3RydWN0 IGlwdV9wcmcgKgo+ICtpcHVfcHJnX2dldF9ieV9pcHVfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRl dikKClNhbWUgYXMgZm9yIHRoZSBQUkUsIEknZCBwcmVmZXIgdGhpcyB0byBiZSBjYWxsZWQgImxv b2t1cCIgaW5zdGVhZCBvZgoiZ2V0IiwgYW5kIHRvIHBhc3MgdGhlICJmc2wscHJnIiBzdHJpbmcg ZnJvbSB0aGUgSVBVIGRyaXZlciwgdG8gd2hvc2UgRFQKYmluZGluZyBpdCBiZWxvbmdzLgoKPiAr ewo+ICsJc3RydWN0IGRldmljZV9ub2RlICpwcmdfbm9kZSA9IG9mX3BhcnNlX3BoYW5kbGUoZGV2 LT5vZl9ub2RlLAo+ICsJCQkJCQkJImZzbCxwcmciLCAwKTsKPiArCXN0cnVjdCBpcHVfcHJnICpw cmc7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmaXB1X3ByZ19saXN0X211dGV4KTsKPiArCWxpc3RfZm9y X2VhY2hfZW50cnkocHJnLCAmaXB1X3ByZ19saXN0LCBsaXN0KSB7Cj4gKwkJaWYgKHByZ19ub2Rl ID09IHByZy0+ZGV2LT5vZl9ub2RlKSB7Cj4gKwkJCW11dGV4X3VubG9jaygmaXB1X3ByZ19saXN0 X211dGV4KTsKPiArCQkJZGV2aWNlX2xpbmtfYWRkKGRldiwgcHJnLT5kZXYsIERMX0ZMQUdfQVVU T1JFTU9WRSk7Cj4gKwkJCXByZy0+aWQgPSBvZl9hbGlhc19nZXRfaWQoZGV2LT5vZl9ub2RlLCAi aXB1Iik7Cj4gKwkJCXJldHVybiBwcmc7Cj4gKwkJfQo+ICsJfQo+ICsJbXV0ZXhfdW5sb2NrKCZp cHVfcHJnX2xpc3RfbXV0ZXgpOwo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtpbnQg aXB1X3ByZ19tYXhfYWN0aXZlX2NoYW5uZWxzKHZvaWQpCj4gK3sKPiArCXJldHVybiBpcHVfcHJl X2dldF9hdmFpbGFibGVfY291bnQoKTsKPiArfQo+ICsKPiArYm9vbCBpcHVfcHJnX3ByZXNlbnQo c3RydWN0IGlwdV9zb2MgKmlwdSkKPiArewo+ICsJaWYgKGlwdS0+cHJnX3ByaXYpCj4gKwkJcmV0 dXJuIHRydWU7Cj4gKwo+ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICtib29sIGlwdV9wcmdf Zm9ybWF0X3N1cHBvcnRlZChzdHJ1Y3QgaXB1X3NvYyAqaXB1LCB1aW50MzJfdCBmb3JtYXQsCj4g KwkJCSAgICAgIHVpbnQ2NF90IG1vZGlmaWVyKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2Zv cm1hdF9pbmZvICppbmZvID0gZHJtX2Zvcm1hdF9pbmZvKGZvcm1hdCk7Cj4gKwo+ICsJaWYgKGlu Zm8tPm51bV9wbGFuZXMgIT0gMSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJcmV0dXJuIHRy dWU7Cj4gK30KPiArCj4gK2ludCBpcHVfcHJnX2VuYWJsZShzdHJ1Y3QgaXB1X3NvYyAqaXB1KQo+ ICt7Cj4gKwlzdHJ1Y3QgaXB1X3ByZyAqcHJnID0gaXB1LT5wcmdfcHJpdjsKPiArCWludCByZXQ7 Cj4gKwo+ICsJaWYgKCFwcmcpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcmV0ID0gY2xrX3ByZXBh cmVfZW5hYmxlKHByZy0+Y2xrX2F4aSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZmFpbF9kaXNh YmxlX2lwZzsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2ZhaWxfZGlzYWJsZV9pcGc6Cj4gKwlj bGtfZGlzYWJsZV91bnByZXBhcmUocHJnLT5jbGtfaXBnKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ ICt9Cj4gKwo+ICt2b2lkIGlwdV9wcmdfZGlzYWJsZShzdHJ1Y3QgaXB1X3NvYyAqaXB1KQo+ICt7 Cj4gKwlzdHJ1Y3QgaXB1X3ByZyAqcHJnID0gaXB1LT5wcmdfcHJpdjsKPiArCj4gKwlpZiAoIXBy ZykKPiArCQlyZXR1cm47Cj4gKwo+ICsJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByZy0+Y2xrX2F4 aSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaXB1X3ByZ19pcHVfdG9fcHJnX2NoYW4oaW50IGlw dV9jaGFuKQo+ICt7Cj4gKwkvKgo+ICsJICogVGhpcyBpc24ndCBjbGVhcmx5IGRvY3VtZW50ZWQg aW4gdGhlIFJNLCBidXQgSVBVIHRvIFBSRyBjaGFubmVsCj4gKwkgKiBhc3NpZ25tZW50IGlzIGZp eGVkLCBhcyBvbmx5IHdpdGggdGhpcyBtYXBwaW5nIHRoZSBjb250cm9sIHNpZ25hbHMKPiArCSAq IG1hdGNoIHVwLgo+ICsJICovCj4gKwlzd2l0Y2ggKGlwdV9jaGFuKSB7Cj4gKwljYXNlIElQVVYz X0NIQU5ORUxfTUVNX0JHX1NZTkM6Cj4gKwkJcmV0dXJuIDA7Cj4gKwljYXNlIElQVVYzX0NIQU5O RUxfTUVNX0ZHX1NZTkM6Cj4gKwkJcmV0dXJuIDE7Cj4gKwljYXNlIElQVVYzX0NIQU5ORUxfTUVN X0RDX1NZTkM6Cj4gKwkJcmV0dXJuIDI7Cj4gKwlkZWZhdWx0Ogo+ICsJCXJldHVybiAtRUlOVkFM Owo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGlwdV9wcmdfZ2V0X3ByZShzdHJ1Y3QgaXB1 X3ByZyAqcHJnLCBpbnQgcHJnX2NoYW4pCj4gK3sKPiArCWludCBpLCByZXQ7Cj4gKwo+ICsJLyog Y2hhbm5lbCAwIGlzIHNwZWNpYWwgYXMgaXQgaXMgaGFyZHdpcmVkIHRvIG9uZSBvZiB0aGUgUFJF cyAqLwo+ICsJaWYgKHByZ19jaGFuID09IDApIHsKPiArCQlyZXQgPSBpcHVfcHJlX2dldChwcmct PnByZXNbMF0pOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZmFpbDsKPiArCQlwcmctPmNoYW5b cHJnX2NoYW5dLnVzZWRfcHJlID0gMDsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwlmb3Ig KGkgPSAxOyBpIDwgMzsgaSsrKSB7Cj4gKwkJcmV0ID0gaXB1X3ByZV9nZXQocHJnLT5wcmVzW2ld KTsKPiArCQlpZiAoIXJldCkgewo+ICsJCQl1MzIgdmFsLCBtdXg7Cj4gKwkJCWludCBzaGlmdDsK PiArCj4gKwkJCXByZy0+Y2hhbltwcmdfY2hhbl0udXNlZF9wcmUgPSBpOwo+ICsKPiArCQkJLyog Y29uZmlndXJlIHRoZSBQUkUgdG8gUFJHIGNoYW5uZWwgbXV4ICovCj4gKwkJCXNoaWZ0ID0gKGkg PT0gMSkgPyAxMiA6IDE0Owo+ICsJCQltdXggPSAocHJnLT5pZCA8PCAxKSB8IChwcmdfY2hhbiAt IDEpOwo+ICsJCQlyZWdtYXBfdXBkYXRlX2JpdHMocHJnLT5pb211eGNfZ3ByLCBJT01VWENfR1BS NSwKPiArCQkJCQkgICAweDMgPDwgc2hpZnQsIG11eCA8PCBzaGlmdCk7Cj4gKwo+ICsJCQkvKiBj aGVjayBvdGhlciBtdXgsIG11c3Qgbm90IHBvaW50IHRvIHNhbWUgY2hhbm5lbCAqLwo+ICsJCQlz aGlmdCA9IChpID09IDEpID8gMTQgOiAxMjsKPiArCQkJcmVnbWFwX3JlYWQocHJnLT5pb211eGNf Z3ByLCBJT01VWENfR1BSNSwgJnZhbCk7Cj4gKwkJCWlmICgoKHZhbCA+PiBzaGlmdCkgJiAweDMp ID09IG11eCkgewo+ICsJCQkJcmVnbWFwX3VwZGF0ZV9iaXRzKHByZy0+aW9tdXhjX2dwciwgSU9N VVhDX0dQUjUsCj4gKwkJCQkJCSAgIDB4MyA8PCBzaGlmdCwKPiArCQkJCQkJICAgKG11eCBeIDB4 MSkgPDwgc2hpZnQpOwo+ICsJCQl9Cj4gKwo+ICsJCQlyZXR1cm4gMDsKPiArCQl9Cj4gKwl9Cj4g Kwo+ICtmYWlsOgo+ICsJZGV2X2VycihwcmctPmRldiwgImNvdWxkIG5vdCBnZXQgUFJFIGZvciBQ UkcgY2hhbiAlZCIsIHByZ19jaGFuKTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIGlwdV9wcmdfcHV0X3ByZShzdHJ1Y3QgaXB1X3ByZyAqcHJnLCBpbnQgcHJnX2NoYW4p Cj4gK3sKPiArCXN0cnVjdCBpcHVfcHJnX2NoYW5uZWwgKmNoYW4gPSAmcHJnLT5jaGFuW3ByZ19j aGFuXTsKPiArCj4gKwlpcHVfcHJlX3B1dChwcmctPnByZXNbY2hhbi0+dXNlZF9wcmVdKTsKPiAr CWNoYW4tPnVzZWRfcHJlID0gLTE7Cj4gK30KPiArCj4gK3ZvaWQgaXB1X3ByZ19jaGFubmVsX2Rp c2FibGUoc3RydWN0IGlwdXYzX2NoYW5uZWwgKmlwdV9jaGFuKQo+ICt7Cj4gKwlpbnQgcHJnX2No YW4gPSBpcHVfcHJnX2lwdV90b19wcmdfY2hhbihpcHVfY2hhbi0+bnVtKTsKPiArCXN0cnVjdCBp cHVfcHJnICpwcmcgPSBpcHVfY2hhbi0+aXB1LT5wcmdfcHJpdjsKPiArCXN0cnVjdCBpcHVfcHJn X2NoYW5uZWwgKmNoYW4gPSAmcHJnLT5jaGFuW3ByZ19jaGFuXTsKPiArCXUzMiB2YWw7Cj4gKwo+ ICsJaWYgKCFjaGFuLT5lbmFibGVkIHx8IHByZ19jaGFuIDwgMCkKPiArCQlyZXR1cm47Cj4gKwo+ ICsJY2xrX3ByZXBhcmVfZW5hYmxlKHByZy0+Y2xrX2lwZyk7Cj4gKwo+ICsJdmFsID0gcmVhZGwo cHJnLT5yZWdzICsgSVBVX1BSR19DVEwpOwo+ICsJdmFsIHw9IElQVV9QUkdfQ1RMX0JZUEFTUyhw cmdfY2hhbik7Cj4gKwl3cml0ZWwodmFsLCBwcmctPnJlZ3MgKyBJUFVfUFJHX0NUTCk7Cj4gKwo+ ICsJdmFsID0gSVBVX1BSR19SRUdfVVBEQVRFX1JFR19VUERBVEU7Cj4gKwl3cml0ZWwodmFsLCBw cmctPnJlZ3MgKyBJUFVfUFJHX1JFR19VUERBVEUpOwo+ICsKPiArCWNsa19kaXNhYmxlX3VucHJl cGFyZShwcmctPmNsa19pcGcpOwo+ICsKPiArCWlwdV9wcmdfcHV0X3ByZShwcmcsIHByZ19jaGFu KTsKPiArCj4gKwljaGFuLT5lbmFibGVkID0gZmFsc2U7Cj4gK30KPiArCj4gK2ludCBpcHVfcHJn X2NoYW5uZWxfY29uZmlndXJlKHN0cnVjdCBpcHV2M19jaGFubmVsICppcHVfY2hhbiwKPiArCQkJ ICAgICAgdW5zaWduZWQgaW50IGF4aV9pZCwgdW5zaWduZWQgaW50IHdpZHRoLAo+ICsJCQkgICAg ICB1bnNpZ25lZCBpbnQgaGVpZ2h0LCB1bnNpZ25lZCBpbnQgc3RyaWRlLAo+ICsJCQkgICAgICB1 MzIgZm9ybWF0LCB1bnNpZ25lZCBsb25nICplYmEpCj4gK3sKPiArCWludCBwcmdfY2hhbiA9IGlw dV9wcmdfaXB1X3RvX3ByZ19jaGFuKGlwdV9jaGFuLT5udW0pOwo+ICsJc3RydWN0IGlwdV9wcmcg KnByZyA9IGlwdV9jaGFuLT5pcHUtPnByZ19wcml2Owo+ICsJc3RydWN0IGlwdV9wcmdfY2hhbm5l bCAqY2hhbiA9ICZwcmctPmNoYW5bcHJnX2NoYW5dOwo+ICsJdTMyIHZhbDsKPiArCWludCByZXQ7 Cj4gKwo+ICsJaWYgKHByZ19jaGFuIDwgMCkKPiArCQlyZXR1cm4gcHJnX2NoYW47Cj4gKwo+ICsJ aWYgKGNoYW4tPmVuYWJsZWQpIHsKPiArCQlpcHVfcHJlX3VwZGF0ZShwcmctPnByZXNbY2hhbi0+ dXNlZF9wcmVdLCAqZWJhKTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwlyZXQgPSBpcHVf cHJnX2dldF9wcmUocHJnLCBwcmdfY2hhbik7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7 Cj4gKwo+ICsJaXB1X3ByZV9jb25maWd1cmUocHJnLT5wcmVzW2NoYW4tPnVzZWRfcHJlXSwKPiAr CQkJICB3aWR0aCwgaGVpZ2h0LCBzdHJpZGUsIGZvcm1hdCwgKmViYSk7Cj4gKwo+ICsKPiArCXJl dCA9IGNsa19wcmVwYXJlX2VuYWJsZShwcmctPmNsa19pcGcpOwo+ICsJaWYgKHJldCkgewo+ICsJ CWlwdV9wcmdfcHV0X3ByZShwcmcsIHByZ19jaGFuKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ ICsKPiArCXZhbCA9IChzdHJpZGUgLSAxKSAmIElQVV9QUkdfU1RSSURFX1NUUklERV9NQVNLOwo+ ICsJd3JpdGVsKHZhbCwgcHJnLT5yZWdzICsgSVBVX1BSR19TVFJJREUocHJnX2NoYW4pKTsKPiAr Cj4gKwl2YWwgPSAoKGhlaWdodCAmIElQVV9QUkdfSEVJR0hUX1BSRV9IRUlHSFRfTUFTSykgPDwK PiArCSAgICAgICBJUFVfUFJHX0hFSUdIVF9QUkVfSEVJR0hUX1NISUZUKSB8Cj4gKwkgICAgICAo KGhlaWdodCAmIElQVV9QUkdfSEVJR0hUX0lQVV9IRUlHSFRfTUFTSykgPDwKPiArCSAgICAgICBJ UFVfUFJHX0hFSUdIVF9JUFVfSEVJR0hUX1NISUZUKTsKPiArCXdyaXRlbCh2YWwsIHByZy0+cmVn cyArIElQVV9QUkdfSEVJR0hUKHByZ19jaGFuKSk7Cj4gKwo+ICsJdmFsID0gaXB1X3ByZV9nZXRf YmFkZHIocHJnLT5wcmVzW2NoYW4tPnVzZWRfcHJlXSk7Cj4gKwkqZWJhID0gdmFsOwo+ICsJd3Jp dGVsKHZhbCwgcHJnLT5yZWdzICsgSVBVX1BSR19CQUREUihwcmdfY2hhbikpOwo+ICsKPiArCXZh bCA9IHJlYWRsKHByZy0+cmVncyArIElQVV9QUkdfQ1RMKTsKPiArCS8qIGNvdW50ZXIgbG9hZCBl bmFibGUgKi8KPiArCXZhbCB8PSBJUFVfUFJHX0NUTF9DTlRfTE9BRF9FTihwcmdfY2hhbik7Cj4g KwkvKiBjb25maWcgQVhJIElEICovCj4gKwl2YWwgJj0gfihJUFVfUFJHX0NUTF9TT0ZUX0FSSURf TUFTSyA8PAo+ICsJCSBJUFVfUFJHX0NUTF9TT0ZUX0FSSURfU0hJRlQocHJnX2NoYW4pKTsKPiAr CXZhbCB8PSBJUFVfUFJHX0NUTF9TT0ZUX0FSSUQocHJnX2NoYW4sIGF4aV9pZCk7Cj4gKwkvKiBl bmFibGUgY2hhbm5lbCAqLwo+ICsJdmFsICY9IH5JUFVfUFJHX0NUTF9CWVBBU1MocHJnX2NoYW4p Owo+ICsJd3JpdGVsKHZhbCwgcHJnLT5yZWdzICsgSVBVX1BSR19DVEwpOwo+ICsKPiArCXZhbCA9 IElQVV9QUkdfUkVHX1VQREFURV9SRUdfVVBEQVRFOwo+ICsJd3JpdGVsKHZhbCwgcHJnLT5yZWdz ICsgSVBVX1BSR19SRUdfVVBEQVRFKTsKPiArCj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUocHJn LT5jbGtfaXBnKTsKPiArCj4gKwljaGFuLT5lbmFibGVkID0gdHJ1ZTsKPiArCXJldHVybiAwOwo+ ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGlwdV9wcmdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiArewo+ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiArCXN0 cnVjdCByZXNvdXJjZSAqcmVzOwo+ICsJc3RydWN0IGlwdV9wcmcgKnByZzsKPiArCXUzMiB2YWw7 Cj4gKwlpbnQgaSwgcmV0Owo+ICsKPiArCXByZyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigq cHJnKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXByZykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAr Cj4gKwlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDAp Owo+ICsJcHJnLT5yZWdzID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKCZwZGV2LT5kZXYsIHJlcyk7 Cj4gKwlpZiAoSVNfRVJSKHByZy0+cmVncykpCj4gKwkJcmV0dXJuIFBUUl9FUlIocHJnLT5yZWdz KTsKPiArCj4gKwoKU28gbXVjaCB3aGl0ZXNwYWNlLgoKPiArCXByZy0+Y2xrX2lwZyA9IGRldm1f Y2xrX2dldChkZXYsICJpcGciKTsKPiArCWlmIChJU19FUlIocHJnLT5jbGtfaXBnKSkKPiArCQly ZXR1cm4gUFRSX0VSUihwcmctPmNsa19pcGcpOwo+ICsKPiArCXByZy0+Y2xrX2F4aSA9IGRldm1f Y2xrX2dldChkZXYsICJheGkiKTsKPiArCWlmIChJU19FUlIocHJnLT5jbGtfYXhpKSkKPiArCQly ZXR1cm4gUFRSX0VSUihwcmctPmNsa19heGkpOwo+ICsKPiArCXByZy0+aW9tdXhjX2dwciA9Cj4g KwkJc3lzY29uX3JlZ21hcF9sb29rdXBfYnlfY29tcGF0aWJsZSgiZnNsLGlteDZxLWlvbXV4Yy1n cHIiKTsKPiArCWlmIChJU19FUlIocHJnLT5pb211eGNfZ3ByKSkKPiArCQlyZXR1cm4gUFRSX0VS UihwcmctPmlvbXV4Y19ncHIpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKPiAr CQlwcmctPnByZXNbaV0gPSBpcHVfcHJlX2dldF9ieV9wcmdfZGV2aWNlKGRldiwgaSk7Cj4gKwkJ aWYgKCFwcmctPnByZXNbaV0pCj4gKwkJCXJldHVybiAtRVBST0JFX0RFRkVSOwo+ICsJfQo+ICsK PiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShwcmctPmNsa19pcGcpOwo+ICsJaWYgKHJldCkK PiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCS8qIGluaXQgdG8gZnJlZSBydW5uaW5nIG1vZGUgKi8K PiArCXZhbCA9IHJlYWRsKHByZy0+cmVncyArIElQVV9QUkdfQ1RMKTsKPiArCXZhbCB8PSBJUFVf UFJHX0NUTF9TSEFET1dfRU47Cj4gKwl3cml0ZWwodmFsLCBwcmctPnJlZ3MgKyBJUFVfUFJHX0NU TCk7Cj4gKwo+ICsJLyogZGlzYWJsZSBhZGRyZXNzIHRocmVzaG9sZCAqLwo+ICsJd3JpdGVsKDB4 ZmZmZmZmZmYsIHByZy0+cmVncyArIElQVV9QUkdfVEhEKTsKPiArCj4gKwljbGtfZGlzYWJsZV91 bnByZXBhcmUocHJnLT5jbGtfaXBnKTsKPiArCj4gKwlwcmctPmRldiA9IGRldjsKPiArCXBsYXRm b3JtX3NldF9kcnZkYXRhKHBkZXYsIHByZyk7Cj4gKwltdXRleF9sb2NrKCZpcHVfcHJnX2xpc3Rf bXV0ZXgpOwo+ICsJbGlzdF9hZGQoJnByZy0+bGlzdCwgJmlwdV9wcmdfbGlzdCk7Cj4gKwltdXRl eF91bmxvY2soJmlwdV9wcmdfbGlzdF9tdXRleCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgaXB1X3ByZ19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiArewo+ICsJc3RydWN0IGlwdV9wcmcgKnByZyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBk ZXYpOwo+ICsKPiArCW11dGV4X2xvY2soJmlwdV9wcmdfbGlzdF9tdXRleCk7Cj4gKwlsaXN0X2Rl bCgmcHJnLT5saXN0KTsKPiArCW11dGV4X3VubG9jaygmaXB1X3ByZ19saXN0X211dGV4KTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2Vf aWQgaXB1X3ByZ19kdF9pZHNbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAiZnNsLGlteDZxcC1w cmciLCB9LAo+ICsJeyAvKiBzZW50aW5lbCAqLyB9LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgaXB1X3ByZ19kcnYgPSB7Cj4gKwkucHJvYmUJCT0gaXB1X3ByZ19w cm9iZSwKPiArCS5yZW1vdmUJCT0gaXB1X3ByZ19yZW1vdmUsCj4gKwkuZHJpdmVyCQk9IHsKPiAr CQkubmFtZQk9ICJpbXgtaXB1LXByZyIsCj4gKwkJLm9mX21hdGNoX3RhYmxlID0gaXB1X3ByZ19k dF9pZHMsCj4gKwl9LAo+ICt9Owo+ICttb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGlwdV9wcmdfZHJ2 KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvaXB1LXYzL2lwdS1wcnYuaCBiL2RyaXZlcnMv Z3B1L2lwdS12My9pcHUtcHJ2LmgKPiBpbmRleCA1MzZhMTU2YTVlYjYuLjBkMWQyZDY2N2YzYiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LXBydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvaXB1LXYzL2lwdS1wcnYuaAo+IEBAIC0xNjksNiArMTY5LDcgQEAgc3RydWN0IGlwdV92 ZGk7Cj4gIHN0cnVjdCBpcHVfaW1hZ2VfY29udmVydF9wcml2Owo+ICBzdHJ1Y3QgaXB1X3NtZmNf cHJpdjsKPiAgc3RydWN0IGlwdV9wcmU7Cj4gK3N0cnVjdCBpcHVfcHJnOwo+ICAKPiAgc3RydWN0 IGlwdV9kZXZ0eXBlOwo+ICAKPiBAQCAtMjcwLDQgKzI3MSw2IEBAIHZvaWQgaXB1X3ByZV9jb25m aWd1cmUoc3RydWN0IGlwdV9wcmUgKnByZSwgdW5zaWduZWQgaW50IHdpZHRoLAo+ICAJCSAgICAg ICB1bnNpZ25lZCBpbnQgc3RyaWRlLCB1MzIgZm9ybWF0LCB1bnNpZ25lZCBpbnQgYnVmYWRkcik7 Cj4gIHZvaWQgaXB1X3ByZV91cGRhdGUoc3RydWN0IGlwdV9wcmUgKnByZSwgdW5zaWduZWQgaW50 IGJ1ZmFkZHIpOwo+ICAKPiArc3RydWN0IGlwdV9wcmcgKmlwdV9wcmdfZ2V0X2J5X2lwdV9kZXZp Y2Uoc3RydWN0IGRldmljZSAqZGV2KTsKPiArCj4gICNlbmRpZgkJCQkvKiBfX0lQVV9QUlZfSF9f ICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdmlkZW8vaW14LWlwdS12My5oIGIvaW5jbHVkZS92 aWRlby9pbXgtaXB1LXYzLmgKPiBpbmRleCAyMjhlMzIwODIwOTcuLjM5MDIzMjNmODc2OSAxMDA2 NDQKPiAtLS0gYS9pbmNsdWRlL3ZpZGVvL2lteC1pcHUtdjMuaAo+ICsrKyBiL2luY2x1ZGUvdmlk ZW8vaW14LWlwdS12My5oCj4gQEAgLTMzMSw2ICszMzEsMjEgQEAgaW50IGlwdV9kcF9zZXRfZ2xv YmFsX2FscGhhKHN0cnVjdCBpcHVfZHAgKmRwLCBib29sIGVuYWJsZSwgdTggYWxwaGEsCj4gIAkJ Ym9vbCBiZ19jaGFuKTsKPiAgCj4gIC8qCj4gKyAqIElQVSBQcmVmZXRjaCBSZXNvbHZlIEdhc2tl dCAocHJnKSBmdW5jdGlvbnMKPiArICovCj4gK2ludCBpcHVfcHJnX21heF9hY3RpdmVfY2hhbm5l bHModm9pZCk7Cj4gK2Jvb2wgaXB1X3ByZ19wcmVzZW50KHN0cnVjdCBpcHVfc29jICppcHUpOwo+ ICtib29sIGlwdV9wcmdfZm9ybWF0X3N1cHBvcnRlZChzdHJ1Y3QgaXB1X3NvYyAqaXB1LCB1aW50 MzJfdCBmb3JtYXQsCj4gKwkJCSAgICAgIHVpbnQ2NF90IG1vZGlmaWVyKTsKPiAraW50IGlwdV9w cmdfZW5hYmxlKHN0cnVjdCBpcHVfc29jICppcHUpOwo+ICt2b2lkIGlwdV9wcmdfZGlzYWJsZShz dHJ1Y3QgaXB1X3NvYyAqaXB1KTsKPiArdm9pZCBpcHVfcHJnX2NoYW5uZWxfZGlzYWJsZShzdHJ1 Y3QgaXB1djNfY2hhbm5lbCAqaXB1X2NoYW4pOwo+ICtpbnQgaXB1X3ByZ19jaGFubmVsX2NvbmZp Z3VyZShzdHJ1Y3QgaXB1djNfY2hhbm5lbCAqaXB1X2NoYW4sCj4gKwkJCSAgICAgIHVuc2lnbmVk IGludCBheGlfaWQsICB1bnNpZ25lZCBpbnQgd2lkdGgsCj4gKwkJCSAgICAgIHVuc2lnbmVkIGlu dCBoZWlnaHQsIHVuc2lnbmVkIGludCBzdHJpZGUsCj4gKwkJCSAgICAgIHUzMiBmb3JtYXQsIHVu c2lnbmVkIGxvbmcgKmViYSk7Cj4gKwo+ICsvKgo+ICAgKiBJUFUgQ01PUyBTZW5zb3IgSW50ZXJm YWNlIChjc2kpIGZ1bmN0aW9ucwo+ICAgKi8KPiAgc3RydWN0IGlwdV9jc2k7CgpyZWdhcmRzClBo aWxpcHAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=