From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 4/5] drm: Add support for handling linear tile formats Date: Fri, 31 Aug 2018 19:49:48 +0300 Message-ID: <20180831164948.GC5565@intel.com> References: <20180821183004.6775-1-alexandru-cosmin.gheorghe@arm.com> <20180821183004.6775-5-alexandru-cosmin.gheorghe@arm.com> <20180822201851.GV21634@phenom.ffwll.local> <20180823174340.GB18528@e114479-lin.cambridge.arm.com> <20180831081414.GL21634@phenom.ffwll.local> <20180831112031.GT5565@intel.com> <20180831151224.GU21634@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id AB27D6E0D2 for ; Fri, 31 Aug 2018 16:49:53 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180831151224.GU21634@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: ayan.halder@arm.com, airlied@linux.ie, daniel.vetter@ffwll.ch, Alexandru-Cosmin Gheorghe , liviu.dudau@arm.com, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, malidp@foss.arm.com, nd@arm.com List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBBdWcgMzEsIDIwMTggYXQgMDU6MTI6MjRQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIEF1ZyAzMSwgMjAxOCBhdCAwMjoyMDozMVBNICswMzAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBGcmksIEF1ZyAzMSwgMjAxOCBhdCAxMDoxNDoxNEFNICsw MjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBUaHUsIEF1ZyAyMywgMjAxOCBhdCAw Njo0Mzo0MFBNICswMTAwLCBBbGV4YW5kcnUtQ29zbWluIEdoZW9yZ2hlIHdyb3RlOgo+ID4gPiA+ IE9uIFdlZCwgQXVnIDIyLCAyMDE4IGF0IDEwOjE4OjUxUE0gKzAyMDAsIERhbmllbCBWZXR0ZXIg d3JvdGU6Cj4gPiA+ID4gPiBPbiBUdWUsIEF1ZyAyMSwgMjAxOCBhdCAwNzozMDowM1BNICswMTAw LCBBbGV4YW5kcnUgR2hlb3JnaGUgd3JvdGU6Cj4gPiA+ID4gPiA+IFRoZSBwcmV2aW91cyBwYXRj aCBhZGRlZCB0aWxlX3cgYW5kIHRpbGVfaCwgd2hpY2ggcmVwcmVzZW50IHRoZQo+ID4gPiA+ID4g PiBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzaXplcyBvZiBhIHRpbGUuCj4gPiA+ID4gPiA+IAo+ ID4gPiA+ID4gPiBUaGlzIG9uZSB1c2VzIHRoYXQgdG8gcGx1bWIgdGhyb3VnaCBkcm0gY29yZSBp biBvcmRlciB0byBiZSBhYmxlIHRvCj4gPiA+ID4gPiA+IGhhbmRsZSBsaW5lYXIgdGlsZSBmb3Jt YXRzIHdpdGhvdXQgdGhlIG5lZWQgZm9yIGRyaXZlcnMgdG8gcm9sbCB1cAo+ID4gPiA+ID4gPiB0 aGVpciBvd24gaW1wbGVtZW50YXRpb24uCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBUaGlzIHBh dGNoIGhhZCBiZWVuIHdyaXR0ZW4gd2l0aCBNYWxpLWRwIFgwTDIgYW5kIFgwTDAgaW4gbWluZCB3 aGljaAo+ID4gPiA+ID4gPiBpcyBhIDEgcGxhbmUgWUNiQ3IgNDIwIGZvcm1hdCB3aXRoIGEgMngy IHRpbGUsIHRoYXQgdXNlcyBpbiBhdmVyYWdlIDIKPiA+ID4gPiA+ID4gYnl0ZXMgcGVyIHBpeGVs IGFuZCB3aGVyZSB0aWxlcyBhcmUgbGFpZCBvdXQgaW4gYSBsaW5lYXIgbWFubmVyLgo+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gTm93IHdoYXQgYXJlIHRoZSByZXN0cmljdGlvbnM6Cj4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiAxLiBQaXRjaCBpbiBieXRlcyBpcyBleHBlY3RlZCB0byBjb3ZlciBh dCBsZWFzdCB0aWxlX2ggKiB3aWR0aCBpbgo+ID4gPiA+ID4gPiBwaXhlbHMuIER1ZSB0byB0aGlz IHRoZSBwbGFjZXMgd2hlcmUgdGhlIHBpdGNoIGlzIGNoZWNrZWQvdXNlZCBuZWVkIHRvCj4gPiA+ ID4gPiA+IGJlIHVwZGF0ZWQgdG8gdGFrZSBpbnRvIGNvbnNpZGVyYXRpb24gdGhlIHRpbGVfdywg dGlsZV9oIGFuZAo+ID4gPiA+ID4gPiB0aWxlX3NpemUuCj4gPiA+ID4gPiA+ICAgICB0aWxlX3Np emUgPSBjcHAgKiB0aWxlX3cgKiB0aWxlX2gKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IDIuIFdo ZW4gZG9pbmcgc291cmNlIGNyb3BwaW5nIHBsYW5lX3NyY194L3kgbmVlZCB0byBiZSBhIG11bHRp cGxlIG9mCj4gPiA+ID4gPiA+IHRpbGVfdy90aWxlX2ggYW5kIHdlIG5lZWQgdG8gdGFrZSBpbnRv IGNvbnNpZGVyYXRpb24gdGhlIHRpbGVfdy90aWxlX2gKPiA+ID4gPiA+ID4gd2hlbiBjb21wdXRp bmcgdGhlIHN0YXJ0IGFkZHJlc3MuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBGb3IgYWxsIG5v bi10aWxlZCBmb3JtYXRzIHRoZSB0aWxlX3cgYW5kIHRpbGVfaCB3aWxsIGJlIDEsIHNvIGlmIEkK PiA+ID4gPiA+ID4gZGlkbid0IG1pc3MgYW55dGhpbmcgbm90aGluZyBzaG91bGQgY2hhbmdlLgo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gUmVnYXJkaW5nIG11bHRpLXBsYW5hciBsaW5lYXIgdGls ZSBmb3JtYXRzLCBJJ20gbm90IHN1cmUgaG93IHRob3NlCj4gPiA+ID4gPiA+IHNob3VsZCBiZSBo YW5kbGUgSSBraW5kIG9mIGFzc3VtZWQgdGhhdCB0aWxlX2gvdGlsZV93IHdpbGwgaGF2ZSB0byBi ZQo+ID4gPiA+ID4gPiBkaXZpZGVkIGJ5IGhvcml6b250YWwvc3Vic2FtcGxpbmcuIEFueXdheSwg SSB0aGluayBpdCdzIGJlc3QgdG8ganVzdAo+ID4gPiA+ID4gPiBwdXQgYW4gd2FybmluZyBpbiB0 aGVyZSBhbmQgaGFuZGxlIGl0IHdoZW4gc29tZW9uZSB0cmllcyB0byBhZGQKPiA+ID4gPiA+ID4g c3VwcG9ydCBmb3IgdGhlbS4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6 IEFsZXhhbmRydSBHaGVvcmdoZSA8YWxleGFuZHJ1LWNvc21pbi5naGVvcmdoZUBhcm0uY29tPgo+ ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMg ICAgICAgICAgICAgICAgIHwgIDggKysrCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2ZiX2NtYV9oZWxwZXIuYyAgICAgICAgICB8IDExICsrKystCj4gPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX2ZvdXJjYy5jICAgICAgICAgICAgICAgICB8IDUyICsrKysrKysrKysrKysr KysrKysrCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICAg ICAgICAgICB8IDE5ICsrKysrLS0KPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2Vt X2ZyYW1lYnVmZmVyX2hlbHBlci5jIHwgMTAgKystLQo+ID4gPiA+ID4gPiAgaW5jbHVkZS9kcm0v ZHJtX2ZvdXJjYy5oICAgICAgICAgICAgICAgICAgICAgfCAgMiArCj4gPiA+ID4gPiA+ICA2IGZp bGVzIGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gPiA+ID4gaW5kZXggM2ViMDYxZTEx ZTJlLi43YTNlODkzYTRjZDEgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYwo+ID4gPiA+ID4gPiBAQCAtMTA4Nyw2ICsxMDg3LDE0IEBAIHN0YXRpYyBpbnQgZHJtX2F0 b21pY19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gPiA+ID4gIAkJ cmV0dXJuIC1FTk9TUEM7Cj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ ICsJLyogTWFrZSBzdXJlIHNvdXJjZSBjb29yZGluYXRlcyBhcmUgYSBtdWx0aXBsZSBvZiB0aWxl IHNpemVzICovCj4gPiA+ID4gPiA+ICsJaWYgKChzdGF0ZS0+c3JjX3ggPj4gMTYpICUgc3RhdGUt PmZiLT5mb3JtYXQtPnRpbGVfdyB8fAo+ID4gPiA+ID4gPiArCSAgICAoc3RhdGUtPnNyY195ID4+ IDE2KSAlIHN0YXRlLT5mYi0+Zm9ybWF0LT50aWxlX2gpIHsKPiA+ID4gPiA+ID4gKwkJRFJNX0RF QlVHX0FUT01JQygiW1BMQU5FOiVkOiVzXSBTb3VyY2UgY29vcmRpbmF0ZXMgZG8gbm90IG1lZXQg dGlsZSByZXN0cmljdGlvbnMiLAo+ID4gPiA+ID4gPiArCQkJCSBwbGFuZS0+YmFzZS5pZCwgcGxh bmUtPm5hbWUpOwo+ID4gPiA+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ID4gKwl9 Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gIAlpZiAocGxhbmVfc3dpdGNoaW5nX2NydGMoc3Rh dGUtPnN0YXRlLCBwbGFuZSwgc3RhdGUpKSB7Cj4gPiA+ID4gPiA+ICAJCURSTV9ERUJVR19BVE9N SUMoIltQTEFORTolZDolc10gc3dpdGNoaW5nIENSVEMgZGlyZWN0bHlcbiIsCj4gPiA+ID4gPiA+ ICAJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSk7Cj4gPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZmJfY21hX2hlbHBlci5jCj4gPiA+ID4gPiA+IGluZGV4IDQ3ZTBlMmY2NjQyZC4uNGQ4 MDUyYWRjZTY3IDEwMDY0NAo+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zi X2NtYV9oZWxwZXIuYwo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2Nt YV9oZWxwZXIuYwo+ID4gPiA+ID4gPiBAQCAtODcsNiArODcsOCBAQCBkbWFfYWRkcl90IGRybV9m Yl9jbWFfZ2V0X2dlbV9hZGRyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiA+ID4g PiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKm9iajsKPiA+ID4gPiA+ID4gIAlkbWFfYWRk cl90IHBhZGRyOwo+ID4gPiA+ID4gPiAgCXU4IGhfZGl2ID0gMSwgdl9kaXYgPSAxOwo+ID4gPiA+ ID4gPiArCXUzMiB0aWxlX3cgPSBkcm1fZm9ybWF0X3RpbGVfd2lkdGgoZmItPmZvcm1hdCwgcGxh bmUpOwo+ID4gPiA+ID4gPiArCXUzMiB0aWxlX2ggPSBkcm1fZm9ybWF0X3RpbGVfaGVpZ2h0KGZi LT5mb3JtYXQsIHBsYW5lKTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAgCW9iaiA9IGRybV9m Yl9jbWFfZ2V0X2dlbV9vYmooZmIsIHBsYW5lKTsKPiA+ID4gPiA+ID4gIAlpZiAoIW9iaikKPiA+ ID4gPiA+ID4gQEAgLTk5LDggKzEwMSwxMyBAQCBkbWFfYWRkcl90IGRybV9mYl9jbWFfZ2V0X2dl bV9hZGRyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiA+ID4gPiAgCQl2X2RpdiA9 IGZiLT5mb3JtYXQtPnZzdWI7Cj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4g PiA+IC0JcGFkZHIgKz0gKGZiLT5mb3JtYXQtPmNwcFtwbGFuZV0gKiAoc3RhdGUtPnNyY194ID4+ IDE2KSkgLyBoX2RpdjsKPiA+ID4gPiA+ID4gLQlwYWRkciArPSAoZmItPnBpdGNoZXNbcGxhbmVd ICogKHN0YXRlLT5zcmNfeSA+PiAxNikpIC8gdl9kaXY7Cj4gPiA+ID4gPiA+ICsJcGFkZHIgKz0g KGZiLT5mb3JtYXQtPmNwcFtwbGFuZV0gKiB0aWxlX3cgKiAoc3RhdGUtPnNyY194ID4+IDE2KSkK PiA+ID4gPiA+ID4gKwkJCS8gaF9kaXY7Cj4gPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ID4gKwkg KiBGb3IgdGlsZSBmb3JtYXRzIHBpdGNoZXMgYXJlIGV4cGVjdGVkIHRvIGNvdmVyIGF0IGxlYXN0 Cj4gPiA+ID4gPiA+ICsJICogd2lkdGggKiB0aWxlX2ggcGl4ZWxzCj4gPiA+ID4gPiA+ICsJICov Cj4gPiA+ID4gPiA+ICsJcGFkZHIgKz0gKChmYi0+cGl0Y2hlc1twbGFuZV0gLyB0aWxlX2gpICog KHN0YXRlLT5zcmNfeSA+PiAxNikpIC8gdl9kaXY7Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4g IAlyZXR1cm4gcGFkZHI7Cj4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2Mu Ywo+ID4gPiA+ID4gPiBpbmRleCBmNTVjZDkzYmEyZDAuLmQ2YzljNWFhNDAzNiAxMDA2NDQKPiA+ ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ID4gPiA+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jCj4gPiA+ID4gPiA+IEBAIC01NTcsMyAr NTU3LDU1IEBAIGludCBkcm1fZm9ybWF0X3BsYW5lX2hlaWdodChpbnQgaGVpZ2h0LCB1aW50MzJf dCBmb3JtYXQsIGludCBwbGFuZSkKPiA+ID4gPiA+ID4gIAlyZXR1cm4gaGVpZ2h0IC8gaW5mby0+ dnN1YjsKPiA+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2Zvcm1h dF9wbGFuZV9oZWlnaHQpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsvKioKPiA+ID4gPiA+ ID4gKyAqIGRybV9mb3JtYXRfdGlsZV93aWR0aCAtIHdpZHRoIG9mIGEgdGlsZSBmb3IgdGlsZSBm b3JtYXRzLCBzaG91bGQgYmUgMSBmb3IgYWxsCj4gPiA+ID4gPiA+ICsgKiBub24tdGlsZWQgZm9y bWF0cy4KPiA+ID4gPiA+ID4gKyAqIEBmb3JtYXQ6IHBpeGVsIGZvcm1hdAo+ID4gPiA+ID4gPiAr ICogQHBsYW5lOiBwbGFuZSBpbmRleAo+ID4gPiA+ID4gPiArICoKPiA+ID4gPiA+ID4gKyAqIFJl dHVybnM6Cj4gPiA+ID4gPiA+ICsgKiBUaGUgd2lkdGggb2YgYSB0aWxlLCBkZXBlbmRpbmcgb24g dGhlIHBsYW5lIGluZGV4IGFuZCBob3Jpem9udGFsIHN1Yi1zYW1wbGluZwo+ID4gPiA+ID4gPiAr ICovCj4gPiA+ID4gPiA+ICt1aW50MzJfdCBkcm1fZm9ybWF0X3RpbGVfd2lkdGgoY29uc3Qgc3Ry dWN0IGRybV9mb3JtYXRfaW5mbyAqaW5mbywgaW50IHBsYW5lKQo+ID4gPiA+ID4gPiArewo+ID4g PiA+ID4gPiArCVdBUk5fT04oIWluZm8tPnRpbGVfdyk7Cj4gPiA+ID4gPiA+ICsJaWYgKHBsYW5l ID09IDAgfHwgaW5mby0+dGlsZV93ID09IDEpCj4gPiA+ID4gPiA+ICsJCXJldHVybiBpbmZvLT50 aWxlX3c7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkvKgo+ID4gPiA+ID4gPiArCSAqIE11 bHRpIHBsYW5hciB0aWxlZCBmb3JtYXRzIGhhdmUgbmV2ZXIgYmVlbiB0ZXN0ZWQsIGNoZWNrIHRo YXQKPiA+ID4gPiA+ID4gKwkgKiBidWZmZXIgcmVzdHJpY3Rpb25zIGFuZCBzb3VyY2UgY3JvcHBp bmcgbWVldCB0aGUgZm9ybWF0IGxheW91dAo+ID4gPiA+ID4gPiArCSAqIGV4cGVjdGF0aW9ucy4K PiA+ID4gPiA+ID4gKwkgKi8KPiA+ID4gPiA+ID4gKwlXQVJOX09OKCJNdWx0aS1wbGFuYXIgdGls ZWQgZm9ybWF0cyB1bnN1cHBvcnRlZCIpOwo+ID4gPiA+ID4gPiArCVdBUk5fT04oaW5mby0+dGls ZV93ICUgaW5mby0+aHN1Yik7Cj4gPiA+ID4gPiA+ICsJcmV0dXJuIGluZm8tPnRpbGVfdyAvIGlu Zm8tPmhzdWI7Cj4gPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiA+ICtFWFBPUlRfU1lNQk9MKGRybV9m b3JtYXRfdGlsZV93aWR0aCk7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKy8qKgo+ID4gPiA+ ID4gPiArICogZHJtX2Zvcm1hdF90aWxlX2hlaWdodCAtIGhlaWdodCBvZiBhIHRpbGUgZm9yIHRp bGUgZm9ybWF0cywgc2hvdWxkIGJlIDEgZm9yCj4gPiA+ID4gPiA+ICsgKiBhbGwgbm9uLXRpbGVk IGZvcm1hdHMuCj4gPiA+ID4gPiA+ICsgKiBAZm9ybWF0OiBwaXhlbCBmb3JtYXQKPiA+ID4gPiA+ ID4gKyAqIEBwbGFuZTogcGxhbmUgaW5kZXgKPiA+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiA+ICsg KiBSZXR1cm5zOgo+ID4gPiA+ID4gPiArICogVGhlIGhlaWdodCBvZiBhIHRpbGUsIGRlcGVuZGlu ZyBvbiB0aGUgcGxhbmUgaW5kZXggYW5kIHZlcnRpY2FsIHN1Yi1zYW1wbGluZwo+ID4gPiA+ID4g PiArICovCj4gPiA+ID4gPiA+ICt1aW50MzJfdCBkcm1fZm9ybWF0X3RpbGVfaGVpZ2h0KGNvbnN0 IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmluZm8sIGludCBwbGFuZSkKPiA+ID4gPiA+ID4gK3sK PiA+ID4gPiA+ID4gKwlXQVJOX09OKCFpbmZvLT50aWxlX2gpOwo+ID4gPiA+ID4gPiArCWlmIChw bGFuZSA9PSAwIHx8IGluZm8tPnRpbGVfaCA9PSAxKQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gaW5m by0+dGlsZV9oOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ID4gKwkg KiBNdWx0aSBwbGFuYXIgdGlsZWQgZm9ybWF0cyBoYXZlIG5ldmVyIGJlZW4gdGVzdGVkLCBjaGVj ayB0aGF0Cj4gPiA+ID4gPiA+ICsJICogYnVmZmVyIHJlc3RyaWN0aW9ucyBhbmQgc291cmNlIGNy b3BwaW5nIG1lZXQgdGhlIGZvcm1hdCBsYXlvdXQKPiA+ID4gPiA+ID4gKwkgKiBleHBlY3RhdGlv bnMuCj4gPiA+ID4gPiA+ICsJICovCj4gPiA+ID4gPiA+ICsJV0FSTl9PTigiTXVsdGktcGxhbmFy IHRpbGVkIGZvcm1hdHMgdW5zdXBwb3J0ZWQiKTsKPiA+ID4gPiA+ID4gKwlXQVJOX09OKGluZm8t PnRpbGVfaCAlIGluZm8tPnZzdWIpOwo+ID4gPiA+ID4gPiArCXJldHVybiBpbmZvLT50aWxlX2gg LyBpbmZvLT52c3ViOwo+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiArRVhQT1JUX1NZTUJPTChk cm1fZm9ybWF0X3RpbGVfaGVpZ2h0KTsKPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZm ZXIuYwo+ID4gPiA+ID4gPiBpbmRleCA3ODFhZjFkNDJkNzYuLjU3NTA5ZTUxY2I4MCAxMDA2NDQK PiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gPiA+ ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gPiA+ID4g PiBAQCAtMTkxLDE5ICsxOTEsMzIgQEAgc3RhdGljIGludCBmcmFtZWJ1ZmZlcl9jaGVjayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gPiA+ID4gPiAgCQl1bnNpZ25lZCBpbnQgd2lkdGggPSBm Yl9wbGFuZV93aWR0aChyLT53aWR0aCwgaW5mbywgaSk7Cj4gPiA+ID4gPiA+ICAJCXVuc2lnbmVk IGludCBoZWlnaHQgPSBmYl9wbGFuZV9oZWlnaHQoci0+aGVpZ2h0LCBpbmZvLCBpKTsKPiA+ID4g PiA+ID4gIAkJdW5zaWduZWQgaW50IGNwcCA9IGluZm8tPmNwcFtpXTsKPiA+ID4gPiA+ID4gKwkJ dW5zaWduZWQgaW50IHRpbGVfdyA9IGRybV9mb3JtYXRfdGlsZV93aWR0aChpbmZvLCBpKTsKPiA+ ID4gPiA+ID4gKwkJdW5zaWduZWQgaW50IHRpbGVfaCA9IGRybV9mb3JtYXRfdGlsZV9oZWlnaHQo aW5mbywgaSk7Cj4gPiA+ID4gPiA+ICsJCXVuc2lnbmVkIGludCB0aWxlX3NpemUgPSBjcHAgKiB0 aWxlX3cgKiB0aWxlX2g7Cj4gPiA+ID4gPiA+ICsJCXVuc2lnbmVkIGludCBudW1faHRpbGVzOwo+ ID4gPiA+ID4gPiArCQl1bnNpZ25lZCBpbnQgbnVtX3Z0aWxlczsKPiA+ID4gPiA+ID4gIAo+ID4g PiA+ID4gPiAgCQlpZiAoIXItPmhhbmRsZXNbaV0pIHsKPiA+ID4gPiA+ID4gIAkJCURSTV9ERUJV R19LTVMoIm5vIGJ1ZmZlciBvYmplY3QgaGFuZGxlIGZvciBwbGFuZSAlZFxuIiwgaSk7Cj4gPiA+ ID4gPiA+ICAJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ID4gIAkJfQo+ID4gPiA+ID4gPiAg Cj4gPiA+ID4gPiA+IC0JCWlmICgodWludDY0X3QpIHdpZHRoICogY3BwID4gVUlOVF9NQVgpCj4g PiA+ID4gPiA+ICsJCWlmICgod2lkdGggJSB0aWxlX3cpIHx8IChoZWlnaHQgJSB0aWxlX2gpKSB7 Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IEkgdGhpbmsgdGhpcyBpcyB0b28gc3RyaWN0LiBZb3UgY2Fu IGNhcnZlIG91dCBhIHN1Yi1wYXJ0IG9mIGFueXRoaW5nCj4gPiA+ID4gPiByZWFsbHkgd2l0aCBh IGRybV9mcmFtZWJ1ZmZlci4gU2VlIGJlbG93LCB3ZSBvbmx5IGNoZWNrZWQgdGhhdCB3aWR0aCAq IGNwcAo+ID4gPiA+ID4gPCBwaXRjaGVzLCBzbyBsZWZ0b3ZlciBieXRlcy9iaXRzIHdhcyBhbHdh eXMgb2suCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFlvdXIgZHJpdmVyIG1pZ2h0IGhhdmUgYWRkaXRp b25hbCBjb25zdHJhaW50cywgYnV0IHRoYXQncyBhIGRpZmZlcmVudAo+ID4gPiA+ID4gc3Rvcnku Cj4gPiA+ID4gCj4gPiA+ID4gVGhpcyBzZWVtIGxpa2UgdGhlIG9ubHkgdGhpbmcgdGhhdCB3ZSBo YXZlIGluIGNvbW1vbiB3aXRoCj4gPiA+ID4gRFJNX0ZPUk1BVF9NT0RfU0FNU1VOR182NF8zMl9U SUxFL05WMTJNVCwgd2hpY2ggaXMgZXZlbiBtb3JlCj4gPiA+ID4gcmVzdHJpY3RpdmUgdGhhbiB0 aGF0IGFuZCBpdCB3YW50cyB0aGUgd2lkdGggdG8gYmUgYSBtdWx0aXBsZSBvZiAxMjguCj4gPiA+ ID4gCj4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gKwkJCURSTV9ERUJVR19LTVMoImJ1ZmZlciB3aWR0 aC9oZWlnaHQgbmVlZCB0byBiZSBhIG11bHRpcGxlIG9mIHRpbGUgZGltZW5zaW9uc1xuIik7Cj4g PiA+ID4gPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ID4gKwkJfQo+ID4gPiA+ID4g PiArCj4gPiA+ID4gPiA+ICsJCW51bV9odGlsZXMgPSB3aWR0aCAvIHRpbGVfdzsKPiA+ID4gPiA+ ID4gKwkJbnVtX3Z0aWxlcyA9IGhlaWdodCAvIHRpbGVfaDsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gPiArCQlpZiAoKHVpbnQ2NF90KW51bV9odGlsZXMgKiB0aWxlX3NpemUgPiBVSU5UX01BWCkK PiA+ID4gPiA+ID4gIAkJCXJldHVybiAtRVJBTkdFOwo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ IC0JCWlmICgodWludDY0X3QpIGhlaWdodCAqIHItPnBpdGNoZXNbaV0gKyByLT5vZmZzZXRzW2ld ID4gVUlOVF9NQVgpCj4gPiA+ID4gPiA+ICsJCWlmICgodWludDY0X3QpbnVtX3Z0aWxlcyAqIHIt PnBpdGNoZXNbaV0gKyByLT5vZmZzZXRzW2ldID4gVUlOVF9NQVgpCj4gPiA+ID4gPiA+ICAJCQly ZXR1cm4gLUVSQU5HRTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAtCQlpZiAoci0+cGl0Y2hl c1tpXSA8IHdpZHRoICogY3BwKSB7Cj4gPiA+ID4gPiA+ICsJCWlmIChyLT5waXRjaGVzW2ldIDwg bnVtX2h0aWxlcyAqIHRpbGVfc2l6ZSkgewo+ID4gPiA+ID4gCj4gPiA+ID4gPiBFc3NlbnRpYWxs eSB5b3UgZGVmaW5lIC0+cGl0Y2hlcyBub3cgdG8gbWVhbiBhIHJvdyBvZiB0aWxlcy4gQXQgbGVh c3QgZm9yCj4gPiA+ID4gPiBiaWdnZXIgdGlsZWQgZm9ybWF0cyAodXNpbmcgbW9kaWZpZXJzKSB3 ZSBkb24ndCB1c2UgaXQgbGlrZSB0aGF0LiBCdXQgaXQKPiA+ID4gPiA+IGFsc28gZ2V0cyBhd2t3 YXJkIHF1aWNrbHkgaWYgd2Uga2VlcCBwaXRjaGVzIHRvIG1lYW4gYnl0ZXMgaW4gb25lIHJvdyBv Zgo+ID4gPiA+ID4gcGl4ZWxzLiBGb3IgdGhhdCBjYXNlIHdlJ2QgaGF2ZQo+ID4gPiA+IAo+ID4g PiA+IFRoYXQncyBob3cgZXZlcnl0aGluZyBzdGFydGVkLCB3ZSBoYXZlIGFscmVhZHkgaW50ZXJu YWwgdXNlcnNwYWNlIGFuZAo+ID4gPiA+IGRyaXZlcnMgdGhhdCBleHBlY3QgYW5kIHBhc3MgcGl0 Y2ggYXMgYSByb3cgb2YgdGlsZXMgaW4gYnl0ZXMuCj4gPiA+ID4gCj4gPiA+ID4gRm9yIHRoZSB0 aWxlcyBmb3JtYXQgaW4gdGhpcyBwYXRjaHNldChYMEwyL1gwTDApIHdoaWNoIG9yZGVycyB0aGUg dGlsZXMKPiA+ID4gPiBpbiBsaW5lYXIgbWFubmVyIHRoZSBwaXRjaCB3aWxsIGF0IGxlYXN0IGdl dCB5b3UgYXQgdGhlIGJlZ2lubmluZyBvZiBhCj4gPiA+ID4gcm93Lgo+ID4gPiA+IAo+ID4gPiA+ IEknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgd2hhdCdzIHRoZSBtZWFuaW5nIG9mIGEgcGl0Y2gg Zm9yCj4gPiA+ID4gRFJNX0ZPUk1BVF9NT0RfU0FNU1VOR182NF8zMl9USUxFIHdoaWNoIG9yZGVy cyB0aGUgdGlsZXMgaW4gWiBzaGFwZS4KPiA+ID4gPiBIb3cgZmFyIHdpbGwgYSBwaXRjaCBmb3Ig dGhpcyBmb3JtYXQgZ2V0IHlvdSwgaXQgc2VlbXMgdGhhdCB1c2luZyBqdXN0Cj4gPiA+ID4gd2l0 ZHRoICogY3BwIHdpbGwgZ2V0IHlvdSBzb21ld2hlcmUgaW4gdGhlIG1pZGRsZS4KPiA+ID4gCj4g PiA+IFNvIHRoZXJlJ3MgMiBpbnRlcnByZXRhdGlvbnMgb2YgcGl0Y2ggaWYgeW91IGhhdmUgYSB0 aWxlL2Jsb2NrIGxheW91dDoKPiA+ID4gCj4gPiA+IC0gV2hhdCB5b3UgZG8sIHdoZXJlIHBpdGNo ID0gbnVtX3RpbGVzX3Blcl9yb3cgKiB0aWxlX3NpemUuIEFkZGluZyBwaXRjaAo+ID4gPiAgIHRv IHRoZSBiYXNlIGFkZHJlc3Mgd2lsbCB0aGVuIGFkdmFuY2UgdGlsZV9oIHBpeGVscy4gTGV0J3Mg Y2FsbCB0aGlzCj4gPiA+ICAgYWxleF9waXRjaC4KPiA+ID4gCj4gPiA+IC0gV2hhdCBJJ20gcHJv cG9zaW5nLCBhbmQgd2hhdCBOVjEyTVQgZG9lcywgYW5kIHdoYXQgZXZlcnkgb3RoZXIgZHJpdmVy Cj4gPiA+ICAgZG9lcyAoYWZhaWssIEkgZGlkbid0IGNhcmVmdWxseSBjaGVjayB0aGVtIGFsbCk6 IFByZXRlbmQgdGhlcmUncyBubwo+ID4gPiAgIHRpbGUsIGFuZCBjb21wdXRlIHRoZSBwaXRjaCBh cyBpZiBpdCdzIGEgbGluZWFyIGZvcm1hdC4gVGhlIHJlYXNvbgo+ID4gPiAgIGJlaGluZCB0aGlz IGlzIHRoYXQgZmFpcmx5IG9mdGVuIGZvciB0aWxlZCBsYXlvdXRzIChidXQgbm90IGFsd2F5cyks IHlvdQo+ID4gPiAgIGhhdmUgbWFnaWMgcmVtYXBwaW5nIGhhcmR3YXJlLCB3aGljaCBjYW4gcHJl c2VudCBhIGxpbmVhciBsYXlvdXQgdG8geW91Lgo+ID4gPiAgIFNvIGZvciBOVjEyTVQgdGhhdCB3 b3VsZCByZXNvbHZlIHRoZSBaLXNoYXBlIGFuZCBtYWNyb2Jsb2NrIGxheW91dCwgYW5kCj4gPiA+ ICAgZ2l2ZSB5b3UgYSBub3JtYWwgTlYxMiBmcmFtZWJ1ZmZlci4gTGV0J3MgY2FsbCB0aGlzIGRy bV9waXRjaC4gTm90ZSB0aGF0Cj4gPiA+ICAgdGhlIGRybSBwaXRjaCBkb2VzIF9ub3RfIG1ha2Ug YW55IHNlbnNlIHdoZW4geW91IGFkZCBpdCB0byB0aGUgcGh5c2ljYWwKPiA+ID4gICBiYXNlIGFk ZHJlc3MsIG9ubHkgaWYgeW91IGFkZCBtdXRsaXBsZSdzIG9mIHRpbGVfaCwgdG8gZ2V0IGFuIGVu dGlyZQo+ID4gPiAgIHRpbGUgcm93Lgo+ID4gPiAKPiA+ID4gCj4gPiA+IFRoZSByZWxhdGlvbnNo aXAgaXMgZHJtX3BpdGNoID0gYWxleF9waXRjaCAvIHRpbGVfaC4gSSdtIG5vdCBhd2FyZSBvZiBh bnkKPiA+ID4gZm9ybWF0IHdoZXJlIHRoYXQgZG9lc24ndCBkZXZpZGUgZXZlbmx5LCBzbyBpbiBw cmFjdGljZSBpdCBkb2Vzbid0IG1hdHRlcgo+ID4gPiB3aGljaCBvbmUgeW91IHBpY2suIEltbyBl aXRoZXIgaGFzIHVwL2Rvd25zaWRlcy4KPiA+IAo+ID4gU2luY2UgZXZlcnlvbmUgaXMgYWxyZWFk eSB1c2luZyB0aGUgbGluZWFyIHBpdGNoIGFwcHJvYWNoIEknZCBzdWdnZXN0Cj4gPiBzdGlja2lu ZyB3aXRoIHRoYXQuIE1pZ2h0IG1ha2UgbGlmZSBhIGxpdHRsZSBlYXNpZXIgZm9yIGdlbmVyaWMK PiA+IHVzZXJzcGFjZSAodGhvdWdoIGl0IHN0aWxsIG5lZWRzIHRvIGtub3cgb3RoZXIgZGV0YWls cyBvZiB0aGUgdGlsaW5nCj4gPiBmb3JtYXQgb2YgY291cnNlKS4KPiAKPiBZZWFoLCB0aGF0J3Mg d2hhdCBJIG1lYW50IHRvIGFkZC9jbGFyaWZ5LiBUaGUgZmFrZSBsaW5lYXIgcGl0Y2ggaXMsIHRv IHRoZQo+IGJlc3Qgb2YgbXkga25vd2xlZGdlLCBhbHJlYWR5IHRoZSBzdGFuZGFyZCB3ZSdyZSB1 c2luZyBpbiBkcm0uCgpBbmQgdXBvbiBmdXJ0aGVyIHJlZmxlY3Rpb24gdGhhdCB3YXMgaW4gZmFj dCBldmVuIGJha2VkIGludG8gc29tZQpvZiB0aGUgY29kZSBpbiBmcmFtZWJ1ZmZlcl9jaGVjaygp IHNpbmNlIHllYXJzIGFnby4gQnV0IHRob3NlIHNhbml0eQpjaGVja3MgY2FuJ3QgY2F0Y2ggc29t ZW9uZSB1c2luZyB0aGUgdGlsZSByb3cgc2l6ZSBhcyB0aGUgcGl0Y2ggc2luY2UKdGhhdCdzIGFs d2F5cyBncmVhdGVyIG9yIGVxdWFsIHRvIHRoZSBsaW5lYXIgcGl0Y2gsIGJ1dCBjbGVhcmx5IHRo ZQp3YXkgdGhlIGNvZGUgd2FzIHdyaXR0ZW4gYXNzdW1lcyBsaW5lYXIgcGl0Y2guCgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=