From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH 4/5] drm/i915: Introduce a non-blocking power domain for vblank interrupts Date: Wed, 6 Dec 2017 14:47:40 -0800 Message-ID: <20171206224741.8600-4-dhinakaran.pandiyan@intel.com> References: <20171206224741.8600-1-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171206224741.8600-1-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , Dhinakaran Pandiyan , dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org V2hlbiBEQyBzdGF0ZXMgYXJlIGVuYWJsZWQgYW5kIFBTUiBpcyBhY3RpdmUsIHRoZSBoYXJkd2Fy ZSBlbnRlcnMgREM1L0RDNgpzdGF0ZXMgcmVzdWx0aW5nIGluIGZyYW1lIGNvdW50ZXIgcmVzZXRz LiBUaGUgZnJhbWUgY291bnRlciByZXNldHMgbWVzcwp1cCB0aGUgdmJsYW5rIGNvdW50aW5nIGxv Z2ljLiBTbyBpbiBvcmRlciB0byBkaXNhYmxlIERDIHN0YXRlcyB3aGVuCnZibGFuayBpbnRlcnJ1 cHRzIGFyZSByZXF1aXJlZCBhbmQgdG8gZGlzYWxsb3cgREMgc3RhdGVzIHdoZW4gdmJsYW5rcwpp bnRlcnJ1cHRzIGFyZSBhbHJlYWR5IGVuYWJsZWQsIGludHJvZHVjZSBhIG5ldyBwb3dlciBkb21h aW4uIFNpbmNlIHRoaXMKcG93ZXIgZG9tYWluIHJlZmVyZW5jZSBuZWVkcyB0byBiZSBhY3F1aXJl ZCBhbmQgcmVsZWFzZWQgaW4gYXRvbWljIGNvbnRleHQsCnRoZSBjb3JyZXNwb25kaW5nIF9nZXQo KSBhbmQgX3B1dCgpIG1ldGhvZHMgc2tpcCB0aGUgcG93ZXJfZG9tYWluIG11dGV4LgoKU2lnbmVk LW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgICA1ICsr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgfCAgIDMgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8IDEyNSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAxOGQ0Mjg4NTIwNWIuLmJh OTEwN2VjMWVkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zOTcsNiArMzk3LDcgQEAg ZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiB7CiAJUE9XRVJfRE9NQUlOX0FVWF9DLAog CVBPV0VSX0RPTUFJTl9BVVhfRCwKIAlQT1dFUl9ET01BSU5fR01CVVMsCisJUE9XRVJfRE9NQUlO X1ZCTEFOSywKIAlQT1dFUl9ET01BSU5fTU9ERVNFVCwKIAlQT1dFUl9ET01BSU5fSU5JVCwKIApA QCAtMTQ3NSw2ICsxNDc2LDEwIEBAIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgewogCQkJYm9vbCBo YXNfdmdhOjE7CiAJCQlib29sIGhhc19mdXNlczoxOwogCQl9IGhzdzsKKwkJc3RydWN0IHsKKwkJ CXNwaW5sb2NrX3QgbG9jazsKKwkJCWJvb2wgd2FzX2Rpc2FibGVkOworCQl9IGRjX29mZjsKIAl9 OwogCWNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfb3BzICpvcHM7CiB9OwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAppbmRleCAzMGY3OTFmODlkNjQuLjkzY2E1MDNmMThiYiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTE4NjUsNyArMTg2NSw4IEBAIHZvaWQgY2h2X3BoeV9wb3dl cmdhdGVfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIGJvb2wg b3ZlcnJpZGUsIHVuc2lnbmVkIGludCBtYXNrKTsKIGJvb2wgY2h2X3BoeV9wb3dlcmdhdGVfY2go c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSwKIAkJ CSAgZW51bSBkcGlvX2NoYW5uZWwgY2gsIGJvb2wgb3ZlcnJpZGUpOwotCitib29sIGludGVsX2Rp c3BsYXlfcG93ZXJfdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Owordm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3ZibGFua19wdXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKIAogLyogaW50ZWxfcG0uYyAqLwogdm9pZCBpbnRlbF9pbml0X2Ns b2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCmluZGV4IGY4OGYyYzA3MGM1Zi4uZjE4MDdiZDc0 MjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBAIC0xMjYsNiAr MTI2LDggQEAgaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW5fc3RyKGVudW0gaW50ZWxfZGlzcGxh eV9wb3dlcl9kb21haW4gZG9tYWluKQogCQlyZXR1cm4gIkFVWF9EIjsKIAljYXNlIFBPV0VSX0RP TUFJTl9HTUJVUzoKIAkJcmV0dXJuICJHTUJVUyI7CisJY2FzZSBQT1dFUl9ET01BSU5fVkJMQU5L OgorCQlyZXR1cm4gIlZCTEFOSyI7CiAJY2FzZSBQT1dFUl9ET01BSU5fSU5JVDoKIAkJcmV0dXJu ICJJTklUIjsKIAljYXNlIFBPV0VSX0RPTUFJTl9NT0RFU0VUOgpAQCAtMTk2LDEwICsxOTgsMTcg QEAgYm9vbCBfX2ludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWlmIChwb3dlcl93ZWxsLT5hbHdheXNfb24pCiAJCQljb250 aW51ZTsKIAotCQlpZiAoIXBvd2VyX3dlbGwtPmh3X2VuYWJsZWQpIHsKKwkJaWYgKHBvd2VyX3dl bGwtPmlkID09IFNLTF9ESVNQX1BXX0RDX09GRikKKwkJCXNwaW5fbG9jaygmcG93ZXJfd2VsbC0+ ZGNfb2ZmLmxvY2spOworCisJCWlmICghcG93ZXJfd2VsbC0+aHdfZW5hYmxlZCkKIAkJCWlzX2Vu YWJsZWQgPSBmYWxzZTsKKworCQlpZiAocG93ZXJfd2VsbC0+aWQgPT0gU0tMX0RJU1BfUFdfRENf T0ZGKQorCQkJc3Bpbl91bmxvY2soJnBvd2VyX3dlbGwtPmRjX29mZi5sb2NrKTsKKworCQlpZiAo IWlzX2VuYWJsZWQpCiAJCQlicmVhazsKLQkJfQogCX0KIAogCXJldHVybiBpc19lbmFibGVkOwpA QCAtNzI0LDYgKzczMyw3IEBAIHN0YXRpYyB2b2lkIGdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfZGlz YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXNrbF9lbmFibGVfZGM2 KGRldl9wcml2KTsKIAllbHNlIGlmIChkZXZfcHJpdi0+Y3NyLmFsbG93ZWRfZGNfbWFzayAmIERD X1NUQVRFX0VOX1VQVE9fREM1KQogCQlnZW45X2VuYWJsZV9kYzUoZGV2X3ByaXYpOworCXBvd2Vy X3dlbGwtPmRjX29mZi53YXNfZGlzYWJsZWQgPSB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBpOXh4 X3Bvd2VyX3dlbGxfc3luY19od19ub29wKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKQEAgLTE0NDEsNiArMTQ1MSw3NyBAQCBzdGF0aWMgdm9pZCBjaHZfcGlwZV9wb3dlcl93ZWxs X2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWNodl9zZXRfcGlw ZV9wb3dlcl93ZWxsKGRldl9wcml2LCBwb3dlcl93ZWxsLCBmYWxzZSk7CiB9CiAKKy8qKgorICog aW50ZWxfZGlzcGxheV9wb3dlcl92YmxhbmtfZ2V0IC0gYWNxdWlyZSBhIFZCTEFOSyBwb3dlciBk b21haW4gcmVmZXJlbmNlIGF0b21pY2FsbHkKKyAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5z dGFuY2UKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGdldHMgYSBQT1dFUl9ET01BSU5fVkJMQU5LIHJl ZmVyZW5jZSB3aXRob3V0IGJsb2NraW5nIGFuZAorICogcmV0dXJucyB0cnVlIGlmIHRoZSBEQ19P RkYgcG93ZXIgd2VsbCB3YXMgZGlzYWJsZWQgc2luY2UgdGhpcyBmdW5jdGlvbiB3YXMKKyAqIGNh bGxlZCB0aGUgbGFzdCB0aW1lLgorICovCitib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfdmJsYW5r X2dldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGk5MTVf cG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsK KwlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsOworCWJvb2wgbmVlZHNfcmVzdG9y ZSA9IGZhbHNlOworCisJaWYgKCFIQVNfQ1NSKGRldl9wcml2KSB8fCAhZGV2X3ByaXYtPnBzci5z b3VyY2Vfb2spCisJCXJldHVybiBmYWxzZTsKKworCS8qIFRoZSBjb3JyZXNwb25kaW5nIENSVEMg c2hvdWxkIGJlIGFjdGl2ZSBieSB0aGUgdGltZSBkcml2ZXIgdHVybnMgb24KKwkgKiB2Ymxhbmsg aW50ZXJydXB0cywgd2hpY2ggaW4gdHVybiBtZWFucyB0aGUgZW5hYmxlZCBwaXBlIHBvd2VyIGRv bWFpbgorCSAqIHdvdWxkIGhhdmUgYWNxdWlyZWQgdGhlIGRldmljZSBydW50aW1lIHBtIHJlZmVy ZW5jZS4KKwkgKi8KKwlpbnRlbF9ydW50aW1lX3BtX2dldF9pZl9pbl91c2UoZGV2X3ByaXYpOwor CisJZm9yX2VhY2hfcG93ZXJfZG9tYWluX3dlbGwoZGV2X3ByaXYsICBwb3dlcl93ZWxsLCBCSVRf VUxMKFBPV0VSX0RPTUFJTl9WQkxBTkspKSB7CisJCWlmIChwb3dlcl93ZWxsLT5pZCA9PSBTS0xf RElTUF9QV19EQ19PRkYpCisJCQlzcGluX2xvY2soJnBvd2VyX3dlbGwtPmRjX29mZi5sb2NrKTsK KworCQlpbnRlbF9wb3dlcl93ZWxsX2dldChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CisKKwkJaWYg KHBvd2VyX3dlbGwtPmlkID09IFNLTF9ESVNQX1BXX0RDX09GRikgeworCQkJbmVlZHNfcmVzdG9y ZSA9IHBvd2VyX3dlbGwtPmRjX29mZi53YXNfZGlzYWJsZWQ7CisJCQlwb3dlcl93ZWxsLT5kY19v ZmYud2FzX2Rpc2FibGVkID0gZmFsc2U7CisJCQlzcGluX3VubG9jaygmcG93ZXJfd2VsbC0+ZGNf b2ZmLmxvY2spOworCQl9CisJfQorCWF0b21pY19pbmMoJnBvd2VyX2RvbWFpbnMtPmRvbWFpbl91 c2VfY291bnRbUE9XRVJfRE9NQUlOX1ZCTEFOS10pOworCisJcmV0dXJuIG5lZWRzX3Jlc3RvcmU7 Cit9CisKKy8qKgorICogaW50ZWxfZGlzcGxheV9wb3dlcl92YmxhbmtfcHV0IC0gZHJvcCBhIFZC TEFOSyBwb3dlciBkb21haW4gcmVmZXJlbmNlIGF0b21pY2FsbHkKKyAqCisgKiBBIG5vbi1ibG9j a2luZyB2ZXJzaW9uIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KCkgc3BlY2lmaWNhbGx5IHRvIGNv bnRyb2wgdGhlCisgKiBEQ19PRkYgcG93ZXIgd2VsbCBpbiBhdG9taWMgY29udGV4dHMuCisgKi8K K3ZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl92YmxhbmtfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21h aW5zID0gJmRldl9wcml2LT5wb3dlcl9kb21haW5zOworCXN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwg KnBvd2VyX3dlbGw7CisKKwlpZiAoIUhBU19DU1IoZGV2X3ByaXYpIHx8ICFkZXZfcHJpdi0+cHNy LnNvdXJjZV9vaykKKwkJcmV0dXJuOworCisJV0FSTihhdG9taWNfZGVjX3JldHVybigmcG93ZXJf ZG9tYWlucy0+ZG9tYWluX3VzZV9jb3VudFtQT1dFUl9ET01BSU5fVkJMQU5LXSkgPCAwLAorCSAg ICAgIlVzZSBjb3VudCBvbiBkb21haW4gJXMgd2FzIGFscmVhZHkgemVyb1xuIiwKKwkgICAgIGlu dGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihQT1dFUl9ET01BSU5fVkJMQU5LKSk7CisKKwlm b3JfZWFjaF9wb3dlcl9kb21haW5fd2VsbF9yZXYoZGV2X3ByaXYsICBwb3dlcl93ZWxsLCBCSVRf VUxMKFBPV0VSX0RPTUFJTl9WQkxBTkspKSB7CisJCWlmIChwb3dlcl93ZWxsLT5pZCA9PSBTS0xf RElTUF9QV19EQ19PRkYpCisJCQlzcGluX2xvY2soJnBvd2VyX3dlbGwtPmRjX29mZi5sb2NrKTsK KworCQlpbnRlbF9wb3dlcl93ZWxsX3B1dChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CisKKwkJaWYg KHBvd2VyX3dlbGwtPmlkID09IFNLTF9ESVNQX1BXX0RDX09GRikKKwkJCXNwaW5fdW5sb2NrKCZw b3dlcl93ZWxsLT5kY19vZmYubG9jayk7CisJfQorCisJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2 X3ByaXYpOworfQorCiBzdGF0aWMgdm9pZAogX19pbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9kb21h aW4oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSBlbnVtIGludGVsX2Rp c3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbikKQEAgLTE0NDgsOSArMTUyOSwxNiBAQCBfX2ludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0X2RvbWFpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJp di0+cG93ZXJfZG9tYWluczsKIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dlcl93ZWxsOwog Ci0JZm9yX2VhY2hfcG93ZXJfZG9tYWluX3dlbGwoZGV2X3ByaXYsIHBvd2VyX3dlbGwsIEJJVF9V TEwoZG9tYWluKSkKKwlmb3JfZWFjaF9wb3dlcl9kb21haW5fd2VsbChkZXZfcHJpdiwgcG93ZXJf d2VsbCwgQklUX1VMTChkb21haW4pKSB7CisJCWlmIChwb3dlcl93ZWxsLT5pZCA9PSBTS0xfRElT UF9QV19EQ19PRkYpCisJCQlzcGluX2xvY2soJnBvd2VyX3dlbGwtPmRjX29mZi5sb2NrKTsKKwog CQlpbnRlbF9wb3dlcl93ZWxsX2dldChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CiAKKwkJaWYgKHBv d2VyX3dlbGwtPmlkID09IFNLTF9ESVNQX1BXX0RDX09GRikKKwkJCXNwaW5fdW5sb2NrKCZwb3dl cl93ZWxsLT5kY19vZmYubG9jayk7CisJfQorCiAJYXRvbWljX2luYygmcG93ZXJfZG9tYWlucy0+ ZG9tYWluX3VzZV9jb3VudFtkb21haW5dKTsKIH0KIApAQCAtMTU0MSw5ICsxNjI5LDE2IEBAIHZv aWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCSAgICAgIlVzZSBjb3VudCBvbiBkb21haW4gJXMgd2FzIGFscmVhZHkgemVyb1xuIiwK IAkgICAgIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihkb21haW4pKTsKIAotCWZvcl9l YWNoX3Bvd2VyX2RvbWFpbl93ZWxsX3JldihkZXZfcHJpdiwgcG93ZXJfd2VsbCwgQklUX1VMTChk b21haW4pKQorCWZvcl9lYWNoX3Bvd2VyX2RvbWFpbl93ZWxsX3JldihkZXZfcHJpdiwgcG93ZXJf d2VsbCwgQklUX1VMTChkb21haW4pKSB7CisJCWlmIChwb3dlcl93ZWxsLT5pZCA9PSBTS0xfRElT UF9QV19EQ19PRkYpCisJCQlzcGluX2xvY2soJnBvd2VyX3dlbGwtPmRjX29mZi5sb2NrKTsKKwog CQlpbnRlbF9wb3dlcl93ZWxsX3B1dChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CiAKKwkJaWYgKHBv d2VyX3dlbGwtPmlkID09IFNLTF9ESVNQX1BXX0RDX09GRikKKwkJCXNwaW5fdW5sb2NrKCZwb3dl cl93ZWxsLT5kY19vZmYubG9jayk7CisJfQorCiAJbXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5z LT5sb2NrKTsKIAogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKQEAgLTE3MDYsNiAr MTgwMSw3IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCVNLTF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMg fAkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX01PREVTRVQpIHwJCQlcCiAJQklUX1VMTChQT1dF Ul9ET01BSU5fQVVYX0EpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fVkJMQU5LKSB8CQkJ XAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQogCiAjZGVmaW5lIEJYVF9ESVNQTEFZX1BP V0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgKAkJXApAQCAtMjM0Miw2ICsyNDM4LDkgQEAgc3RhdGlj IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgY25sX3Bvd2VyX3dlbGxzW10gPSB7CiAJCS5kb21haW5z ID0gQ05MX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMsCiAJCS5vcHMgPSAmZ2VuOV9kY19v ZmZfcG93ZXJfd2VsbF9vcHMsCiAJCS5pZCA9IFNLTF9ESVNQX1BXX0RDX09GRiwKKwkJeworCQkJ LmRjX29mZi53YXNfZGlzYWJsZWQgPSBmYWxzZSwKKwkJfSwKIAl9LAogCXsKIAkJLm5hbWUgPSAi cG93ZXIgd2VsbCAyIiwKQEAgLTI0NzAsNiArMjU2OSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9w b3dlcl93ZWxsX2lkc191bmlxdWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog aW50IGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7CiAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZk ZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKKwlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpkY19vZmZf cHc7CiAKIAlpOTE1X21vZHBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dlbGwgPQogCQlzYW5pdGl6ZV9k aXNhYmxlX3Bvd2VyX3dlbGxfb3B0aW9uKGRldl9wcml2LApAQCAtMjUwNyw2ICsyNjA3LDEwIEBA IGludCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgaTl4eF9hbHdheXNfb25f cG93ZXJfd2VsbCk7CiAJfQogCisJZGNfb2ZmX3B3ID0gbG9va3VwX3Bvd2VyX3dlbGwoZGV2X3By aXYsIFNLTF9ESVNQX1BXX0RDX09GRik7CisJaWYgKGRjX29mZl9wdykKKwkJc3Bpbl9sb2NrX2lu aXQoJmRjX29mZl9wdy0+ZGNfb2ZmLmxvY2spOworCiAJYXNzZXJ0X3Bvd2VyX3dlbGxfaWRzX3Vu aXF1ZShkZXZfcHJpdik7CiAKIAlyZXR1cm4gMDsKQEAgLTI1NTUsOCArMjY1OSwxNCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3N5bmNfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCW11dGV4X2xvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogCWZvcl9l YWNoX3Bvd2VyX3dlbGwoZGV2X3ByaXYsIHBvd2VyX3dlbGwpIHsKIAkJcG93ZXJfd2VsbC0+b3Bz LT5zeW5jX2h3KGRldl9wcml2LCBwb3dlcl93ZWxsKTsKKworCQlpZiAocG93ZXJfd2VsbC0+aWQg PT0gU0tMX0RJU1BfUFdfRENfT0ZGKQorCQkJc3Bpbl9sb2NrKCZwb3dlcl93ZWxsLT5kY19vZmYu bG9jayk7CisKIAkJcG93ZXJfd2VsbC0+aHdfZW5hYmxlZCA9IHBvd2VyX3dlbGwtPm9wcy0+aXNf ZW5hYmxlZChkZXZfcHJpdiwKIAkJCQkJCQkJICAgICBwb3dlcl93ZWxsKTsKKwkJaWYgKHBvd2Vy X3dlbGwtPmlkID09IFNLTF9ESVNQX1BXX0RDX09GRikKKwkJCXNwaW5fdW5sb2NrKCZwb3dlcl93 ZWxsLT5kY19vZmYubG9jayk7CiAJfQogCW11dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9j ayk7CiB9CkBAIC0zMDc5LDYgKzMxODksMTMgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3Zl cmlmeV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCWlmICghcG93 ZXJfd2VsbC0+ZG9tYWlucykKIAkJCWNvbnRpbnVlOwogCisJCS8qCisJCSAqIFJlYWRpbmcgU0tM X0RJU1BfUFdfRENfT0ZGIHBvd2VyX3dlbGwtPmNvdW50IHdpdGhvdXQgaXRzCisJCSAqIHByaXZh dGUgc3BpbmxvY2sgc2hvdWxkIGJlIHNhZmUgaGVyZSBhcyBwb3dlcl93ZWxsLT5jb3VudAorCQkg KiBnZXRzIG1vZGlmaWVkIG9ubHkgaW4gcG93ZXJfd2VsbF9nZXQoKSBhbmQgcG93ZXJfd2VsbF9w dXQoKQorCQkgKiBhbmQgdGhleSBhcmUgbm90IGNhbGxlZCB1bnRpbCBkcm1fY3J0Y192Ymxhbmtf b24oKS4KKwkJICovCisKIAkJZW5hYmxlZCA9IHBvd2VyX3dlbGwtPm9wcy0+aXNfZW5hYmxlZChk ZXZfcHJpdiwgcG93ZXJfd2VsbCk7CiAJCWlmICgocG93ZXJfd2VsbC0+Y291bnQgfHwgcG93ZXJf d2VsbC0+YWx3YXlzX29uKSAhPSBlbmFibGVkKQogCQkJRFJNX0VSUk9SKCJwb3dlciB3ZWxsICVz IHN0YXRlIG1pc21hdGNoIChyZWZjb3VudCAlZC9lbmFibGVkICVkKSIsCi0tIAoyLjExLjAKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=