From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 08/14] drm/i915: Skip useless watermark/FIFO related work on VLV/CHV when not needed Date: Thu, 16 Feb 2017 19:54:24 +0200 Message-ID: <20170216175424.GL31595@intel.com> References: <1481574931-8658-1-git-send-email-ville.syrjala@linux.intel.com> <1481574931-8658-9-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 73B366EBEA for ; Thu, 16 Feb 2017 17:54:28 +0000 (UTC) Content-Disposition: inline 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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTUsIDIwMTYgYXQgMDQ6Mzc6NTNQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTItMTItMTYgb20gMjE6MzUgc2NocmVlZiB2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gPgo+ID4gQ2hlY2sgd2hldGhlciBhbnl0aGluZyByZWxldmFudCBo YXMgYWN0dWFsbHkgY2hhbmdlIHdoZW4gd2UgY29tcHV0ZSBuZXcKPiA+IHdhdGVybWFya3MgZm9y IGVhY2ggcGxhbmUgaW4gdGhlIHN0YXRlLiBJZiB0aGUgd2F0ZXJtYXJrcyBmb3Igbm8KPiA+IHBy aW1hcnkvc3ByaXRlIHBsYW5lcyBjaGFuZ2VkIHdlIGRvbid0IGhhdmUgdG8gcmVjb21wdXRlIHRo ZSBGSUZPIHNwbGl0Cj4gPiBvciByZXByb2dyYW0gdGhlIERTQkFSQiByZWdpc3RlcnMuIEFuZCBl dmVuIHRoZSBjdXJzb3Igd2F0ZXJtYXJrcyBkaWRuJ3QKPiA+IGNoYW5nZSB3ZSBjYW4gc2tpcCB0 aGUgbWVyZ2UraW52ZXJ0IHN0ZXAgYmV0d2VlbiBhbGwgdGhlIHBsYW5lcyBvbgo+ID4gdGhlIHBp cGUgYXMgd2VsbC4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljLmMgfCAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgfCAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg fCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiAgMyBmaWxlcyBj aGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ID4gaW5kZXggYzVhMTY2NzUyZWRhLi5kZjMzZjI3MGI0 NTkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiA+IEBAIC05OSw2 ICs5OSw3IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YykKPiA+ICAJY3J0Y19zdGF0ZS0+dXBkYXRlX3dtX3ByZSA9IGZhbHNlOwo+ID4gIAljcnRjX3N0 YXRlLT51cGRhdGVfd21fcG9zdCA9IGZhbHNlOwo+ID4gIAljcnRjX3N0YXRlLT5mYl9jaGFuZ2Vk ID0gZmFsc2U7Cj4gPiArCWNydGNfc3RhdGUtPmZpZm9fY2hhbmdlZCA9IGZhbHNlOwo+ID4gIAlj cnRjX3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlID0gZmFsc2U7Cj4gPiAgCWNydGNfc3Rh dGUtPmZiX2JpdHMgPSAwOwo+IFRoaXMgZmxhZyBpcyBvbmx5IHVzZWQgaW4gaW50ZWxfcG0uYywg bWF5YmUgcHV0IGl0IGluIGNydGNfc3RhdGUtPndtLnZsdi5maWZvX2NoYW5nZWQsIGFuZCBjbGVh ciBpdCBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSB3bSByZWNhbGN1bGF0aW9uPwoKSSBkb24ndCBy ZWFsbHkgbGlrZSB0aGF0LiBUaGUgc3RhdGUgd2UgZ2V0IGZyb20gZHVwbGljYXRlX3N0YXRlKCkg c2hvdWxkCmJlIGRpcmVjdGx5IHVzZWFibGUgSU1PLiBJdCB3YXMgYWxyZWFkeSBjaGVja2VkIGFm dGVyIGFsbC4gU28gYWxsIHRoZXNlCmtpbmRzIG9mIGZsYWdzIHNob3VsZCBiZSByZXNldCBpbW1l ZGlhdGVseSBJIHRoaW5rLgoKSSBndWVzcyBtb2Rlc2V0IGlzIGEgYml0IG9mIGFuIGV4Y2VwdGlv biB0byBteSBsb2dpYyB0aGVyZS4gVGhhdCBpcyBJJ20KZm9yY2luZyB0aGUgZmxhZyBiYWNrIHRv IHRydWUgd2hlZXZlciB0aGVyZSdzIGEgbW9kZXNldC4gQWx0ZXJuYXRpdmVseQpJIGNvdWxkIHJl c3RvcmUgdGhlIHJlZ2lzdGVycyB3aGVuZXZlciB0aGUgcG93ZXIgd2VsbCBnZXRzIHR1cm5lZCBi YWNrCm9uLCBidXQgdGhpcyB3YXkgaXMgYSBsaXR0bGUgc2ltcGxlciBJIHRoaW5rLgoKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA2NjY2OGMxOGE0N2EuLmE5Mjg1Nzg2NGVl OCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTU2MCw2ICs1NjAs NyBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiAgCWJvb2wgZGlzYWJsZV9jeHNyOwo+ ID4gIAlib29sIHVwZGF0ZV93bV9wcmUsIHVwZGF0ZV93bV9wb3N0OyAvKiB3YXRlcm1hcmtzIGFy ZSB1cGRhdGVkICovCj4gPiAgCWJvb2wgZmJfY2hhbmdlZDsgLyogZmIgb24gYW55IG9mIHRoZSBw bGFuZXMgaXMgY2hhbmdlZCAqLwo+ID4gKwlib29sIGZpZm9fY2hhbmdlZDsgLyogRklGTyBzcGxp dCBpcyBjaGFuZ2VkICovCj4gPiAgCj4gPiAgCS8qIFBpcGUgc291cmNlIHNpemUgKGllLiBwYW5l bCBmaXR0ZXIgaW5wdXQgc2l6ZSkKPiA+ICAJICogQWxsIHBsYW5lcyB3aWxsIGJlIHBvc2l0aW9u ZWQgaW5zaWRlIHRoaXMgc3BhY2UsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IGluZGV4 IGY2OGI0NmVlZDIyNC4uYzdjYzYyY2Y1MWY2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwo+ID4gQEAgLTExMDMsMzEgKzExMDMsMzYgQEAgc3RhdGljIHUxNiB2bHZfaW52ZXJ0X3dt X3ZhbHVlKHUxNiB3bSwgdTE2IGZpZm9fc2l6ZSkKPiA+ICB9Cj4gPiAgCj4gPiAgLyogc3RhcnRp bmcgZnJvbSAnbGV2ZWwnIHNldCBhbGwgaGlnaGVyIGxldmVscyB0byAndmFsdWUnICovCj4gPiAt c3RhdGljIHZvaWQgdmx2X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiA+ICtzdGF0aWMgYm9vbCB2bHZfcGxhbmVfd21fc2V0KHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJCSAgICAgaW50IGxldmVsLCBlbnVtIHBsYW5l X2lkIHBsYW5lX2lkLCB1MTYgdmFsdWUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKPiA+ ICAJaW50IG51bV9sZXZlbHMgPSB2bHZfbnVtX3dtX2xldmVscyhkZXZfcHJpdik7Cj4gPiArCWJv b2wgZGlydHkgPSBmYWxzZTsKPiA+ICAKPiA+ICAJZm9yICg7IGxldmVsIDwgbnVtX2xldmVsczsg bGV2ZWwrKykgewo+ID4gIAkJc3RydWN0IHZsdl9waXBlX3dtICpub25pbnZlcnRlZCA9Cj4gPiAg CQkJJmNydGNfc3RhdGUtPndtLnZsdi5ub25pbnZlcnRlZFtsZXZlbF07Cj4gPiAgCj4gPiArCQlk aXJ0eSB8PSBub25pbnZlcnRlZC0+cGxhbmVbcGxhbmVfaWRdICE9IHZhbHVlOwo+ID4gIAkJbm9u aW52ZXJ0ZWQtPnBsYW5lW3BsYW5lX2lkXSA9IHZhbHVlOwo+ID4gIAl9Cj4gPiArCj4gPiArCXJl dHVybiBkaXJ0eTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdmx2X3BsYW5lX3dtX2Nv bXB1dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiArc3RhdGljIGJv b2wgdmx2X3BsYW5lX3dtX2NvbXB1dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gPiAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQo+ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKPiA+ICAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9 IHBsYW5lLT5pZDsKPiA+ICAJaW50IG51bV9sZXZlbHMgPSB2bHZfbnVtX3dtX2xldmVscyh0b19p OTE1KHBsYW5lLT5iYXNlLmRldikpOwo+ID4gIAlpbnQgbGV2ZWw7Cj4gPiArCWJvb2wgZGlydHkg PSBmYWxzZTsKPiA+ICAKPiA+ICAJaWYgKCFwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlKSB7Cj4g PiAtCQl2bHZfcGxhbmVfd21fc2V0KGNydGNfc3RhdGUsIDAsIHBsYW5lX2lkLCAwKTsKPiA+IC0J CXJldHVybjsKPiA+ICsJCWRpcnR5IHw9IHZsdl9wbGFuZV93bV9zZXQoY3J0Y19zdGF0ZSwgMCwg cGxhbmVfaWQsIDApOwo+ID4gKwkJZ290byBvdXQ7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJZm9yIChs ZXZlbCA9IDA7IGxldmVsIDwgbnVtX2xldmVsczsgbGV2ZWwrKykgewo+ID4gQEAgLTExNDMsMTcg KzExNDgsMjIgQEAgc3RhdGljIHZvaWQgdmx2X3BsYW5lX3dtX2NvbXB1dGUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgCQlpZiAod20gPiBtYXhfd20pCj4gPiAgCQkJ YnJlYWs7Cj4gPiAgCj4gPiArCQlkaXJ0eSB8PSBub25pbnZlcnRlZC0+cGxhbmVbcGxhbmVfaWRd ICE9IHdtOwo+ID4gIAkJbm9uaW52ZXJ0ZWQtPnBsYW5lW3BsYW5lX2lkXSA9IHdtOwo+ID4gIAl9 Cj4gPiAgCj4gPiAgCS8qIG1hcmsgYWxsIGhpZ2hlciBsZXZlbHMgYXMgaW52YWxpZCAqLwo+ID4g LQl2bHZfcGxhbmVfd21fc2V0KGNydGNfc3RhdGUsIGxldmVsLCBwbGFuZV9pZCwgVVNIUlRfTUFY KTsKPiA+ICsJZGlydHkgfD0gdmx2X3BsYW5lX3dtX3NldChjcnRjX3N0YXRlLCBsZXZlbCwgcGxh bmVfaWQsIFVTSFJUX01BWCk7Cj4gPiAgCj4gPiAtCURSTV9ERUJVR19LTVMoIiVzIHdtczogWzBd PSVkLFsxXT0lZCxbMl09JWRcbiIsCj4gPiAtCQkgICAgICBwbGFuZS0+YmFzZS5uYW1lLAo+ID4g LQkJICAgICAgY3J0Y19zdGF0ZS0+d20udmx2Lm5vbmludmVydGVkW1ZMVl9XTV9MRVZFTF9QTTJd LnBsYW5lW3BsYW5lX2lkXSwKPiA+IC0JCSAgICAgIGNydGNfc3RhdGUtPndtLnZsdi5ub25pbnZl cnRlZFtWTFZfV01fTEVWRUxfUE01XS5wbGFuZVtwbGFuZV9pZF0sCj4gPiAtCQkgICAgICBjcnRj X3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWRbVkxWX1dNX0xFVkVMX0REUl9EVkZTXS5wbGFuZVtw bGFuZV9pZF0pOwo+ID4gK291dDoKPiA+ICsJaWYgKGRpcnR5KQo+ID4gKwkJRFJNX0RFQlVHX0tN UygiJXMgd21zOiBbMF09JWQsWzFdPSVkLFsyXT0lZFxuIiwKPiA+ICsJCQkgICAgICBwbGFuZS0+ YmFzZS5uYW1lLAo+ID4gKwkJCSAgICAgIGNydGNfc3RhdGUtPndtLnZsdi5ub25pbnZlcnRlZFtW TFZfV01fTEVWRUxfUE0yXS5wbGFuZVtwbGFuZV9pZF0sCj4gPiArCQkJICAgICAgY3J0Y19zdGF0 ZS0+d20udmx2Lm5vbmludmVydGVkW1ZMVl9XTV9MRVZFTF9QTTVdLnBsYW5lW3BsYW5lX2lkXSwK PiA+ICsJCQkgICAgICBjcnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWRbVkxWX1dNX0xFVkVM X0REUl9EVkZTXS5wbGFuZVtwbGFuZV9pZF0pOwo+ID4gKwo+ID4gKwlyZXR1cm4gZGlydHk7Cj4g PiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBib29sIHZsdl9wbGFuZV93bV9pc192YWxpZChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+IEBAIC0xMTg2LDEwICsxMTk2 LDEyIEBAIHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ICAJCSZjcnRjX3N0YXRlLT53bS52bHYuZmlmb19zdGF0ZTsK PiA+ICAJaW50IG51bV9hY3RpdmVfcGxhbmVzID0gaHdlaWdodDMyKGNydGNfc3RhdGUtPmFjdGl2 ZV9wbGFuZXMgJgo+ID4gIAkJCQkJICB+QklUKFBMQU5FX0NVUlNPUikpOwo+ID4gKwlib29sIG5l ZWRzX21vZGVzZXQgPSBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+ YmFzZSk7Cj4gPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiAg CXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gPiAgCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7 Cj4gPiAgCWludCBsZXZlbCwgcmV0LCBpOwo+ID4gKwl1bnNpZ25lZCBpbnQgZGlydHkgPSAwOwo+ ID4gIAo+ID4gIAlmb3JfZWFjaF9pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBs YW5lX3N0YXRlLCBpKSB7Cj4gPiAgCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9s ZF9wbGFuZV9zdGF0ZSA9Cj4gPiBAQCAtMTE5OSw3ICsxMjExLDM3IEBAIHN0YXRpYyBpbnQgdmx2 X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ ICAJCSAgICBvbGRfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyAhPSAmY3J0Yy0+YmFzZSkKPiA+ICAJ CQljb250aW51ZTsKPiA+ICAKPiA+IC0JCXZsdl9wbGFuZV93bV9jb21wdXRlKGNydGNfc3RhdGUs IHBsYW5lX3N0YXRlKTsKPiA+ICsJCWlmICh2bHZfcGxhbmVfd21fY29tcHV0ZShjcnRjX3N0YXRl LCBwbGFuZV9zdGF0ZSkpCj4gPiArCQkJZGlydHkgfD0gQklUKHBsYW5lLT5pZCk7Cj4gPiArCX0K PiA+ICsKPiA+ICsJLyoKPiA+ICsJICogRFNQQVJCIHJlZ2lzdGVycyBtYXkgaGF2ZSBiZWVuIHJl c2V0IGR1ZSB0byB0aGUKPiA+ICsJICogcG93ZXIgd2VsbCBiZWluZyB0dXJuZWQgb2ZmLiBNYWtl IHN1cmUgd2UgcmVzdG9yZQo+ID4gKwkgKiB0aGVtIHRvIGEgY29uc2lzdGVudCBzdGF0ZSBldmVu IGlmIG5vIHByaW1hcnkvc3ByaXRlCj4gPiArCSAqIHBsYW5lcyBhcmUgaW5pdGlhbGx5IGFjdGl2 ZS4KPiA+ICsJICovCj4gPiArCWlmIChuZWVkc19tb2Rlc2V0KQo+ID4gKwkJY3J0Y19zdGF0ZS0+ Zmlmb19jaGFuZ2VkID0gdHJ1ZTsKPiA+ICsKPiA+ICsJaWYgKCFkaXJ0eSkKPiA+ICsJCXJldHVy biAwOwo+ID4gKwo+ID4gKwkvKiBjdXJzb3IgY2hhbmdlcyBkb24ndCB3YXJyYW50IGEgRklGTyBy ZWNvbXB1dGUgKi8KPiA+ICsJaWYgKGRpcnR5ICYgfkJJVChQTEFORV9DVVJTT1IpKSB7Cj4gPiAr CQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQo+ID4gKwkJ CXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Cj4gPiArCQljb25zdCBzdHJ1 Y3Qgdmx2X2ZpZm9fc3RhdGUgKm9sZF9maWZvX3N0YXRlID0KPiA+ICsJCQkmb2xkX2NydGNfc3Rh dGUtPndtLnZsdi5maWZvX3N0YXRlOwo+ID4gKwo+ID4gKwkJcmV0ID0gdmx2X2NvbXB1dGVfZmlm byhjcnRjX3N0YXRlKTsKPiA+ICsJCWlmIChyZXQpCj4gPiArCQkJcmV0dXJuIHJldDsKPiA+ICsK PiA+ICsJCWlmIChuZWVkc19tb2Rlc2V0IHx8Cj4gPiArCQkgICAgbWVtY21wKG9sZF9maWZvX3N0 YXRlLCBmaWZvX3N0YXRlLAo+ID4gKwkJCSAgIHNpemVvZigqZmlmb19zdGF0ZSkpICE9IDApCj4g PiArCQkJY3J0Y19zdGF0ZS0+Zmlmb19jaGFuZ2VkID0gdHJ1ZTsKPiA+ICAJfQo+ID4gIAo+ID4g IAkvKiBpbml0aWFsbHkgYWxsb3cgYWxsIGxldmVscyAqLwo+ID4gQEAgLTEyMTIsMTAgKzEyNTQs NiBAQCBzdGF0aWMgaW50IHZsdl9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCj4gPiAgCXdtX3N0YXRlLT5jeHNyID0gY3J0Yy0+cGlwZSAhPSBQSVBF X0MgJiYKPiA+ICAJCWNydGMtPndtLmN4c3JfYWxsb3dlZCAmJiBudW1fYWN0aXZlX3BsYW5lcyA9 PSAxOwo+ID4gIAo+ID4gLQlyZXQgPSB2bHZfY29tcHV0ZV9maWZvKGNydGNfc3RhdGUpOwo+ID4g LQlpZiAocmV0KQo+ID4gLQkJcmV0dXJuIHJldDsKPiA+IC0KPiA+ICAJZm9yIChsZXZlbCA9IDA7 IGxldmVsIDwgd21fc3RhdGUtPm51bV9sZXZlbHM7IGxldmVsKyspIHsKPiA+ICAJCWNvbnN0IHN0 cnVjdCB2bHZfcGlwZV93bSAqbm9uaW52ZXJ0ZWQgPQo+ID4gIAkJCSZjcnRjX3N0YXRlLT53bS52 bHYubm9uaW52ZXJ0ZWRbbGV2ZWxdOwo+ID4gQEAgLTEyNjUsNiArMTMwMyw5IEBAIHN0YXRpYyB2 b2lkIHZsdl9hdG9taWNfdXBkYXRlX2ZpZm8oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUsCj4gPiAgCQkmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7Cj4gPiAgCWludCBzcHJp dGUwX3N0YXJ0LCBzcHJpdGUxX3N0YXJ0LCBmaWZvX3NpemU7Cj4gPiAgCj4gPiArCWlmICghY3J0 Y19zdGF0ZS0+Zmlmb19jaGFuZ2VkKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gIAlzcHJpdGUw X3N0YXJ0ID0gZmlmb19zdGF0ZS0+cGxhbmVbUExBTkVfUFJJTUFSWV07Cj4gPiAgCXNwcml0ZTFf c3RhcnQgPSBmaWZvX3N0YXRlLT5wbGFuZVtQTEFORV9TUFJJVEUwXSArIHNwcml0ZTBfc3RhcnQ7 Cj4gPiAgCWZpZm9fc2l6ZSA9IGZpZm9fc3RhdGUtPnBsYW5lW1BMQU5FX1NQUklURTFdICsgc3By aXRlMV9zdGFydDsKPiA+IEBAIC00NjMxLDYgKzQ2NzIsOCBAQCB2b2lkIHZsdl93bV9nZXRfaHdf c3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJCWFjdGl2ZS0+bnVtX2xldmVscyA9 IHdtLT5sZXZlbCArIDE7Cj4gPiAgCQlhY3RpdmUtPmN4c3IgPSB3bS0+Y3hzcjsKPiA+ICAKPiA+ ICsJCXZsdl9nZXRfZmlmb19zaXplKGNydGNfc3RhdGUpOwo+ID4gKwo+ID4gIAkJLyogRklYTUUg c2FuaXRpemUgdGhpbmdzIG1vcmUgKi8KPiA+ICAJCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8IGFj dGl2ZS0+bnVtX2xldmVsczsgbGV2ZWwrKykgewo+ID4gIAkJCXN0cnVjdCB2bHZfcGlwZV93bSAq bm9uaW52ZXJ0ZWQgPQo+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==