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: Wed, 22 Aug 2018 16:45:34 +0300 Message-ID: <20180822134534.GD5565@intel.com> References: <20180821183004.6775-1-alexandru-cosmin.gheorghe@arm.com> <20180821183004.6775-5-alexandru-cosmin.gheorghe@arm.com> <20180822131854.GC5565@intel.com> <20180822133606.GA11029@e114479-lin.cambridge.arm.com> 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 8A7216E138 for ; Wed, 22 Aug 2018 13:45:38 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180822133606.GA11029@e114479-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexandru-Cosmin Gheorghe Cc: ayan.halder@arm.com, airlied@linux.ie, daniel.vetter@ffwll.ch, 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 T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMDI6MzY6MDZQTSArMDEwMCwgQWxleGFuZHJ1LUNvc21p biBHaGVvcmdoZSB3cm90ZToKPiBPbiBXZWQsIEF1ZyAyMiwgMjAxOCBhdCAwNDoxODo1NFBNICsw MzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUdWUsIEF1ZyAyMSwgMjAxOCBhdCAw NzozMDowM1BNICswMTAwLCBBbGV4YW5kcnUgR2hlb3JnaGUgd3JvdGU6Cj4gPiA+IFRoZSBwcmV2 aW91cyBwYXRjaCBhZGRlZCB0aWxlX3cgYW5kIHRpbGVfaCwgd2hpY2ggcmVwcmVzZW50IHRoZQo+ ID4gPiBob3Jpem9udGFsIGFuZCB2ZXJ0aWNhbCBzaXplcyBvZiBhIHRpbGUuCj4gPiA+IAo+ID4g PiBUaGlzIG9uZSB1c2VzIHRoYXQgdG8gcGx1bWIgdGhyb3VnaCBkcm0gY29yZSBpbiBvcmRlciB0 byBiZSBhYmxlIHRvCj4gPiA+IGhhbmRsZSBsaW5lYXIgdGlsZSBmb3JtYXRzIHdpdGhvdXQgdGhl IG5lZWQgZm9yIGRyaXZlcnMgdG8gcm9sbCB1cAo+ID4gPiB0aGVpciBvd24gaW1wbGVtZW50YXRp b24uCj4gPiA+IAo+ID4gPiBUaGlzIHBhdGNoIGhhZCBiZWVuIHdyaXR0ZW4gd2l0aCBNYWxpLWRw IFgwTDIgYW5kIFgwTDAgaW4gbWluZCB3aGljaAo+ID4gPiBpcyBhIDEgcGxhbmUgWUNiQ3IgNDIw IGZvcm1hdCB3aXRoIGEgMngyIHRpbGUsIHRoYXQgdXNlcyBpbiBhdmVyYWdlIDIKPiA+ID4gYnl0 ZXMgcGVyIHBpeGVsIGFuZCB3aGVyZSB0aWxlcyBhcmUgbGFpZCBvdXQgaW4gYSBsaW5lYXIgbWFu bmVyLgo+ID4gPiAKPiA+ID4gTm93IHdoYXQgYXJlIHRoZSByZXN0cmljdGlvbnM6Cj4gPiA+IAo+ ID4gPiAxLiBQaXRjaCBpbiBieXRlcyBpcyBleHBlY3RlZCB0byBjb3ZlciBhdCBsZWFzdCB0aWxl X2ggKiB3aWR0aCBpbgo+ID4gPiBwaXhlbHMuIER1ZSB0byB0aGlzIHRoZSBwbGFjZXMgd2hlcmUg dGhlIHBpdGNoIGlzIGNoZWNrZWQvdXNlZCBuZWVkIHRvCj4gPiA+IGJlIHVwZGF0ZWQgdG8gdGFr ZSBpbnRvIGNvbnNpZGVyYXRpb24gdGhlIHRpbGVfdywgdGlsZV9oIGFuZAo+ID4gPiB0aWxlX3Np emUuCj4gPiA+ICAgICB0aWxlX3NpemUgPSBjcHAgKiB0aWxlX3cgKiB0aWxlX2gKPiA+ID4gCj4g PiA+IDIuIFdoZW4gZG9pbmcgc291cmNlIGNyb3BwaW5nIHBsYW5lX3NyY194L3kgbmVlZCB0byBi ZSBhIG11bHRpcGxlIG9mCj4gPiA+IHRpbGVfdy90aWxlX2ggYW5kIHdlIG5lZWQgdG8gdGFrZSBp bnRvIGNvbnNpZGVyYXRpb24gdGhlIHRpbGVfdy90aWxlX2gKPiA+ID4gd2hlbiBjb21wdXRpbmcg dGhlIHN0YXJ0IGFkZHJlc3MuCj4gPiA+IAo+ID4gPiBGb3IgYWxsIG5vbi10aWxlZCBmb3JtYXRz IHRoZSB0aWxlX3cgYW5kIHRpbGVfaCB3aWxsIGJlIDEsIHNvIGlmIEkKPiA+ID4gZGlkbid0IG1p c3MgYW55dGhpbmcgbm90aGluZyBzaG91bGQgY2hhbmdlLgo+ID4gPiAKPiA+ID4gUmVnYXJkaW5n IG11bHRpLXBsYW5hciBsaW5lYXIgdGlsZSBmb3JtYXRzLCBJJ20gbm90IHN1cmUgaG93IHRob3Nl Cj4gPiA+IHNob3VsZCBiZSBoYW5kbGUgSSBraW5kIG9mIGFzc3VtZWQgdGhhdCB0aWxlX2gvdGls ZV93IHdpbGwgaGF2ZSB0byBiZQo+ID4gPiBkaXZpZGVkIGJ5IGhvcml6b250YWwvc3Vic2FtcGxp bmcuIEFueXdheSwgSSB0aGluayBpdCdzIGJlc3QgdG8ganVzdAo+ID4gPiBwdXQgYW4gd2Fybmlu ZyBpbiB0aGVyZSBhbmQgaGFuZGxlIGl0IHdoZW4gc29tZW9uZSB0cmllcyB0byBhZGQKPiA+ID4g c3VwcG9ydCBmb3IgdGhlbS4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRydSBH aGVvcmdoZSA8YWxleGFuZHJ1LWNvc21pbi5naGVvcmdoZUBhcm0uY29tPgo+ID4gPiAtLS0KPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgICAgICAgICAgIHwgIDggKysr Cj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYyAgICAgICAgICB8IDEx ICsrKystCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvdXJjYy5jICAgICAgICAgICAgICAg ICB8IDUyICsrKysrKysrKysrKysrKysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Zy YW1lYnVmZmVyLmMgICAgICAgICAgICB8IDE5ICsrKysrLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fZ2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5jIHwgMTAgKystLQo+ID4gPiAgaW5jbHVkZS9k cm0vZHJtX2ZvdXJjYy5oICAgICAgICAgICAgICAgICAgICAgfCAgMiArCj4gPiA+ICA2IGZpbGVz IGNoYW5nZWQsIDk0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKPiA+ID4gaW5kZXggM2ViMDYxZTExZTJlLi43YTNlODkzYTRjZDEgMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gPiBAQCAtMTA4Nyw2ICsxMDg3LDE0IEBA IHN0YXRpYyBpbnQgZHJtX2F0b21pY19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiA+ID4gIAkJcmV0dXJuIC1FTk9TUEM7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ICsJLyog TWFrZSBzdXJlIHNvdXJjZSBjb29yZGluYXRlcyBhcmUgYSBtdWx0aXBsZSBvZiB0aWxlIHNpemVz ICovCj4gPiA+ICsJaWYgKChzdGF0ZS0+c3JjX3ggPj4gMTYpICUgc3RhdGUtPmZiLT5mb3JtYXQt PnRpbGVfdyB8fAo+ID4gPiArCSAgICAoc3RhdGUtPnNyY195ID4+IDE2KSAlIHN0YXRlLT5mYi0+ Zm9ybWF0LT50aWxlX2gpIHsKPiA+ID4gKwkJRFJNX0RFQlVHX0FUT01JQygiW1BMQU5FOiVkOiVz XSBTb3VyY2UgY29vcmRpbmF0ZXMgZG8gbm90IG1lZXQgdGlsZSByZXN0cmljdGlvbnMiLAo+ID4g PiArCQkJCSBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUpOwo+ID4gPiArCQlyZXR1cm4gLUVJ TlZBTDsKPiA+ID4gKwl9Cj4gPiAKPiA+IEZlZWxzIHJhdGhlciB3cm9uZyB0byBtZSB0byBwdXQg c3VjaCBoYXJkd2FyZSBzcGVjaWZpYyBsaW1pdGF0aW9ucyBpbnRvCj4gPiB0aGUgY29yZS4KPiAK PiBZZWFoLCB0aGUgcHJvYmxlbSBpcyB0aGF0IG90aGVyd2lzZSBkcm1fZmJfY21hX2dldF9nZW1f YWRkciB3b3VsZG4ndAo+IHdvcmsuCgpJZiB0aGF0IGd1eSBpcyBzdXBwb3NlZCB0byBnaXZlIHlv dSBhIHRpbGUgYWxpZ25lZCBhZGRyZXNzIHRoZW4gaXQgY291bGQKanVzdCBkbyB0aGF0IGFuZCBs ZWF2ZSBpdCB1cCB0byB0aGUgZHJpdmVyIHRvIGRlYWwgd2l0aCB0aGUgcmVtYWluZGVyIG9mCnRo ZSBjb29yZGluYXRlcz8KCj4gCj4gQW4gYWx0ZXJuYXRpdmUsIHdvdWxkIGJlIHRvIGluY2x1ZGUg aXQgaW4gdGhlIGRyaXZlciBhbmQgcHV0IGFuIFdBUk4KPiBpbiBkcm1fZmJfY21hX2dldF9nZW1f YWRkciBpbiBjYXNlIHNvbWVvbmUgZWxzZSB1c2VzIGl0IHdpdGggYQo+IHNyY194L3NyY195IHRp bGUgbXVsdGlwbGVzLgo+IAo+IFdoYXQgZG8geW91IHRoaW5rIGFib3V0IHRoYXQgPwo+IAo+ID4g Cj4gPiA+ICsKPiA+ID4gIAlpZiAocGxhbmVfc3dpdGNoaW5nX2NydGMoc3RhdGUtPnN0YXRlLCBw bGFuZSwgc3RhdGUpKSB7Cj4gPiA+ICAJCURSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDolc10g c3dpdGNoaW5nIENSVEMgZGlyZWN0bHlcbiIsCj4gPiA+ICAJCQkJIHBsYW5lLT5iYXNlLmlkLCBw bGFuZS0+bmFtZSk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2Nt YV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfY21hX2hlbHBlci5jCj4gPiA+IGlu ZGV4IDQ3ZTBlMmY2NjQyZC4uNGQ4MDUyYWRjZTY3IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4gPiBAQCAtODcsNiArODcsOCBAQCBkbWFfYWRkcl90IGRy bV9mYl9jbWFfZ2V0X2dlbV9hZGRyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiAg CXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKm9iajsKPiA+ID4gIAlkbWFfYWRkcl90IHBhZGRy Owo+ID4gPiAgCXU4IGhfZGl2ID0gMSwgdl9kaXYgPSAxOwo+ID4gPiArCXUzMiB0aWxlX3cgPSBk cm1fZm9ybWF0X3RpbGVfd2lkdGgoZmItPmZvcm1hdCwgcGxhbmUpOwo+ID4gPiArCXUzMiB0aWxl X2ggPSBkcm1fZm9ybWF0X3RpbGVfaGVpZ2h0KGZiLT5mb3JtYXQsIHBsYW5lKTsKPiA+ID4gIAo+ ID4gPiAgCW9iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIHBsYW5lKTsKPiA+ID4gIAlp ZiAoIW9iaikKPiA+ID4gQEAgLTk5LDggKzEwMSwxMyBAQCBkbWFfYWRkcl90IGRybV9mYl9jbWFf Z2V0X2dlbV9hZGRyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gPiAgCQl2X2RpdiA9 IGZiLT5mb3JtYXQtPnZzdWI7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0JcGFkZHIgKz0gKGZi LT5mb3JtYXQtPmNwcFtwbGFuZV0gKiAoc3RhdGUtPnNyY194ID4+IDE2KSkgLyBoX2RpdjsKPiA+ ID4gLQlwYWRkciArPSAoZmItPnBpdGNoZXNbcGxhbmVdICogKHN0YXRlLT5zcmNfeSA+PiAxNikp IC8gdl9kaXY7Cj4gPiA+ICsJcGFkZHIgKz0gKGZiLT5mb3JtYXQtPmNwcFtwbGFuZV0gKiB0aWxl X3cgKiAoc3RhdGUtPnNyY194ID4+IDE2KSkKPiA+ID4gKwkJCS8gaF9kaXY7Cj4gPiA+ICsJLyoK PiA+ID4gKwkgKiBGb3IgdGlsZSBmb3JtYXRzIHBpdGNoZXMgYXJlIGV4cGVjdGVkIHRvIGNvdmVy IGF0IGxlYXN0Cj4gPiA+ICsJICogd2lkdGggKiB0aWxlX2ggcGl4ZWxzCj4gPiA+ICsJICovCj4g PiA+ICsJcGFkZHIgKz0gKChmYi0+cGl0Y2hlc1twbGFuZV0gLyB0aWxlX2gpICogKHN0YXRlLT5z cmNfeSA+PiAxNikpIC8gdl9kaXY7CgpQcmVzdW1hYmx5IHRoaXMgdGhpbmcgc2hvdWxkIGJlIHVz aW5nIHRoZSBjbGlwcGVkIGNvb3JkaW5hdGVzIGluc3RlYWQgb2YKdGhlIHJhdyB1c2VyIHByb3Zp ZGVkIG9uZXM/Cgo+ID4gPiAgCj4gPiA+ICAJcmV0dXJuIHBhZGRyOwo+ID4gPiAgfQo+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZm91cmNjLmMKPiA+ID4gaW5kZXggZjU1Y2Q5M2JhMmQwLi5kNmM5YzVhYTQwMzYgMTAw NjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm91cmNjLmMKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9mb3VyY2MuYwo+ID4gPiBAQCAtNTU3LDMgKzU1Nyw1NSBAQCBp bnQgZHJtX2Zvcm1hdF9wbGFuZV9oZWlnaHQoaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCBp bnQgcGxhbmUpCj4gPiA+ICAJcmV0dXJuIGhlaWdodCAvIGluZm8tPnZzdWI7Cj4gPiA+ICB9Cj4g PiA+ICBFWFBPUlRfU1lNQk9MKGRybV9mb3JtYXRfcGxhbmVfaGVpZ2h0KTsKPiA+ID4gKwo+ID4g PiArLyoqCj4gPiA+ICsgKiBkcm1fZm9ybWF0X3RpbGVfd2lkdGggLSB3aWR0aCBvZiBhIHRpbGUg Zm9yIHRpbGUgZm9ybWF0cywgc2hvdWxkIGJlIDEgZm9yIGFsbAo+ID4gPiArICogbm9uLXRpbGVk IGZvcm1hdHMuCj4gPiA+ICsgKiBAZm9ybWF0OiBwaXhlbCBmb3JtYXQKPiA+ID4gKyAqIEBwbGFu ZTogcGxhbmUgaW5kZXgKPiA+ID4gKyAqCj4gPiA+ICsgKiBSZXR1cm5zOgo+ID4gPiArICogVGhl IHdpZHRoIG9mIGEgdGlsZSwgZGVwZW5kaW5nIG9uIHRoZSBwbGFuZSBpbmRleCBhbmQgaG9yaXpv bnRhbCBzdWItc2FtcGxpbmcKPiA+ID4gKyAqLwo+ID4gPiArdWludDMyX3QgZHJtX2Zvcm1hdF90 aWxlX3dpZHRoKGNvbnN0IHN0cnVjdCBkcm1fZm9ybWF0X2luZm8gKmluZm8sIGludCBwbGFuZSkK PiA+ID4gK3sKPiA+ID4gKwlXQVJOX09OKCFpbmZvLT50aWxlX3cpOwo+ID4gPiArCWlmIChwbGFu ZSA9PSAwIHx8IGluZm8tPnRpbGVfdyA9PSAxKQo+ID4gPiArCQlyZXR1cm4gaW5mby0+dGlsZV93 Owo+ID4gPiArCj4gPiA+ICsJLyoKPiA+ID4gKwkgKiBNdWx0aSBwbGFuYXIgdGlsZWQgZm9ybWF0 cyBoYXZlIG5ldmVyIGJlZW4gdGVzdGVkLCBjaGVjayB0aGF0Cj4gPiA+ICsJICogYnVmZmVyIHJl c3RyaWN0aW9ucyBhbmQgc291cmNlIGNyb3BwaW5nIG1lZXQgdGhlIGZvcm1hdCBsYXlvdXQKPiA+ ID4gKwkgKiBleHBlY3RhdGlvbnMuCj4gPiA+ICsJICovCj4gPiA+ICsJV0FSTl9PTigiTXVsdGkt cGxhbmFyIHRpbGVkIGZvcm1hdHMgdW5zdXBwb3J0ZWQiKTsKPiA+ID4gKwlXQVJOX09OKGluZm8t PnRpbGVfdyAlIGluZm8tPmhzdWIpOwo+ID4gPiArCXJldHVybiBpbmZvLT50aWxlX3cgLyBpbmZv LT5oc3ViOwo+ID4gPiArfQo+ID4gPiArRVhQT1JUX1NZTUJPTChkcm1fZm9ybWF0X3RpbGVfd2lk dGgpOwo+ID4gPiArCj4gPiA+ICsvKioKPiA+ID4gKyAqIGRybV9mb3JtYXRfdGlsZV9oZWlnaHQg LSBoZWlnaHQgb2YgYSB0aWxlIGZvciB0aWxlIGZvcm1hdHMsIHNob3VsZCBiZSAxIGZvcgo+ID4g PiArICogYWxsIG5vbi10aWxlZCBmb3JtYXRzLgo+ID4gPiArICogQGZvcm1hdDogcGl4ZWwgZm9y bWF0Cj4gPiA+ICsgKiBAcGxhbmU6IHBsYW5lIGluZGV4Cj4gPiA+ICsgKgo+ID4gPiArICogUmV0 dXJuczoKPiA+ID4gKyAqIFRoZSBoZWlnaHQgb2YgYSB0aWxlLCBkZXBlbmRpbmcgb24gdGhlIHBs YW5lIGluZGV4IGFuZCB2ZXJ0aWNhbCBzdWItc2FtcGxpbmcKPiA+ID4gKyAqLwo+ID4gPiArdWlu dDMyX3QgZHJtX2Zvcm1hdF90aWxlX2hlaWdodChjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZv ICppbmZvLCBpbnQgcGxhbmUpCj4gPiA+ICt7Cj4gPiA+ICsJV0FSTl9PTighaW5mby0+dGlsZV9o KTsKPiA+ID4gKwlpZiAocGxhbmUgPT0gMCB8fCBpbmZvLT50aWxlX2ggPT0gMSkKPiA+ID4gKwkJ cmV0dXJuIGluZm8tPnRpbGVfaDsKPiA+ID4gKwo+ID4gPiArCS8qCj4gPiA+ICsJICogTXVsdGkg cGxhbmFyIHRpbGVkIGZvcm1hdHMgaGF2ZSBuZXZlciBiZWVuIHRlc3RlZCwgY2hlY2sgdGhhdAo+ ID4gPiArCSAqIGJ1ZmZlciByZXN0cmljdGlvbnMgYW5kIHNvdXJjZSBjcm9wcGluZyBtZWV0IHRo ZSBmb3JtYXQgbGF5b3V0Cj4gPiA+ICsJICogZXhwZWN0YXRpb25zLgo+ID4gPiArCSAqLwo+ID4g PiArCVdBUk5fT04oIk11bHRpLXBsYW5hciB0aWxlZCBmb3JtYXRzIHVuc3VwcG9ydGVkIik7Cj4g PiA+ICsJV0FSTl9PTihpbmZvLT50aWxlX2ggJSBpbmZvLT52c3ViKTsKPiA+ID4gKwlyZXR1cm4g aW5mby0+dGlsZV9oIC8gaW5mby0+dnN1YjsKPiA+ID4gK30KPiA+ID4gK0VYUE9SVF9TWU1CT0wo ZHJtX2Zvcm1hdF90aWxlX2hlaWdodCk7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2ZyYW1lYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMK PiA+ID4gaW5kZXggNzgxYWYxZDQyZDc2Li41NzUwOWU1MWNiODAgMTAwNjQ0Cj4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKPiA+ID4gQEAgLTE5MSwxOSArMTkxLDMyIEBAIHN0YXRp YyBpbnQgZnJhbWVidWZmZXJfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gIAkJ dW5zaWduZWQgaW50IHdpZHRoID0gZmJfcGxhbmVfd2lkdGgoci0+d2lkdGgsIGluZm8sIGkpOwo+ ID4gPiAgCQl1bnNpZ25lZCBpbnQgaGVpZ2h0ID0gZmJfcGxhbmVfaGVpZ2h0KHItPmhlaWdodCwg aW5mbywgaSk7Cj4gPiA+ICAJCXVuc2lnbmVkIGludCBjcHAgPSBpbmZvLT5jcHBbaV07Cj4gPiA+ ICsJCXVuc2lnbmVkIGludCB0aWxlX3cgPSBkcm1fZm9ybWF0X3RpbGVfd2lkdGgoaW5mbywgaSk7 Cj4gPiA+ICsJCXVuc2lnbmVkIGludCB0aWxlX2ggPSBkcm1fZm9ybWF0X3RpbGVfaGVpZ2h0KGlu Zm8sIGkpOwo+ID4gPiArCQl1bnNpZ25lZCBpbnQgdGlsZV9zaXplID0gY3BwICogdGlsZV93ICog dGlsZV9oOwo+ID4gPiArCQl1bnNpZ25lZCBpbnQgbnVtX2h0aWxlczsKPiA+ID4gKwkJdW5zaWdu ZWQgaW50IG51bV92dGlsZXM7Cj4gPiA+ICAKPiA+ID4gIAkJaWYgKCFyLT5oYW5kbGVzW2ldKSB7 Cj4gPiA+ICAJCQlEUk1fREVCVUdfS01TKCJubyBidWZmZXIgb2JqZWN0IGhhbmRsZSBmb3IgcGxh bmUgJWRcbiIsIGkpOwo+ID4gPiAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICAJCX0KPiA+ID4g IAo+ID4gPiAtCQlpZiAoKHVpbnQ2NF90KSB3aWR0aCAqIGNwcCA+IFVJTlRfTUFYKQo+ID4gPiAr CQlpZiAoKHdpZHRoICUgdGlsZV93KSB8fCAoaGVpZ2h0ICUgdGlsZV9oKSkgewo+ID4gPiArCQkJ RFJNX0RFQlVHX0tNUygiYnVmZmVyIHdpZHRoL2hlaWdodCBuZWVkIHRvIGJlIGEgbXVsdGlwbGUg b2YgdGlsZSBkaW1lbnNpb25zXG4iKTsKPiA+ID4gKwkJCXJldHVybiAtRUlOVkFMOwo+ID4gPiAr CQl9Cj4gPiA+ICsKPiA+ID4gKwkJbnVtX2h0aWxlcyA9IHdpZHRoIC8gdGlsZV93Owo+ID4gPiAr CQludW1fdnRpbGVzID0gaGVpZ2h0IC8gdGlsZV9oOwo+ID4gPiArCj4gPiA+ICsJCWlmICgodWlu dDY0X3QpbnVtX2h0aWxlcyAqIHRpbGVfc2l6ZSA+IFVJTlRfTUFYKQo+ID4gPiAgCQkJcmV0dXJu IC1FUkFOR0U7Cj4gPiA+ICAKPiA+ID4gLQkJaWYgKCh1aW50NjRfdCkgaGVpZ2h0ICogci0+cGl0 Y2hlc1tpXSArIHItPm9mZnNldHNbaV0gPiBVSU5UX01BWCkKPiA+ID4gKwkJaWYgKCh1aW50NjRf dCludW1fdnRpbGVzICogci0+cGl0Y2hlc1tpXSArIHItPm9mZnNldHNbaV0gPiBVSU5UX01BWCkK PiA+ID4gIAkJCXJldHVybiAtRVJBTkdFOwo+ID4gPiAgCj4gPiA+IC0JCWlmIChyLT5waXRjaGVz W2ldIDwgd2lkdGggKiBjcHApIHsKPiA+ID4gKwkJaWYgKHItPnBpdGNoZXNbaV0gPCBudW1faHRp bGVzICogdGlsZV9zaXplKSB7Cj4gPiA+ICAJCQlEUk1fREVCVUdfS01TKCJiYWQgcGl0Y2ggJXUg Zm9yIHBsYW5lICVkXG4iLCByLT5waXRjaGVzW2ldLCBpKTsKPiA+ID4gIAkJCXJldHVybiAtRUlO VkFMOwo+ID4gPiAgCQl9Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bV9mcmFtZWJ1ZmZlcl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2ZyYW1lYnVm ZmVyX2hlbHBlci5jCj4gPiA+IGluZGV4IDI4MTBkNDEzMTQxMS4uM2QwMWExYTlkNWQyIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIu Ywo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV9mcmFtZWJ1ZmZlcl9oZWxwZXIu Ywo+ID4gPiBAQCAtMTYxLDYgKzE2MSwxMSBAQCBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2Z1bmNz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+ID4gIAkJ dW5zaWduZWQgaW50IHdpZHRoID0gbW9kZV9jbWQtPndpZHRoIC8gKGkgPyBpbmZvLT5oc3ViIDog MSk7Cj4gPiA+ICAJCXVuc2lnbmVkIGludCBoZWlnaHQgPSBtb2RlX2NtZC0+aGVpZ2h0IC8gKGkg PyBpbmZvLT52c3ViIDogMSk7Cj4gPiA+ICAJCXVuc2lnbmVkIGludCBtaW5fc2l6ZTsKPiA+ID4g KwkJdW5zaWduZWQgaW50IHRpbGVfdyA9IGRybV9mb3JtYXRfdGlsZV93aWR0aChpbmZvLCBpKTsK PiA+ID4gKwkJdW5zaWduZWQgaW50IHRpbGVfaCA9IGRybV9mb3JtYXRfdGlsZV9oZWlnaHQoaW5m bywgaSk7Cj4gPiA+ICsJCXVuc2lnbmVkIGludCB0aWxlX3NpemUgPSBpbmZvLT5jcHBbaV0gKiB0 aWxlX3cgKiB0aWxlX2g7Cj4gPiA+ICsJCXVuc2lnbmVkIGludCBudW1faHRpbGVzID0gd2lkdGgg LyB0aWxlX3c7Cj4gPiA+ICsJCXVuc2lnbmVkIGludCBudW1fdnRpbGVzID0gaGVpZ2h0IC8gdGls ZV9oOwo+ID4gPiAgCj4gPiA+ICAJCW9ianNbaV0gPSBkcm1fZ2VtX29iamVjdF9sb29rdXAoZmls ZSwgbW9kZV9jbWQtPmhhbmRsZXNbaV0pOwo+ID4gPiAgCQlpZiAoIW9ianNbaV0pIHsKPiA+ID4g QEAgLTE2OSw5ICsxNzQsOCBAQCBkcm1fZ2VtX2ZiX2NyZWF0ZV93aXRoX2Z1bmNzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKPiA+ID4gIAkJCWdvdG8gZXJy X2dlbV9vYmplY3RfcHV0Owo+ID4gPiAgCQl9Cj4gPiA+ICAKPiA+ID4gLQkJbWluX3NpemUgPSAo aGVpZ2h0IC0gMSkgKiBtb2RlX2NtZC0+cGl0Y2hlc1tpXQo+ID4gPiAtCQkJICsgd2lkdGggKiBp bmZvLT5jcHBbaV0KPiA+ID4gLQkJCSArIG1vZGVfY21kLT5vZmZzZXRzW2ldOwo+ID4gPiArCQlt aW5fc2l6ZSA9IChudW1fdnRpbGVzIC0gMSkgKiBtb2RlX2NtZC0+cGl0Y2hlc1tpXQo+ID4gPiAr CQkJICsgbnVtX2h0aWxlcyAqIHRpbGVfc2l6ZSArIG1vZGVfY21kLT5vZmZzZXRzW2ldOwo+ID4g PiAgCj4gPiA+ICAJCWlmIChvYmpzW2ldLT5zaXplIDwgbWluX3NpemUpIHsKPiA+ID4gIAkJCWRy bV9nZW1fb2JqZWN0X3B1dF91bmxvY2tlZChvYmpzW2ldKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9mb3VyY2MuaCBiL2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaAo+ID4gPiBp bmRleCA0MTY4MWNmMmIxNDAuLjAwMWFmY2E5YmNmZiAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX2ZvdXJjYy5oCj4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9mb3VyY2MuaAo+ ID4gPiBAQCAtNzYsNiArNzYsOCBAQCBpbnQgZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1w bGluZyh1aW50MzJfdCBmb3JtYXQpOwo+ID4gPiAgaW50IGRybV9mb3JtYXRfdmVydF9jaHJvbWFf c3Vic2FtcGxpbmcodWludDMyX3QgZm9ybWF0KTsKPiA+ID4gIGludCBkcm1fZm9ybWF0X3BsYW5l X3dpZHRoKGludCB3aWR0aCwgdWludDMyX3QgZm9ybWF0LCBpbnQgcGxhbmUpOwo+ID4gPiAgaW50 IGRybV9mb3JtYXRfcGxhbmVfaGVpZ2h0KGludCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwgaW50 IHBsYW5lKTsKPiA+ID4gK3VpbnQzMl90IGRybV9mb3JtYXRfdGlsZV93aWR0aChjb25zdCBzdHJ1 Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvLCBpbnQgcGxhbmUpOwo+ID4gPiArdWludDMyX3QgZHJt X2Zvcm1hdF90aWxlX2hlaWdodChjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvLCBp bnQgcGxhbmUpOwo+ID4gPiAgY29uc3QgY2hhciAqZHJtX2dldF9mb3JtYXRfbmFtZSh1aW50MzJf dCBmb3JtYXQsIHN0cnVjdCBkcm1fZm9ybWF0X25hbWVfYnVmICpidWYpOwo+ID4gPiAgCj4gPiA+ ICAjZW5kaWYgLyogX19EUk1fRk9VUkNDX0hfXyAqLwo+ID4gPiAtLSAKPiA+ID4gMi4xOC4wCj4g PiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+ID4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwKPiA+IAo+ID4gLS0gCj4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+IElu dGVsCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwKPiAKPiAtLSAKPiBDaGVlcnMsCj4gQWxleCBHCgotLSAKVmlsbGUgU3lyasOkbMOk CkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=