From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915/icl: push pll to port mapping/unmapping to ddi encoder hooks Date: Mon, 03 Dec 2018 16:09:38 +0200 Message-ID: <87bm628zx9.fsf@intel.com> References: <20181129115715.9152-1-jani.nikula@intel.com> <20181203120008.GD9144@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 930666E03F for ; Mon, 3 Dec 2018 14:09:20 +0000 (UTC) In-Reply-To: <20181203120008.GD9144@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 =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAwMyBEZWMgMjAxOCwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gVGh1LCBOb3YgMjksIDIwMTggYXQgMDE6NTc6MTVQTSAr MDIwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+IFVuY2x1dHRlciB0aGUgaGFzd2VsbF9jcnRjX2Vu YWJsZSgpIGFuZCBoYXN3ZWxsX2NydGNfZGlzYWJsZSgpIGZ1bmN0aW9ucwo+PiBhIGJpdCBieSBt b3ZpbmcgdGhlIHBsbCB0byBwb3J0IG1hcHBpbmcgYW5kIHVubWFwcGluZyBmdW5jdGlvbnMgdG8g dGhlCj4+IGRkaSBlbmNvZGVyIGhvb2tzLiBUaGlzIGFsbG93cyByZW1vdmFsIG9mIGEgYnVuY2gg b2YgYm9pbGVycGxhdGUgY29kZQo+PiBmcm9tIHRoZSBmdW5jdGlvbnMuCj4+IAo+PiBBZGRpdGlv bmFsbHksIHRoZSBJQ0wgRFNJIGVuY29kZXIgbmVlZHMgdG8gZG8gdGhlIGNsb2NrIGdhdGluZyBh bmQKPj4gdW5nYXRpbmcgc2xpZ2h0bHkgZGlmZmVyZW50bHksIGFuZCB0aGlzIGFsbG93cyBpdHMg b3duIGhhbmRsaW5nIGluIGEKPj4gY2xlYW4gZmFzaGlvbi4KPj4gCj4+IENjOiBNYWRoYXYgQ2hh dWhhbiA8bWFkaGF2LmNoYXVoYW5AaW50ZWwuY29tPgo+PiBDYzogUGF1bG8gWmFub25pIDxwYXVs by5yLnphbm9uaUBpbnRlbC5jb20+Cj4+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5u aWt1bGFAaW50ZWwuY29tPgo+Cj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpUaGFua3MsIHB1c2hlZCB0byBkaW5xIGFzIHBhcnQg b2YgWzFdLgoKQlIsCkphbmkuCgoKWzFdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9y Zy9zZXJpZXMvNTEwMTEvCgoKPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jICAgICB8IDg0ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDYgLS0tCj4+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgNiAtLS0KPj4gIDMgZmlsZXMgY2hhbmdl ZCwgMzQgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+PiBpbmRleCBhZDExNTQwYWM0MzYuLjdiYWQ2Yzg1N2I4MSAxMDA2NDQKPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gQEAgLTI3ODUsNjkgKzI3ODUsNDUgQEAgdWludDMy X3QgaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4+ICAJcmV0dXJuIDA7Cj4+ICB9Cj4+ICAKPj4gLXZvaWQgaWNsX21hcF9wbGxzX3Rv X3BvcnRzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4gLQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+PiAtCQkJICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9s ZF9zdGF0ZSkKPj4gK3N0YXRpYyB2b2lkIGljbF9tYXBfcGxsc190b19wb3J0cyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+PiAgewo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiAgCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwo+PiAtCXN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwo+PiAtCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uOwo+PiAtCWludCBpOwo+PiAtCj4+IC0JZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9z dGF0ZShvbGRfc3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKPj4gLQkJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPQo+PiAtCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5i ZXN0X2VuY29kZXIpOwo+PiAtCQllbnVtIHBvcnQgcG9ydDsKPj4gLQkJdWludDMyX3QgdmFsOwo+ PiAtCj4+IC0JCWlmIChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCj4+IC0JCQljb250aW51ZTsK Pj4gLQo+PiAtCQlwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPj4gLQkJbXV0ZXhfbG9jaygmZGV2X3By aXYtPmRwbGxfbG9jayk7Cj4+ICsJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+PiAr CXUzMiB2YWw7Cj4+ICAKPj4gLQkJdmFsID0gSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKTsK Pj4gLQkJV0FSTl9PTigodmFsICYgaWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwg cG9ydCkpID09IDApOwo+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsX2xvY2spOwo+PiAg Cj4+IC0JCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewo+PiAt CQkJdmFsICY9IH5EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX01BU0socG9ydCk7Cj4+IC0JCQl2 YWwgfD0gRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTChwbGwtPmluZm8tPmlkLCBwb3J0KTsKPj4g LQkJCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZhbCk7Cj4+IC0JCQlQT1NUSU5HX1JF QUQoRFBDTEtBX0NGR0NSMF9JQ0wpOwo+PiAtCQl9Cj4+ICsJdmFsID0gSTkxNV9SRUFEKERQQ0xL QV9DRkdDUjBfSUNMKTsKPj4gKwlXQVJOX09OKCh2YWwgJiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtf b2ZmKGRldl9wcml2LCBwb3J0KSkgPT0gMCk7Cj4+ICAKPj4gLQkJdmFsICY9IH5pY2xfZHBjbGth X2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KTsKPj4gKwlpZiAoaW50ZWxfcG9ydF9pc19j b21ib3BoeShkZXZfcHJpdiwgcG9ydCkpIHsKPj4gKwkJdmFsICY9IH5EUENMS0FfQ0ZHQ1IwX0RE SV9DTEtfU0VMX01BU0socG9ydCk7Cj4+ICsJCXZhbCB8PSBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtf U0VMKHBsbC0+aW5mby0+aWQsIHBvcnQpOwo+PiAgCQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBf SUNMLCB2YWwpOwo+PiAtCj4+IC0JCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGxfbG9jayk7 Cj4+ICsJCVBPU1RJTkdfUkVBRChEUENMS0FfQ0ZHQ1IwX0lDTCk7Cj4+ICAJfQo+PiArCj4+ICsJ dmFsICY9IH5pY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KTsKPj4gKwlJ OTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLCB2YWwpOwo+PiArCj4+ICsJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKPj4gIH0KPj4gIAo+PiAtdm9pZCBpY2xfdW5tYXBfcGxs c190b19wb3J0cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+IC0JCQkgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+PiAtCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqb2xkX3N0YXRlKQo+PiArc3RhdGljIHZvaWQgaWNsX3VubWFwX3BsbHNfdG9fcG9ydHMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+ICB7Cj4+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwo+PiAtCXN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKPj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubjsKPj4gLQlpbnQgaTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPj4gKwllbnVtIHBvcnQgcG9ydCA9IGVu Y29kZXItPnBvcnQ7Cj4+ICsJdTMyIHZhbDsKPj4gIAo+PiAtCWZvcl9lYWNoX29sZF9jb25uZWN0 b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgaSkgewo+PiAtCQlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9Cj4+IC0JCQl0b19pbnRlbF9lbmNvZGVyKG9s ZF9jb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwo+PiAtCQllbnVtIHBvcnQgcG9ydDsKPj4gKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKPj4gIAo+PiAtCQlpZiAob2xkX2Nvbm5f c3RhdGUtPmNydGMgIT0gY3J0YykKPj4gLQkJCWNvbnRpbnVlOwo+PiArCXZhbCA9IEk5MTVfUkVB RChEUENMS0FfQ0ZHQ1IwX0lDTCk7Cj4+ICsJdmFsIHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19v ZmYoZGV2X3ByaXYsIHBvcnQpOwo+PiArCUk5MTVfV1JJVEUoRFBDTEtBX0NGR0NSMF9JQ0wsIHZh bCk7Cj4+ICAKPj4gLQkJcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4+IC0JCW11dGV4X2xvY2soJmRl dl9wcml2LT5kcGxsX2xvY2spOwo+PiAtCQlJOTE1X1dSSVRFKERQQ0xLQV9DRkdDUjBfSUNMLAo+ PiAtCQkJICAgSTkxNV9SRUFEKERQQ0xLQV9DRkdDUjBfSUNMKSB8Cj4+IC0JCQkgICBpY2xfZHBj bGthX2NmZ2NyMF9jbGtfb2ZmKGRldl9wcml2LCBwb3J0KSk7Cj4+IC0JCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPmRwbGxfbG9jayk7Cj4+IC0JfQo+PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PmRwbGxfbG9jayk7Cj4+ICB9Cj4+ICAKPj4gIHZvaWQgaWNsX3Nhbml0aXplX2VuY29kZXJfcGxs X21hcHBpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+IEBAIC0zMjA4LDYgKzMx ODQsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPj4gIAo+PiAgCVdBUk5fT04oY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNv ZGVyKTsKPj4gIAo+PiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+PiArCQlpY2xf bWFwX3BsbHNfdG9fcG9ydHMoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4+ICsKPj4gIAlpbnRlbF9z ZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBwaXBlLCB0cnVlKTsKPj4g IAo+PiAgCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9I RE1JKSkgewo+PiBAQCAtMzMwNiw2ICszMjg1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bv c3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gIAkJCQkgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4+ICAJCQkJICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+PiAgewo+PiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+PiArCj4+ICAJLyoKPj4gIAkgKiBXaGVuIGNhbGxlZCBmcm9tIERQIE1TVCBjb2Rl Ogo+PiAgCSAqIC0gb2xkX2Nvbm5fc3RhdGUgd2lsbCBiZSBOVUxMCj4+IEBAIC0zMzI1LDYgKzMz MDYsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+PiAgCWVsc2UKPj4gIAkJaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZV9k cChlbmNvZGVyLAo+PiAgCQkJCQkgIG9sZF9jcnRjX3N0YXRlLCBvbGRfY29ubl9zdGF0ZSk7Cj4+ ICsKPj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPj4gKwkJaWNsX3VubWFwX3Bs bHNfdG9fcG9ydHMoZW5jb2Rlcik7Cj4+ICB9Cj4+ICAKPj4gIHZvaWQgaW50ZWxfZGRpX2ZkaV9w b3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggZDA3ZmE0NDU2MTUwLi41NTlkYjk4YjVhNGEg MTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTU3MDQsOSAr NTcwNCw2IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+PiAgCWlmIChwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwp Cj4+ICAJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChwaXBlX2NvbmZpZyk7Cj4+ICAKPj4gLQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPj4gLQkJaWNsX21hcF9wbGxzX3RvX3BvcnRz KGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOwo+PiAtCj4+ICAJaW50ZWxfZW5jb2RlcnNf cHJlX2VuYWJsZShjcnRjLCBwaXBlX2NvbmZpZywgb2xkX3N0YXRlKTsKPj4gIAo+PiAgCWlmIChp bnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKHBpcGVfY29uZmlnKSkKPj4gQEAgLTU5MDgsOSArNTkw NSw2IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPj4gIAo+PiAgCWludGVsX2VuY29kZXJzX3Bvc3RfZGlz YWJsZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKPj4gIAo+PiAtCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDExKQo+PiAtCQlpY2xfdW5tYXBfcGxsc190b19wb3J0cyhjcnRj LCBvbGRfY3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKPj4gLQo+PiAgCWludGVsX2VuY29kZXJzX3Bv c3RfcGxsX2Rpc2FibGUoY3J0Yywgb2xkX2NydGNfc3RhdGUsIG9sZF9zdGF0ZSk7Cj4+ICB9Cj4+ ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gaW5kZXggNDBlZGIyMTA4N2E3Li45MDE4 YmUyMTcxZWUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4+IEBAIC0xNTIyLDEy ICsxNTIyLDYgQEAgdTggaW50ZWxfZGRpX2RwX3ByZV9lbXBoYXNpc19tYXgoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4+ICAJCQkJIHU4IHZvbHRhZ2Vfc3dpbmcpOwo+PiAgaW50IGlu dGVsX2RkaV90b2dnbGVfaGRjcF9zaWduYWxsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyLAo+PiAgCQkJCSAgICAgYm9vbCBlbmFibGUpOwo+PiAtdm9pZCBpY2xfbWFwX3Bs bHNfdG9fcG9ydHMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+PiAtCQkJICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+IC0JCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKTsKPj4gLXZvaWQgaWNsX3VubWFwX3BsbHNfdG9fcG9ydHMoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+PiAtCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPj4gLQkJCSAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSk7Cj4+ ICB2b2lkIGljbF9zYW5pdGl6ZV9lbmNvZGVyX3BsbF9tYXBwaW5nKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKTsKPj4gIAo+PiAgdW5zaWduZWQgaW50IGludGVsX2ZiX2FsaWduX2hlaWdo dChjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPj4gLS0gCj4+IDIuMTEuMAoKLS0g CkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==