From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: Re: [PATCH] tinydrm/mipi-dbi: Use dma-safe buffers for all SPI transfers Date: Fri, 22 Feb 2019 17:58:01 +0200 Message-ID: <20190222155801.GI9224@smile.fi.intel.com> References: <20190222124329.23046-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F8F189718 for ; Fri, 22 Feb 2019 15:58:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190222124329.23046-1-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 T24gRnJpLCBGZWIgMjIsIDIwMTkgYXQgMDE6NDM6MjlQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IEJ1ZmZlcnMgcGFzc2VkIHRvIHNwaV9zeW5jKCkgbXVzdCBiZSBkbWEtc2FmZSBl dmVuIGZvciB0aW55IGJ1ZmZlcnMgc2luY2UKPiBzb21lIFNQSSBjb250cm9sbGVycyB1c2UgRE1B IGZvciBhbGwgdHJhbnNmZXJzLgo+IAo+IEV4YW1wbGUgc3BsYXQgd2l0aCBDT05GSUdfRE1BX0FQ SV9ERUJVRyBlbmFibGVkOgo+IAo+IFsgICAyMy43NTA0NjddIERNQS1BUEk6IGR3X2RtYWNfcGNp IDAwMDA6MDA6MTUuMDogZGV2aWNlIGRyaXZlciBtYXBzIG1lbW9yeSBmcm9tIHN0YWNrIFtwcm9i YWJsZSBhZGRyPTAwMDAwMDAwMWU0OTE4NWRdCj4gWyAgIDIzLjc1MDUyOV0gV0FSTklORzogQ1BV OiAxIFBJRDogMTI5NiBhdCBrZXJuZWwvZG1hL2RlYnVnLmM6MTE2MSBjaGVja19mb3Jfc3RhY2sr MHhiNy8weDE5MAo+IFsgICAyMy43NTA1MzNdIE1vZHVsZXMgbGlua2VkIGluOiBtbWNfYmxvY2so Kykgc3BpX3B4YTJ4eF9wbGF0Zm9ybSgrKSBwd21fbHBzc19wY2kgcHdtX2xwc3Mgc3BpX3B4YTJ4 eF9wY2kgc2RoY2lfcGNpIGNxaGNpIGludGVsX21yZmxkX3B3cmJ0biBleHRjb25faW50ZWxfbXJm bGQgc2RoY2kgaW50ZWxfbXJmbGRfYWRjIGxlZF9jbGFzcyBtbWNfY29yZSBpbGk5MzQxIG1pcGlf ZGJpIHRpbnlkcm0gYmFja2xpZ2h0IHRpX2Fkczc5NTAgaW5kdXN0cmlhbGlvX3RyaWdnZXJlZF9i dWZmZXIga2ZpZm9fYnVmIGludGVsX3NvY19wbWljX21yZmxkIGhjaV91YXJ0IGJ0YmNtCj4gWyAg IDIzLjc1MDU5OV0gQ1BVOiAxIFBJRDogMTI5NiBDb21tOiBtb2Rwcm9iZSBOb3QgdGFpbnRlZCA1 LjAuMC1yYzcrICMyMzYKPiBbICAgMjMuNzUwNjA1XSBIYXJkd2FyZSBuYW1lOiBJbnRlbCBDb3Jw b3JhdGlvbiBNZXJyaWZpZWxkL0JPREVHQSBCQVksIEJJT1MgNTQyIDIwMTUuMDEuMjE6MTguMTku NDgKPiBbICAgMjMuNzUwNjIwXSBSSVA6IDAwMTA6Y2hlY2tfZm9yX3N0YWNrKzB4YjcvMHgxOTAK PiBbICAgMjMuNzUwNjMwXSBDb2RlOiA4YiA2ZCA1MCA0ZCA4NSBlZCA3NSAwNCA0YyA4YiA2ZCAx MCA0OCA4OSBlZiBlOCAyZiA4YiA0NCAwMCA0OCA4OSBjNiA0YSA4ZCAwYyAyMyA0YyA4OSBlYSA0 OCBjNyBjNyA4OCBkMCA4MiBiNCBlOCA0MCA3YyBmOSBmZiA8MGY+IDBiIDhiIDA1IDc5IDAwIDRi IDAxIDg1IGMwIDc0IDA3IDViIDVkIDQxIDVjIDQxIDVkIGMzIDhiIDA1IDU0Cj4gWyAgIDIzLjc1 MDYzN10gUlNQOiAwMDAwOmZmZmY5N2JiYzAyOTJmYTAgRUZMQUdTOiAwMDAxMDI4Ngo+IFsgICAy My43NTA2NDZdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY5N2JiYzAyOTAwMDAgUkNY OiAwMDAwMDAwMDAwMDAwMDA2Cj4gWyAgIDIzLjc1MDY1Ml0gUkRYOiAwMDAwMDAwMDAwMDAwMDA3 IFJTSTogMDAwMDAwMDAwMDAwMDAwMiBSREk6IGZmZmY5NGIzM2UxMTU0NTAKPiBbICAgMjMuNzUw NjU4XSBSQlA6IGZmZmY5NGIzM2M4NTc4YjAgUjA4OiAwMDAwMDAwMDAwMDAwMDAyIFIwOTogMDAw MDAwMDAwMDAyMDFjMAo+IFsgICAyMy43NTA2NjRdIFIxMDogMDAwMDAwMDZlY2IwY2NjNiBSMTE6 IDAwMDAwMDAwMDAwMzRmMzggUjEyOiAwMDAwMDAwMDAwMDAzMTZjCj4gWyAgIDIzLjc1MDY3MF0g UjEzOiBmZmZmOTRiMzNjODRiMjUwIFIxNDogZmZmZjk0YjMzZGVkZDVhMCBSMTU6IDAwMDAwMDAw MDAwMDAwMDEKPiBbICAgMjMuNzUwNjc5XSBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6 ZmZmZjk0YjMzZTEwMDAwMCgwMDYzKSBrbmxHUzowMDAwMDAwMGY3ZmFmNjkwCj4gWyAgIDIzLjc1 MDY4Nl0gQ1M6ICAwMDEwIERTOiAwMDJiIEVTOiAwMDJiIENSMDogMDAwMDAwMDA4MDA1MDAzMwo+ IFsgICAyMy43NTA2OTFdIENSMjogMDAwMDAwMDBmN2Y1NGZhZiBDUjM6IDAwMDAwMDAwMDcyMmMw MDAgQ1I0OiAwMDAwMDAwMDAwMTAwNmUwCj4gWyAgIDIzLjc1MDY5Nl0gQ2FsbCBUcmFjZToKPiBb ICAgMjMuNzUwNzEzXSAgZGVidWdfZG1hX21hcF9zZysweDEwMC8weDM0MAo+IFsgICAyMy43NTA3 MjddICA/IGRtYV9kaXJlY3RfbWFwX3NnKzB4M2IvMHhiMAo+IFsgICAyMy43NTA3MzldICBzcGlf bWFwX2J1ZisweDI1YS8weDMwMAo+IFsgICAyMy43NTA3NTFdICBfX3NwaV9wdW1wX21lc3NhZ2Vz KzB4MmE0LzB4NjgwCj4gWyAgIDIzLjc1MDc2Ml0gIF9fc3BpX3N5bmMrMHgxZGQvMHgxZjAKPiBb ICAgMjMuNzUwNzczXSAgc3BpX3N5bmMrMHgyNi8weDQwCj4gWyAgIDIzLjc1MDc5MF0gIG1pcGlf ZGJpX3R5cGVjM19jb21tYW5kX3JlYWQrMHgxNGQvMHgyNDAgW21pcGlfZGJpXQo+IFsgICAyMy43 NTA4MDJdICA/IHNwaV9maW5hbGl6ZV9jdXJyZW50X3RyYW5zZmVyKzB4MTAvMHgxMAo+IFsgICAy My43NTA4MjFdICBtaXBpX2RiaV90eXBlYzNfY29tbWFuZCsweDFiYy8weDFkMCBbbWlwaV9kYmld Cj4gCgpBZnRlciBmZXcgcnVucyBJIGRvbid0IHNlZSB0aGUgd2FybmluZyBhbnltb3JlLiBTbywK VGVzdGVkLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4LmludGVs LmNvbT4KClRob3VnaCBJIHdvdWxkIGxpa2UgdG8gZ2l2ZSBmZXcgbW9yZSBkYXlzIHRvIG1vbml0 b3IgdGhlIHN0YXRlLgooSSBiZWxpZXZlIGl0J3MgZml4ZWQpCgo+IFJlcG9ydGVkLWJ5OiBBbmR5 IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQt b2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jICB8ICA2ICsrLS0KPiAgZHJpdmVycy9ncHUv ZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYyB8IDU4ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LQo+ICBpbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmggICAgIHwgIDUgKy0tCj4gIDMgZmls ZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkyMjUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90aW55ZHJtL2lsaTkyMjUuYwo+IGluZGV4IDNmNTljZmJkMzFiYS4uYTg3MDc4NjY3ZTA0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkyMjUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkyMjUuYwo+IEBAIC0yOTksNyArMjk5LDcgQEAgc3Rh dGljIHZvaWQgaWxpOTIyNV9waXBlX2Rpc2FibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9w aXBlICpwaXBlKQo+ICAJbWlwaS0+ZW5hYmxlZCA9IGZhbHNlOwo+ICB9Cj4gIAo+IC1zdGF0aWMg aW50IGlsaTkyMjVfZGJpX2NvbW1hbmQoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQsIHU4 ICpwYXIsCj4gK3N0YXRpYyBpbnQgaWxpOTIyNV9kYmlfY29tbWFuZChzdHJ1Y3QgbWlwaV9kYmkg Km1pcGksIHU4ICpjbWQsIHU4ICpwYXIsCj4gIAkJCSAgICAgICBzaXplX3QgbnVtKQo+ICB7Cj4g IAlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gbWlwaS0+c3BpOwo+IEBAIC0zMDksMTEgKzMwOSwx MSBAQCBzdGF0aWMgaW50IGlsaTkyMjVfZGJpX2NvbW1hbmQoc3RydWN0IG1pcGlfZGJpICptaXBp LCB1OCBjbWQsIHU4ICpwYXIsCj4gIAo+ICAJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKG1pcGkt PmRjLCAwKTsKPiAgCXNwZWVkX2h6ID0gbWlwaV9kYmlfc3BpX2NtZF9tYXhfc3BlZWQoc3BpLCAx KTsKPiAtCXJldCA9IHRpbnlkcm1fc3BpX3RyYW5zZmVyKHNwaSwgc3BlZWRfaHosIE5VTEwsIDgs ICZjbWQsIDEpOwo+ICsJcmV0ID0gdGlueWRybV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwg TlVMTCwgOCwgY21kLCAxKTsKPiAgCWlmIChyZXQgfHwgIW51bSkKPiAgCQlyZXR1cm4gcmV0Owo+ ICAKPiAtCWlmIChjbWQgPT0gSUxJOTIyNV9XUklURV9EQVRBX1RPX0dSQU0gJiYgIW1pcGktPnN3 YXBfYnl0ZXMpCj4gKwlpZiAoKmNtZCA9PSBJTEk5MjI1X1dSSVRFX0RBVEFfVE9fR1JBTSAmJiAh bWlwaS0+c3dhcF9ieXRlcykKPiAgCQlicHcgPSAxNjsKPiAgCj4gIAlncGlvZF9zZXRfdmFsdWVf Y2Fuc2xlZXAobWlwaS0+ZGMsIDEpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlu eWRybS9taXBpLWRiaS5jIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYwo+IGlu ZGV4IDI0NmU3MDhhOWZmNy4uNGE0Y2Q3ZTcyOTM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90aW55ZHJtL21pcGktZGJpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9t aXBpLWRiaS5jCj4gQEAgLTE1MywxNiArMTUzLDQyIEBAIEVYUE9SVF9TWU1CT0wobWlwaV9kYmlf Y29tbWFuZF9yZWFkKTsKPiAgICovCj4gIGludCBtaXBpX2RiaV9jb21tYW5kX2J1ZihzdHJ1Y3Qg bWlwaV9kYmkgKm1pcGksIHU4IGNtZCwgdTggKmRhdGEsIHNpemVfdCBsZW4pCj4gIHsKPiArCXU4 ICpjbWRidWY7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCS8qIFNQSSByZXF1aXJlcyBkbWEtc2FmZSBi dWZmZXJzICovCj4gKwljbWRidWYgPSBrbWVtZHVwKCZjbWQsIDEsIEdGUF9LRVJORUwpOwo+ICsJ aWYgKCFjbWRidWYpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICAJbXV0ZXhfbG9jaygmbWlw aS0+Y21kbG9jayk7Cj4gLQlyZXQgPSBtaXBpLT5jb21tYW5kKG1pcGksIGNtZCwgZGF0YSwgbGVu KTsKPiArCXJldCA9IG1pcGktPmNvbW1hbmQobWlwaSwgY21kYnVmLCBkYXRhLCBsZW4pOwo+ICAJ bXV0ZXhfdW5sb2NrKCZtaXBpLT5jbWRsb2NrKTsKPiAgCj4gKwlrZnJlZShjbWRidWYpOwo+ICsK PiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChtaXBpX2RiaV9jb21tYW5kX2J1 Zik7Cj4gIAo+ICsvKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgYnkgbWlwaV9kYmlfY29tbWFu ZCgpICovCj4gK2ludCBtaXBpX2RiaV9jb21tYW5kX3N0YWNrYnVmKHN0cnVjdCBtaXBpX2RiaSAq bWlwaSwgdTggY21kLCB1OCAqZGF0YSwgc2l6ZV90IGxlbikKPiArewo+ICsJdTggKmJ1ZjsKPiAr CWludCByZXQ7Cj4gKwo+ICsJYnVmID0ga21lbWR1cChkYXRhLCBsZW4sIEdGUF9LRVJORUwpOwo+ ICsJaWYgKCFidWYpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJcmV0ID0gbWlwaV9kYmlf Y29tbWFuZF9idWYobWlwaSwgY21kLCBidWYsIGxlbik7Cj4gKwo+ICsJa2ZyZWUoYnVmKTsKPiAr Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gK0VYUE9SVF9TWU1CT0wobWlwaV9kYmlfY29tbWFuZF9z dGFja2J1Zik7Cj4gKwo+ICAvKioKPiAgICogbWlwaV9kYmlfYnVmX2NvcHkgLSBDb3B5IGEgZnJh bWVidWZmZXIsIHRyYW5zZm9ybWluZyBpdCBpZiBuZWNlc3NhcnkKPiAgICogQGRzdDogVGhlIGRl c3RpbmF0aW9uIGJ1ZmZlcgo+IEBAIC03NzIsMTggKzc5OCwxOCBAQCBzdGF0aWMgaW50IG1pcGlf ZGJpX3NwaTFfdHJhbnNmZXIoc3RydWN0IG1pcGlfZGJpICptaXBpLCBpbnQgZGMsCj4gIAlyZXR1 cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzFfY29tbWFuZChzdHJ1 Y3QgbWlwaV9kYmkgKm1pcGksIHU4IGNtZCwKPiArc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzFf Y29tbWFuZChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIHU4ICpjbWQsCj4gIAkJCQkgICB1OCAqcGFy YW1ldGVycywgc2l6ZV90IG51bSkKPiAgewo+IC0JdW5zaWduZWQgaW50IGJwdyA9IChjbWQgPT0g TUlQSV9EQ1NfV1JJVEVfTUVNT1JZX1NUQVJUKSA/IDE2IDogODsKPiArCXVuc2lnbmVkIGludCBi cHcgPSAoKmNtZCA9PSBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQpID8gMTYgOiA4Owo+ICAJ aW50IHJldDsKPiAgCj4gLQlpZiAobWlwaV9kYmlfY29tbWFuZF9pc19yZWFkKG1pcGksIGNtZCkp Cj4gKwlpZiAobWlwaV9kYmlfY29tbWFuZF9pc19yZWFkKG1pcGksICpjbWQpKQo+ICAJCXJldHVy biAtRU5PVFNVUFA7Cj4gIAo+IC0JTUlQSV9EQklfREVCVUdfQ09NTUFORChjbWQsIHBhcmFtZXRl cnMsIG51bSk7Cj4gKwlNSVBJX0RCSV9ERUJVR19DT01NQU5EKCpjbWQsIHBhcmFtZXRlcnMsIG51 bSk7Cj4gIAo+IC0JcmV0ID0gbWlwaV9kYmlfc3BpMV90cmFuc2ZlcihtaXBpLCAwLCAmY21kLCAx LCA4KTsKPiArCXJldCA9IG1pcGlfZGJpX3NwaTFfdHJhbnNmZXIobWlwaSwgMCwgY21kLCAxLCA4 KTsKPiAgCWlmIChyZXQgfHwgIW51bSkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtNzkyLDcg KzgxOCw3IEBAIHN0YXRpYyBpbnQgbWlwaV9kYmlfdHlwZWMxX2NvbW1hbmQoc3RydWN0IG1pcGlf ZGJpICptaXBpLCB1OCBjbWQsCj4gIAo+ICAvKiBNSVBJIERCSSBUeXBlIEMgT3B0aW9uIDMgKi8K PiAgCj4gLXN0YXRpYyBpbnQgbWlwaV9kYmlfdHlwZWMzX2NvbW1hbmRfcmVhZChzdHJ1Y3QgbWlw aV9kYmkgKm1pcGksIHU4IGNtZCwKPiArc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzNfY29tbWFu ZF9yZWFkKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggKmNtZCwKPiAgCQkJCQl1OCAqZGF0YSwg c2l6ZV90IGxlbikKPiAgewo+ICAJc3RydWN0IHNwaV9kZXZpY2UgKnNwaSA9IG1pcGktPnNwaTsK PiBAQCAtODAxLDcgKzgyNyw3IEBAIHN0YXRpYyBpbnQgbWlwaV9kYmlfdHlwZWMzX2NvbW1hbmRf cmVhZChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksIHU4IGNtZCwKPiAgCXN0cnVjdCBzcGlfdHJhbnNm ZXIgdHJbMl0gPSB7Cj4gIAkJewo+ICAJCQkuc3BlZWRfaHogPSBzcGVlZF9oeiwKPiAtCQkJLnR4 X2J1ZiA9ICZjbWQsCj4gKwkJCS50eF9idWYgPSBjbWQsCj4gIAkJCS5sZW4gPSAxLAo+ICAJCX0s IHsKPiAgCQkJLnNwZWVkX2h6ID0gc3BlZWRfaHosCj4gQEAgLTgxOSw4ICs4NDUsOCBAQCBzdGF0 aWMgaW50IG1pcGlfZGJpX3R5cGVjM19jb21tYW5kX3JlYWQoc3RydWN0IG1pcGlfZGJpICptaXBp LCB1OCBjbWQsCj4gIAkgKiBTdXBwb3J0IG5vbi1zdGFuZGFyZCAyNC1iaXQgYW5kIDMyLWJpdCBO b2tpYSByZWFkIGNvbW1hbmRzIHdoaWNoCj4gIAkgKiBzdGFydCB3aXRoIGEgZHVtbXkgY2xvY2ss IHNvIHdlIG5lZWQgdG8gcmVhZCBhbiBleHRyYSBieXRlLgo+ICAJICovCj4gLQlpZiAoY21kID09 IE1JUElfRENTX0dFVF9ESVNQTEFZX0lEIHx8Cj4gLQkgICAgY21kID09IE1JUElfRENTX0dFVF9E SVNQTEFZX1NUQVRVUykgewo+ICsJaWYgKCpjbWQgPT0gTUlQSV9EQ1NfR0VUX0RJU1BMQVlfSUQg fHwKPiArCSAgICAqY21kID09IE1JUElfRENTX0dFVF9ESVNQTEFZX1NUQVRVUykgewo+ICAJCWlm ICghKGxlbiA9PSAzIHx8IGxlbiA9PSA0KSkKPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IEBA IC04NTAsNyArODc2LDcgQEAgc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzNfY29tbWFuZF9yZWFk KHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggY21kLAo+ICAJCQlkYXRhW2ldID0gKGJ1ZltpXSA8 PCAxKSB8ICEhKGJ1ZltpICsgMV0gJiBCSVQoNykpOwo+ICAJfQo+ICAKPiAtCU1JUElfREJJX0RF QlVHX0NPTU1BTkQoY21kLCBkYXRhLCBsZW4pOwo+ICsJTUlQSV9EQklfREVCVUdfQ09NTUFORCgq Y21kLCBkYXRhLCBsZW4pOwo+ICAKPiAgZXJyX2ZyZWU6Cj4gIAlrZnJlZShidWYpOwo+IEBAIC04 NTgsNyArODg0LDcgQEAgc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzNfY29tbWFuZF9yZWFkKHN0 cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggY21kLAo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAt c3RhdGljIGludCBtaXBpX2RiaV90eXBlYzNfY29tbWFuZChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGks IHU4IGNtZCwKPiArc3RhdGljIGludCBtaXBpX2RiaV90eXBlYzNfY29tbWFuZChzdHJ1Y3QgbWlw aV9kYmkgKm1pcGksIHU4ICpjbWQsCj4gIAkJCQkgICB1OCAqcGFyLCBzaXplX3QgbnVtKQo+ICB7 Cj4gIAlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gbWlwaS0+c3BpOwo+IEBAIC04NjYsMTggKzg5 MiwxOCBAQCBzdGF0aWMgaW50IG1pcGlfZGJpX3R5cGVjM19jb21tYW5kKHN0cnVjdCBtaXBpX2Ri aSAqbWlwaSwgdTggY21kLAo+ICAJdTMyIHNwZWVkX2h6Owo+ICAJaW50IHJldDsKPiAgCj4gLQlp ZiAobWlwaV9kYmlfY29tbWFuZF9pc19yZWFkKG1pcGksIGNtZCkpCj4gKwlpZiAobWlwaV9kYmlf Y29tbWFuZF9pc19yZWFkKG1pcGksICpjbWQpKQo+ICAJCXJldHVybiBtaXBpX2RiaV90eXBlYzNf Y29tbWFuZF9yZWFkKG1pcGksIGNtZCwgcGFyLCBudW0pOwo+ICAKPiAtCU1JUElfREJJX0RFQlVH X0NPTU1BTkQoY21kLCBwYXIsIG51bSk7Cj4gKwlNSVBJX0RCSV9ERUJVR19DT01NQU5EKCpjbWQs IHBhciwgbnVtKTsKPiAgCj4gIAlncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAobWlwaS0+ZGMsIDAp Owo+ICAJc3BlZWRfaHogPSBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzcGksIDEpOwo+IC0J cmV0ID0gdGlueWRybV9zcGlfdHJhbnNmZXIoc3BpLCBzcGVlZF9oeiwgTlVMTCwgOCwgJmNtZCwg MSk7Cj4gKwlyZXQgPSB0aW55ZHJtX3NwaV90cmFuc2ZlcihzcGksIHNwZWVkX2h6LCBOVUxMLCA4 LCBjbWQsIDEpOwo+ICAJaWYgKHJldCB8fCAhbnVtKQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0J aWYgKGNtZCA9PSBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQgJiYgIW1pcGktPnN3YXBfYnl0 ZXMpCj4gKwlpZiAoKmNtZCA9PSBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQgJiYgIW1pcGkt PnN3YXBfYnl0ZXMpCj4gIAkJYnB3ID0gMTY7Cj4gIAo+ICAJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNs ZWVwKG1pcGktPmRjLCAxKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdGlueWRybS9taXBp LWRiaS5oIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oCj4gaW5kZXggYWQ3ZTZiZWRh YjVmLi40NjRhNDdkMTAxM2QgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vdGlueWRybS9taXBp LWRiaS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oCj4gQEAgLTQzLDcg KzQzLDcgQEAgc3RydWN0IG1pcGlfZGJpIHsKPiAgCXN0cnVjdCBzcGlfZGV2aWNlICpzcGk7Cj4g IAlib29sIGVuYWJsZWQ7Cj4gIAlzdHJ1Y3QgbXV0ZXggY21kbG9jazsKPiAtCWludCAoKmNvbW1h bmQpKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwgdTggY21kLCB1OCAqcGFyYW0sIHNpemVfdCBudW0p Owo+ICsJaW50ICgqY29tbWFuZCkoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCAqY21kLCB1OCAq cGFyYW0sIHNpemVfdCBudW0pOwo+ICAJY29uc3QgdTggKnJlYWRfY29tbWFuZHM7Cj4gIAlzdHJ1 Y3QgZ3Bpb19kZXNjICpkYzsKPiAgCXUxNiAqdHhfYnVmOwo+IEBAIC04Myw2ICs4Myw3IEBAIHUz MiBtaXBpX2RiaV9zcGlfY21kX21heF9zcGVlZChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzaXpl X3QgbGVuKTsKPiAgCj4gIGludCBtaXBpX2RiaV9jb21tYW5kX3JlYWQoc3RydWN0IG1pcGlfZGJp ICptaXBpLCB1OCBjbWQsIHU4ICp2YWwpOwo+ICBpbnQgbWlwaV9kYmlfY29tbWFuZF9idWYoc3Ry dWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQsIHU4ICpkYXRhLCBzaXplX3QgbGVuKTsKPiAraW50 IG1pcGlfZGJpX2NvbW1hbmRfc3RhY2tidWYoc3RydWN0IG1pcGlfZGJpICptaXBpLCB1OCBjbWQs IHU4ICpkYXRhLCBzaXplX3QgbGVuKTsKPiAgaW50IG1pcGlfZGJpX2J1Zl9jb3B5KHZvaWQgKmRz dCwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gIAkJICAgICAgc3RydWN0IGRybV9yZWN0 ICpjbGlwLCBib29sIHN3YXApOwo+ICAvKioKPiBAQCAtMTAwLDcgKzEwMSw3IEBAIGludCBtaXBp X2RiaV9idWZfY29weSh2b2lkICpkc3QsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICAj ZGVmaW5lIG1pcGlfZGJpX2NvbW1hbmQobWlwaSwgY21kLCBzZXEuLi4pIFwKPiAgKHsgXAo+ICAJ dTggZFtdID0geyBzZXEgfTsgXAo+IC0JbWlwaV9kYmlfY29tbWFuZF9idWYobWlwaSwgY21kLCBk LCBBUlJBWV9TSVpFKGQpKTsgXAo+ICsJbWlwaV9kYmlfY29tbWFuZF9zdGFja2J1ZihtaXBpLCBj bWQsIGQsIEFSUkFZX1NJWkUoZCkpOyBcCj4gIH0pCj4gIAo+ICAjaWZkZWYgQ09ORklHX0RFQlVH X0ZTCj4gLS0gCj4gMi4yMC4xCj4gCgotLSAKV2l0aCBCZXN0IFJlZ2FyZHMsCkFuZHkgU2hldmNo ZW5rbwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==