From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Explicit Raw and Adjusted WM latencies. Date: Wed, 21 Feb 2018 15:09:30 +0200 Message-ID: <20180221130930.GK5453@intel.com> References: <20180221015147.31859-1-rodrigo.vivi@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 7D1226E62F for ; Wed, 21 Feb 2018 13:09:34 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180221015147.31859-1-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Ashar Shaikh List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjAsIDIwMTggYXQgMDU6NTE6NDdQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IEN1cnJlbnQgY29kZSBoYXMgc29tZSBsaW1pdGF0aW9uczoKPiAKPiAxLiBkZWJ1Z2Zz IG9ubHkgc2hvd3MgcmF3IGxhdGVuY3kgd2UgcmVhZCBmcm9tIFBDT0RFLAo+IG5vdCB0aGUgb25l cyB3ZSBhcmUgY29uZmlndXJpbmcuCj4gCj4gMi4gV2hlbiBkZXRlcm1pbmluZyBpZiBTQUdWIGNh biBiZSBlbmFibGVkIHdlIG9ubHkKPiBhcHBseSBhZGp1c3RlZCB3YSwgYnV0IHdlIGRvbid0IGFw cGx5IHRoZSBJUEMgb25lLgo+IFNvIHRoZXJlIGlzIHRoZSByaXNrIG9mIGVuYWJsaW5nIFNBR1Yg d2hlbiB3ZSBzaG91bGQKPiBhY3R1YWxseSBkaXNhYmxlIGl0Lgo+IAo+IENjOiBNYWhlc2ggS3Vt YXIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPgo+IENjOiBBc2hhciBTaGFpa2ggPGF6aGFyLnNo YWlraEBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyB8IDQ4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgfCAgNyArKysrLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyAgICAgfCAzMSArKysrKysrKysrKystLS0tLS0tLS0tLS0KPiAgMyBm aWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGYyNjBiYjM5ZDczMy4uOTRmY2IwMzYw YjE0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMzY2NCw3ICsz NjY0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaTkxNV9kaXNwbGF5 cG9ydF90ZXN0X3R5cGVfZm9wcyA9IHsKPiAgCS5yZWxlYXNlID0gc2luZ2xlX3JlbGVhc2UKPiAg fTsKPiAgCj4gLXN0YXRpYyB2b2lkIHdtX2xhdGVuY3lfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IGNvbnN0IHVpbnQxNl90IHdtWzhdKQo+ICtzdGF0aWMgdm9pZCB3bV9sYXRlbmN5X3Nob3coc3Ry dWN0IHNlcV9maWxlICptLCBjb25zdCB1aW50MTZfdCB3bVs4XSwKPiArCQkJICAgIGNvbnN0IGNo YXIgKmhlYWRlcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g bS0+cHJpdmF0ZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsK PiBAQCAtMzY4MCw2ICszNjgxLDkgQEAgc3RhdGljIHZvaWQgd21fbGF0ZW5jeV9zaG93KHN0cnVj dCBzZXFfZmlsZSAqbSwgY29uc3QgdWludDE2X3Qgd21bOF0pCj4gIAllbHNlCj4gIAkJbnVtX2xl dmVscyA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpICsgMTsKPiAgCj4gKwlpZiAoaGVhZGVy KQo+ICsJCXNlcV9wcmludGYobSwgIiVzXG4iLCBoZWFkZXIpOwo+ICsKPiAgCWRybV9tb2Rlc2V0 X2xvY2tfYWxsKGRldik7Cj4gIAo+ICAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDwgbnVtX2xldmVs czsgbGV2ZWwrKykgewo+IEBAIC0zNzA3LDE0ICszNzExLDEyIEBAIHN0YXRpYyB2b2lkIHdtX2xh dGVuY3lfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGNvbnN0IHVpbnQxNl90IHdtWzhdKQo+ICBz dGF0aWMgaW50IHByaV93bV9sYXRlbmN5X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpk YXRhKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBtLT5wcml2 YXRlOwo+IC0JY29uc3QgdWludDE2X3QgKmxhdGVuY2llczsKPiAtCj4gLQlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA+PSA5KQo+IC0JCWxhdGVuY2llcyA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5j eTsKPiAtCWVsc2UKPiAtCQlsYXRlbmNpZXMgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3k7Cj4g IAo+IC0Jd21fbGF0ZW5jeV9zaG93KG0sIGxhdGVuY2llcyk7Cj4gKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KSB7Cj4gKwkJd21fbGF0ZW5jeV9zaG93KG0sIGRldl9wcml2LT53bS5za2xf bGF0ZW5jeS5yYXcsICJSYXciKTsKPiArCQl3bV9sYXRlbmN5X3Nob3cobSwgZGV2X3ByaXYtPndt LnNrbF9sYXRlbmN5LmFkanVzdGVkLCAiQWRqdXN0ZWQiKTsKPiArCX0gZWxzZQo+ICsJCXdtX2xh dGVuY3lfc2hvdyhtLCBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3ksIE5VTEwpOwo+ICAKPiAgCXJl dHVybiAwOwo+ICB9Cj4gQEAgLTM3MjIsMTQgKzM3MjQsMTIgQEAgc3RhdGljIGludCBwcmlfd21f bGF0ZW5jeV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgc3RhdGljIGlu dCBzcHJfd21fbGF0ZW5jeV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAg ewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gbS0+cHJpdmF0ZTsKPiAt CWNvbnN0IHVpbnQxNl90ICpsYXRlbmNpZXM7Cj4gLQo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSkKPiAtCQlsYXRlbmNpZXMgPSBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3k7Cj4gLQll bHNlCj4gLQkJbGF0ZW5jaWVzID0gZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5Owo+ICAKPiAtCXdt X2xhdGVuY3lfc2hvdyhtLCBsYXRlbmNpZXMpOwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gOSkgewo+ICsJCXdtX2xhdGVuY3lfc2hvdyhtLCBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3ku cmF3LCAiUmF3Iik7Cj4gKwkJd21fbGF0ZW5jeV9zaG93KG0sIGRldl9wcml2LT53bS5za2xfbGF0 ZW5jeS5hZGp1c3RlZCwgIkFkanVzdGVkIik7Cj4gKwl9IGVsc2UKPiArCQl3bV9sYXRlbmN5X3No b3cobSwgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5LCBOVUxMKTsKPiAgCj4gIAlyZXR1cm4gMDsK PiAgfQo+IEBAIC0zNzM3LDE0ICszNzM3LDEyIEBAIHN0YXRpYyBpbnQgc3ByX3dtX2xhdGVuY3lf c2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIHN0YXRpYyBpbnQgY3VyX3dt X2xhdGVuY3lfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIHsKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG0tPnByaXZhdGU7Cj4gLQljb25zdCB1 aW50MTZfdCAqbGF0ZW5jaWVzOwo+IC0KPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkp Cj4gLQkJbGF0ZW5jaWVzID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5Owo+IC0JZWxzZQo+IC0J CWxhdGVuY2llcyA9IGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeTsKPiAgCj4gLQl3bV9sYXRlbmN5 X3Nob3cobSwgbGF0ZW5jaWVzKTsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsK PiArCQl3bV9sYXRlbmN5X3Nob3cobSwgZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5LnJhdywgIlJh dyIpOwo+ICsJCXdtX2xhdGVuY3lfc2hvdyhtLCBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3kuYWRq dXN0ZWQsICJBZGp1c3RlZCIpOwo+ICsJfSBlbHNlCj4gKwkJd21fbGF0ZW5jeV9zaG93KG0sIGRl dl9wcml2LT53bS5jdXJfbGF0ZW5jeSwgTlVMTCk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBA QCAtMzgzMyw3ICszODMxLDcgQEAgc3RhdGljIHNzaXplX3QgcHJpX3dtX2xhdGVuY3lfd3JpdGUo c3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAo+ICAJdWludDE2X3Qg KmxhdGVuY2llczsKPiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+IC0JCWxh dGVuY2llcyA9IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeTsKPiArCQlsYXRlbmNpZXMgPSBkZXZf cHJpdi0+d20uc2tsX2xhdGVuY3kucmF3Owo+ICAJZWxzZQo+ICAJCWxhdGVuY2llcyA9IGRldl9w cml2LT53bS5wcmlfbGF0ZW5jeTsKPiAgCj4gQEAgLTM4NDgsNyArMzg0Niw3IEBAIHN0YXRpYyBz c2l6ZV90IHNwcl93bV9sYXRlbmN5X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFy IF9fdXNlciAqdWJ1ZiwKPiAgCXVpbnQxNl90ICpsYXRlbmNpZXM7Cj4gIAo+ICAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gOSkKPiAtCQlsYXRlbmNpZXMgPSBkZXZfcHJpdi0+d20uc2tsX2xh dGVuY3k7Cj4gKwkJbGF0ZW5jaWVzID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5LnJhdzsKPiAg CWVsc2UKPiAgCQlsYXRlbmNpZXMgPSBkZXZfcHJpdi0+d20uc3ByX2xhdGVuY3k7Cj4gIAo+IEBA IC0zODYzLDcgKzM4NjEsNyBAQCBzdGF0aWMgc3NpemVfdCBjdXJfd21fbGF0ZW5jeV93cml0ZShz dHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCj4gIAl1aW50MTZfdCAq bGF0ZW5jaWVzOwo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gLQkJbGF0 ZW5jaWVzID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5Owo+ICsJCWxhdGVuY2llcyA9IGRldl9w cml2LT53bS5za2xfbGF0ZW5jeS5yYXc7Cj4gIAllbHNlCj4gIAkJbGF0ZW5jaWVzID0gZGV2X3By aXYtPndtLmN1cl9sYXRlbmN5Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA0 OTBmZjA0MWZiMWUuLjY5NjliYmIyMDNiYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ IEBAIC0yMTM2LDExICsyMTM2LDE0IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAgCQkv KiBjdXJzb3IgKi8KPiAgCQl1aW50MTZfdCBjdXJfbGF0ZW5jeVs1XTsKPiAgCQkvKgo+IC0JCSAq IFJhdyB3YXRlcm1hcmsgbWVtb3J5IGxhdGVuY3kgdmFsdWVzCj4gKwkJICogV2F0ZXJtYXJrIG1l bW9yeSBsYXRlbmN5IHZhbHVlcwo+ICAJCSAqIGZvciBTS0wgZm9yIGFsbCA4IGxldmVscwo+ICAJ CSAqIGluIDF1cyB1bml0cy4KPiAgCQkgKi8KPiAtCQl1aW50MTZfdCBza2xfbGF0ZW5jeVs4XTsK PiArCQlzdHJ1Y3Qgewo+ICsJCQl1aW50MTZfdCByYXdbOF07Cj4gKwkJCXVpbnQxNl90IGFkanVz dGVkWzhdOwo+ICsJCX0gc2tsX2xhdGVuY3k7Cj4gIAo+ICAJCS8qIGN1cnJlbnQgaGFyZHdhcmUg c3RhdGUgKi8KPiAgCQl1bmlvbiB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggYTBh NmI0YjdjNDdiLi43OGI1MmU1YTFmOGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBA QCAtMzAzMCw4ICszMDMwLDkgQEAgc3RhdGljIHZvaWQgaWxrX3NldHVwX3dtX2xhdGVuY3koc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAgc3RhdGljIHZvaWQgc2tsX3Nl dHVwX3dtX2xhdGVuY3koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4g LQlpbnRlbF9yZWFkX3dtX2xhdGVuY3koZGV2X3ByaXYsIGRldl9wcml2LT53bS5za2xfbGF0ZW5j eSk7Cj4gLQlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldl9wcml2LCAiR2VuOSBQbGFuZSIsIGRl dl9wcml2LT53bS5za2xfbGF0ZW5jeSk7Cj4gKwlpbnRlbF9yZWFkX3dtX2xhdGVuY3koZGV2X3By aXYsIGRldl9wcml2LT53bS5za2xfbGF0ZW5jeS5yYXcpOwo+ICsJaW50ZWxfcHJpbnRfd21fbGF0 ZW5jeShkZXZfcHJpdiwgIkdlbjkgUGxhbmUiLAo+ICsJCQkgICAgICAgZGV2X3ByaXYtPndtLnNr bF9sYXRlbmN5LnJhdyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIGlsa192YWxpZGF0ZV9waXBl X3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gQEAgLTM3NDUsMTIgKzM3NDYsNyBAQCBib29s IGludGVsX2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4g IAkJICAgICAhd20tPndtW2xldmVsXS5wbGFuZV9lbjsgLS1sZXZlbCkKPiAgCQkgICAgIHsgfQo+ ICAKPiAtCQlsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5W2xldmVsXTsKPiAtCj4g LQkJaWYgKHNrbF9uZWVkc19tZW1vcnlfYndfd2EoaW50ZWxfc3RhdGUpICYmCj4gLQkJICAgIHBs YW5lLT5iYXNlLnN0YXRlLT5mYi0+bW9kaWZpZXIgPT0KPiAtCQkgICAgSTkxNV9GT1JNQVRfTU9E X1hfVElMRUQpCj4gLQkJCWxhdGVuY3kgKz0gMTU7Cj4gKwkJbGF0ZW5jeSA9IGRldl9wcml2LT53 bS5za2xfbGF0ZW5jeS5hZGp1c3RlZFtsZXZlbF07CgpUaGUgbGF0ZW5jeSBhZGp1c3RtZW50IGRl cGVuZHMgb24gcGxhbmUgY29uZmlndXJhdGl1b24gc28gd2UgY2FuJ3QganVzdApzdGljayBpbnRv IGEgZ2xvYmFsIGFycmF5LiBJIHdvdWxkIHN1Z2dlc3QgdGhhdCBmb3IgY2FzZXMgbGlrZSB0aGlz IHdlCnNob3VsZCBlaXRoZXIgc3R1Y2sgaW50byB0aGUgcGxhbmUgc3RhdGUgYW5kIGR1bXAgaXQg b3V0IGFsb25nc2lkZSB0aGUKcmVzdCAoaWYgd2UgaGFkIGRlY2VudCBwbGFuZSBzdGF0ZSBkdW1w cy4uLiBhcyB1c3VhbCBJIGhhdmUgYSBicmFuY2gKc29tZXdoZXJlIHRoYXQgY29udmVydHMgdXMg b3ZlciB0byB0aGUgYXRvbWljIHN0YXRlIGR1bXAgZnJhbWV3b3JrKSwgb3IKd2UganVzdCBoYXZl IGEgZGVidWcgcHJpbnQgd2hlbiBjb21wdXRpbmcgdGhlIHRoaW5nLgoKPiAgCj4gIAkJLyoKPiAg CQkgKiBJZiBhbnkgb2YgdGhlIHBsYW5lcyBvbiB0aGlzIHBpcGUgZG9uJ3QgZW5hYmxlIHdtIGxl dmVscyB0aGF0Cj4gQEAgLTQ1MDMsNyArNDQ5OSw3IEBAIHNrbF9jb21wdXRlX3BsYW5lX3dtX3Bh cmFtcyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlyZXR1cm4g MDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gK3N0YXRpYyBpbnQgc2tsX2NvbXB1dGVf cGxhbmVfd20oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqaW50ZWxfcHN0YXRlLAo+ICAJCQkJdWludDE2X3QgZGRiX2FsbG9jYXRpb24sCj4g QEAgLTQ1MTQsNyArNDUxMCw3IEBAIHN0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJYm9vbCAqZW5hYmxl ZCAvKiBvdXQgKi8pCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0 ZSA9ICZpbnRlbF9wc3RhdGUtPmJhc2U7Cj4gLQl1aW50MzJfdCBsYXRlbmN5ID0gZGV2X3ByaXYt PndtLnNrbF9sYXRlbmN5W2xldmVsXTsKPiArCXVpbnQxNl90IGxhdGVuY3kgPSBkZXZfcHJpdi0+ d20uc2tsX2xhdGVuY3kucmF3W2xldmVsXTsKPiAgCXVpbnRfZml4ZWRfMTZfMTZfdCBtZXRob2Qx LCBtZXRob2QyOwo+ICAJdWludF9maXhlZF8xNl8xNl90IHNlbGVjdGVkX3Jlc3VsdDsKPiAgCXVp bnQzMl90IHJlc19ibG9ja3MsIHJlc19saW5lczsKPiBAQCAtNDUzOCwxMSArNDUzNCwxNCBAQCBz dGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgCWlmIChhcHBseV9tZW1vcnlfYndfd2EgJiYgd3AtPnhfdGlsZWQp Cj4gIAkJbGF0ZW5jeSArPSAxNTsKPiAgCj4gLQltZXRob2QxID0gc2tsX3dtX21ldGhvZDEoZGV2 X3ByaXYsIHdwLT5wbGFuZV9waXhlbF9yYXRlLAo+IC0JCQkJIHdwLT5jcHAsIGxhdGVuY3ksIHdw LT5kYnVmX2Jsb2NrX3NpemUpOwo+ICsJZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5LmFkanVzdGVk W2xldmVsXSA9IGxhdGVuY3k7Cj4gKwo+ICsJbWV0aG9kMSA9IHNrbF93bV9tZXRob2QxKGRldl9w cml2LCB3cC0+cGxhbmVfcGl4ZWxfcmF0ZSwgd3AtPmNwcCwKPiArCQkJCSBkZXZfcHJpdi0+d20u c2tsX2xhdGVuY3kuYWRqdXN0ZWRbbGV2ZWxdLAo+ICsJCQkJIHdwLT5kYnVmX2Jsb2NrX3NpemUp Owo+ICAJbWV0aG9kMiA9IHNrbF93bV9tZXRob2QyKHdwLT5wbGFuZV9waXhlbF9yYXRlLAo+ICAJ CQkJIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAo+IC0JCQkJIGxhdGVu Y3ksCj4gKwkJCQkgZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5LmFkanVzdGVkW2xldmVsXSwKPiAg CQkJCSB3cC0+cGxhbmVfYmxvY2tzX3Blcl9saW5lKTsKPiAgCj4gIAlpZiAod3AtPnlfdGlsZWQp IHsKPiBAQCAtNDU1NSw3ICs0NTU0LDcgQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93 bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJZWxzZSBpZiAo ZGRiX2FsbG9jYXRpb24gPj0KPiAgCQkJIGZpeGVkMTZfdG9fdTMyX3JvdW5kX3VwKHdwLT5wbGFu ZV9ibG9ja3NfcGVyX2xpbmUpKQo+ICAJCQlzZWxlY3RlZF9yZXN1bHQgPSBtaW5fZml4ZWQxNiht ZXRob2QxLCBtZXRob2QyKTsKPiAtCQllbHNlIGlmIChsYXRlbmN5ID49IHdwLT5saW5ldGltZV91 cykKPiArCQllbHNlIGlmIChkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3kuYWRqdXN0ZWRbbGV2ZWxd ID49IHdwLT5saW5ldGltZV91cykKPiAgCQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWluX2ZpeGVkMTYo bWV0aG9kMSwgbWV0aG9kMik7Cj4gIAkJZWxzZQo+ICAJCQlzZWxlY3RlZF9yZXN1bHQgPSBtZXRo b2QxOwo+IEBAIC00NjM0LDcgKzQ2MzMsNyBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5l X3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgfQo+ICAKPiAg c3RhdGljIGludAo+IC1za2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICtza2xfY29tcHV0ZV93bV9sZXZlbHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRp b24gKmRkYiwKPiAgCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJ CSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlLAo+IEBA IC00NzU2LDcgKzQ3NTUsNyBAQCBzdGF0aWMgaW50IHNrbF9idWlsZF9waXBlX3dtKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlID0gJmNzdGF0ZS0+YmFzZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAJ Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlOwo+ICAJc3RydWN0IHNrbF9wbGFu ZV93bSAqd207Cj4gLS0gCj4gMi4xMy42Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK