From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Maiti, Nabendu Bikash" Subject: Re: [PATCH] igt/kms_plane_scaling : plane scaling enhancement and plane support for bxt Date: Mon, 20 Jul 2015 11:06:17 +0530 Message-ID: <55AC88D1.5080600@intel.com> References: <1437122099-8714-1-git-send-email-nabendu.bikash.maiti@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id DF5C68916C for ; Sun, 19 Jul 2015 22:36:19 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Wood Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org CgpPbiA3LzE3LzIwMTUgNTowNiBQTSwgVGhvbWFzIFdvb2Qgd3JvdGU6Cj4gT24gMTcgSnVseSAy MDE1IGF0IDA5OjM0LCBOYWJlbmR1IE1haXRpPG5hYmVuZHUuYmlrYXNoLm1haXRpQGludGVsLmNv bT4gIHdyb3RlOgo+PiAxKSBBZGRlZCBtb3JlIG92ZXJsYXkgcGxhbmUgc3VwcG9ydCBmb3IgQlhU Lgo+PiAyKSBBZGRlZCBhbmQgZW5oYW5jZWQgc2NhbGVyIHRlc3QgY2FzZXMgZm9yIGFkZGl0aW9u YWwgcGxhbmVzLgo+IFBsZWFzZSBzcGxpdCB0aGUgdmFyaW91cyBzZXBhcmF0ZSBjaGFuZ2VzIGlu IGRpZmZlcmVudCBwYXRjaGVzLgo+Cj4gVGhlIGktZy10IHRhZyBzaG91bGQgYWxzbyBhcHBlYXIg aW4gdGhlIHN1YmplY3QgcHJlZml4IHJhdGhlciB0aGFuIHRoZQo+IHN1YmplY3QgdGFnLiAoaS5l LiB1c2UgLS1zdWJqZWN0LXByZWZpeD0iUEFUQ0ggaS1nLXQiIG9yIGdpdCBjb25maWcKPiBmb3Jt YXQuc3ViamVjdHByZWZpeCAiUEFUQ0ggaS1nLXQiKS4KQWdyZWVkLgo+PiBTaWduZWQtb2ZmLWJ5 OiBOYWJlbmR1IE1haXRpPG5hYmVuZHUuYmlrYXNoLm1haXRpQGludGVsLmNvbT4KPj4gLS0tCj4+ ICAgbGliL2lndF9mYi5jICAgICAgICAgICAgICB8IDQwICsrKysrKysrKysrKysrKysrKysrKysr Kwo+PiAgIGxpYi9pZ3RfZmIuaCAgICAgICAgICAgICAgfCAgMSArCj4+ICAgbGliL2lndF9rbXMu YyAgICAgICAgICAgICB8ICAxICsKPj4gICBsaWIvaWd0X2ttcy5oICAgICAgICAgICAgIHwgIDMg Ky0KPj4gICB0ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jIHwgNzkgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPj4gICA1IGZpbGVzIGNoYW5nZWQsIDExOCBp bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvbGliL2lndF9m Yi5jIGIvbGliL2lndF9mYi5jCj4+IGluZGV4IDEzNGRiZDIuLmU2MWI3NjIgMTAwNjQ0Cj4+IC0t LSBhL2xpYi9pZ3RfZmIuYwo+PiArKysgYi9saWIvaWd0X2ZiLmMKPj4gQEAgLTM5Myw2ICszOTMs NDYgQEAgdm9pZCBpZ3RfcGFpbnRfaW1hZ2UoY2Fpcm9fdCAqY3IsIGNvbnN0IGNoYXIgKmZpbGVu YW1lLAo+PiAgIH0KPj4KPj4gICAvKioKPj4gKyAqIGlndF9wYWludF9jcm9zc19ydWxlcjoKPj4g KyAqIEBjcjogY2Fpcm8gZHJhd2luZyBjb250ZXh0Cj4+ICsgKiBAZHN0X3dpZHRoOiB3aWR0aCBv ZiB0aGUgaG9yaXpvbnRhbCBydWxlcgo+PiArICogQGRzdF9oZWlnaHQ6IGhlaWdodCBvZiB0aGUg dmVydGljYWwgcnVsZXIKPj4gKyAqCj4+ICsgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRv IGRyYXcgYSBjcm9zcyBydWxlciBvbiBhIGZyYW1lIGJ1ZmZlci4KPj4gKyAqLwo+PiArdm9pZAo+ PiAraWd0X3BhaW50X2Nyb3NzX3J1bGVyKGNhaXJvX3QgKmNyLCB1aW50MTZfdCB3LCB1aW50MTZf dCBoKQo+IE90aGVyIGNhaXJvIGZ1bmN0aW9ucyB1c2UgaW50IHJhdGhlciB0aGFuIHVpbnQxNl90 IGZvciB3aWR0aCBhbmQKPiBoZWlnaHQsIHNvIGludCBzaG91bGQgYmUgc3VmZmljaWVudCBoZXJl IHRvbywgYXQgbGVhc3QgZm9yCj4gY29uc2lzdGVuY3kuCj4KT2tleS4gSSdsbCBkbyBpdC4KPj4g K3sKPj4gKwo+PiArICAgICAgIHVpbnQxNl90IGk7Cj4+ICsKPj4gKyAgICAgICAvKiBQYWludCBj b3JuZXIgbWFya2VycyAqLwo+PiArICAgICAgIHBhaW50X21hcmtlcihjciwgMCwgMCk7Cj4+ICsg ICAgICAgcGFpbnRfbWFya2VyKGNyLCB3LCAwKTsKPj4gKyAgICAgICBwYWludF9tYXJrZXIoY3Is IDAsIGgpOwo+PiArICAgICAgIHBhaW50X21hcmtlcihjciwgdywgaCk7Cj4+ICsKPj4gKwo+PiAr ICAgICAgIGNhaXJvX21vdmVfdG8oY3IsIHcvMiwgMCk7Cj4+ICsgICAgICAgY2Fpcm9fbGluZV90 byhjciwgdy8yLCBoKTsKPj4gKwo+PiArICAgICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiKGNyLCA0 LCAxLCAxMCk7Cj4+ICsgICAgICAgY2Fpcm9fbW92ZV90byhjciwgMCwgaC8yKTsKPj4gKyAgICAg ICBjYWlyb19saW5lX3RvKGNyLCB3LCBoLzIgKTsKPj4gKyAgICAgICBjYWlyb19zdHJva2UoY3Ip Owo+PiArCj4+ICsgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2IoY3IsIDIsIDUsIDEpOwo+PiAr ICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNyLCAyKTsKPj4gKyAgICAgICBjYWlyb19zdHJv a2UoY3IpOwo+PiArICAgICAgIGNhaXJvX3N0cm9rZV9wcmVzZXJ2ZShjcik7Cj4+ICsgICAgICAg Zm9yIChpID0gMDsgaSA8IHc7IGkgKz0yMDApCj4+ICsgICAgICAgICAgICAgICBwYWludF9tYXJr ZXIoY3IsIGksIGgvMik7Cj4+ICsKPj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgaDsgaSArPTIw MCkKPj4gKyAgICAgICAgICAgICAgIHBhaW50X21hcmtlcihjciwgdy8yLCBpKTsKPj4gK30KPj4g Kwo+PiArLyoqCj4+ICAgICogaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemU6Cj4+ICAgICogQGZk OiBvcGVuIGk5MTUgZHJtIGZpbGUgZGVzY3JpcHRvcgo+PiAgICAqIEB3aWR0aDogd2lkdGggb2Yg dGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCj4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmggYi9s aWIvaWd0X2ZiLmgKPj4gaW5kZXggYTA3YWNkMi4uY2Y2ZTdlMyAxMDA2NDQKPj4gLS0tIGEvbGli L2lndF9mYi5oCj4+ICsrKyBiL2xpYi9pZ3RfZmIuaAo+PiBAQCAtOTgsNiArOTgsNyBAQCB2b2lk IGlndF93cml0ZV9mYl90b19wbmcoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYiwgY29uc3QgY2hh ciAqZmlsZW5hbWUpOwo+PiAgIGludCBpZ3RfY2Fpcm9fcHJpbnRmX2xpbmUoY2Fpcm9fdCAqY3Is IGVudW0gaWd0X3RleHRfYWxpZ24gYWxpZ24sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZG91YmxlIHlzcGFjaW5nLCBjb25zdCBjaGFyICpmbXQsIC4uLikKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgNCwg NSkpKTsKPj4gK3ZvaWQgaWd0X3BhaW50X2Nyb3NzX3J1bGVyKGNhaXJvX3QgKmNyLCB1aW50MTZf dCB3LCB1aW50MTZfdCBoKTsKPj4KPj4gICAvKiBoZWxwZXJzIHRvIGhhbmRsZSBkcm0gZm91cmNj IGNvZGVzICovCj4+ICAgdWludDMyX3QgaWd0X2JwcF9kZXB0aF90b19kcm1fZm9ybWF0KGludCBi cHAsIGludCBkZXB0aCk7Cj4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9r bXMuYwo+PiBpbmRleCAwYmIxNmI0Li43ODFmZmE1IDEwMDY0NAo+PiAtLS0gYS9saWIvaWd0X2tt cy5jCj4+ICsrKyBiL2xpYi9pZ3Rfa21zLmMKPj4gQEAgLTIxMyw2ICsyMTMsNyBAQCBjb25zdCBj aGFyICprbXN0ZXN0X3BsYW5lX25hbWUoZW51bSBpZ3RfcGxhbmUgcGxhbmUpCj4+ICAgICAgICAg ICAgICAgICAgW0lHVF9QTEFORV8xXSA9ICJwbGFuZTEiLAo+PiAgICAgICAgICAgICAgICAgIFtJ R1RfUExBTkVfMl0gPSAicGxhbmUyIiwKPj4gICAgICAgICAgICAgICAgICBbSUdUX1BMQU5FXzNd ID0gInBsYW5lMyIsCj4+ICsgICAgICAgICAgICAgICBbSUdUX1BMQU5FXzRdID0gInBsYW5lNCIs Cj4+ICAgICAgICAgICAgICAgICAgW0lHVF9QTEFORV9DVVJTT1JdID0gImN1cnNvciIsCj4+ICAg ICAgICAgIH07Cj4+Cj4+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMu aAo+PiBpbmRleCAwOWMwOGFhLi4xNGM4YjI4IDEwMDY0NAo+PiAtLS0gYS9saWIvaWd0X2ttcy5o Cj4+ICsrKyBiL2xpYi9pZ3Rfa21zLmgKPj4gQEAgLTUzLDYgKzUzLDcgQEAgZW51bSBpZ3RfcGxh bmUgewo+PiAgICAgICAgICAgSUdUX1BMQU5FX1BSSU1BUlkgPSBJR1RfUExBTkVfMSwKPj4gICAg ICAgICAgIElHVF9QTEFORV8yLAo+PiAgICAgICAgICAgSUdUX1BMQU5FXzMsCj4+ICsgICAgICAg IElHVF9QTEFORV80LAo+PiAgICAgICAgICAgSUdUX1BMQU5FX0NVUlNPUiwKPj4gICB9Owo+Pgo+ PiBAQCAtMjA1LDcgKzIwNiw3IEBAIHN0cnVjdCBpZ3RfcGlwZSB7Cj4+ICAgICAgICAgIGlndF9k aXNwbGF5X3QgKmRpc3BsYXk7Cj4+ICAgICAgICAgIGVudW0gcGlwZSBwaXBlOwo+PiAgICAgICAg ICBib29sIGVuYWJsZWQ7Cj4+IC0jZGVmaW5lIElHVF9NQVhfUExBTkVTIDQKPj4gKyNkZWZpbmUg SUdUX01BWF9QTEFORVMgNQo+PiAgICAgICAgICBpbnQgbl9wbGFuZXM7Cj4+ICAgICAgICAgIGln dF9wbGFuZV90IHBsYW5lc1tJR1RfTUFYX1BMQU5FU107Cj4+ICAgICAgICAgIHVpbnQ2NF90IGJh Y2tncm91bmQ7IC8qIEJhY2tncm91bmQgY29sb3IgTVNCIEJHUiAxNmJwYyBMU0IgKi8KPj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL2ttc19wbGFuZV9zY2FsaW5nLmMgYi90ZXN0cy9rbXNfcGxhbmVfc2Nh bGluZy5jCj4+IGluZGV4IDAwZGI1Y2IuLjhlM2Q1NTkgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL2tt c19wbGFuZV9zY2FsaW5nLmMKPj4gKysrIGIvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYwo+PiBA QCAtMjMsNyArMjMsNyBAQAo+PiAgICAqLwo+Pgo+PiAgICNpbmNsdWRlIDxtYXRoLmg+Cj4+IC0K Pj4gKyNpbmNsdWRlIDxjYWlyby5oPgo+IGNhaXJvIGlzIGFscmVhZHkgaW5jbHVkZWQgdmlhIGln dF9rbXMuaCBhbmQgaWd0X2ZiLmguCj4KV2lsbCByZW1vdmUgaW4gdGhlIHVwZGF0ZWQgcGF0Y2hl cy4KPj4gICAjaW5jbHVkZSAiZHJtdGVzdC5oIgo+PiAgICNpbmNsdWRlICJpZ3RfZGVidWdmcy5o Igo+PiAgICNpbmNsdWRlICJpZ3Rfa21zLmgiCj4+IEBAIC00OCw5ICs0OCwxMSBAQCB0eXBlZGVm IHN0cnVjdCB7Cj4+ICAgICAgICAgIHN0cnVjdCBpZ3RfZmIgZmIxOwo+PiAgICAgICAgICBzdHJ1 Y3QgaWd0X2ZiIGZiMjsKPj4gICAgICAgICAgc3RydWN0IGlndF9mYiBmYjM7Cj4+ICsgICAgICAg c3RydWN0IGlndF9mYiBmYjQ7Cj4+ICAgICAgICAgIGludCBmYl9pZDE7Cj4+ICAgICAgICAgIGlu dCBmYl9pZDI7Cj4+ICAgICAgICAgIGludCBmYl9pZDM7Cj4+ICsgICAgICAgaW50IGZiX2lkNDsK Pj4KPj4gICAgICAgICAgaWd0X3BsYW5lX3QgKnBsYW5lMTsKPj4gICAgICAgICAgaWd0X3BsYW5l X3QgKnBsYW5lMjsKPj4gQEAgLTYxLDYgKzYzLDIyIEBAIHR5cGVkZWYgc3RydWN0IHsKPj4gICAj ZGVmaW5lIEZJTEVfTkFNRSAgICIxMDgwcC1sZWZ0LnBuZyIKPj4KPj4gICBzdGF0aWMgdm9pZAo+ PiArcGFpbnRfcGxhbmVfSUQoZGF0YV90ICpkLCBzdHJ1Y3QgaWd0X2ZiICpmYiwgaWd0X3BsYW5l X3QgKnBsYW5lKQo+PiArewo+PiArICAgICAgIGNhaXJvX3QgKmNyOwo+PiArCj4+ICsgICAgICAg Y3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkLT5kcm1fZmQsIGZiKTsKPj4gKyAgICAgICBjYWlyb19t b3ZlX3RvKGNyLCAoZmItPndpZHRoLzUpLAo+PiArICAgICAgICAgICAgICAgICAgICAgKGZiLT5o ZWlnaHQgLyA1KSk7Cj4+ICsgICAgICAgY2Fpcm9fc2V0X2ZvbnRfc2l6ZShjciwgMjUpOwo+PiAr ICAgICAgIGlndF9jYWlyb19wcmludGZfbGluZShjciwgYWxpZ25faGNlbnRlciwgMTAsICJQSVBF OlBMQU5FOiIpOwo+PiArICAgICAgIGNhaXJvX3NldF9mb250X3NpemUoY3IsIDMwKTsKPj4gKyAg ICAgICBpZ3RfY2Fpcm9fcHJpbnRmX2xpbmUoY3IsIGFsaWduX2hjZW50ZXIsIDQwLCAiICVkOiVk IiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmUtPnBpcGUtPnBpcGUsIHBs YW5lLT5pbmRleCk7Cj4+ICsgICAgICAgY2Fpcm9fZGVzdHJveShjcik7Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyB2b2lkCj4+ICAgcGFpbnRfY29sb3IoZGF0YV90ICpkLCBzdHJ1Y3QgaWd0X2ZiICpm YiwgdWludDE2X3QgdywgdWludDE2X3QgaCkKPj4gICB7Cj4+ICAgICAgICAgIGNhaXJvX3QgKmNy Owo+PiBAQCAtNzEsMTIgKzg5LDE0IEBAIHBhaW50X2NvbG9yKGRhdGFfdCAqZCwgc3RydWN0IGln dF9mYiAqZmIsIHVpbnQxNl90IHcsIHVpbnQxNl90IGgpCj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyB2 b2lkCj4+IC1wYWludF9pbWFnZShkYXRhX3QgKmQsIHN0cnVjdCBpZ3RfZmIgKmZiLCB1aW50MTZf dCB3LCB1aW50MTZfdCBoKQo+PiArcGFpbnRfaW1hZ2UoY29uc3QgY2hhciAqZmlsZW5hbWUsIGRh dGFfdCAqZCwgc3RydWN0IGlndF9mYiAqZmIsCj4+ICsgICAgICAgICAgICAgICB1aW50MTZfdCB3 LCB1aW50MTZfdCBoKQo+IFdoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhlIG5ldyBmaWxlbmFtZSBw YXJhbWV0ZXI/IEl0IGFsd2F5cyBhcHBlYXJzCj4gdG8gYmUgc2V0IHRvIHRvIHRoZSBzYW1lIHZh bHVlIChGSUxFX05BTUUpIGFzIHVzZWQgcHJldmlvdXNseSBpbiB0aGUKPiB2YWxsIHRvIGlndF9w YWludF9pbWFnZS4KbW9kaWZpZWQgdG8gcGFzcyBkaWZmZXJlbnQgc2l6ZSBpbWFnZWZpbGVzIGZv ciBkaWZmZXJlbnQgc2NhbGVkIHBsYW5lcyAKZm9yIGZ1dHVyZSBwbGFubmVkIHBhdGNoZXMuCj4K Pj4gICB7Cj4+ICAgICAgICAgIGNhaXJvX3QgKmNyOwo+Pgo+PiAgICAgICAgICBjciA9IGlndF9n ZXRfY2Fpcm9fY3R4KGQtPmRybV9mZCwgZmIpOwo+PiAtICAgICAgIGlndF9wYWludF9pbWFnZShj ciwgRklMRV9OQU1FLCAwLCAwLCB3LCBoKTsKPj4gKyAgICAgICBpZ3RfcGFpbnRfaW1hZ2UoY3Is IGZpbGVuYW1lLCAwLCAwLCB3LCBoKTsKPj4gKyAgICAgICBpZ3RfcGFpbnRfY3Jvc3NfcnVsZXIo Y3IsIHcsIGgpOwo+PiAgICAgICAgICBjYWlyb19kZXN0cm95KGNyKTsKPj4gICB9Cj4+Cj4+IEBA IC0xMDYsNiArMTI2LDcgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwg aWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlwZSBwaXBlLAo+PiAgICAgICAgICBpZ3RfYXNz ZXJ0KGRhdGEtPmZiX2lkMSk7Cj4+Cj4+ICAgICAgICAgIHBhaW50X2NvbG9yKGRhdGEsICZkYXRh LT5mYjEsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7Cj4+ICsgICAgICAgcGFpbnRf cGxhbmVfSUQoZGF0YSwgJmRhdGEtPmZiMSwgcGxhbmUpOwo+Pgo+PiAgICAgICAgICAvKgo+PiAg ICAgICAgICAgKiBXZSBhbHdheXMgc2V0IHRoZSBwcmltYXJ5IHBsYW5lIHRvIGFjdHVhbGx5IGVu YWJsZSB0aGUgcGlwZSBhcwo+PiBAQCAtMTU0LDcgKzE3NSwxMCBAQCBzdGF0aWMgdm9pZCBjbGVh bnVwX2NydGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3Qg KnBsYW5lKQo+PiAgICAgICAgICAgICAgICAgIGlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAm ZGF0YS0+ZmIzKTsKPj4gICAgICAgICAgICAgICAgICBkYXRhLT5mYl9pZDMgPSAwOwo+PiAgICAg ICAgICB9Cj4+IC0KPj4gKyAgICAgICBpZiAoZGF0YS0+ZmJfaWQ0KSB7Cj4+ICsgICAgICAgICAg ICAgICBpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiNCk7Cj4+ICsgICAgICAg ICAgICAgICBkYXRhLT5mYl9pZDQgPSAwOwo+PiArICAgICAgIH0KPj4gICAgICAgICAgaWYgKCFw bGFuZS0+aXNfcHJpbWFyeSkgewo+PiAgICAgICAgICAgICAgICAgIGlndF9wbGFuZV90ICpwcmlt YXJ5Owo+Pgo+PiBAQCAtMjM1LDcgKzI1OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfc2Nh bGluZyhkYXRhX3QgKmQpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPQ0FM X0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCAvKiB0aWxlZCAqLwo+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZC0+ZmIyKTsKPj4gICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0 KGQtPmZiX2lkMik7Cj4+IC0gICAgICAgICAgICAgICBwYWludF9pbWFnZShkLCAmZC0+ZmIyLCBk LT5mYjIud2lkdGgsIGQtPmZiMi5oZWlnaHQpOwo+PiArICAgICAgICAgICAgICAgcGFpbnRfaW1h Z2UoRklMRV9OQU1FLCBkLCAmZC0+ZmIyLCBkLT5mYjIud2lkdGgsIGQtPmZiMi5oZWlnaHQpOwo+ Pgo+PiAgICAgICAgICAgICAgICAgIGQtPmZiX2lkMyA9IGlndF9jcmVhdGVfZmIoZC0+ZHJtX2Zk LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlLT5oZGlzcGxheSwgbW9k ZS0+dmRpc3BsYXksCj4+IEBAIC0yNDUsNiArMjY5LDE3IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxh bmVfc2NhbGluZyhkYXRhX3QgKmQpCj4+ICAgICAgICAgICAgICAgICAgaWd0X2Fzc2VydChkLT5m Yl9pZDMpOwo+PiAgICAgICAgICAgICAgICAgIHBhaW50X2NvbG9yKGQsICZkLT5mYjMsIG1vZGUt PmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7Cj4+Cj4+ICsgICAgICAgICAgICAgICBpZiAoKGRp c3BsYXktPnBpcGVzW3BpcGVdLm5fcGxhbmVzID4gNCkgJiYgKHBpcGUgIT0gUElQRV9DKSkgewo+ PiArICAgICAgICAgICAgICAgICAgICAgICBkLT5mYl9pZDQgPSBpZ3RfY3JlYXRlX2ZiKGQtPmRy bV9mZCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmltYWdl X3csIGQtPmltYWdlX2gsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBEUk1fRk9STUFUX1hSR0I4ODg4LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIC8qdGlsZWQqLwo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmQtPmZiNCk7Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlndF9hc3NlcnQoZC0+ZmJfaWQ0KTsKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgcGFpbnRfaW1hZ2UoRklMRV9OQU1FLCBkLCZkLT5mYjQsIGQtPmZiNC53aWR0aCwK Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+ZmI0LmhlaWdodCk7Cj4+ ICsgICAgICAgICAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgICAgICAgICAvKiBTZXQgdXAgZGlz cGxheSB3aXRoIHBsYW5lIDEgKi8KPj4gICAgICAgICAgICAgICAgICBkLT5wbGFuZTEgPSBpZ3Rf b3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElHVF9QTEFORV9QUklNQVJZKTsKPj4gICAgICAgICAg ICAgICAgICBwcmVwYXJlX2NydGMoZCwgb3V0cHV0LCBwaXBlLCBkLT5wbGFuZTEsIG1vZGUsIENP TU1JVF9VTklWRVJTQUwpOwo+PiBAQCAtMjY4LDYgKzMwMyw3IEBAIHN0YXRpYyB2b2lkIHRlc3Rf cGxhbmVfc2NhbGluZyhkYXRhX3QgKmQpCj4+ICAgICAgICAgICAgICAgICAgLyogU2V0IHVwIGZi Mi0+cGxhbmUyIG1hcHBpbmcuICovCj4+ICAgICAgICAgICAgICAgICAgZC0+cGxhbmUyID0gaWd0 X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LCBJR1RfUExBTkVfMik7Cj4+ICAgICAgICAgICAgICAg ICAgaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTIsICZkLT5mYjIpOwo+PiArICAgICAgICAgICAg ICAgcGFpbnRfcGxhbmVfSUQoZCwgJmQtPmZiMiwgZC0+cGxhbmUyKTsKPj4KPj4gICAgICAgICAg ICAgICAgICAvKiAybmQgcGxhbmUgd2luZG93ZWQgKi8KPj4gICAgICAgICAgICAgICAgICBpZ3Rf ZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOwo+PiBAQCAtMjkz LDYgKzMyOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfc2NhbGluZyhkYXRhX3QgKmQpCj4+ ICAgICAgICAgICAgICAgICAgaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5J VkVSU0FMKTsKPj4KPj4gICAgICAgICAgICAgICAgICBpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5n KSB7Cj4+ICsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFByaW1hcnkgcGxhbmUgdXAg c2NhbGluZyAqLwo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgaWd0X2ZiX3NldF9wb3NpdGlv bigmZC0+ZmIxLCBkLT5wbGFuZTEsIDEwMCwgMTAwKTsKPj4gICAgICAgICAgICAgICAgICAgICAg ICAgIGlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFuZTEsIDUwMCwgNTAwKTsKPj4gQEAg LTMwNCw2ICszNDEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3BsYW5lX3NjYWxpbmcoZGF0YV90ICpk KQo+PiAgICAgICAgICAgICAgICAgIC8qIFNldCB1cCBmYjMtPnBsYW5lMyBtYXBwaW5nLiAqLwo+ PiAgICAgICAgICAgICAgICAgIGQtPnBsYW5lMyA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1 dCwgSUdUX1BMQU5FXzMpOwo+PiAgICAgICAgICAgICAgICAgIGlndF9wbGFuZV9zZXRfZmIoZC0+ cGxhbmUzLCAmZC0+ZmIzKTsKPj4gKyAgICAgICAgICAgICAgIHBhaW50X3BsYW5lX0lEKGQsICZk LT5mYjMsIGQtPnBsYW5lMyk7Cj4+Cj4+ICAgICAgICAgICAgICAgICAgLyogM3JkIHBsYW5lIHdp bmRvd2VkIC0gbm8gc2NhbGluZyAqLwo+PiAgICAgICAgICAgICAgICAgIGlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMywgZC0+cGxhbmUzLCAxMDAsIDEwMCk7Cj4+IEBAIC0zMjQsNiArMzYyLDM1 IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfc2NhbGluZyhkYXRhX3QgKmQpCj4+ICAgICAgICAg ICAgICAgICAgaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMywgbW9kZS0+aGRpc3BsYXktMzAw LCBtb2RlLT52ZGlzcGxheS0zMDApOwo+PiAgICAgICAgICAgICAgICAgIGlndF9kaXNwbGF5X2Nv bW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7Cj4+Cj4+ICsgICAgICAgICAgICAgICBp ZiAoKGRpc3BsYXktPnBpcGVzW3BpcGVdLm5fcGxhbmVzID4gNCkgJiYgKHBpcGUgIT0gUElQRV9D KSkgewo+PiArCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIFNldCB1cCBmYjQtPnBsYW5l NCBtYXBwaW5nLiAqLwo+PiArICAgICAgICAgICAgICAgICAgICAgICBkLT5wbGFuZTQgPSBpZ3Rf b3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElHVF9QTEFORV80KTsKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTQsICZkLT5mYjQpOwo+PiArICAgICAg ICAgICAgICAgICAgICAgICBwYWludF9wbGFuZV9JRChkLCAmZC0+ZmI0LCBkLT5wbGFuZTQpOwo+ PiArCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIDR0aCBwbGFuZSB3aW5kb3dlZCAtIG5v IHNjYWxpbmcgKi8KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWd0X2ZiX3NldF9wb3NpdGlv bigmZC0+ZmI0LCBkLT5wbGFuZTQsIDUwLCAyMDApOwo+PiArICAgICAgICAgICAgICAgICAgICAg ICBpZ3RfZmJfc2V0X3NpemUoJmQtPmZiNCwgZC0+cGxhbmU0LCBkLT5mYjQud2lkdGgtMzAwLCBk LT5mYjQuaGVpZ2h0LTMwMCk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlndF9wbGFuZV9z ZXRfcG9zaXRpb24oZC0+cGxhbmU0LCAxMDAsIDEwMCk7Cj4+ICsgICAgICAgICAgICAgICAgICAg ICAgIGlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTQsIGQtPmZiNC53aWR0aC0zMDAsIGQtPmZi NC5oZWlnaHQtMzAwKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWd0X2Rpc3BsYXlfY29t bWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKPj4gKwo+PiArICAgICAgICAgICAgICAg ICAgICAgICAvKiBTd2l0Y2ggc2NhbGVyIGZyb20gcGxhbmUgMyB0byBwbGFuZSA0ICovCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIGlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMywgZC0+cGxh bmUzLCAxMDAsIDEwMCk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlndF9mYl9zZXRfc2l6 ZSgmZC0+ZmIzLCBkLT5wbGFuZTMsIGQtPmZiMy53aWR0aC0zMDAsIGQtPmZiMy5oZWlnaHQtMzAw KTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5w bGFuZTMsIDEwMCwgMTAwKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWd0X3BsYW5lX3Nl dF9zaXplKGQtPnBsYW5lMywgZC0+ZmIzLndpZHRoLTMwMCwgZC0+ZmIzLmhlaWdodC0zMDApOwo+ PiArICAgICAgICAgICAgICAgICAgICAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENP TU1JVF9VTklWRVJTQUwpOwo+PiArCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlndF9mYl9z ZXRfcG9zaXRpb24oJmQtPmZiNCwgZC0+cGxhbmU0LCAxMCwgMTApOwo+PiArICAgICAgICAgICAg ICAgICAgICAgICBpZ3RfZmJfc2V0X3NpemUoJmQtPmZiNCwgZC0+cGxhbmU0LCBkLT5mYjQud2lk dGgtNTAsIGQtPmZiNC5oZWlnaHQtNTApOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBpZ3Rf cGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lNCwgMTAsIDEwKTsKPj4gKyAgICAgICAgICAgICAg ICAgICAgICAgaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lNCwgbW9kZS0+aGRpc3BsYXktMzAw LCBtb2RlLT52ZGlzcGxheS0zMDApOwo+PiArICAgICAgICAgICAgICAgICAgICAgICBpZ3RfZGlz cGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwo+PiArCj4+ICsgICAgICAg ICAgICAgICB9Cj4+ICsKPj4gICAgICAgICAgICAgICAgICBpZiAocHJpbWFyeV9wbGFuZV9zY2Fs aW5nKSB7Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTd2l0Y2ggc2NhbGVyIGZyb20g cGxhbmUgMSB0byBwbGFuZSAyICovCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBpZ3RfZmJf c2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwgMCk7Cj4+IEBAIC0zNDEsNiArNDA4 LDggQEAgc3RhdGljIHZvaWQgdGVzdF9wbGFuZV9zY2FsaW5nKGRhdGFfdCAqZCkKPj4gICAgICAg ICAgICAgICAgICAvKiBiYWNrIHRvIHNpbmdsZSBwbGFuZSBtb2RlICovCj4+ICAgICAgICAgICAg ICAgICAgaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTIsIE5VTEwpOwo+PiAgICAgICAgICAgICAg ICAgIGlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCBOVUxMKTsKPj4gKyAgICAgICAgICAgICAg IGlmIChkLT5wbGFuZTQpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlndF9wbGFuZV9zZXRf ZmIoZC0+cGxhbmU0LCBOVUxMKTsKPj4gICAgICAgICAgICAgICAgICBpZ3RfZGlzcGxheV9jb21t aXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwo+Pgo+PiAgICAgICAgICAgICAgICAgIHZh bGlkX3Rlc3RzKys7Cj4+IC0tCj4+IDEuOS4xCj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=