From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juha-Pekka Heikkila Subject: [PATCH 2/3] drm/i915: Unify skylake plane update Date: Mon, 11 Sep 2017 15:28:56 +0300 Message-ID: <1505132937-27327-3-git-send-email-juhapekka.heikkila@gmail.com> References: <1505132937-27327-1-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 mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id D36C36E397 for ; Mon, 11 Sep 2017 12:29:13 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id p17so6750484wmd.3 for ; Mon, 11 Sep 2017 05:29:13 -0700 (PDT) In-Reply-To: <1505132937-27327-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RG9uJ3QgaGFuZGxlIHNreWxha2UgcHJpbWFyeSBwbGFuZSBzZXBhcmF0ZWx5IGFzIGl0IGlzIHNp bWlsYXIKcGxhbmUgYXMgdGhlIG90aGVycy4KClNpZ25lZC1vZmYtYnk6IEp1aGEtUGVra2EgSGVp a2tpbGEgPGp1aGFwZWtrYS5oZWlra2lsYUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDggKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIHwgODUgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgOSArKy0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuYyAgICAgfCAxMSArKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9u cygrKSwgOTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggODM1MmNi ZS4uMmY5NjI4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xMDc3LDYgKzEwNzcsMTQg QEAgc3RydWN0IGludGVsX2ZiYyB7CiAJCQlpbnQgc3JjX3c7CiAJCQlpbnQgc3JjX2g7CiAJCQli b29sIHZpc2libGU7CisJCQkvKgorCQkJICogRGlzcGxheSBzdXJmYWNlIGJhc2UgYWRkcmVzcyBh ZGp1c3RlbWVudCBmb3IKKwkJCSAqIHBhZ2VmbGlwcy4gTm90ZSB0aGF0IG9uIGdlbjQrIHRoaXMg b25seSBhZGp1c3RzIHVwCisJCQkgKiB0byBhIHRpbGUsIG9mZnNldHMgd2l0aGluIGEgdGlsZSBh cmUgaGFuZGxlZCBpbgorCQkJICogdGhlIGh3IGl0c2VsZiAod2l0aCB0aGUgVElMRU9GRiByZWdp c3RlcikuCisJCQkgKi8KKwkJCWludCBhZGp1c3RlZF94OworCQkJaW50IGFkanVzdGVkX3k7CiAJ CX0gcGxhbmU7CiAKIAkJc3RydWN0IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpp bmRleCBmOTIyZTJmLi5hYzQwNzNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CkBAIC0zMjc4LDcgKzMyNzgsNiBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcHJpbWFyeSwKIAkJCQkgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocHJpbWFyeS0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCWNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJ ZW51bSBwbGFuZSBwbGFuZSA9IHByaW1hcnktPnBsYW5lOwogCXUzMiBsaW5lYXJfb2Zmc2V0OwpA QCAtMzI5Niw5ICszMjk1LDYgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnByaW1hcnksCiAJZWxzZQogCQlkc3BhZGRyX29mZnNldCA9 IGxpbmVhcl9vZmZzZXQ7CiAKLQljcnRjLT5hZGp1c3RlZF94ID0geDsKLQljcnRjLT5hZGp1c3Rl ZF95ID0geTsKLQogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGly cWZsYWdzKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkgewpAQCAtMzUzNCw4MyAr MzUzMCw2IEBAIHUzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCXJldHVybiBwbGFuZV9jdGw7CiB9CiAKLXN0YXRpYyB2b2lkIHNreWxh a2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKLQkJCQkJ IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCQkgY29uc3Qg c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKLXsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFzZS5m YjsKLQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwotCWVudW0gcGlwZSBwaXBl ID0gcGxhbmUtPnBpcGU7Ci0JdTMyIHBsYW5lX2N0bCA9IHBsYW5lX3N0YXRlLT5jdGw7Ci0JdW5z aWduZWQgaW50IHJvdGF0aW9uID0gcGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb247Ci0JdTMyIHN0 cmlkZSA9IHNrbF9wbGFuZV9zdHJpZGUoZmIsIDAsIHJvdGF0aW9uKTsKLQl1MzIgYXV4X3N0cmlk ZSA9IHNrbF9wbGFuZV9zdHJpZGUoZmIsIDEsIHJvdGF0aW9uKTsKLQl1MzIgc3VyZl9hZGRyID0g cGxhbmVfc3RhdGUtPm1haW4ub2Zmc2V0OwotCWludCBzY2FsZXJfaWQgPSBwbGFuZV9zdGF0ZS0+ c2NhbGVyX2lkOwotCWludCBzcmNfeCA9IHBsYW5lX3N0YXRlLT5tYWluLng7Ci0JaW50IHNyY195 ID0gcGxhbmVfc3RhdGUtPm1haW4ueTsKLQlpbnQgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxh bmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKLQlpbnQgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQo JnBsYW5lX3N0YXRlLT5iYXNlLnNyYykgPj4gMTY7Ci0JaW50IGRzdF94ID0gcGxhbmVfc3RhdGUt PmJhc2UuZHN0LngxOwotCWludCBkc3RfeSA9IHBsYW5lX3N0YXRlLT5iYXNlLmRzdC55MTsKLQlp bnQgZHN0X3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmJhc2UuZHN0KTsKLQlpbnQg ZHN0X2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0YXRlLT5iYXNlLmRzdCk7Ci0JdW5zaWdu ZWQgbG9uZyBpcnFmbGFnczsKLQotCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCi0Jc3JjX3ctLTsK LQlzcmNfaC0tOwotCWRzdF93LS07Ci0JZHN0X2gtLTsKLQotCWNydGMtPmRzcGFkZHJfb2Zmc2V0 ID0gc3VyZl9hZGRyOwotCi0JY3J0Yy0+YWRqdXN0ZWRfeCA9IHNyY194OwotCWNydGMtPmFkanVz dGVkX3kgPSBzcmNfeTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+dW5jb3JlLmxv Y2ssIGlycWZsYWdzKTsKLQotCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSB8fCBJU19DQU5O T05MQUtFKGRldl9wcml2KSkgewotCQlJOTE1X1dSSVRFX0ZXKFBMQU5FX0NPTE9SX0NUTChwaXBl LCBwbGFuZV9pZCksCi0JCQkgICAgICBQTEFORV9DT0xPUl9QSVBFX0dBTU1BX0VOQUJMRSB8Ci0J CQkgICAgICBQTEFORV9DT0xPUl9QSVBFX0NTQ19FTkFCTEUgfAotCQkJICAgICAgUExBTkVfQ09M T1JfUExBTkVfR0FNTUFfRElTQUJMRSk7Ci0JfQotCi0JSTkxNV9XUklURV9GVyhQTEFORV9DVEwo cGlwZSwgcGxhbmVfaWQpLCBwbGFuZV9jdGwpOwotCUk5MTVfV1JJVEVfRlcoUExBTkVfT0ZGU0VU KHBpcGUsIHBsYW5lX2lkKSwgKHNyY195IDw8IDE2KSB8IHNyY194KTsKLQlJOTE1X1dSSVRFX0ZX KFBMQU5FX1NUUklERShwaXBlLCBwbGFuZV9pZCksIHN0cmlkZSk7Ci0JSTkxNV9XUklURV9GVyhQ TEFORV9TSVpFKHBpcGUsIHBsYW5lX2lkKSwgKHNyY19oIDw8IDE2KSB8IHNyY193KTsKLQlJOTE1 X1dSSVRFX0ZXKFBMQU5FX0FVWF9ESVNUKHBpcGUsIHBsYW5lX2lkKSwKLQkJICAgICAgKHBsYW5l X3N0YXRlLT5hdXgub2Zmc2V0IC0gc3VyZl9hZGRyKSB8IGF1eF9zdHJpZGUpOwotCUk5MTVfV1JJ VEVfRlcoUExBTkVfQVVYX09GRlNFVChwaXBlLCBwbGFuZV9pZCksCi0JCSAgICAgIChwbGFuZV9z dGF0ZS0+YXV4LnkgPDwgMTYpIHwgcGxhbmVfc3RhdGUtPmF1eC54KTsKLQotCWlmIChzY2FsZXJf aWQgPj0gMCkgewotCQl1aW50MzJfdCBwc19jdHJsID0gMDsKLQotCQlXQVJOX09OKCFkc3RfdyB8 fCAhZHN0X2gpOwotCQlwc19jdHJsID0gUFNfU0NBTEVSX0VOIHwgUFNfUExBTkVfU0VMKHBsYW5l X2lkKSB8Ci0JCQljcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyc1tzY2FsZXJfaWRdLm1v ZGU7Ci0JCUk5MTVfV1JJVEVfRlcoU0tMX1BTX0NUUkwocGlwZSwgc2NhbGVyX2lkKSwgcHNfY3Ry bCk7Ci0JCUk5MTVfV1JJVEVfRlcoU0tMX1BTX1BXUl9HQVRFKHBpcGUsIHNjYWxlcl9pZCksIDAp OwotCQlJOTE1X1dSSVRFX0ZXKFNLTF9QU19XSU5fUE9TKHBpcGUsIHNjYWxlcl9pZCksIChkc3Rf eCA8PCAxNikgfCBkc3RfeSk7Ci0JCUk5MTVfV1JJVEVfRlcoU0tMX1BTX1dJTl9TWihwaXBlLCBz Y2FsZXJfaWQpLCAoZHN0X3cgPDwgMTYpIHwgZHN0X2gpOwotCQlJOTE1X1dSSVRFX0ZXKFBMQU5F X1BPUyhwaXBlLCBwbGFuZV9pZCksIDApOwotCX0gZWxzZSB7Ci0JCUk5MTVfV1JJVEVfRlcoUExB TkVfUE9TKHBpcGUsIHBsYW5lX2lkKSwgKGRzdF95IDw8IDE2KSB8IGRzdF94KTsKLQl9Ci0KLQlJ OTE1X1dSSVRFX0ZXKFBMQU5FX1NVUkYocGlwZSwgcGxhbmVfaWQpLAotCQkgICAgICBpbnRlbF9w bGFuZV9nZ3R0X29mZnNldChwbGFuZV9zdGF0ZSkgKyBzdXJmX2FkZHIpOwotCi0JUE9TVElOR19S RUFEX0ZXKFBMQU5FX1NVUkYocGlwZSwgcGxhbmVfaWQpKTsKLQotCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwotfQotCiBzdGF0aWMgdm9p ZCBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnByaW1h cnksCiAJCQkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7CkBAIC0xMzI2NSw3ICsxMzE4 NCw3IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShz a2xfcHJpbWFyeV9mb3JtYXRzKTsKIAkJbW9kaWZpZXJzID0gc2tsX2Zvcm1hdF9tb2RpZmllcnNf Y2NzOwogCi0JCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IHNreWxha2VfdXBkYXRlX3ByaW1hcnlf cGxhbmU7CisJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IHNrbF91cGRhdGVfcGxhbmU7CiAJCXBy aW1hcnktPmRpc2FibGVfcGxhbmUgPSBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKIAl9 IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewogCQlpbnRlbF9wcmltYXJ5X2Zv cm1hdHMgPSBza2xfcHJpbWFyeV9mb3JtYXRzOwpAQCAtMTMyNzUsNyArMTMxOTQsNyBAQCBpbnRl bF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGVudW0gcGlwZSBwaXBlKQogCQllbHNlCiAJCQltb2RpZmllcnMgPSBza2xfZm9ybWF0X21vZGlm aWVyc19ub2NjczsKIAotCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBza3lsYWtlX3VwZGF0ZV9w cmltYXJ5X3BsYW5lOworCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBza2xfdXBkYXRlX3BsYW5l OwogCQlwcmltYXJ5LT5kaXNhYmxlX3BsYW5lID0gc2t5bGFrZV9kaXNhYmxlX3ByaW1hcnlfcGxh bmU7CiAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKIAkJaW50ZWxfcHJp bWFyeV9mb3JtYXRzID0gaTk2NV9wcmltYXJ5X2Zvcm1hdHM7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCmluZGV4IDBkMGFiZWQxLi5kOTMyNjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApA QCAtODAyLDEyICs4MDIsNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7CiAJdW5zaWduZWQgbG9uZyBs b25nIGVuYWJsZWRfcG93ZXJfZG9tYWluczsKIAlzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zlcmxh eTsKIAotCS8qIERpc3BsYXkgc3VyZmFjZSBiYXNlIGFkZHJlc3MgYWRqdXN0ZW1lbnQgZm9yIHBh Z2VmbGlwcy4gTm90ZSB0aGF0IG9uCi0JICogZ2VuNCsgdGhpcyBvbmx5IGFkanVzdHMgdXAgdG8g YSB0aWxlLCBvZmZzZXRzIHdpdGhpbiBhIHRpbGUgYXJlCi0JICogaGFuZGxlZCBpbiB0aGUgaHcg aXRzZWxmICh3aXRoIHRoZSBUSUxFT0ZGIHJlZ2lzdGVyKS4gKi8KLQlpbnQgYWRqdXN0ZWRfeDsK LQlpbnQgYWRqdXN0ZWRfeTsKLQogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7CiAK IAkvKiBnbG9iYWwgcmVzZXQgY291bnQgd2hlbiB0aGUgbGFzdCBmbGlwIHdhcyBzdWJtaXR0ZWQg Ki8KQEAgLTE4ODcsNiArMTg4MSw5IEBAIGludCBpbnRlbF9zcHJpdGVfc2V0X2NvbG9ya2V5KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICAgICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdik7CiB2b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKTsKIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKTsKK3ZvaWQgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLAorCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK KwkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CiAK IC8qIGludGVsX3R2LmMgKi8KIHZvaWQgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwppbmRleCA1OGE3NzJkLi5k YzA1OTgwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKQEAgLTcxLDcgKzcxLDEwIEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBub19mYmNfb25fbXVsdGlwbGVfcGlwZXMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogICovCiBzdGF0aWMgdW5zaWduZWQgaW50IGdldF9jcnRjX2Zl bmNlX3lfb2Zmc2V0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogewotCXJldHVybiBjcnRjLT5i YXNlLnkgLSBjcnRjLT5hZGp1c3RlZF95OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOworCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9 ICZkZXZfcHJpdi0+ZmJjOworCisJcmV0dXJuIGNydGMtPmJhc2UueSAtIGZiYy0+c3RhdGVfY2Fj aGUucGxhbmUuYWRqdXN0ZWRfeTsKIH0KIAogLyoKQEAgLTcyNyw4ICs3MzAsOCBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9mYmNfaHdfdHJhY2tpbmdfY292ZXJzX3NjcmVlbihzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKIAogCWludGVsX2ZiY19nZXRfcGxhbmVfc291cmNlX3NpemUoJmZiYy0+c3RhdGVf Y2FjaGUsICZlZmZlY3RpdmVfdywKIAkJCQkJJmVmZmVjdGl2ZV9oKTsKLQllZmZlY3RpdmVfdyAr PSBjcnRjLT5hZGp1c3RlZF94OwotCWVmZmVjdGl2ZV9oICs9IGNydGMtPmFkanVzdGVkX3k7CisJ ZWZmZWN0aXZlX3cgKz0gZmJjLT5zdGF0ZV9jYWNoZS5wbGFuZS5hZGp1c3RlZF94OworCWVmZmVj dGl2ZV9oICs9IGZiYy0+c3RhdGVfY2FjaGUucGxhbmUuYWRqdXN0ZWRfeTsKIAogCXJldHVybiBl ZmZlY3RpdmVfdyA8PSBtYXhfdyAmJiBlZmZlY3RpdmVfaCA8PSBtYXhfaDsKIH0KQEAgLTc1Nyw2 ICs3NjAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCWNhY2hlLT5wbGFuZS5zcmNfdyA9IGRybV9yZWN0X3dpZHRo KCZwbGFuZV9zdGF0ZS0+YmFzZS5zcmMpID4+IDE2OwogCWNhY2hlLT5wbGFuZS5zcmNfaCA9IGRy bV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmJhc2Uuc3JjKSA+PiAxNjsKIAljYWNoZS0+cGxh bmUudmlzaWJsZSA9IHBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGU7CisJY2FjaGUtPnBsYW5lLmFk anVzdGVkX3ggPSBwbGFuZV9zdGF0ZS0+bWFpbi54OworCWNhY2hlLT5wbGFuZS5hZGp1c3RlZF95 ID0gcGxhbmVfc3RhdGUtPm1haW4ueTsKIAogCWlmICghY2FjaGUtPnBsYW5lLnZpc2libGUpCiAJ CXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggNTI0OTMzYi4uZWYx NjUxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTIyNSw3ICsyMjUsNyBA QCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKICNl bmRpZgogfQogCi1zdGF0aWMgdm9pZAordm9pZAogc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lLAogCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQot LSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=