From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH igt 2/3] lib/igt_draw: add support for Y tiling Date: Wed, 10 Feb 2016 09:22:29 +0100 Message-ID: <20160210082229.GQ11240@phenom.ffwll.local> References: <1454093192-23857-1-git-send-email-paulo.r.zanoni@intel.com> <1454093192-23857-2-git-send-email-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f51.google.com (mail-wm0-f51.google.com [74.125.82.51]) by gabe.freedesktop.org (Postfix) with ESMTPS id C375F6E660 for ; Wed, 10 Feb 2016 00:22:06 -0800 (PST) Received: by mail-wm0-f51.google.com with SMTP id g62so15772516wme.0 for ; Wed, 10 Feb 2016 00:22:06 -0800 (PST) Content-Disposition: inline In-Reply-To: <1454093192-23857-2-git-send-email-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKYW4gMjksIDIwMTYgYXQgMDQ6NDY6MzFQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IE1vc3Qgb2YgdGhlIHBhdGNoIGlzIHRvIGNoYW5nZSB0aGUgdGlsZS91bnRpbGUgZnVu Y3Rpb25zIHNvIHRoZXkgY2FuCj4gd29yayB3aXRoIFktbWFqb3IgdGlsaW5nLgo+IAo+IFdlJ3Jl IGFsc28gc2tpcHBpbmcgb24gQkxUIGZvciBZLXRpbGluZy4gU29tZSBwYXJ0cyBvZiB0aGUgc3Bl Ywo+IHN1Z2dlc3QgdGhpcyBkb2Vzbid0IHdvcmsgYW5kIHNvbWUgcGFydHMgb2YgdGhlIHNwZWMg c3VnZ2VzdCBpdCB3aWxsCj4gd29yay4gU2luY2UgSSBjb3VsZG4ndCBtYWtlIGl0IHdvcmssIFNL SVAgZm9yIG5vdy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFu b25pQGludGVsLmNvbT4KClNvIGlmIHdlIGdvIHdpdGggbm90IHNldHRpbmcgdGlsaW5nIGJ5IGRl ZmF1bHQgZm9yIFktdGlsZWQgdGhlbiB3ZSdkIG5lZWQKYSBjYWxsIHRvIGdldF90aWxpbmcgZm9y IHRoZSBibHQgZnVuY3Rpb25zIGluIGlndF9kcmF3IGFuZCBhbiBpZ3RfYXNzZXJ0CnRoYXQgaXQg bWF0Y2hlcy4gVGhlbiBjYWxsZXJzIGtub3cgd2hlbiBleGFjdGx5IHRoZXkgbmVlZCB0byBzZXQg dXAgdGlsaW5nCnRoZW1zZWx2ZXMuCgpPZiBjb3Vyc2Ugd2UgYWxzbyBuZWVkIHRvIGRvY3VtZW50 IHRoaXMgaW4gdGhlIGd0a2RvYy4KClNvdW5kcyByZWFzb25hYmxlIGFzIGFuIG92ZXJhbGwgcGxh biwgb3IgdG90YWxseSBub25zZW5zZT8KLURhbmllbAoKPiAtLS0KPiAgbGliL2lndF9kcmF3LmMg fCAxNzMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZHJhdy5jIGIvbGliL2lndF9kcmF3LmMKPiBp bmRleCA0NWZhMTBmLi40NjhhMWViIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfZHJhdy5jCj4gKysr IGIvbGliL2lndF9kcmF3LmMKPiBAQCAtMTM0LDcxICsxMzQsMTE4IEBAIHN0YXRpYyBpbnQgc3dp enpsZV9hZGRyKGludCBhZGRyLCBpbnQgc3dpenpsZSkKPiAgCXJldHVybiBhZGRyOwo+ICB9Cj4g IAo+IC0vKiBJdCdzIGFsbCBpbiAicGl4ZWwgY29vcmRpbmF0ZXMiLCBzbyBtYWtlIHN1cmUgeW91 IG11bHRpcGx5L2RpdmlkZSBieSB0aGUgYnBwCj4gLSAqIGlmIHlvdSBuZWVkIHRvLiAqLwo+IC1z dGF0aWMgaW50IGxpbmVhcl94X3lfdG9fdGlsZWRfcG9zKGludCB4LCBpbnQgeSwgdWludDMyX3Qg c3RyaWRlLCBpbnQgc3dpenpsZSwKPiAtCQkJCSAgIGludCBicHApCj4gK3N0YXRpYyBpbnQgdGls ZShpbnQgeCwgaW50IHksIHVpbnQzMl90IHhfdGlsZV9zaXplLCB1aW50MzJfdCB5X3RpbGVfc2l6 ZSwKPiArCQl1aW50MzJfdCBsaW5lX3NpemUsIGJvb2wgeG1ham9yKQo+ICB7Cj4gLQlpbnQgeF90 aWxlX3NpemUsIHlfdGlsZV9zaXplOwo+IC0JaW50IHhfdGlsZV9uLCB5X3RpbGVfbiwgeF90aWxl X29mZiwgeV90aWxlX29mZjsKPiAtCWludCBsaW5lX3NpemUsIHRpbGVfc2l6ZTsKPiAtCWludCB0 aWxlX24sIHRpbGVfb2ZmOwo+IC0JaW50IHRpbGVkX3BvcywgdGlsZXNfcGVyX2xpbmU7Cj4gLQlp bnQgcGl4ZWxfc2l6ZSA9IGJwcCAvIDg7Cj4gKwlpbnQgdGlsZV9zaXplLCB0aWxlc19wZXJfbGlu ZSwgeF90aWxlX24sIHlfdGlsZV9uLCB0aWxlX29mZiwgcG9zOwo+ICsJaW50IHRpbGVfbiwgeF90 aWxlX29mZiwgeV90aWxlX29mZjsKPiAgCj4gLQlsaW5lX3NpemUgPSBzdHJpZGU7Cj4gLQl4X3Rp bGVfc2l6ZSA9IDUxMjsKPiAtCXlfdGlsZV9zaXplID0gODsKPiAtCXRpbGVfc2l6ZSA9IHhfdGls ZV9zaXplICogeV90aWxlX3NpemU7Cj4gIAl0aWxlc19wZXJfbGluZSA9IGxpbmVfc2l6ZSAvIHhf dGlsZV9zaXplOwo+ICsJdGlsZV9zaXplID0geF90aWxlX3NpemUgKiB5X3RpbGVfc2l6ZTsKPiAg Cj4gKwl4X3RpbGVfbiA9IHggLyB4X3RpbGVfc2l6ZTsKPiAgCXlfdGlsZV9uID0geSAvIHlfdGls ZV9zaXplOwo+ICsJdGlsZV9uID0geV90aWxlX24gKiB0aWxlc19wZXJfbGluZSArIHhfdGlsZV9u Owo+ICsKPiArCXhfdGlsZV9vZmYgPSB4ICUgeF90aWxlX3NpemU7Cj4gIAl5X3RpbGVfb2ZmID0g eSAlIHlfdGlsZV9zaXplOwo+ICAKPiAtCXhfdGlsZV9uID0gKHggKiBwaXhlbF9zaXplKSAvIHhf dGlsZV9zaXplOwo+IC0JeF90aWxlX29mZiA9ICh4ICogcGl4ZWxfc2l6ZSkgJSB4X3RpbGVfc2l6 ZTsKPiArCWlmICh4bWFqb3IpCj4gKwkJdGlsZV9vZmYgPSB5X3RpbGVfb2ZmICogeF90aWxlX3Np emUgKyB4X3RpbGVfb2ZmOwo+ICsJZWxzZQo+ICsJCXRpbGVfb2ZmID0geF90aWxlX29mZiAqIHlf dGlsZV9zaXplICsgeV90aWxlX29mZjsKPiAgCj4gLQl0aWxlX24gPSB5X3RpbGVfbiAqIHRpbGVz X3Blcl9saW5lICsgeF90aWxlX247Cj4gLQl0aWxlX29mZiA9IHlfdGlsZV9vZmYgKiB4X3RpbGVf c2l6ZSArIHhfdGlsZV9vZmY7Cj4gLQl0aWxlZF9wb3MgPSB0aWxlX24gKiB0aWxlX3NpemUgKyB0 aWxlX29mZjsKPiArCXBvcyA9IHRpbGVfbiAqIHRpbGVfc2l6ZSArIHRpbGVfb2ZmOwo+ICAKPiAt CXRpbGVkX3BvcyA9IHN3aXp6bGVfYWRkcih0aWxlZF9wb3MsIHN3aXp6bGUpOwo+IC0KPiAtCXJl dHVybiB0aWxlZF9wb3MgLyBwaXhlbF9zaXplOwo+ICsJcmV0dXJuIHBvczsKPiAgfQo+ICAKPiAt LyogSXQncyBhbGwgaW4gInBpeGVsIGNvb3JkaW5hdGVzIiwgc28gbWFrZSBzdXJlIHlvdSBtdWx0 aXBseS9kaXZpZGUgYnkgdGhlIGJwcAo+IC0gKiBpZiB5b3UgbmVlZCB0by4gKi8KPiAtc3RhdGlj IHZvaWQgdGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoaW50IHRpbGVkX3BvcywgdWludDMyX3Qgc3Ry aWRlLAo+IC0JCQkJICAgIGludCBzd2l6emxlLCBpbnQgYnBwLCBpbnQgKngsIGludCAqeSkKPiAr c3RhdGljIHZvaWQgdW50aWxlKGludCB0aWxlZF9wb3MsIGludCB4X3RpbGVfc2l6ZSwgaW50IHlf dGlsZV9zaXplLAo+ICsJCSAgIHVpbnQzMl90IGxpbmVfc2l6ZSwgYm9vbCB4bWFqb3IsIGludCAq eCwgaW50ICp5KQo+ICB7Cj4gLQlpbnQgdGlsZV9uLCB0aWxlX29mZiwgdGlsZXNfcGVyX2xpbmUs IGxpbmVfc2l6ZTsKPiArCWludCB0aWxlX24sIHRpbGVfb2ZmLCB0aWxlc19wZXJfbGluZTsKPiAg CWludCB4X3RpbGVfb2ZmLCB5X3RpbGVfb2ZmOwo+ICAJaW50IHhfdGlsZV9uLCB5X3RpbGVfbjsK PiAtCWludCB4X3RpbGVfc2l6ZSwgeV90aWxlX3NpemUsIHRpbGVfc2l6ZTsKPiAtCWludCBwaXhl bF9zaXplID0gYnBwIC8gODsKPiAtCj4gLQl0aWxlZF9wb3MgPSBzd2l6emxlX2FkZHIodGlsZWRf cG9zLCBzd2l6emxlKTsKPiArCWludCB0aWxlX3NpemU7Cj4gIAo+IC0JbGluZV9zaXplID0gc3Ry aWRlOwo+IC0JeF90aWxlX3NpemUgPSA1MTI7Cj4gLQl5X3RpbGVfc2l6ZSA9IDg7Cj4gIAl0aWxl X3NpemUgPSB4X3RpbGVfc2l6ZSAqIHlfdGlsZV9zaXplOwo+ICAJdGlsZXNfcGVyX2xpbmUgPSBs aW5lX3NpemUgLyB4X3RpbGVfc2l6ZTsKPiAgCj4gIAl0aWxlX24gPSB0aWxlZF9wb3MgLyB0aWxl X3NpemU7Cj4gIAl0aWxlX29mZiA9IHRpbGVkX3BvcyAlIHRpbGVfc2l6ZTsKPiAgCj4gLQl5X3Rp bGVfb2ZmID0gdGlsZV9vZmYgLyB4X3RpbGVfc2l6ZTsKPiAtCXhfdGlsZV9vZmYgPSB0aWxlX29m ZiAlIHhfdGlsZV9zaXplOwo+ICsJaWYgKHhtYWpvcikgewo+ICsJCXlfdGlsZV9vZmYgPSB0aWxl X29mZiAvIHhfdGlsZV9zaXplOwo+ICsJCXhfdGlsZV9vZmYgPSB0aWxlX29mZiAlIHhfdGlsZV9z aXplOwo+ICsJfSBlbHNlIHsKPiArCQl5X3RpbGVfb2ZmID0gdGlsZV9vZmYgJSB5X3RpbGVfc2l6 ZTsKPiArCQl4X3RpbGVfb2ZmID0gdGlsZV9vZmYgLyB5X3RpbGVfc2l6ZTsKPiArCX0KPiAgCj4g IAl4X3RpbGVfbiA9IHRpbGVfbiAlIHRpbGVzX3Blcl9saW5lOwo+ICAJeV90aWxlX24gPSB0aWxl X24gLyB0aWxlc19wZXJfbGluZTsKPiAgCj4gLQkqeCA9ICh4X3RpbGVfbiAqIHhfdGlsZV9zaXpl ICsgeF90aWxlX29mZikgLyBwaXhlbF9zaXplOwo+ICsJKnggPSAoeF90aWxlX24gKiB4X3RpbGVf c2l6ZSArIHhfdGlsZV9vZmYpOwo+ICAJKnkgPSB5X3RpbGVfbiAqIHlfdGlsZV9zaXplICsgeV90 aWxlX29mZjsKPiAgfQo+ICAKPiArc3RhdGljIGludCBsaW5lYXJfeF95X3RvX3h0aWxlZF9wb3Mo aW50IHgsIGludCB5LCB1aW50MzJfdCBzdHJpZGUsIGludCBzd2l6emxlLAo+ICsJCQkJICAgIGlu dCBicHApCj4gK3sKPiArCWludCBwb3M7Cj4gKwlpbnQgcGl4ZWxfc2l6ZSA9IGJwcCAvIDg7Cj4g Kwo+ICsJeCAqPSBwaXhlbF9zaXplOwo+ICsJcG9zID0gdGlsZSh4LCB5LCA1MTIsIDgsIHN0cmlk ZSwgdHJ1ZSk7Cj4gKwlwb3MgPSBzd2l6emxlX2FkZHIocG9zLCBzd2l6emxlKTsKPiArCXJldHVy biBwb3MgLyBwaXhlbF9zaXplOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGxpbmVhcl94X3lfdG9f eXRpbGVkX3BvcyhpbnQgeCwgaW50IHksIHVpbnQzMl90IHN0cmlkZSwgaW50IHN3aXp6bGUsCj4g KwkJCQkgICAgaW50IGJwcCkKPiArewo+ICsJaW50IG93X3RpbGVfbiwgcG9zOwo+ICsJaW50IG93 X3NpemUgPSAxNjsKPiArCWludCBwaXhlbF9zaXplID0gYnBwIC8gODsKPiArCj4gKwkvKiBXZSBo YXZlIGFuIFkgdGlsaW5nIG9mIE9Xb3Jkcywgc28gdXNlIHRoZSB0aWxlKCkgZnVuY3Rpb24gdG8g Z2V0IHRoZQo+ICsJICogT1cgbnVtYmVyLCB0aGVuIGFkanVzdCB0byB0aGUgZmFjdCB0aGF0IHRo ZSBPVyBtYXkgaGF2ZSBtb3JlIHRoYW4gb25lCj4gKwkgKiBwaXhlbC4gKi8KPiArCXggKj0gcGl4 ZWxfc2l6ZTsKPiArCW93X3RpbGVfbiA9IHRpbGUoeCAvIG93X3NpemUsIHksIDEyOCAvIG93X3Np emUsIDMyLAo+ICsJCQkgc3RyaWRlIC8gb3dfc2l6ZSwgZmFsc2UpOwo+ICsJcG9zID0gb3dfdGls ZV9uICogb3dfc2l6ZSArICh4ICUgb3dfc2l6ZSk7Cj4gKwlwb3MgPSBzd2l6emxlX2FkZHIocG9z LCBzd2l6emxlKTsKPiArCXJldHVybiBwb3MgLyBwaXhlbF9zaXplOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZCB4dGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoaW50IHRpbGVkX3BvcywgdWludDMyX3Qg c3RyaWRlLAo+ICsJCQkJICAgICBpbnQgc3dpenpsZSwgaW50IGJwcCwgaW50ICp4LCBpbnQgKnkp Cj4gK3sKPiArCWludCBwaXhlbF9zaXplID0gYnBwIC8gODsKPiArCj4gKwl0aWxlZF9wb3MgPSBz d2l6emxlX2FkZHIodGlsZWRfcG9zLCBzd2l6emxlKTsKPiArCj4gKwl1bnRpbGUodGlsZWRfcG9z LCA1MTIsIDgsIHN0cmlkZSwgdHJ1ZSwgeCwgeSk7Cj4gKwkqeCAvPSBwaXhlbF9zaXplOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCB5dGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoaW50IHRpbGVkX3Bv cywgdWludDMyX3Qgc3RyaWRlLAo+ICsJCQkJICAgICBpbnQgc3dpenpsZSwgaW50IGJwcCwgaW50 ICp4LCBpbnQgKnkpCj4gK3sKPiArCWludCBvd190aWxlX247Cj4gKwlpbnQgb3dfc2l6ZSA9IDE2 Owo+ICsJaW50IHBpeGVsX3NpemUgPSBicHAgLyA4Owo+ICsKPiArCXRpbGVkX3BvcyA9IHN3aXp6 bGVfYWRkcih0aWxlZF9wb3MsIHN3aXp6bGUpOwo+ICsKPiArCW93X3RpbGVfbiA9IHRpbGVkX3Bv cyAvIG93X3NpemU7Cj4gKwl1bnRpbGUob3dfdGlsZV9uLCAxMjggLyBvd19zaXplLCAzMiwgc3Ry aWRlIC8gb3dfc2l6ZSwgZmFsc2UsIHgsIHkpOwo+ICsJKnggKj0gb3dfc2l6ZTsKPiArCSp4ICs9 IHRpbGVkX3BvcyAlIG93X3NpemU7Cj4gKwkqeCAvPSBwaXhlbF9zaXplOwo+ICt9Cj4gKwo+ICBz dGF0aWMgdm9pZCBzZXRfcGl4ZWwodm9pZCAqX3B0ciwgaW50IGluZGV4LCB1aW50MzJfdCBjb2xv ciwgaW50IGJwcCkKPiAgewo+ICAJaWYgKGJwcCA9PSAxNikgewo+IEBAIC0yMjQsMTUgKzI3MSwy NiBAQCBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHRyX2xpbmVhcih2b2lkICpwdHIsIHVpbnQzMl90 IHN0cmlkZSwKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHJhd19yZWN0X3B0cl90aWxl ZCh2b2lkICpwdHIsIHVpbnQzMl90IHN0cmlkZSwgaW50IHN3aXp6bGUsCj4gLQkJCQlzdHJ1Y3Qg cmVjdCAqcmVjdCwgdWludDMyX3QgY29sb3IsIGludCBicHApCj4gK3N0YXRpYyB2b2lkIGRyYXdf cmVjdF9wdHJfdGlsZWQodm9pZCAqcHRyLCB1aW50MzJfdCBzdHJpZGUsIHVpbnQzMl90IHRpbGlu ZywKPiArCQkJCWludCBzd2l6emxlLCBzdHJ1Y3QgcmVjdCAqcmVjdCwgdWludDMyX3QgY29sb3Is Cj4gKwkJCQlpbnQgYnBwKQo+ICB7Cj4gIAlpbnQgeCwgeSwgcG9zOwo+ICAKPiAgCWZvciAoeSA9 IHJlY3QtPnk7IHkgPCByZWN0LT55ICsgcmVjdC0+aDsgeSsrKSB7Cj4gIAkJZm9yICh4ID0gcmVj dC0+eDsgeCA8IHJlY3QtPnggKyByZWN0LT53OyB4KyspIHsKPiAtCQkJcG9zID0gbGluZWFyX3hf eV90b190aWxlZF9wb3MoeCwgeSwgc3RyaWRlLCBzd2l6emxlLAo+IC0JCQkJCQkgICAgICBicHAp Owo+ICsJCQlzd2l0Y2ggKHRpbGluZykgewo+ICsJCQljYXNlIEk5MTVfVElMSU5HX1g6Cj4gKwkJ CQlwb3MgPSBsaW5lYXJfeF95X3RvX3h0aWxlZF9wb3MoeCwgeSwgc3RyaWRlLAo+ICsJCQkJCQkJ ICAgICAgIHN3aXp6bGUsIGJwcCk7Cj4gKwkJCQlicmVhazsKPiArCQkJY2FzZSBJOTE1X1RJTElO R19ZOgo+ICsJCQkJcG9zID0gbGluZWFyX3hfeV90b195dGlsZWRfcG9zKHgsIHksIHN0cmlkZSwK PiArCQkJCQkJCSAgICAgICBzd2l6emxlLCBicHApOwo+ICsJCQkJYnJlYWs7Cj4gKwkJCWRlZmF1 bHQ6Cj4gKwkJCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiArCQkJfQo+ICAJCQlzZXRfcGl4ZWwocHRy LCBwb3MsIGNvbG9yLCBicHApOwo+ICAJCX0KPiAgCX0KPiBAQCAtMjU5LDggKzMxNyw5IEBAIHN0 YXRpYyB2b2lkIGRyYXdfcmVjdF9tbWFwX2NwdShpbnQgZmQsIHN0cnVjdCBidWZfZGF0YSAqYnVm LCBzdHJ1Y3QgcmVjdCAqcmVjdCwKPiAgCQlkcmF3X3JlY3RfcHRyX2xpbmVhcihwdHIsIGJ1Zi0+ c3RyaWRlLCByZWN0LCBjb2xvciwgYnVmLT5icHApOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJOTE1 X1RJTElOR19YOgo+IC0JCWRyYXdfcmVjdF9wdHJfdGlsZWQocHRyLCBidWYtPnN0cmlkZSwgc3dp enpsZSwgcmVjdCwgY29sb3IsCj4gLQkJCQkgICAgYnVmLT5icHApOwo+ICsJY2FzZSBJOTE1X1RJ TElOR19ZOgo+ICsJCWRyYXdfcmVjdF9wdHJfdGlsZWQocHRyLCBidWYtPnN0cmlkZSwgdGlsaW5n LCBzd2l6emxlLCByZWN0LAo+ICsJCQkJICAgIGNvbG9yLCBidWYtPmJwcCk7Cj4gIAkJYnJlYWs7 Cj4gIAlkZWZhdWx0Ogo+ICAJCWlndF9hc3NlcnQoZmFsc2UpOwo+IEBAIC0zMDksOCArMzY4LDkg QEAgc3RhdGljIHZvaWQgZHJhd19yZWN0X21tYXBfd2MoaW50IGZkLCBzdHJ1Y3QgYnVmX2RhdGEg KmJ1Ziwgc3RydWN0IHJlY3QgKnJlY3QsCj4gIAkJZHJhd19yZWN0X3B0cl9saW5lYXIocHRyLCBi dWYtPnN0cmlkZSwgcmVjdCwgY29sb3IsIGJ1Zi0+YnBwKTsKPiAgCQlicmVhazsKPiAgCWNhc2Ug STkxNV9USUxJTkdfWDoKPiAtCQlkcmF3X3JlY3RfcHRyX3RpbGVkKHB0ciwgYnVmLT5zdHJpZGUs IHN3aXp6bGUsIHJlY3QsIGNvbG9yLAo+IC0JCQkJICAgIGJ1Zi0+YnBwKTsKPiArCWNhc2UgSTkx NV9USUxJTkdfWToKPiArCQlkcmF3X3JlY3RfcHRyX3RpbGVkKHB0ciwgYnVmLT5zdHJpZGUsIHRp bGluZywgc3dpenpsZSwgcmVjdCwKPiArCQkJCSAgICBjb2xvciwgYnVmLT5icHApOwo+ICAJCWJy ZWFrOwo+ICAJZGVmYXVsdDoKPiAgCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiBAQCAtMzM3LDggKzM5 Nyw4IEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wd3JpdGVfdW50aWxlZChpbnQgZmQsIHN0cnVj dCBidWZfZGF0YSAqYnVmLAo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHdyaXRl X3RpbGVkKGludCBmZCwgc3RydWN0IGJ1Zl9kYXRhICpidWYsCj4gLQkJCQkgICBzdHJ1Y3QgcmVj dCAqcmVjdCwgdWludDMyX3QgY29sb3IsCj4gLQkJCQkgICB1aW50MzJfdCBzd2l6emxlKQo+ICsJ CQkJICAgdWludDMyX3QgdGlsaW5nLCBzdHJ1Y3QgcmVjdCAqcmVjdCwKPiArCQkJCSAgIHVpbnQz Ml90IGNvbG9yLCB1aW50MzJfdCBzd2l6emxlKQo+ICB7Cj4gIAlpbnQgaTsKPiAgCWludCB0aWxl ZF9wb3MsIHgsIHksIHBpeGVsX3NpemU7Cj4gQEAgLTM2MSw4ICs0MjEsMTggQEAgc3RhdGljIHZv aWQgZHJhd19yZWN0X3B3cml0ZV90aWxlZChpbnQgZmQsIHN0cnVjdCBidWZfZGF0YSAqYnVmLAo+ ICAJCXNldF9waXhlbCh0bXAsIGksIGNvbG9yLCBidWYtPmJwcCk7Cj4gIAo+ICAJZm9yICh0aWxl ZF9wb3MgPSAwOyB0aWxlZF9wb3MgPCBidWYtPnNpemU7IHRpbGVkX3BvcyArPSBwaXhlbF9zaXpl KSB7Cj4gLQkJdGlsZWRfcG9zX3RvX3hfeV9saW5lYXIodGlsZWRfcG9zLCBidWYtPnN0cmlkZSwg c3dpenpsZSwKPiAtCQkJCQlidWYtPmJwcCwgJngsICZ5KTsKPiArCQlzd2l0Y2ggKHRpbGluZykg ewo+ICsJCWNhc2UgSTkxNV9USUxJTkdfWDoKPiArCQkJeHRpbGVkX3Bvc190b194X3lfbGluZWFy KHRpbGVkX3BvcywgYnVmLT5zdHJpZGUsCj4gKwkJCQkJCSBzd2l6emxlLCBidWYtPmJwcCwgJngs ICZ5KTsKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBJOTE1X1RJTElOR19ZOgo+ICsJCQl5dGlsZWRf cG9zX3RvX3hfeV9saW5lYXIodGlsZWRfcG9zLCBidWYtPnN0cmlkZSwKPiArCQkJCQkJIHN3aXp6 bGUsIGJ1Zi0+YnBwLCAmeCwgJnkpOwo+ICsJCQlicmVhazsKPiArCQlkZWZhdWx0Ogo+ICsJCQlp Z3RfYXNzZXJ0KGZhbHNlKTsKPiArCQl9Cj4gIAo+ICAJCWlmICh4ID49IHJlY3QtPnggJiYgeCA8 IHJlY3QtPnggKyByZWN0LT53ICYmCj4gIAkJICAgIHkgPj0gcmVjdC0+eSAmJiB5IDwgcmVjdC0+ eSArIHJlY3QtPmgpIHsKPiBAQCAtMzk5LDcgKzQ2OSw4IEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVj dF9wd3JpdGUoaW50IGZkLCBzdHJ1Y3QgYnVmX2RhdGEgKmJ1ZiwKPiAgCQlkcmF3X3JlY3RfcHdy aXRlX3VudGlsZWQoZmQsIGJ1ZiwgcmVjdCwgY29sb3IpOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJ OTE1X1RJTElOR19YOgo+IC0JCWRyYXdfcmVjdF9wd3JpdGVfdGlsZWQoZmQsIGJ1ZiwgcmVjdCwg Y29sb3IsIHN3aXp6bGUpOwo+ICsJY2FzZSBJOTE1X1RJTElOR19ZOgo+ICsJCWRyYXdfcmVjdF9w d3JpdGVfdGlsZWQoZmQsIGJ1ZiwgdGlsaW5nLCByZWN0LCBjb2xvciwgc3dpenpsZSk7Cj4gIAkJ YnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJCWlndF9hc3NlcnQoZmFsc2UpOwo+IEBAIC00MjEsNiAr NDkyLDggQEAgc3RhdGljIHZvaWQgZHJhd19yZWN0X2JsdChpbnQgZmQsIHN0cnVjdCBjbWRfZGF0 YSAqY21kX2RhdGEsCj4gIAo+ICAJZ2VtX2dldF90aWxpbmcoZmQsIGJ1Zi0+aGFuZGxlLCAmdGls aW5nLCAmc3dpenpsZSk7Cj4gIAo+ICsJaWd0X3JlcXVpcmUodGlsaW5nICE9IEk5MTVfVElMSU5H X1kpOwo+ICsKPiAgCWRzdCA9IGdlbV9oYW5kbGVfdG9fbGliZHJtX2JvKGNtZF9kYXRhLT5idWZt Z3IsIGZkLCAiIiwgYnVmLT5oYW5kbGUpOwo+ICAJaWd0X2Fzc2VydChkc3QpOwo+ICAKPiAtLSAK PiAyLjcuMC5yYzMKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENv cnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=