From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 2/3] drm/i915/icl: Enable 2nd DBuf slice only when needed Date: Wed, 25 Apr 2018 14:01:43 -0700 Message-ID: <20180425210143.GA1994@intel.com> References: <20180405060019.4018-1-mahesh1.kumar@intel.com> <20180405060019.4018-3-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF81A6E11D for ; Wed, 25 Apr 2018 21:01:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180405060019.4018-3-mahesh1.kumar@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mahesh Kumar Cc: intel-gfx@lists.freedesktop.org, lucas.demarchi@intel.com, paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMTE6MzA6MThBTSArMDUzMCwgTWFoZXNoIEt1bWFyIHdy b3RlOgo+IElDTCBoYXMgdHdvIHNsaWNlcyBvZiBEQnVmLCBlYWNoIHNsaWNlIG9mIHNpemUgMTAy NCBibG9ja3MuCj4gV2Ugc2hvdWxkIG5vdCBhbHdheXMgZW5hYmxlIHNsaWNlLTIuIEl0IHNob3Vs ZCBiZSBlbmFibGVkIG9ubHkgaWYKPiBkaXNwbGF5IHRvdGFsIHJlcXVpcmVkIEJXIGlzID4gMTJH QnBzIE9SIG1vcmUgdGhhbiAxIHBpcGVzIGFyZSBlbmFibGVkLgo+IAo+IENoYW5nZXMgc2luY2Ug VjE6Cj4gIC0gdHlwZWNhc3QgdG90YWxfZGF0YV9yYXRlIHRvIHU2NCBiZWZvcmUgbXVsdGlwbGlj YXRpb24gdG8gc29sdmUgYW55Cj4gICAgcG9zc2libGUgb3ZlcmZsb3cgKFJvZHJpZ28pCj4gIC0g Zml4IHdoZXJlIHNrbF93bV9nZXRfaHdfc3RhdGUgd2FzIG1lbXNldHRpbmcgZGRiLCByZXN1bHRp bmcKPiAgICBlbmFibGVkX3NsaWNlcyB0byBiZWNvbWUgemVybwo+ICAtIEZpeCB0aGUgbG9naWMg b2YgY2FsY3VsYXRpbmcgZGRiX3NpemUKPiBDaGFuZ2VzIHNpbmNlIFYyOgo+ICAtIElmIG5vLWNy dGMgaXMgcGFydCBvZiBjb21taXQgcmVxdWlyZWRfc2xpY2VzIHdpbGwgaGF2ZSB2YWx1ZSAiMCIs Cj4gICAgZG9uJ3QgdHJ5IHRvIGRpc2FibGUgREJ1ZiBzbGljZS4KPiBDaGFuZ2VzIHNpbmNlIFYz Ogo+ICAtIENyZWF0ZSBhIGdlbmVyaWMgaGVscGVyIHRvIGVuYWJsZS9kaXNhYmxlIHNsaWNlCj4g IC0gZG9uJ3QgcmV0dXJuIGVhcmx5IGlmIHRvdGFsX2RhdGFfcmF0ZSBpcyAwLCBpdCBtYXkgYmUg Y3Vyc29yIG9ubHkKPiAgICBjb21taXQsIG9yIGF0b21pYyBtb2Rlc2V0IHdpdGhvdXQgYW55IHBs YW5lLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1haGVzaCBLdW1hciA8bWFoZXNoMS5rdW1hckBpbnRl bC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8 IDEwICsrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICA2 ICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgfCA1NyArKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMgfCA2NSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KPiAgNCBm aWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDk2YTFlNmE3ZjY5ZS4uYmM3OTUz MDc2NTdhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMjE5 Niw2ICsxMjE5Niw4IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfY3J0Y3Moc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJYm9vbCBwcm9ncmVzczsKPiAgCWVudW0gcGlwZSBwaXBl Owo+ICAJaW50IGk7Cj4gKwl1aW50OF90IGh3X2VuYWJsZWRfc2xpY2VzID0gZGV2X3ByaXYtPndt LnNrbF9ody5kZGIuZW5hYmxlZF9zbGljZXM7Cj4gKwl1aW50OF90IHJlcXVpcmVkX3NsaWNlcyA9 IGludGVsX3N0YXRlLT53bV9yZXN1bHRzLmRkYi5lbmFibGVkX3NsaWNlczsKCmluIG1hbnkgcGFy dHMgdGhpcyBlbmFibGVkX3NsaWNlcyBtZWFuaW5nIHJlcXVpcmVkIG9yIGNhbGN1bGF0ZWQgY29u ZnVzZWQgbWUgYSBiaXQsCmJ1dCBJIGRvbid0IGhhdmUgYmV0dGVyIHN1Z2dlc3Rpb24gYW5kIHRo ZSBjb2RlIHNlZW1zIHJpZ2h0OgoKUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52 aXZpQGludGVsLmNvbT4KCj4gIAo+ICAJY29uc3Qgc3RydWN0IHNrbF9kZGJfZW50cnkgKmVudHJp ZXNbSTkxNV9NQVhfUElQRVNdID0ge307Cj4gIAo+IEBAIC0xMjIwNCw2ICsxMjIwNiwxMCBAQCBz dGF0aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKPiAgCQlpZiAobmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkKPiAgCQkJZW50cmllc1tpXSA9ICZ0 b19pbnRlbF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKS0+d20uc2tsLmRkYjsKPiAgCj4gKwkv KiBJZiAybmQgREJ1ZiBzbGljZSByZXF1aXJlZCwgZW5hYmxlIGl0IGhlcmUgKi8KPiArCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmIHJlcXVpcmVkX3NsaWNlcyA+IGh3X2VuYWJsZWRf c2xpY2VzKQo+ICsJCWljbF9kYnVmX3NsaWNlc191cGRhdGUoZGV2X3ByaXYsIHJlcXVpcmVkX3Ns aWNlcyk7Cj4gKwo+ICAJLyoKPiAgCSAqIFdoZW5ldmVyIHRoZSBudW1iZXIgb2YgYWN0aXZlIHBp cGVzIGNoYW5nZXMsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlCj4gIAkgKiB1cGRhdGUgdGhlIHBp cGVzIGluIHRoZSByaWdodCBvcmRlciBzbyB0aGF0IHRoZWlyIGRkYiBhbGxvY2F0aW9ucwo+IEBA IC0xMjI1NCw2ICsxMjI2MCwxMCBAQCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQkJcHJvZ3Jlc3MgPSB0cnVlOwo+ICAJCX0K PiAgCX0gd2hpbGUgKHByb2dyZXNzKTsKPiArCj4gKwkvKiBJZiAybmQgREJ1ZiBzbGljZSBpcyBu byBtb3JlIHJlcXVpcmVkIGRpc2FibGUgaXQgKi8KPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDExICYmIHJlcXVpcmVkX3NsaWNlcyA8IGh3X2VuYWJsZWRfc2xpY2VzKQo+ICsJCWljbF9k YnVmX3NsaWNlc191cGRhdGUoZGV2X3ByaXYsIHJlcXVpcmVkX3NsaWNlcyk7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19oZWxwZXJfZnJlZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBk MTQ1MmZkMmE1OGQuLjQ3M2ExYWQ3ZjMyYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gQEAgLTE0MCw2ICsxNDAsMTAgQEAKPiAgI2RlZmluZSBLSHooeCkgKDEwMDAgKiAoeCkpCj4g ICNkZWZpbmUgTUh6KHgpIEtIeigxMDAwICogKHgpKQo+ICAKPiArI2RlZmluZSBLQnBzKHgpICgx MDAwICogKHgpKQo+ICsjZGVmaW5lIE1CcHMoeCkgS0JwcygxMDAwICogKHgpKQo+ICsjZGVmaW5l IEdCcHMoeCkgKCh1aW50NjRfdCkgMTAwMCAqIE1CcHMoKHgpKSkKPiArCj4gIC8qCj4gICAqIERp c3BsYXkgcmVsYXRlZCBzdHVmZgo+ICAgKi8KPiBAQCAtMTkxNCw2ICsxOTE4LDggQEAgYm9vbCBp bnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQkJCQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFp bik7Cj4gIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCQkgICAgIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4g ZG9tYWluKTsKPiArdm9pZCBpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiArCQkJICAgIHVpbnQ4X3QgcmVxX3NsaWNlcyk7Cj4gIAo+ICBz dGF0aWMgaW5saW5lIHZvaWQKPiAgYXNzZXJ0X3JwbV9kZXZpY2Vfbm90X3N1c3BlbmRlZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4g aW5kZXggM2ZmMzdkNWJhMzUzLi5jYWEyOWY5NDkzMzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKPiBAQCAtMzc3MSw5ICszNzcxLDQyIEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2 KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4g IAo+ICtzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2dldF9kZGJfc2l6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZSwKPiArCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgdG90YWxf ZGF0YV9yYXRlLAo+ICsJCQkJICAgICAgIGNvbnN0IGludCBudW1fYWN0aXZlLAo+ICsJCQkJICAg ICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYikKPiArewo+ICsJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7Cj4gKwl1NjQgdG90YWxfZGF0YV9idzsK PiArCXUxNiBkZGJfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5kZGJfc2l6ZTsKPiArCj4g KwlXQVJOX09OKGRkYl9zaXplID09IDApOwo+ICsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgMTEpCj4gKwkJcmV0dXJuIGRkYl9zaXplIC0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBw YXRoIGFsbG9jYXRpb24gKi8KPiArCj4gKwlhZGp1c3RlZF9tb2RlID0gJmNzdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlOwo+ICsJdG90YWxfZGF0YV9idyA9ICh1NjQpdG90YWxfZGF0YV9yYXRlICog ZHJtX21vZGVfdnJlZnJlc2goYWRqdXN0ZWRfbW9kZSk7Cj4gKwo+ICsJLyoKPiArCSAqIDEyR0Iv cyBpcyBtYXhpbXVtIEJXIHN1cHBvcnRlZCBieSBzaW5nbGUgREJ1ZiBzbGljZS4KPiArCSAqLwo+ ICsJaWYgKHRvdGFsX2RhdGFfYncgPj0gR0JwcygxMikgfHwgbnVtX2FjdGl2ZSA+IDEpCj4gKwkJ ZGRiLT5lbmFibGVkX3NsaWNlcyA9IDI7Cj4gKwllbHNlIHsKPiArCQlkZGItPmVuYWJsZWRfc2xp Y2VzID0gMTsKPiArCQlkZGJfc2l6ZSAvPSAyOwo+ICsJfQo+ICsKPiArCXJldHVybiBkZGJfc2l6 ZTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9u X2xpbWl0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiArCQkJCSAgIGNvbnN0IHVuc2lnbmVkIGludCB0b3Rh bF9kYXRhX3JhdGUsCj4gKwkJCQkgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIsCj4g IAkJCQkgICBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MsIC8qIG91dCAqLwo+ICAJCQkJICAg aW50ICpudW1fYWN0aXZlIC8qIG91dCAqLykKPiAgewo+IEBAIC0zNzk2LDExICszODI5LDggQEAg c2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAJZWxzZQo+ICAJCSpudW1fYWN0aXZlID0gaHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVf Y3J0Y3MpOwo+ICAKPiAtCWRkYl9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmRkYl9zaXpl Owo+IC0JV0FSTl9PTihkZGJfc2l6ZSA9PSAwKTsKPiAtCj4gLQlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA8IDExKQo+IC0JCWRkYl9zaXplIC09IDQ7IC8qIDQgYmxvY2tzIGZvciBieXBhc3MgcGF0 aCBhbGxvY2F0aW9uICovCj4gKwlkZGJfc2l6ZSA9IGludGVsX2dldF9kZGJfc2l6ZShkZXZfcHJp diwgY3N0YXRlLCB0b3RhbF9kYXRhX3JhdGUsCj4gKwkJCQkgICAgICAqbnVtX2FjdGl2ZSwgZGRi KTsKPiAgCj4gIAkvKgo+ICAJICogSWYgdGhlIHN0YXRlIGRvZXNuJ3QgY2hhbmdlIHRoZSBhY3Rp dmUgQ1JUQydzLCB0aGVuIHRoZXJlJ3MKPiBAQCAtNDIzOSw3ICs0MjY5LDExIEBAIHNrbF9hbGxv Y2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCXJldHVy biAwOwo+ICAJfQo+ICAKPiAtCXNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoZGV2 LCBjc3RhdGUsIGFsbG9jLCAmbnVtX2FjdGl2ZSk7Cj4gKwl0b3RhbF9kYXRhX3JhdGUgPSBza2xf Z2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShjc3RhdGUsCj4gKwkJCQkJCQkgICBwbGFuZV9k YXRhX3JhdGUsCj4gKwkJCQkJCQkgICBwbGFuZV95X2RhdGFfcmF0ZSk7Cj4gKwlza2xfZGRiX2dl dF9waXBlX2FsbG9jYXRpb25fbGltaXRzKGRldiwgY3N0YXRlLCB0b3RhbF9kYXRhX3JhdGUsIGRk YiwKPiArCQkJCQkgICBhbGxvYywgJm51bV9hY3RpdmUpOwo+ICAJYWxsb2Nfc2l6ZSA9IHNrbF9k ZGJfZW50cnlfc2l6ZShhbGxvYyk7Cj4gIAlpZiAoYWxsb2Nfc2l6ZSA9PSAwKQo+ICAJCXJldHVy biAwOwo+IEBAIC00Mjc0LDkgKzQzMDgsNiBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCSAqCj4gIAkgKiBGSVhNRTogd2UgbWF5IG5v dCBhbGxvY2F0ZSBldmVyeSBzaW5nbGUgYmxvY2sgaGVyZS4KPiAgCSAqLwo+IC0JdG90YWxfZGF0 YV9yYXRlID0gc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoY3N0YXRlLAo+IC0JCQkJ CQkJICAgcGxhbmVfZGF0YV9yYXRlLAo+IC0JCQkJCQkJICAgcGxhbmVfeV9kYXRhX3JhdGUpOwo+ ICAJaWYgKHRvdGFsX2RhdGFfcmF0ZSA9PSAwKQo+ICAJCXJldHVybiAwOwo+ICAKPiBAQCAtNTM4 Miw4ICs1NDEzLDEyIEBAIHZvaWQgc2tsX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJCS8qIEZ1bGx5IHJlY29tcHV0ZSBEREIgb24gZmlyc3QgYXRvbWljIGNvbW1p dCAqLwo+ICAJCWRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9zX3dtID0gdHJ1ZTsKPiAgCX0gZWxz ZSB7Cj4gLQkJLyogRWFzeS9jb21tb24gY2FzZTsganVzdCBzYW5pdGl6ZSBEREIgbm93IGlmIGV2 ZXJ5dGhpbmcgb2ZmICovCj4gLQkJbWVtc2V0KGRkYiwgMCwgc2l6ZW9mKCpkZGIpKTsKPiArCQkv Kgo+ICsJCSAqIEVhc3kvY29tbW9uIGNhc2U7IGp1c3Qgc2FuaXRpemUgRERCIG5vdyBpZiBldmVy eXRoaW5nIG9mZgo+ICsJCSAqIEtlZXAgZGJ1ZiBzbGljZSBpbmZvIGludGFjdAo+ICsJCSAqLwo+ ICsJCW1lbXNldChkZGItPnBsYW5lLCAwLCBzaXplb2YoZGRiLT5wbGFuZSkpOwo+ICsJCW1lbXNl dChkZGItPnlfcGxhbmUsIDAsIHNpemVvZihkZGItPnlfcGxhbmUpKTsKPiAgCX0KPiAgfQo+ICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gaW5kZXggNThiZTU0MmQ2 NjBiLi41NmNkZWMwNmU2YjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGlt ZV9wbS5jCj4gQEAgLTI2MjcsMzIgKzI2MjcsNjkgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG93ZXJf ZG9tYWluc19zeW5jX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCW11 dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lk IGdlbjlfZGJ1Zl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICtz dGF0aWMgaW5saW5lCj4gK2Jvb2wgaW50ZWxfZGJ1Zl9zbGljZV9zZXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgIGk5MTVfcmVnX3QgcmVnLCBib29sIGVuYWJsZSkK PiAgewo+IC0JSTkxNV9XUklURShEQlVGX0NUTCwgSTkxNV9SRUFEKERCVUZfQ1RMKSB8IERCVUZf UE9XRVJfUkVRVUVTVCk7Cj4gLQlQT1NUSU5HX1JFQUQoREJVRl9DVEwpOwo+ICsJdTMyIHZhbCwg c3RhdHVzOwo+ICAKPiArCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICsJdmFsID0gZW5hYmxlID8g KHZhbCB8IERCVUZfUE9XRVJfUkVRVUVTVCkgOiAodmFsICYgfkRCVUZfUE9XRVJfUkVRVUVTVCk7 Cj4gKwlJOTE1X1dSSVRFKHJlZywgdmFsKTsKPiArCVBPU1RJTkdfUkVBRChyZWcpOwo+ICAJdWRl bGF5KDEwKTsKPiAgCj4gLQlpZiAoIShJOTE1X1JFQUQoREJVRl9DVEwpICYgREJVRl9QT1dFUl9T VEFURSkpCj4gLQkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGVuYWJsZSB0aW1lb3V0XG4iKTsKPiAr CXN0YXR1cyA9IEk5MTVfUkVBRChyZWcpICYgREJVRl9QT1dFUl9TVEFURTsKPiArCWlmICgoZW5h YmxlICYmICFzdGF0dXMpIHx8ICghZW5hYmxlICYmIHN0YXR1cykpIHsKPiArCQlEUk1fRVJST1Io IkRCdXMgcG93ZXIgJXMgdGltZW91dCFcbiIsCj4gKwkJCQkJZW5hYmxlID8gImVuYWJsZSIgOiAi ZGlzYWJsZSIpOwo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCXJldHVybiB0cnVlOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBnZW45X2RidWZfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiArewo+ICsJaW50ZWxfZGJ1Zl9zbGljZV9zZXQoZGV2X3ByaXYsIERC VUZfQ1RMLCB0cnVlKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZ2VuOV9kYnVmX2Rpc2FibGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gLQlJOTE1X1dSSVRFKERC VUZfQ1RMLCBJOTE1X1JFQUQoREJVRl9DVEwpICYgfkRCVUZfUE9XRVJfUkVRVUVTVCk7Cj4gLQlQ T1NUSU5HX1JFQUQoREJVRl9DVEwpOwo+ICsJaW50ZWxfZGJ1Zl9zbGljZV9zZXQoZGV2X3ByaXYs IERCVUZfQ1RMLCBmYWxzZSk7Cj4gK30KPiAgCj4gLQl1ZGVsYXkoMTApOwo+ICtzdGF0aWMgdWlu dDhfdCBpbnRlbF9kYnVmX21heF9zbGljZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICt7Cj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQo+ICsJCXJldHVybiAx Owo+ICsJcmV0dXJuIDI7Cj4gK30KPiAgCj4gLQlpZiAoSTkxNV9SRUFEKERCVUZfQ1RMKSAmIERC VUZfUE9XRVJfU1RBVEUpCj4gLQkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGRpc2FibGUgdGltZW91 dCFcbiIpOwo+ICt2b2lkIGljbF9kYnVmX3NsaWNlc191cGRhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgdWludDhfdCByZXFfc2xpY2VzKQo+ICt7Cj4gKwl1 aW50OF90IGh3X2VuYWJsZWRfc2xpY2VzID0gZGV2X3ByaXYtPndtLnNrbF9ody5kZGIuZW5hYmxl ZF9zbGljZXM7Cj4gKwl1MzIgdmFsOwo+ICsJYm9vbCByZXQ7Cj4gKwo+ICsJaWYgKHJlcV9zbGlj ZXMgPiBpbnRlbF9kYnVmX21heF9zbGljZXMoZGV2X3ByaXYpKSB7Cj4gKwkJRFJNX0VSUk9SKCJJ bnZhbGlkIG51bWJlciBvZiBkYnVmIHNsaWNlcyByZXF1ZXN0ZWRcbiIpOwo+ICsJCXJldHVybjsK PiArCX0KPiArCj4gKwlpZiAocmVxX3NsaWNlcyA9PSBod19lbmFibGVkX3NsaWNlcyB8fCByZXFf c2xpY2VzID09IDApCj4gKwkJcmV0dXJuOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChEQlVGX0NU TF9TMik7Cj4gKwlpZiAocmVxX3NsaWNlcyA+IGh3X2VuYWJsZWRfc2xpY2VzKQo+ICsJCXJldCA9 IGludGVsX2RidWZfc2xpY2Vfc2V0KGRldl9wcml2LCBEQlVGX0NUTF9TMiwgdHJ1ZSk7Cj4gKwll bHNlCj4gKwkJcmV0ID0gaW50ZWxfZGJ1Zl9zbGljZV9zZXQoZGV2X3ByaXYsIERCVUZfQ1RMX1My LCBmYWxzZSk7Cj4gKwo+ICsJaWYgKHJldCkKPiArCQlkZXZfcHJpdi0+d20uc2tsX2h3LmRkYi5l bmFibGVkX3NsaWNlcyA9IHJlcV9zbGljZXM7Cj4gIH0KPiAgCj4gLS8qCj4gLSAqIFRPRE86IHdl IHNob3VsZG4ndCBhbHdheXMgZW5hYmxlIERCVUZfQ1RMX1MyLCB3ZSBzaG91bGQgb25seSBlbmFi bGUgaXQgd2hlbgo+IC0gKiBuZWVkZWQgYW5kIGtlZXAgaXQgZGlzYWJsZWQgYXMgbXVjaCBhcyBw b3NzaWJsZS4KPiAtICovCj4gIHN0YXRpYyB2b2lkIGljbF9kYnVmX2VuYWJsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCUk5MTVfV1JJVEUoREJVRl9DVExfUzEs IEk5MTVfUkVBRChEQlVGX0NUTF9TMSkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwo+IC0tIAo+IDIu MTYuMgo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK