From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 08/14] drm/i915: Skip useless watermark/FIFO related work on VLV/CHV when not needed Date: Thu, 15 Dec 2016 16:37:53 +0100 Message-ID: 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 B0EDE6E1FA for ; Thu, 15 Dec 2016 15:37:55 +0000 (UTC) In-Reply-To: <1481574931-8658-9-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTItMTItMTYgb20gMjE6MzUgc2NocmVlZiB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+Cj4gQ2hlY2sgd2hldGhlciBhbnl0aGluZyByZWxldmFudCBoYXMgYWN0dWFsbHkgY2hhbmdl IHdoZW4gd2UgY29tcHV0ZSBuZXcKPiB3YXRlcm1hcmtzIGZvciBlYWNoIHBsYW5lIGluIHRoZSBz dGF0ZS4gSWYgdGhlIHdhdGVybWFya3MgZm9yIG5vCj4gcHJpbWFyeS9zcHJpdGUgcGxhbmVzIGNo YW5nZWQgd2UgZG9uJ3QgaGF2ZSB0byByZWNvbXB1dGUgdGhlIEZJRk8gc3BsaXQKPiBvciByZXBy b2dyYW0gdGhlIERTQkFSQiByZWdpc3RlcnMuIEFuZCBldmVuIHRoZSBjdXJzb3Igd2F0ZXJtYXJr cyBkaWRuJ3QKPiBjaGFuZ2Ugd2UgY2FuIHNraXAgdGhlIG1lcmdlK2ludmVydCBzdGVwIGJldHdl ZW4gYWxsIHRoZSBwbGFuZXMgb24KPiB0aGUgcGlwZSBhcyB3ZWxsLgo+Cj4gU2lnbmVkLW9mZi1i eTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgfCAgMSArCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gaW5kZXggYzVhMTY2NzUyZWRhLi5k ZjMzZjI3MGI0NTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IEBAIC05 OSw2ICs5OSw3IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPiAgCWNydGNfc3RhdGUtPnVwZGF0ZV93bV9wcmUgPSBmYWxzZTsKPiAgCWNydGNfc3Rh dGUtPnVwZGF0ZV93bV9wb3N0ID0gZmFsc2U7Cj4gIAljcnRjX3N0YXRlLT5mYl9jaGFuZ2VkID0g ZmFsc2U7Cj4gKwljcnRjX3N0YXRlLT5maWZvX2NoYW5nZWQgPSBmYWxzZTsKPiAgCWNydGNfc3Rh dGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUgPSBmYWxzZTsKPiAgCWNydGNfc3RhdGUtPmZiX2Jp dHMgPSAwOwpUaGlzIGZsYWcgaXMgb25seSB1c2VkIGluIGludGVsX3BtLmMsIG1heWJlIHB1dCBp dCBpbiBjcnRjX3N0YXRlLT53bS52bHYuZmlmb19jaGFuZ2VkLCBhbmQgY2xlYXIgaXQgaW4gdGhl IGJlZ2lubmluZyBvZiB0aGUgd20gcmVjYWxjdWxhdGlvbj8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+IGluZGV4IDY2NjY4YzE4YTQ3YS4uYTkyODU3ODY0ZWU4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNTYwLDYgKzU2MCw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlIHsKPiAgCWJvb2wgZGlzYWJsZV9jeHNyOwo+ICAJYm9vbCB1cGRhdGVfd21fcHJlLCB1cGRh dGVfd21fcG9zdDsgLyogd2F0ZXJtYXJrcyBhcmUgdXBkYXRlZCAqLwo+ICAJYm9vbCBmYl9jaGFu Z2VkOyAvKiBmYiBvbiBhbnkgb2YgdGhlIHBsYW5lcyBpcyBjaGFuZ2VkICovCj4gKwlib29sIGZp Zm9fY2hhbmdlZDsgLyogRklGTyBzcGxpdCBpcyBjaGFuZ2VkICovCj4gIAo+ICAJLyogUGlwZSBz b3VyY2Ugc2l6ZSAoaWUuIHBhbmVsIGZpdHRlciBpbnB1dCBzaXplKQo+ICAJICogQWxsIHBsYW5l cyB3aWxsIGJlIHBvc2l0aW9uZWQgaW5zaWRlIHRoaXMgc3BhY2UsCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCj4gaW5kZXggZjY4YjQ2ZWVkMjI0Li5jN2NjNjJjZjUxZjYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPiBAQCAtMTEwMywzMSArMTEwMywzNiBAQCBzdGF0aWMgdTE2IHZsdl9p bnZlcnRfd21fdmFsdWUodTE2IHdtLCB1MTYgZmlmb19zaXplKQo+ICB9Cj4gIAo+ICAvKiBzdGFy dGluZyBmcm9tICdsZXZlbCcgc2V0IGFsbCBoaWdoZXIgbGV2ZWxzIHRvICd2YWx1ZScgKi8KPiAt c3RhdGljIHZvaWQgdmx2X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiArc3RhdGljIGJvb2wgdmx2X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICBpbnQgbGV2ZWwsIGVudW0gcGxhbmVfaWQg cGxhbmVfaWQsIHUxNiB2YWx1ZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Cj4gIAlpbnQgbnVt X2xldmVscyA9IHZsdl9udW1fd21fbGV2ZWxzKGRldl9wcml2KTsKPiArCWJvb2wgZGlydHkgPSBm YWxzZTsKPiAgCj4gIAlmb3IgKDsgbGV2ZWwgPCBudW1fbGV2ZWxzOyBsZXZlbCsrKSB7Cj4gIAkJ c3RydWN0IHZsdl9waXBlX3dtICpub25pbnZlcnRlZCA9Cj4gIAkJCSZjcnRjX3N0YXRlLT53bS52 bHYubm9uaW52ZXJ0ZWRbbGV2ZWxdOwo+ICAKPiArCQlkaXJ0eSB8PSBub25pbnZlcnRlZC0+cGxh bmVbcGxhbmVfaWRdICE9IHZhbHVlOwo+ICAJCW5vbmludmVydGVkLT5wbGFuZVtwbGFuZV9pZF0g PSB2YWx1ZTsKPiAgCX0KPiArCj4gKwlyZXR1cm4gZGlydHk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIHZsdl9wbGFuZV93bV9jb21wdXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICtzdGF0aWMgYm9vbCB2bHZfcGxhbmVfd21fY29tcHV0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9f aW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwo+ICAJZW51bSBwbGFuZV9pZCBw bGFuZV9pZCA9IHBsYW5lLT5pZDsKPiAgCWludCBudW1fbGV2ZWxzID0gdmx2X251bV93bV9sZXZl bHModG9faTkxNShwbGFuZS0+YmFzZS5kZXYpKTsKPiAgCWludCBsZXZlbDsKPiArCWJvb2wgZGly dHkgPSBmYWxzZTsKPiAgCj4gIAlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUpIHsKPiAt CQl2bHZfcGxhbmVfd21fc2V0KGNydGNfc3RhdGUsIDAsIHBsYW5lX2lkLCAwKTsKPiAtCQlyZXR1 cm47Cj4gKwkJZGlydHkgfD0gdmx2X3BsYW5lX3dtX3NldChjcnRjX3N0YXRlLCAwLCBwbGFuZV9p ZCwgMCk7Cj4gKwkJZ290byBvdXQ7Cj4gIAl9Cj4gIAo+ICAJZm9yIChsZXZlbCA9IDA7IGxldmVs IDwgbnVtX2xldmVsczsgbGV2ZWwrKykgewo+IEBAIC0xMTQzLDE3ICsxMTQ4LDIyIEBAIHN0YXRp YyB2b2lkIHZsdl9wbGFuZV93bV9jb21wdXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ICAJCWlmICh3bSA+IG1heF93bSkKPiAgCQkJYnJlYWs7Cj4gIAo+ICsJCWRpcnR5 IHw9IG5vbmludmVydGVkLT5wbGFuZVtwbGFuZV9pZF0gIT0gd207Cj4gIAkJbm9uaW52ZXJ0ZWQt PnBsYW5lW3BsYW5lX2lkXSA9IHdtOwo+ICAJfQo+ICAKPiAgCS8qIG1hcmsgYWxsIGhpZ2hlciBs ZXZlbHMgYXMgaW52YWxpZCAqLwo+IC0Jdmx2X3BsYW5lX3dtX3NldChjcnRjX3N0YXRlLCBsZXZl bCwgcGxhbmVfaWQsIFVTSFJUX01BWCk7Cj4gKwlkaXJ0eSB8PSB2bHZfcGxhbmVfd21fc2V0KGNy dGNfc3RhdGUsIGxldmVsLCBwbGFuZV9pZCwgVVNIUlRfTUFYKTsKPiAgCj4gLQlEUk1fREVCVUdf S01TKCIlcyB3bXM6IFswXT0lZCxbMV09JWQsWzJdPSVkXG4iLAo+IC0JCSAgICAgIHBsYW5lLT5i YXNlLm5hbWUsCj4gLQkJICAgICAgY3J0Y19zdGF0ZS0+d20udmx2Lm5vbmludmVydGVkW1ZMVl9X TV9MRVZFTF9QTTJdLnBsYW5lW3BsYW5lX2lkXSwKPiAtCQkgICAgICBjcnRjX3N0YXRlLT53bS52 bHYubm9uaW52ZXJ0ZWRbVkxWX1dNX0xFVkVMX1BNNV0ucGxhbmVbcGxhbmVfaWRdLAo+IC0JCSAg ICAgIGNydGNfc3RhdGUtPndtLnZsdi5ub25pbnZlcnRlZFtWTFZfV01fTEVWRUxfRERSX0RWRlNd LnBsYW5lW3BsYW5lX2lkXSk7Cj4gK291dDoKPiArCWlmIChkaXJ0eSkKPiArCQlEUk1fREVCVUdf S01TKCIlcyB3bXM6IFswXT0lZCxbMV09JWQsWzJdPSVkXG4iLAo+ICsJCQkgICAgICBwbGFuZS0+ YmFzZS5uYW1lLAo+ICsJCQkgICAgICBjcnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWRbVkxW X1dNX0xFVkVMX1BNMl0ucGxhbmVbcGxhbmVfaWRdLAo+ICsJCQkgICAgICBjcnRjX3N0YXRlLT53 bS52bHYubm9uaW52ZXJ0ZWRbVkxWX1dNX0xFVkVMX1BNNV0ucGxhbmVbcGxhbmVfaWRdLAo+ICsJ CQkgICAgICBjcnRjX3N0YXRlLT53bS52bHYubm9uaW52ZXJ0ZWRbVkxWX1dNX0xFVkVMX0REUl9E VkZTXS5wbGFuZVtwbGFuZV9pZF0pOwo+ICsKPiArCXJldHVybiBkaXJ0eTsKPiAgfQo+ICAKPiAg c3RhdGljIGJvb2wgdmx2X3BsYW5lX3dtX2lzX3ZhbGlkKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+IEBAIC0xMTg2LDEwICsxMTk2LDEyIEBAIHN0YXRpYyBpbnQg dmx2X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiAgCQkmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7Cj4gIAlpbnQgbnVtX2FjdGl2ZV9w bGFuZXMgPSBod2VpZ2h0MzIoY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyAmCj4gIAkJCQkJICB+ QklUKFBMQU5FX0NVUlNPUikpOwo+ICsJYm9vbCBuZWVkc19tb2Rlc2V0ID0gZHJtX2F0b21pY19j cnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpOwo+ICAJc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4g IAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOwo+ICAJaW50IGxldmVsLCByZXQsIGk7Cj4gKwl1bnNp Z25lZCBpbnQgZGlydHkgPSAwOwo+ICAKPiAgCWZvcl9lYWNoX2ludGVsX3BsYW5lX2luX3N0YXRl KHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsKPiAgCQljb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSA9Cj4gQEAgLTExOTksNyArMTIxMSwzNyBAQCBz dGF0aWMgaW50IHZsdl9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIAkJICAgIG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjICE9ICZjcnRjLT5i YXNlKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJdmx2X3BsYW5lX3dtX2NvbXB1dGUoY3J0Y19z dGF0ZSwgcGxhbmVfc3RhdGUpOwo+ICsJCWlmICh2bHZfcGxhbmVfd21fY29tcHV0ZShjcnRjX3N0 YXRlLCBwbGFuZV9zdGF0ZSkpCj4gKwkJCWRpcnR5IHw9IEJJVChwbGFuZS0+aWQpOwo+ICsJfQo+ ICsKPiArCS8qCj4gKwkgKiBEU1BBUkIgcmVnaXN0ZXJzIG1heSBoYXZlIGJlZW4gcmVzZXQgZHVl IHRvIHRoZQo+ICsJICogcG93ZXIgd2VsbCBiZWluZyB0dXJuZWQgb2ZmLiBNYWtlIHN1cmUgd2Ug cmVzdG9yZQo+ICsJICogdGhlbSB0byBhIGNvbnNpc3RlbnQgc3RhdGUgZXZlbiBpZiBubyBwcmlt YXJ5L3Nwcml0ZQo+ICsJICogcGxhbmVzIGFyZSBpbml0aWFsbHkgYWN0aXZlLgo+ICsJICovCj4g KwlpZiAobmVlZHNfbW9kZXNldCkKPiArCQljcnRjX3N0YXRlLT5maWZvX2NoYW5nZWQgPSB0cnVl Owo+ICsKPiArCWlmICghZGlydHkpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJLyogY3Vyc29yIGNo YW5nZXMgZG9uJ3Qgd2FycmFudCBhIEZJRk8gcmVjb21wdXRlICovCj4gKwlpZiAoZGlydHkgJiB+ QklUKFBMQU5FX0NVUlNPUikpIHsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq b2xkX2NydGNfc3RhdGUgPQo+ICsJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3Rh dGUpOwo+ICsJCWNvbnN0IHN0cnVjdCB2bHZfZmlmb19zdGF0ZSAqb2xkX2ZpZm9fc3RhdGUgPQo+ ICsJCQkmb2xkX2NydGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRlOwo+ICsKPiArCQlyZXQgPSB2 bHZfY29tcHV0ZV9maWZvKGNydGNfc3RhdGUpOwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiBy ZXQ7Cj4gKwo+ICsJCWlmIChuZWVkc19tb2Rlc2V0IHx8Cj4gKwkJICAgIG1lbWNtcChvbGRfZmlm b19zdGF0ZSwgZmlmb19zdGF0ZSwKPiArCQkJICAgc2l6ZW9mKCpmaWZvX3N0YXRlKSkgIT0gMCkK PiArCQkJY3J0Y19zdGF0ZS0+Zmlmb19jaGFuZ2VkID0gdHJ1ZTsKPiAgCX0KPiAgCj4gIAkvKiBp bml0aWFsbHkgYWxsb3cgYWxsIGxldmVscyAqLwo+IEBAIC0xMjEyLDEwICsxMjU0LDYgQEAgc3Rh dGljIGludCB2bHZfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+ICAJd21fc3RhdGUtPmN4c3IgPSBjcnRjLT5waXBlICE9IFBJUEVfQyAmJgo+ICAJ CWNydGMtPndtLmN4c3JfYWxsb3dlZCAmJiBudW1fYWN0aXZlX3BsYW5lcyA9PSAxOwo+ICAKPiAt CXJldCA9IHZsdl9jb21wdXRlX2ZpZm8oY3J0Y19zdGF0ZSk7Cj4gLQlpZiAocmV0KQo+IC0JCXJl dHVybiByZXQ7Cj4gLQo+ICAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwgd21fc3RhdGUtPm51bV9s ZXZlbHM7IGxldmVsKyspIHsKPiAgCQljb25zdCBzdHJ1Y3Qgdmx2X3BpcGVfd20gKm5vbmludmVy dGVkID0KPiAgCQkJJmNydGNfc3RhdGUtPndtLnZsdi5ub25pbnZlcnRlZFtsZXZlbF07Cj4gQEAg LTEyNjUsNiArMTMwMyw5IEBAIHN0YXRpYyB2b2lkIHZsdl9hdG9taWNfdXBkYXRlX2ZpZm8oc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAkJJmNydGNfc3RhdGUtPndtLnZsdi5m aWZvX3N0YXRlOwo+ICAJaW50IHNwcml0ZTBfc3RhcnQsIHNwcml0ZTFfc3RhcnQsIGZpZm9fc2l6 ZTsKPiAgCj4gKwlpZiAoIWNydGNfc3RhdGUtPmZpZm9fY2hhbmdlZCkKPiArCQlyZXR1cm47Cj4g Kwo+ICAJc3ByaXRlMF9zdGFydCA9IGZpZm9fc3RhdGUtPnBsYW5lW1BMQU5FX1BSSU1BUlldOwo+ ICAJc3ByaXRlMV9zdGFydCA9IGZpZm9fc3RhdGUtPnBsYW5lW1BMQU5FX1NQUklURTBdICsgc3By aXRlMF9zdGFydDsKPiAgCWZpZm9fc2l6ZSA9IGZpZm9fc3RhdGUtPnBsYW5lW1BMQU5FX1NQUklU RTFdICsgc3ByaXRlMV9zdGFydDsKPiBAQCAtNDYzMSw2ICs0NjcyLDggQEAgdm9pZCB2bHZfd21f Z2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJYWN0aXZlLT5udW1fbGV2 ZWxzID0gd20tPmxldmVsICsgMTsKPiAgCQlhY3RpdmUtPmN4c3IgPSB3bS0+Y3hzcjsKPiAgCj4g KwkJdmx2X2dldF9maWZvX3NpemUoY3J0Y19zdGF0ZSk7Cj4gKwo+ICAJCS8qIEZJWE1FIHNhbml0 aXplIHRoaW5ncyBtb3JlICovCj4gIAkJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwgYWN0aXZlLT5u dW1fbGV2ZWxzOyBsZXZlbCsrKSB7Cj4gIAkJCXN0cnVjdCB2bHZfcGlwZV93bSAqbm9uaW52ZXJ0 ZWQgPQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=