From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH] lib/igt_draw: Add Y-tiling support Date: Thu, 13 Jul 2017 18:33:03 -0300 Message-ID: <1499981583.2649.32.camel@intel.com> References: <1493390254-5232-4-git-send-email-praveen.paneri@intel.com> <1497003499-14841-1-git-send-email-praveen.paneri@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 74EF96E6E9 for ; Thu, 13 Jul 2017 21:33:09 +0000 (UTC) In-Reply-To: <1497003499-14841-1-git-send-email-praveen.paneri@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Praveen Paneri , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE3LTA2LTA5IMOgcyAxNTo0OCArMDUzMCwgUHJhdmVlbiBQYW5lcmkgZXNjcmV2 ZXU6Cj4gVGhpcyBwYXRjaCBhZGRzIFktdGlsaW5nIHN1cHBvcnQgZm9yIGlndF9kcmF3X3JlY3Qg ZnVuY3Rpb24uCj4gCj4gdjI6IFVzZSBoZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRpbGUgc2l6ZXMg KFZpbGxlKQo+IAo+IHYzOiBNb3ZlZCBpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZSgpIG91dCBvZiB0aGUg Zm9yIGxvb3AKPiDCoGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgKFBhdWxvKQoKRm9yIHNvbWUgcmVh c29uIEkgdGhvdWdodCB0aGlzIHNlcmllcyB3YXMgdXNpbmcgbXkgb3JpZ2luYWwgcGF0Y2gsIGJ1 dApJIHJlYWxpemVkIGl0J3Mgbm90OgoKaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3Jn L3BhdGNoLzcyMDM5LwoKTm93IHRoYXQgSSByZWFkIG91ciBwYXN0IGVtYWlscywgSSB3b25kZXIg dGhhdCBtYXliZSBJIGRpZG4ndCBzZW5kIHlvdQp0aGlzIHNwZWNpZmljIHBhdGNoIG9mIHRoYXQg c2VyaWVzLiBJJ20gc29ycnkgZm9yIHRoYXQuIE9idmlvdXNseSBJJ20KYmlhc2VkIHRvd2FyZHMg bXkgdmVyc2lvbi4gV2hpY2ggb25lIGRvIHlvdSB0aGluayBpcyBiZXR0ZXI/IFdvdWxkIHlvdQpi ZSB3aWxsaW5nIHRvIGdpdmUgbXkgdmVyc2lvbiBhIHItYiwgaW4gY2FzZSB5b3UgdGhpbmsgaXQn cyBiZXR0ZXI/CgpUaGFua3MsClBhdWxvCgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBQcmF2ZWVuIFBh bmVyaSA8cHJhdmVlbi5wYW5lcmlAaW50ZWwuY29tPgo+IC0tLQo+IMKgbGliL2lndF9kcmF3LmMg fCAxMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAt LS0tLS0tLS0tCj4gwqAxIGZpbGUgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZHJhdy5jIGIvbGliL2lndF9kcmF3LmMK PiBpbmRleCAyOWFlYzg1Li4yMTM4YmY3IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfZHJhdy5jCj4g KysrIGIvbGliL2lndF9kcmF3LmMKPiBAQCAtMTM2LDMyICsxMzYsNDUgQEAgc3RhdGljIGludCBz d2l6emxlX2FkZHIoaW50IGFkZHIsIGludCBzd2l6emxlKQo+IMKgCj4gwqAvKiBJdCdzIGFsbCBp biAicGl4ZWwgY29vcmRpbmF0ZXMiLCBzbyBtYWtlIHN1cmUgeW91IG11bHRpcGx5L2RpdmlkZQo+ IGJ5IHRoZSBicHAKPiDCoCAqIGlmIHlvdSBuZWVkIHRvLiAqLwo+IC1zdGF0aWMgaW50IGxpbmVh cl94X3lfdG9fdGlsZWRfcG9zKGludCB4LCBpbnQgeSwgdWludDMyX3Qgc3RyaWRlLAo+IGludCBz d2l6emxlLAo+IC0JCQkJwqDCoMKgaW50IGJwcCkKPiArc3RhdGljIGludCBsaW5lYXJfeF95X3Rv X3RpbGVkX3BvcyhpbnQgZmQsIGludCB4LCBpbnQgeSwgdWludDMyX3QKPiBzdHJpZGUsIGludCBz d2l6emxlLAo+ICsJCQkJwqDCoMKgaW50IGJwcCwgaW50IHRpbGluZywgdWludDMyX3QKPiB0aWxl X3dpZHRoLAo+ICsJCQkJwqDCoMKgdWludDMyX3QgdGlsZV9oZWlnaHQpCj4gwqB7Cj4gLQlpbnQg eF90aWxlX3NpemUsIHlfdGlsZV9zaXplOwo+IC0JaW50IHhfdGlsZV9uLCB5X3RpbGVfbiwgeF90 aWxlX29mZiwgeV90aWxlX29mZjsKPiAtCWludCBsaW5lX3NpemUsIHRpbGVfc2l6ZTsKPiArCXVp bnQzMl90IHRpbGVfc2l6ZTsKPiArCWludCB0aWxlX3gsIHRpbGVfeTsgLyogQ28tb3JkaW5hdGVz IG9mIHRoZSB0aWxlIGhvbGRpbmcgdGhlCj4gcGl4ZWwgKi8KPiArCWludCB0aWxlX3hfb2ZmLCB0 aWxlX3lfb2ZmOyAvKiBwaXhlbCBwb3NpdGlvbiBpbnNpZGUgdGhlCj4gdGlsZSAqLwo+IMKgCWlu dCB0aWxlX24sIHRpbGVfb2ZmOwo+IC0JaW50IHRpbGVkX3BvcywgdGlsZXNfcGVyX2xpbmU7Cj4g KwlpbnQgbGluZV9zaXplLCB0aWxlc19wZXJfbGluZTsKPiArCWludCB0aWxlZF9wb3M7Cj4gwqAJ aW50IHBpeGVsX3NpemUgPSBicHAgLyA4Owo+IMKgCj4gwqAJbGluZV9zaXplID0gc3RyaWRlOwo+ IC0JeF90aWxlX3NpemUgPSA1MTI7Cj4gLQl5X3RpbGVfc2l6ZSA9IDg7Cj4gLQl0aWxlX3NpemUg PSB4X3RpbGVfc2l6ZSAqIHlfdGlsZV9zaXplOwo+IC0JdGlsZXNfcGVyX2xpbmUgPSBsaW5lX3Np emUgLyB4X3RpbGVfc2l6ZTsKPiArCXRpbGVfc2l6ZSA9IHRpbGVfd2lkdGggKiB0aWxlX2hlaWdo dDsKPiArCXRpbGVzX3Blcl9saW5lID0gbGluZV9zaXplIC8gdGlsZV93aWR0aDsKPiDCoAo+IC0J eV90aWxlX24gPSB5IC8geV90aWxlX3NpemU7Cj4gLQl5X3RpbGVfb2ZmID0geSAlIHlfdGlsZV9z aXplOwo+ICsJdGlsZV95ID0geSAvIHRpbGVfaGVpZ2h0Owo+ICsJdGlsZV95X29mZiA9IHkgJSB0 aWxlX2hlaWdodDsKPiDCoAo+IC0JeF90aWxlX24gPSAoeCAqIHBpeGVsX3NpemUpIC8geF90aWxl X3NpemU7Cj4gLQl4X3RpbGVfb2ZmID0gKHggKiBwaXhlbF9zaXplKSAlIHhfdGlsZV9zaXplOwo+ ICsJdGlsZV94ID0gKHggKiBwaXhlbF9zaXplKSAvIHRpbGVfd2lkdGg7Cj4gKwl0aWxlX3hfb2Zm ID0gKHggKiBwaXhlbF9zaXplKSAlIHRpbGVfd2lkdGg7Cj4gwqAKPiAtCXRpbGVfbiA9IHlfdGls ZV9uICogdGlsZXNfcGVyX2xpbmUgKyB4X3RpbGVfbjsKPiAtCXRpbGVfb2ZmID0geV90aWxlX29m ZiAqIHhfdGlsZV9zaXplICsgeF90aWxlX29mZjsKPiAtCXRpbGVkX3BvcyA9IHRpbGVfbiAqIHRp bGVfc2l6ZSArIHRpbGVfb2ZmOwo+ICsJdGlsZV9uID0gdGlsZV95ICogdGlsZXNfcGVyX2xpbmUg KyB0aWxlX3g7Cj4gKwo+ICsJaWYgKHRpbGluZyA9PSBJOTE1X1RJTElOR19YICkgewo+ICsJCXRp bGVfb2ZmID0gdGlsZV95X29mZiAqIHRpbGVfd2lkdGggKyB0aWxlX3hfb2ZmOwo+ICsJfSBlbHNl IHsgLyogKHRpbGluZyA9PSBJOTE1X1RJTElOR19ZICkgKi8KPiArCQlpbnQgeF9vd29yZF9uLCB4 X293b3JkX29mZjsKPiArCQlpbnQgb3dvcmRfc2l6ZSA9IDE2Owo+ICsKPiArCQkvKiBjb21wdXRh dGlvbiBpbnNpZGUgdGhlIHRpbGUgKi8KPiArCQl4X293b3JkX24gPSB0aWxlX3hfb2ZmIC8gb3dv cmRfc2l6ZTsKPiArCQl4X293b3JkX29mZiA9IHRpbGVfeF9vZmYgJSBvd29yZF9zaXplOwo+ICsJ CXRpbGVfb2ZmID0geF9vd29yZF9uICogdGlsZV9oZWlnaHQgKiBvd29yZF9zaXplCj4gKwkJCcKg wqDCoCsgdGlsZV95X29mZiAqIG93b3JkX3NpemUKPiArCQkJwqDCoMKgKyB4X293b3JkX29mZjsK PiArCX0KPiDCoAo+ICsJdGlsZWRfcG9zID0gdGlsZV9uICogdGlsZV9zaXplICsgdGlsZV9vZmY7 Cj4gwqAJdGlsZWRfcG9zID0gc3dpenpsZV9hZGRyKHRpbGVkX3Bvcywgc3dpenpsZSk7Cj4gwqAK PiDCoAlyZXR1cm4gdGlsZWRfcG9zIC8gcGl4ZWxfc2l6ZTsKPiBAQCAtMTY5LDM0ICsxODIsNDgg QEAgc3RhdGljIGludCBsaW5lYXJfeF95X3RvX3RpbGVkX3BvcyhpbnQgeCwgaW50Cj4geSwgdWlu dDMyX3Qgc3RyaWRlLCBpbnQgc3dpenpsZSwKPiDCoAo+IMKgLyogSXQncyBhbGwgaW4gInBpeGVs IGNvb3JkaW5hdGVzIiwgc28gbWFrZSBzdXJlIHlvdSBtdWx0aXBseS9kaXZpZGUKPiBieSB0aGUg YnBwCj4gwqAgKiBpZiB5b3UgbmVlZCB0by4gKi8KPiAtc3RhdGljIHZvaWQgdGlsZWRfcG9zX3Rv X3hfeV9saW5lYXIoaW50IHRpbGVkX3BvcywgdWludDMyX3Qgc3RyaWRlLAo+IC0JCQkJwqDCoMKg wqBpbnQgc3dpenpsZSwgaW50IGJwcCwgaW50ICp4LAo+IGludCAqeSkKPiArc3RhdGljIHZvaWQg dGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoaW50IGZkLCBpbnQgdGlsZWRfcG9zLCB1aW50MzJfdAo+ IHN0cmlkZSwKPiArCQkJCcKgwqDCoMKgaW50IHN3aXp6bGUsIGludCBicHAsIGludCAqeCwKPiBp bnQgKnksCj4gKwkJCQnCoMKgwqDCoGludCB0aWxpbmcsIHVpbnQzMl90IHRpbGVfd2lkdGgsCj4g KwkJCQnCoMKgwqDCoHVpbnQzMl90IHRpbGVfaGVpZ2h0KQo+IMKgewo+IC0JaW50IHRpbGVfbiwg dGlsZV9vZmYsIHRpbGVzX3Blcl9saW5lLCBsaW5lX3NpemU7Cj4gLQlpbnQgeF90aWxlX29mZiwg eV90aWxlX29mZjsKPiAtCWludCB4X3RpbGVfbiwgeV90aWxlX247Cj4gLQlpbnQgeF90aWxlX3Np emUsIHlfdGlsZV9zaXplLCB0aWxlX3NpemU7Cj4gKwl1aW50MzJfdCB0aWxlX3NpemU7Cj4gKwlp bnQgdGlsZV94LCB0aWxlX3k7IC8qIENvLW9yZGluYXRlcyBvZiB0aGUgdGlsZSBob2xkaW5nIHRo ZQo+IHBpeGVsICovCj4gKwlpbnQgdGlsZV94X29mZiwgdGlsZV95X29mZjsgLyogcGl4ZWwgcG9z aXRpb24gaW5zaWRlIHRoZQo+IHRpbGUgKi8KPiArCWludCB0aWxlX24sIHRpbGVfb2ZmOwo+ICsJ aW50IGxpbmVfc2l6ZSwgdGlsZXNfcGVyX2xpbmU7Cj4gwqAJaW50IHBpeGVsX3NpemUgPSBicHAg LyA4Owo+IMKgCj4gwqAJdGlsZWRfcG9zID0gc3dpenpsZV9hZGRyKHRpbGVkX3Bvcywgc3dpenps ZSk7Cj4gwqAKPiDCoAlsaW5lX3NpemUgPSBzdHJpZGU7Cj4gLQl4X3RpbGVfc2l6ZSA9IDUxMjsK PiAtCXlfdGlsZV9zaXplID0gODsKPiAtCXRpbGVfc2l6ZSA9IHhfdGlsZV9zaXplICogeV90aWxl X3NpemU7Cj4gLQl0aWxlc19wZXJfbGluZSA9IGxpbmVfc2l6ZSAvIHhfdGlsZV9zaXplOwo+ICsJ dGlsZV9zaXplID0gdGlsZV93aWR0aCAqIHRpbGVfaGVpZ2h0Owo+ICsJdGlsZXNfcGVyX2xpbmUg PSBsaW5lX3NpemUgLyB0aWxlX3dpZHRoOwo+IMKgCj4gwqAJdGlsZV9uID0gdGlsZWRfcG9zIC8g dGlsZV9zaXplOwo+IMKgCXRpbGVfb2ZmID0gdGlsZWRfcG9zICUgdGlsZV9zaXplOwo+IMKgCj4g LQl5X3RpbGVfb2ZmID0gdGlsZV9vZmYgLyB4X3RpbGVfc2l6ZTsKPiAtCXhfdGlsZV9vZmYgPSB0 aWxlX29mZiAlIHhfdGlsZV9zaXplOwo+ICsJdGlsZV94ID0gdGlsZV9uICUgdGlsZXNfcGVyX2xp bmU7Cj4gKwl0aWxlX3kgPSB0aWxlX24gLyB0aWxlc19wZXJfbGluZTsKPiArCj4gKwlpZiAodGls aW5nID09IEk5MTVfVElMSU5HX1ggKSB7Cj4gKwo+ICsJCXRpbGVfeV9vZmYgPSB0aWxlX29mZiAv IHRpbGVfd2lkdGg7Cj4gKwkJdGlsZV94X29mZiA9IHRpbGVfb2ZmICUgdGlsZV93aWR0aDsKPiAr CX0gZWxzZSB7Cj4gKwkJaW50IHhfb3dvcmRfbiwgeF9vd29yZF9vZmY7Cj4gKwkJaW50IG93b3Jk X3NpemUgPSAxNjsKPiArCj4gKwkJeF9vd29yZF9uID0gdGlsZV9vZmYgLyAob3dvcmRfc2l6ZSAq IHRpbGVfaGVpZ2h0KTsKPiArCQl4X293b3JkX29mZiA9IHRpbGVfb2ZmICUgb3dvcmRfc2l6ZTsK PiDCoAo+IC0JeF90aWxlX24gPSB0aWxlX24gJSB0aWxlc19wZXJfbGluZTsKPiAtCXlfdGlsZV9u ID0gdGlsZV9uIC8gdGlsZXNfcGVyX2xpbmU7Cj4gKwkJdGlsZV94X29mZiA9IHhfb3dvcmRfbiAq IG93b3JkX3NpemUgKyB4X293b3JkX29mZjsKPiArCQl0aWxlX3lfb2ZmID0gKHRpbGVfb2ZmIC0g eF9vd29yZF9uICogb3dvcmRfc2l6ZSAqCj4gdGlsZV9oZWlnaHQpCj4gKwkJCcKgwqDCoMKgwqAv IG93b3JkX3NpemU7Cj4gKwl9Cj4gwqAKPiAtCSp4ID0gKHhfdGlsZV9uICogeF90aWxlX3NpemUg KyB4X3RpbGVfb2ZmKSAvIHBpeGVsX3NpemU7Cj4gLQkqeSA9IHlfdGlsZV9uICogeV90aWxlX3Np emUgKyB5X3RpbGVfb2ZmOwo+ICsJKnggPSAodGlsZV94ICogdGlsZV93aWR0aCArIHRpbGVfeF9v ZmYpIC8gcGl4ZWxfc2l6ZTsKPiArCSp5ID0gdGlsZV95ICogdGlsZV9oZWlnaHQgKyB0aWxlX3lf b2ZmOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgdm9pZCBzZXRfcGl4ZWwodm9pZCAqX3B0ciwgaW50 IGluZGV4LCB1aW50MzJfdCBjb2xvciwgaW50Cj4gYnBwKQo+IEBAIC0yMjQsMTUgKzI1MSwyMSBA QCBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHRyX2xpbmVhcih2b2lkICpwdHIsCj4gdWludDMyX3Qg c3RyaWRlLAo+IMKgCX0KPiDCoH0KPiDCoAo+IC1zdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHRyX3Rp bGVkKHZvaWQgKnB0ciwgdWludDMyX3Qgc3RyaWRlLCBpbnQKPiBzd2l6emxlLAo+IC0JCQkJc3Ry dWN0IHJlY3QgKnJlY3QsIHVpbnQzMl90IGNvbG9yLAo+IGludCBicHApCj4gK3N0YXRpYyB2b2lk IGRyYXdfcmVjdF9wdHJfdGlsZWQoaW50IGZkLCB2b2lkICpwdHIsIHVpbnQzMl90IHN0cmlkZSwK PiBpbnQgc3dpenpsZSwKPiArCQkJCXN0cnVjdCByZWN0ICpyZWN0LCB1aW50MzJfdCBjb2xvciwK PiBpbnQgYnBwLAo+ICsJCQkJaW50IHRpbGluZykKPiDCoHsKPiDCoAlpbnQgeCwgeSwgcG9zOwo+ ICsJdWludDMyX3QgdGlsZV93aWR0aCwgdGlsZV9oZWlnaHQ7Cj4gKwo+ICsJaWd0X2dldF9mYl90 aWxlX3NpemUoZmQsCj4gKHVpbnQ2NF90KWlndF9mYl90aWxpbmdfdG9fbW9kKHRpbGluZyksIGJw cCwKPiArCQkJJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCk7Cj4gwqAKPiDCoAlmb3IgKHkgPSBy ZWN0LT55OyB5IDwgcmVjdC0+eSArIHJlY3QtPmg7IHkrKykgewo+IMKgCQlmb3IgKHggPSByZWN0 LT54OyB4IDwgcmVjdC0+eCArIHJlY3QtPnc7IHgrKykgewo+IC0JCQlwb3MgPSBsaW5lYXJfeF95 X3RvX3RpbGVkX3Bvcyh4LCB5LCBzdHJpZGUsCj4gc3dpenpsZSwKPiAtCQkJCQkJwqDCoMKgwqDC oMKgYnBwKTsKPiArCQkJcG9zID0gbGluZWFyX3hfeV90b190aWxlZF9wb3MoZmQsIHgsIHksCj4g c3RyaWRlLCBzd2l6emxlLAo+ICsJCQkJCQnCoMKgwqDCoMKgwqBicHAsIHRpbGluZywKPiB0aWxl X3dpZHRoLAo+ICsJCQkJCQnCoMKgwqDCoMKgwqB0aWxlX2hlaWdodCk7Cj4gwqAJCQlzZXRfcGl4 ZWwocHRyLCBwb3MsIGNvbG9yLCBicHApOwo+IMKgCQl9Cj4gwqAJfQo+IEBAIC0yNTksOCArMjky LDEyIEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9tbWFwX2NwdShpbnQgZmQsIHN0cnVjdAo+IGJ1 Zl9kYXRhICpidWYsIHN0cnVjdCByZWN0ICpyZWN0LAo+IMKgCQlkcmF3X3JlY3RfcHRyX2xpbmVh cihwdHIsIGJ1Zi0+c3RyaWRlLCByZWN0LCBjb2xvciwKPiBidWYtPmJwcCk7Cj4gwqAJCWJyZWFr Owo+IMKgCWNhc2UgSTkxNV9USUxJTkdfWDoKPiAtCQlkcmF3X3JlY3RfcHRyX3RpbGVkKHB0ciwg YnVmLT5zdHJpZGUsIHN3aXp6bGUsIHJlY3QsCj4gY29sb3IsCj4gLQkJCQnCoMKgwqDCoGJ1Zi0+ YnBwKTsKPiArCQlkcmF3X3JlY3RfcHRyX3RpbGVkKGZkLCBwdHIsIGJ1Zi0+c3RyaWRlLCBzd2l6 emxlLAo+IHJlY3QsIGNvbG9yLAo+ICsJCQkJwqDCoMKgwqBidWYtPmJwcCwgdGlsaW5nKTsKPiAr CQlicmVhazsKPiArCWNhc2UgSTkxNV9USUxJTkdfWToKPiArCQlkcmF3X3JlY3RfcHRyX3RpbGVk KGZkLCBwdHIsIGJ1Zi0+c3RyaWRlLCBzd2l6emxlLAo+IHJlY3QsIGNvbG9yLAo+ICsJCQkJwqDC oMKgwqBidWYtPmJwcCwgdGlsaW5nKTsKPiDCoAkJYnJlYWs7Cj4gwqAJZGVmYXVsdDoKPiDCoAkJ aWd0X2Fzc2VydChmYWxzZSk7Cj4gQEAgLTMwOSw4ICszNDYsMTIgQEAgc3RhdGljIHZvaWQgZHJh d19yZWN0X21tYXBfd2MoaW50IGZkLCBzdHJ1Y3QKPiBidWZfZGF0YSAqYnVmLCBzdHJ1Y3QgcmVj dCAqcmVjdCwKPiDCoAkJZHJhd19yZWN0X3B0cl9saW5lYXIocHRyLCBidWYtPnN0cmlkZSwgcmVj dCwgY29sb3IsCj4gYnVmLT5icHApOwo+IMKgCQlicmVhazsKPiDCoAljYXNlIEk5MTVfVElMSU5H X1g6Cj4gLQkJZHJhd19yZWN0X3B0cl90aWxlZChwdHIsIGJ1Zi0+c3RyaWRlLCBzd2l6emxlLCBy ZWN0LAo+IGNvbG9yLAo+IC0JCQkJwqDCoMKgwqBidWYtPmJwcCk7Cj4gKwkJZHJhd19yZWN0X3B0 cl90aWxlZChmZCwgcHRyLCBidWYtPnN0cmlkZSwgc3dpenpsZSwKPiByZWN0LCBjb2xvciwKPiAr CQkJCcKgwqDCoMKgYnVmLT5icHAsIHRpbGluZyk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVf VElMSU5HX1k6Cj4gKwkJZHJhd19yZWN0X3B0cl90aWxlZChmZCwgcHRyLCBidWYtPnN0cmlkZSwg c3dpenpsZSwKPiByZWN0LCBjb2xvciwKPiArCQkJCcKgwqDCoMKgYnVmLT5icHAsIHRpbGluZyk7 Cj4gwqAJCWJyZWFrOwo+IMKgCWRlZmF1bHQ6Cj4gwqAJCWlndF9hc3NlcnQoZmFsc2UpOwo+IEBA IC0zMzgsNyArMzc5LDcgQEAgc3RhdGljIHZvaWQgZHJhd19yZWN0X3B3cml0ZV91bnRpbGVkKGlu dCBmZCwKPiBzdHJ1Y3QgYnVmX2RhdGEgKmJ1ZiwKPiDCoAo+IMKgc3RhdGljIHZvaWQgZHJhd19y ZWN0X3B3cml0ZV90aWxlZChpbnQgZmQsIHN0cnVjdCBidWZfZGF0YSAqYnVmLAo+IMKgCQkJCcKg wqDCoHN0cnVjdCByZWN0ICpyZWN0LCB1aW50MzJfdAo+IGNvbG9yLAo+IC0JCQkJwqDCoMKgdWlu dDMyX3Qgc3dpenpsZSkKPiArCQkJCcKgwqDCoHVpbnQzMl90IHN3aXp6bGUsIGludCB0aWxpbmcp Cj4gwqB7Cj4gwqAJaW50IGk7Cj4gwqAJaW50IHRpbGVkX3BvcywgeCwgeSwgcGl4ZWxfc2l6ZTsK PiBAQCAtMzQ3LDYgKzM4OCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wd3JpdGVfdGlsZWQo aW50IGZkLCBzdHJ1Y3QKPiBidWZfZGF0YSAqYnVmLAo+IMKgCWJvb2wgZmx1c2hfdG1wID0gZmFs c2U7Cj4gwqAJaW50IHRtcF9zdGFydF9wb3MgPSAwOwo+IMKgCWludCBwaXhlbHNfd3JpdHRlbiA9 IDA7Cj4gKwl1aW50MzJfdCB0aWxlX3dpZHRoLCB0aWxlX2hlaWdodDsKPiDCoAo+IMKgCS8qIFdl IGRpZG4ndCBpbXBsZW1lbnQgc3Vwb3J0IGZvciB0aGUgb2xkZXIgdGlsaW5nIG1ldGhvZHMKPiB5 ZXQuICovCj4gwqAJaWd0X3JlcXVpcmUoaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQp KSA+PSA1KTsKPiBAQCAtMzYwLDkgKzQwMiwxMyBAQCBzdGF0aWMgdm9pZCBkcmF3X3JlY3RfcHdy aXRlX3RpbGVkKGludCBmZCwKPiBzdHJ1Y3QgYnVmX2RhdGEgKmJ1ZiwKPiDCoAlmb3IgKGkgPSAw OyBpIDwgdG1wX3NpemU7IGkrKykKPiDCoAkJc2V0X3BpeGVsKHRtcCwgaSwgY29sb3IsIGJ1Zi0+ YnBwKTsKPiDCoAo+ICsJaWd0X2dldF9mYl90aWxlX3NpemUoZmQsCj4gKHVpbnQ2NF90KWlndF9m Yl90aWxpbmdfdG9fbW9kKHRpbGluZyksCj4gKwkJCcKgwqDCoMKgwqBidWYtPmJwcCwgJnRpbGVf d2lkdGgsICZ0aWxlX2hlaWdodCk7Cj4gKwo+IMKgCWZvciAodGlsZWRfcG9zID0gMDsgdGlsZWRf cG9zIDwgYnVmLT5zaXplOyB0aWxlZF9wb3MgKz0KPiBwaXhlbF9zaXplKSB7Cj4gLQkJdGlsZWRf cG9zX3RvX3hfeV9saW5lYXIodGlsZWRfcG9zLCBidWYtPnN0cmlkZSwKPiBzd2l6emxlLAo+IC0J CQkJCWJ1Zi0+YnBwLCAmeCwgJnkpOwo+ICsJCXRpbGVkX3Bvc190b194X3lfbGluZWFyKGZkLCB0 aWxlZF9wb3MsIGJ1Zi0+c3RyaWRlLAo+IHN3aXp6bGUsCj4gKwkJCQkJYnVmLT5icHAsICZ4LCAm eSwgdGlsaW5nLAo+IHRpbGVfd2lkdGgsCj4gKwkJCQkJdGlsZV9oZWlnaHQpOwo+IMKgCj4gwqAJ CWlmICh4ID49IHJlY3QtPnggJiYgeCA8IHJlY3QtPnggKyByZWN0LT53ICYmCj4gwqAJCcKgwqDC oMKgeSA+PSByZWN0LT55ICYmIHkgPCByZWN0LT55ICsgcmVjdC0+aCkgewo+IEBAIC0zOTksNyAr NDQ1LDEwIEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wd3JpdGUoaW50IGZkLCBzdHJ1Y3QKPiBi dWZfZGF0YSAqYnVmLAo+IMKgCQlkcmF3X3JlY3RfcHdyaXRlX3VudGlsZWQoZmQsIGJ1ZiwgcmVj dCwgY29sb3IpOwo+IMKgCQlicmVhazsKPiDCoAljYXNlIEk5MTVfVElMSU5HX1g6Cj4gLQkJZHJh d19yZWN0X3B3cml0ZV90aWxlZChmZCwgYnVmLCByZWN0LCBjb2xvciwKPiBzd2l6emxlKTsKPiAr CQlkcmF3X3JlY3RfcHdyaXRlX3RpbGVkKGZkLCBidWYsIHJlY3QsIGNvbG9yLAo+IHN3aXp6bGUs IHRpbGluZyk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfVElMSU5HX1k6Cj4gKwkJZHJhd19y ZWN0X3B3cml0ZV90aWxlZChmZCwgYnVmLCByZWN0LCBjb2xvciwKPiBzd2l6emxlLCB0aWxpbmcp Owo+IMKgCQlicmVhazsKPiDCoAlkZWZhdWx0Ogo+IMKgCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==