From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/3] drm/i915: Unify skylake plane update Date: Tue, 12 Sep 2017 21:07:31 +0300 Message-ID: <20170912180731.GD4914@intel.com> References: <1505207980-18439-1-git-send-email-juhapekka.heikkila@gmail.com> <1505207980-18439-3-git-send-email-juhapekka.heikkila@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id EE58F6E26B for ; Tue, 12 Sep 2017 18:07:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1505207980-18439-3-git-send-email-juhapekka.heikkila@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Juha-Pekka Heikkila Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgMTI6MTk6MzlQTSArMDMwMCwgSnVoYS1QZWtrYSBIZWlr a2lsYSB3cm90ZToKPiBEb24ndCBoYW5kbGUgc2t5bGFrZSBwcmltYXJ5IHBsYW5lIHNlcGFyYXRl bHkgYXMgaXQgaXMgc2ltaWxhcgo+IHBsYW5lIGFzIHRoZSBvdGhlcnMuCj4gCj4gU2lnbmVkLW9m Zi1ieTogSnVoYS1QZWtrYSBIZWlra2lsYSA8anVoYXBla2thLmhlaWtraWxhQGdtYWlsLmNvbT4K PiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDggKysrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA4NSArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggICAgIHwgIDkgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAg fCAxMSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgMiAr LQo+ICA1IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDkzIGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGQwN2QxMTAuLjI0ZDUyZDcwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTEwOTYsNiArMTA5NiwxNCBAQCBzdHJ1Y3Qg aW50ZWxfZmJjIHsKPiAgCQkJaW50IHNyY193Owo+ICAJCQlpbnQgc3JjX2g7Cj4gIAkJCWJvb2wg dmlzaWJsZTsKPiArCQkJLyoKPiArCQkJICogRGlzcGxheSBzdXJmYWNlIGJhc2UgYWRkcmVzcyBh ZGp1c3RlbWVudCBmb3IKPiArCQkJICogcGFnZWZsaXBzLiBOb3RlIHRoYXQgb24gZ2VuNCsgdGhp cyBvbmx5IGFkanVzdHMgdXAKPiArCQkJICogdG8gYSB0aWxlLCBvZmZzZXRzIHdpdGhpbiBhIHRp bGUgYXJlIGhhbmRsZWQgaW4KPiArCQkJICogdGhlIGh3IGl0c2VsZiAod2l0aCB0aGUgVElMRU9G RiByZWdpc3RlcikuCj4gKwkJCSAqLwo+ICsJCQlpbnQgYWRqdXN0ZWRfeDsKPiArCQkJaW50IGFk anVzdGVkX3k7CgpQbGVhc2Ugc3BsaXQgdGhpcyBpbnRvIHR3byBwYXRjaGVzLiBGaXJzdCBvbmUg c2hvdWxkIG51a2UgdGhlCmFkanVzdGVkX3gveSBmcm9tIHRoZSBjcnRjLCB0aGUgc2Vjb25kIHNo b3VsZCBkbyB0aGUgc2tsIGZ1bmN0aW9uCnVuaWZpY2F0aW9uLgoKPiAgCQl9IHBsYW5lOwo+ICAK PiAgCQlzdHJ1Y3Qgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAw ZGQwZTJhLi43MzkwMDNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IEBAIC0zMjk4LDcgKzMyOTgsNiBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcHJpbWFyeSwKPiAgCQkJCSAgICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocHJpbWFyeS0+YmFzZS5kZXYpOwo+IC0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5i YXNlLmZiOwo+ICAJZW51bSBwbGFuZSBwbGFuZSA9IHByaW1hcnktPnBsYW5lOwo+ICAJdTMyIGxp bmVhcl9vZmZzZXQ7Cj4gQEAgLTMzMTYsOSArMzMxNSw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBk YXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwcmltYXJ5LAo+ICAJZWxzZQo+ ICAJCWRzcGFkZHJfb2Zmc2V0ID0gbGluZWFyX29mZnNldDsKPiAgCj4gLQljcnRjLT5hZGp1c3Rl ZF94ID0geDsKPiAtCWNydGMtPmFkanVzdGVkX3kgPSB5Owo+IC0KPiAgCXNwaW5fbG9ja19pcnFz YXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsKPiAgCj4gIAlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA8IDQpIHsKPiBAQCAtMzU1NCw4MyArMzU1MCw2IEBAIHUzMiBza2xfcGxh bmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJcmV0 dXJuIHBsYW5lX2N0bDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgc2t5bGFrZV91cGRhdGVfcHJp bWFyeV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+IC0JCQkJCSBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAtCQkJCQkgY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4g LQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZi Owo+IC0JZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKPiAtCWVudW0gcGlwZSBw aXBlID0gcGxhbmUtPnBpcGU7Cj4gLQl1MzIgcGxhbmVfY3RsID0gcGxhbmVfc3RhdGUtPmN0bDsK PiAtCXVuc2lnbmVkIGludCByb3RhdGlvbiA9IHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uOwo+ IC0JdTMyIHN0cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUoZmIsIDAsIHJvdGF0aW9uKTsKPiAtCXUz MiBhdXhfc3RyaWRlID0gc2tsX3BsYW5lX3N0cmlkZShmYiwgMSwgcm90YXRpb24pOwo+IC0JdTMy IHN1cmZfYWRkciA9IHBsYW5lX3N0YXRlLT5tYWluLm9mZnNldDsKPiAtCWludCBzY2FsZXJfaWQg PSBwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkOwo+IC0JaW50IHNyY194ID0gcGxhbmVfc3RhdGUtPm1h aW4ueDsKPiAtCWludCBzcmNfeSA9IHBsYW5lX3N0YXRlLT5tYWluLnk7Cj4gLQlpbnQgc3JjX3cg PSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKPiAtCWludCBz cmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKPiAt CWludCBkc3RfeCA9IHBsYW5lX3N0YXRlLT5iYXNlLmRzdC54MTsKPiAtCWludCBkc3RfeSA9IHBs YW5lX3N0YXRlLT5iYXNlLmRzdC55MTsKPiAtCWludCBkc3RfdyA9IGRybV9yZWN0X3dpZHRoKCZw bGFuZV9zdGF0ZS0+YmFzZS5kc3QpOwo+IC0JaW50IGRzdF9oID0gZHJtX3JlY3RfaGVpZ2h0KCZw bGFuZV9zdGF0ZS0+YmFzZS5kc3QpOwo+IC0JdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAtCj4g LQkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwo+IC0Jc3JjX3ctLTsKPiAtCXNyY19oLS07Cj4gLQlk c3Rfdy0tOwo+IC0JZHN0X2gtLTsKPiAtCj4gLQljcnRjLT5kc3BhZGRyX29mZnNldCA9IHN1cmZf YWRkcjsKPiAtCj4gLQljcnRjLT5hZGp1c3RlZF94ID0gc3JjX3g7Cj4gLQljcnRjLT5hZGp1c3Rl ZF95ID0gc3JjX3k7Cj4gLQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT51bmNvcmUu bG9jaywgaXJxZmxhZ3MpOwo+IC0KPiAtCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSB8fCBJ U19DQU5OT05MQUtFKGRldl9wcml2KSkgewo+IC0JCUk5MTVfV1JJVEVfRlcoUExBTkVfQ09MT1Jf Q1RMKHBpcGUsIHBsYW5lX2lkKSwKPiAtCQkJICAgICAgUExBTkVfQ09MT1JfUElQRV9HQU1NQV9F TkFCTEUgfAo+IC0JCQkgICAgICBQTEFORV9DT0xPUl9QSVBFX0NTQ19FTkFCTEUgfAo+IC0JCQkg ICAgICBQTEFORV9DT0xPUl9QTEFORV9HQU1NQV9ESVNBQkxFKTsKPiAtCX0KPiAtCj4gLQlJOTE1 X1dSSVRFX0ZXKFBMQU5FX0NUTChwaXBlLCBwbGFuZV9pZCksIHBsYW5lX2N0bCk7Cj4gLQlJOTE1 X1dSSVRFX0ZXKFBMQU5FX09GRlNFVChwaXBlLCBwbGFuZV9pZCksIChzcmNfeSA8PCAxNikgfCBz cmNfeCk7Cj4gLQlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NUUklERShwaXBlLCBwbGFuZV9pZCksIHN0 cmlkZSk7Cj4gLQlJOTE1X1dSSVRFX0ZXKFBMQU5FX1NJWkUocGlwZSwgcGxhbmVfaWQpLCAoc3Jj X2ggPDwgMTYpIHwgc3JjX3cpOwo+IC0JSTkxNV9XUklURV9GVyhQTEFORV9BVVhfRElTVChwaXBl LCBwbGFuZV9pZCksCj4gLQkJICAgICAgKHBsYW5lX3N0YXRlLT5hdXgub2Zmc2V0IC0gc3VyZl9h ZGRyKSB8IGF1eF9zdHJpZGUpOwo+IC0JSTkxNV9XUklURV9GVyhQTEFORV9BVVhfT0ZGU0VUKHBp cGUsIHBsYW5lX2lkKSwKPiAtCQkgICAgICAocGxhbmVfc3RhdGUtPmF1eC55IDw8IDE2KSB8IHBs YW5lX3N0YXRlLT5hdXgueCk7Cj4gLQo+IC0JaWYgKHNjYWxlcl9pZCA+PSAwKSB7Cj4gLQkJdWlu dDMyX3QgcHNfY3RybCA9IDA7Cj4gLQo+IC0JCVdBUk5fT04oIWRzdF93IHx8ICFkc3RfaCk7Cj4g LQkJcHNfY3RybCA9IFBTX1NDQUxFUl9FTiB8IFBTX1BMQU5FX1NFTChwbGFuZV9pZCkgfAo+IC0J CQljcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyc1tzY2FsZXJfaWRdLm1vZGU7Cj4gLQkJ STkxNV9XUklURV9GVyhTS0xfUFNfQ1RSTChwaXBlLCBzY2FsZXJfaWQpLCBwc19jdHJsKTsKPiAt CQlJOTE1X1dSSVRFX0ZXKFNLTF9QU19QV1JfR0FURShwaXBlLCBzY2FsZXJfaWQpLCAwKTsKPiAt CQlJOTE1X1dSSVRFX0ZXKFNLTF9QU19XSU5fUE9TKHBpcGUsIHNjYWxlcl9pZCksIChkc3RfeCA8 PCAxNikgfCBkc3RfeSk7Cj4gLQkJSTkxNV9XUklURV9GVyhTS0xfUFNfV0lOX1NaKHBpcGUsIHNj YWxlcl9pZCksIChkc3RfdyA8PCAxNikgfCBkc3RfaCk7Cj4gLQkJSTkxNV9XUklURV9GVyhQTEFO RV9QT1MocGlwZSwgcGxhbmVfaWQpLCAwKTsKPiAtCX0gZWxzZSB7Cj4gLQkJSTkxNV9XUklURV9G VyhQTEFORV9QT1MocGlwZSwgcGxhbmVfaWQpLCAoZHN0X3kgPDwgMTYpIHwgZHN0X3gpOwo+IC0J fQo+IC0KPiAtCUk5MTVfV1JJVEVfRlcoUExBTkVfU1VSRihwaXBlLCBwbGFuZV9pZCksCj4gLQkJ ICAgICAgaW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQocGxhbmVfc3RhdGUpICsgc3VyZl9hZGRyKTsK PiAtCj4gLQlQT1NUSU5HX1JFQURfRlcoUExBTkVfU1VSRihwaXBlLCBwbGFuZV9pZCkpOwo+IC0K PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxh Z3MpOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnByaW1hcnksCj4gIAkJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKPiAgewo+IEBAIC0xMzIzMCw3ICsxMzE0OSw3IEBAIGludGVsX3ByaW1hcnlfcGxh bmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBp cGUpCj4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNrbF9wcmltYXJ5X2Zvcm1hdHMpOwo+ ICAJCW1vZGlmaWVycyA9IHNrbF9mb3JtYXRfbW9kaWZpZXJzX2NjczsKPiAgCj4gLQkJcHJpbWFy eS0+dXBkYXRlX3BsYW5lID0gc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZTsKPiArCQlwcmlt YXJ5LT51cGRhdGVfcGxhbmUgPSBza2xfdXBkYXRlX3BsYW5lOwo+ICAJCXByaW1hcnktPmRpc2Fi bGVfcGxhbmUgPSBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPiAgCX0gZWxzZSBpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gIAkJaW50ZWxfcHJpbWFyeV9mb3JtYXRzID0g c2tsX3ByaW1hcnlfZm9ybWF0czsKPiBAQCAtMTMyNDAsNyArMTMxNTksNyBAQCBpbnRlbF9wcmlt YXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0g cGlwZSBwaXBlKQo+ICAJCWVsc2UKPiAgCQkJbW9kaWZpZXJzID0gc2tsX2Zvcm1hdF9tb2RpZmll cnNfbm9jY3M7Cj4gIAo+IC0JCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IHNreWxha2VfdXBkYXRl X3ByaW1hcnlfcGxhbmU7Cj4gKwkJcHJpbWFyeS0+dXBkYXRlX3BsYW5lID0gc2tsX3VwZGF0ZV9w bGFuZTsKPiAgCQlwcmltYXJ5LT5kaXNhYmxlX3BsYW5lID0gc2t5bGFrZV9kaXNhYmxlX3ByaW1h cnlfcGxhbmU7Cj4gIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewo+ICAJ CWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IGk5NjVfcHJpbWFyeV9mb3JtYXRzOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gaW5kZXggZDU4Y2QxMC4uYTY5MGNjNSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gQEAgLTgwMywxMiArODAzLDYgQEAgc3RydWN0IGludGVsX2NydGMg ewo+ICAJdW5zaWduZWQgbG9uZyBsb25nIGVuYWJsZWRfcG93ZXJfZG9tYWluczsKPiAgCXN0cnVj dCBpbnRlbF9vdmVybGF5ICpvdmVybGF5Owo+ICAKPiAtCS8qIERpc3BsYXkgc3VyZmFjZSBiYXNl IGFkZHJlc3MgYWRqdXN0ZW1lbnQgZm9yIHBhZ2VmbGlwcy4gTm90ZSB0aGF0IG9uCj4gLQkgKiBn ZW40KyB0aGlzIG9ubHkgYWRqdXN0cyB1cCB0byBhIHRpbGUsIG9mZnNldHMgd2l0aGluIGEgdGls ZSBhcmUKPiAtCSAqIGhhbmRsZWQgaW4gdGhlIGh3IGl0c2VsZiAod2l0aCB0aGUgVElMRU9GRiBy ZWdpc3RlcikuICovCj4gLQlpbnQgYWRqdXN0ZWRfeDsKPiAtCWludCBhZGp1c3RlZF95Owo+IC0K PiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7Cj4gIAo+ICAJLyogZ2xvYmFsIHJl c2V0IGNvdW50IHdoZW4gdGhlIGxhc3QgZmxpcCB3YXMgc3VibWl0dGVkICovCj4gQEAgLTE5MTgs NiArMTkxMiw5IEBAIGludCBpbnRlbF9zcHJpdGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KTsKPiAgdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpOwo+ICB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2Vu ZChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpOwo+ICt2b2lkIHNrbF91 cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiArCQkgICAgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCQkgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKPiAgCj4gIC8qIGludGVsX3R2LmMg Ki8KPiAgdm9pZCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBpbmRleCA1OGE3NzJkLi5kYzA1OTgwOCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gQEAgLTcxLDcgKzcxLDEwIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBub19mYmNfb25fbXVsdGlwbGVfcGlwZXMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+ICAgKi8KPiAgc3RhdGljIHVuc2lnbmVkIGludCBnZXRfY3J0Y19m ZW5jZV95X29mZnNldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgewo+IC0JcmV0dXJuIGNy dGMtPmJhc2UueSAtIGNydGMtPmFkanVzdGVkX3k7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9m YmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOwo+ICsKPiArCXJldHVybiBjcnRjLT5iYXNlLnkgLSBm YmMtPnN0YXRlX2NhY2hlLnBsYW5lLmFkanVzdGVkX3k7CgpBcyBJIHNhaWQgZWFybGllciwgd2Un bGwgd2FudCB0byBnZXQgcmlkIGlmIHRoaXMgY3J0Yy0+YmFzZS55IHRoaW5nIGFzCndlbGwuIEkg dGhpbmsgaXQncyBhY3R1YWxseSBzZW1pIGJyb2tlbiBhdCB0aGUgbW9tZW50IHNpbmNlIHdlIHNl ZW0gdG8KYmUgc3R1ZmZpbmcgdGhlIHVuY2xpcHBlZCBjb29yZGluYXRlIGluIHRoZXJlLiBJdCBz aG91bGQgcmVhbGx5IGJlCnRoZSBjbGlwcGVkIG9uZSAoaWUuIHBsYW5lX3N0YXRlLT5zcmMueTEg Pj4gMTYpLiBTbyB3ZSdsbCB3YW50IHRvIHB1dAp0aGF0IChvciBwb3RlbnRpYWxseSB0aGUgd2hv bGUgZmVuY2Vfb2Zmc2V0KSBpbnRvIHRoZSBmYmMgY2FjaGUgYXMgd2VsbC4KSSBndWVzcyB3ZSBj b3VsZCBkbyB0aGF0IHBhcnQgYXMgYSBzZXBhcmF0ZSBwYXRjaCB0aG91Z2guCgpXaGlsZSBJIHdh cyBsb29raW5nIGF0IHRoZSBmYmMgY29kZSBpdCBvY2N1cnJlZCB0byBtZSB0aGF0IGl0J3MgZG9p bmcKd2F5IHRvbyBtdWNoIGNoZWNraW5nIGluIHRoZSBjYW5fYWN0aXZhdGUoKSBmdW5jdGlvbi4g TW9zdCBvZiB0aGUgY2hlY2tzCml0J3MgZG9pbmcgdGhlcmUgd2UgY291bGQgaGF2ZSBkb25lIGFs cmVhZHkgd2hlbiB3ZSBoYWQgdGhlIHBsYW5lL2NydGMKc3RhdGVzIGFyb3VuZC4gU28gSSB0aGlu ayB3ZSBzaG91bGQgcHJlLWNvbXB1dGUgbW9yZSBvZiB0aGUgYW5zd2VyIHRvIHRoZSAKImNhbiB0 aGlzIHBsYW5lL2NydGMgZG8gZmJjPyIgcXVlc3Rpb24uIEl0IG1pZ2h0IGFsbG93IHVzIHRvIG51 a2Ugc29tZQpzdHVmZiBmcm9tIHRoZSBmYmMgc3RhdGUgY2FjaGUgYXMgd2VsbC4KCj4gIH0KPiAg Cj4gIC8qCj4gQEAgLTcyNyw4ICs3MzAsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mYmNfaHdfdHJh Y2tpbmdfY292ZXJzX3NjcmVlbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCj4gIAlpbnRl bF9mYmNfZ2V0X3BsYW5lX3NvdXJjZV9zaXplKCZmYmMtPnN0YXRlX2NhY2hlLCAmZWZmZWN0aXZl X3csCj4gIAkJCQkJJmVmZmVjdGl2ZV9oKTsKPiAtCWVmZmVjdGl2ZV93ICs9IGNydGMtPmFkanVz dGVkX3g7Cj4gLQllZmZlY3RpdmVfaCArPSBjcnRjLT5hZGp1c3RlZF95Owo+ICsJZWZmZWN0aXZl X3cgKz0gZmJjLT5zdGF0ZV9jYWNoZS5wbGFuZS5hZGp1c3RlZF94Owo+ICsJZWZmZWN0aXZlX2gg Kz0gZmJjLT5zdGF0ZV9jYWNoZS5wbGFuZS5hZGp1c3RlZF95Owo+ICAKPiAgCXJldHVybiBlZmZl Y3RpdmVfdyA8PSBtYXhfdyAmJiBlZmZlY3RpdmVfaCA8PSBtYXhfaDsKPiAgfQo+IEBAIC03NTcs NiArNzYwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCWNhY2hlLT5wbGFuZS5zcmNfdyA9IGRybV9yZWN0X3dp ZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+ICAJY2FjaGUtPnBsYW5lLnNyY19o ID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+IDE2Owo+ICAJY2Fj aGUtPnBsYW5lLnZpc2libGUgPSBwbGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlOwo+ICsJY2FjaGUt PnBsYW5lLmFkanVzdGVkX3ggPSBwbGFuZV9zdGF0ZS0+bWFpbi54Owo+ICsJY2FjaGUtPnBsYW5l LmFkanVzdGVkX3kgPSBwbGFuZV9zdGF0ZS0+bWFpbi55Owo+ICAKPiAgCWlmICghY2FjaGUtPnBs YW5lLnZpc2libGUpCj4gIAkJcmV0dXJuOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j Cj4gaW5kZXggYjBkNmUzZS4uMmVjNDEwOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCj4gQEAgLTIyNCw3ICsyMjQsNyBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4gICNlbmRpZgo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZAo+ICt2b2lkCj4gIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKPiAgCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCj4gIAkJIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp Cj4gLS0gCj4gMi43LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=