From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3] drm/i915/ddi: Get AUX power domain for DP main link too Date: Thu, 21 Jun 2018 21:44:49 +0300 Message-ID: <20180621184449.26634-1-imre.deak@intel.com> References: <20180621171247.20350-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B9E56E2B9 for ; Thu, 21 Jun 2018 18:45:22 +0000 (UTC) In-Reply-To: <20180621171247.20350-1-imre.deak@intel.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 Cc: Dhinakaran Pandiyan , Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org U28gZmFyIHdlIGdvdCBhbiBBVVggcG93ZXIgZG9tYWluIHJlZmVyZW5jZSBvbmx5IGZvciB0aGUg ZHVyYXRpb24gb2YgRFAKQVVYIHRyYW5zZmVycy4gSG93ZXZlciwgdGhlIGZvbGxvd2luZyBzdWdn ZXN0cyB0aGF0IHdlIGFsc28gbmVlZCB0aGVzZQpmb3IgbWFpbiBsaW5rIGZ1bmN0aW9uYWxpdHk6 Ci0gVGhlIHNwZWNpZmljYXRpb24gZG9lc24ndCBzdGF0ZSB3aGV0aGVyIGl0J3MgbmVlZGVkIG9y IG5vdCBmb3IgbWFpbgogIGxpbmsgZnVuY3Rpb25hbGl0eSwgYnV0IHN1Z2dlc3RzIHRoYXQgdGhl c2UgcG93ZXIgd2VsbHMgbmVlZCB0byBiZQogIGVuYWJsZWQgYWxyZWFkeSBkdXJpbmcgZGlzcGxh eSBjb3JlIGluaXRpYWxpemF0aW9uIChTZXF1ZW5jZXMgdG8KICBJbml0aWFsaXplIERpc3BsYXkp LgotIEZvciBQU1Igd2UgbmVlZCB0byBrZWVwIHRoZSBBVVggcG93ZXIgd2VsbCBlbmFibGVkLgot IE9uIElDTCBjb21ibyBQSFkgcG9ydHMgKG5vbi1UQykgdGhlIEFVWCBwb3dlciB3ZWxsIGlzIG5l ZWRlZCBmb3IKICBsaW5rIHRyYWluaW5nIHRvbzogd2hpbGUgdGhlIHBvcnQgaXMgZW5hYmxlZCB3 aXRoIGEgRFAgbGluayB0cmFpbmluZwogIHRlc3QgcGF0dGVybiB0cnlpbmcgdG8gdG9nZ2xlIHRo ZSBBVVggcG93ZXIgd2VsbCB3aWxsIHRpbWUgb3V0LgotIE9uIElDTCBNRyBQSFkgcG9ydHMgKFRD KSB0aGUgQVVYIHBvd2VyIHdlbGwgaXMgbmVlZGVkIGFsc28gZm9yIG1haW4KICBsaW5rIGZ1bmN0 aW9uYWxpdHkgKGJvdGggaW4gRFAgYW5kIEhETUkgbW9kZXMpLgotIFdpbmRvd3MgZW5hYmxlcyB0 aGVzZSBwb3dlciB3ZWxscyBib3RoIGZvciBtYWluIGFuZCBBVVggbGFuZQogIGZ1bmN0aW9uYWxp dHkuCgpCYXNlZCBvbiB0aGUgYWJvdmUgdGFrZSBhbiBBVVggcG93ZXIgcmVmZXJlbmNlIGZvciBt YWluIGxpbmsKZnVuY3Rpb25hbGl0eSB0b28uIFRoaXMgbWFrZXMgYSBkaWZmZXJlbmNlIG9ubHkg b24gR0VOMTArIChHTEsrKQpwbGF0Zm9ybXMsIHdoZXJlIHdlIGhhdmUgc2VwYXJhdGUgcG9ydCBz cGVjaWZpYyBBVVggcG93ZXIgd2VsbHMuCgpGb3IgUFNSIHdlIHN0aWxsIG5lZWQgdG8gZGlzdGlu Z3Vpc2ggYmV0d2VlbiBwb3J0IEEgYW5kIHRoZSBvdGhlcgpwb3J0cywgc2luY2Ugb24gcG9ydCBB IERDIHN0YXRlcyBtdXN0IHN0YXkgZW5hYmxlZCBmb3IgbWFpbiBsaW5rCmZ1bmN0aW9uYWxpdHks IGJ1dCBEQyBzdGF0ZXMgbXVzdCBiZSBkaXNhYmxlZCBmb3IgZHJpdmVyIGluaXRpYXRlZApBVVgg dHJhbnNmZXJzLiBTbyByZS11c2UgdGhlIGNvcnJlc3BvbmRpbmcgaGVscGVyIGZyb20gaW50ZWxf cHNyLmMuCgpTaW5jZSB3ZSB0YWtlIG5vdyBhIHJlZmVyZW5jZSBmb3IgbWFpbiBsaW5rIGZ1bmN0 aW9uYWxpdHkgb24gYWxsIERQCnBvcnRzIHdlIGNhbiBmb3JnbyB0YWtpbmcgdGhlIHNlcGFyYXRl IHBvd2VyIHJlZiBmb3IgUFNSIGZ1bmN0aW9uYWxpdHkuCgp2MjoKLSBNYWtlIHN1cmUgREMgc3Rh dGVzIHN0YXkgZW5hYmxlZCB3aGVuIHRha2luZyB0aGUgcmVmIG9uIHBvcnQgQS4KICAoVmlsbGUp Cgp2MzogKFZpbGxlKQotIEZpeCBjb21tZW50IGFib3V0IGxvZ2ljIGZvciBlbmNvZGVycyB3aXRo b3V0IGEgY3J0YyBzdGF0ZSBhbmQKICBhZGQgRklYTUUgbm90ZSBmb3IgYSBzaW1wbGlmaWNhdGlv biB0byBhdm9pZCBjYWxsaW5nIGdldF9wb3dlcl9kb21haW5zCiAgaW4gc3VjaCBjYXNlcy4KLSBV c2UgaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcigpIGluc3RlYWQgIWludGVsX2NydGNfaGFzX3R5 cGUoSERNSSkuCgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KQ2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwu Y29tPgpDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDEyICsr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgfCAgMyArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgICAgICAgIHwgNDEgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwg IDEgKwogNSBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDA0NGZlMWZiOTg3Mi4uMDMxOTgyNWI3MjVi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMTk4MywxNSArMTk4Myw1NSBAQCBib29s IGludGVsX2RkaV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHU2NCBpbnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnMo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgaW5saW5lIGVudW0gaW50ZWxf ZGlzcGxheV9wb3dlcl9kb21haW4KK2ludGVsX2RkaV9tYWluX2xpbmtfYXV4X2RvbWFpbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQoreworCS8qIENOTCBIVyByZXF1aXJlcyBjb3JyZXNwb25k aW5nIEFVWCBJT3MgdG8gYmUgcG93ZXJlZCB1cCBmb3IgUFNSIHdpdGgKKwkgKiBEQyBzdGF0ZXMg ZW5hYmxlZCBhdCB0aGUgc2FtZSB0aW1lLCB3aGlsZSBmb3IgZHJpdmVyIGluaXRpYXRlZCBBVVgK KwkgKiB0cmFuc2ZlcnMgd2UgbmVlZCB0aGUgc2FtZSBBVVggSU9zIHRvIGJlIHBvd2VyZWQgYnV0 IHdpdGggREMgc3RhdGVzCisJICogZGlzYWJsZWQuIEFjY29yZGluZ2x5IHVzZSB0aGUgQVVYIHBv d2VyIGRvbWFpbiBoZXJlIHdoaWNoIGxlYXZlcyBEQworCSAqIHN0YXRlcyBlbmFibGVkLgorCSAq IEhvd2V2ZXIsIGZvciBub24tQSBBVVggcG9ydHMgdGhlIGNvcnJlc3BvbmRpbmcgbm9uLUVEUCB0 cmFuc2NvZGVycworCSAqIHdvdWxkIGhhdmUgYWxyZWFkeSBlbmFibGVkIHBvd2VyIHdlbGwgMiBh bmQgRENfT0ZGLiBUaGlzIG1lYW5zIHdlIGNhbgorCSAqIGFjcXVpcmUgYSB3aWRlciBQT1dFUl9E T01BSU5fQVVYX3tCLEMsRCxGfSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhCisJICogc3BlY2lmaWMg QVVYX0lPIHJlZmVyZW5jZSB3aXRob3V0IHBvd2VyaW5nIHVwIGFueSBleHRyYSB3ZWxscy4KKwkg KiBOb3RlIHRoYXQgUFNSIGlzIGVuYWJsZWQgb25seSBvbiBQb3J0IEEgZXZlbiB0aG91Z2ggdGhp cyBmdW5jdGlvbgorCSAqIHJldHVybnMgdGhlIGNvcnJlY3QgZG9tYWluIGZvciBvdGhlciBwb3J0 cyB0b28uCisJICovCisJcmV0dXJuIGludGVsX2RwLT5hdXhfY2ggPT0gQVVYX0NIX0EgPyBQT1dF Ul9ET01BSU5fQVVYX0lPX0EgOgorCQkJCQkgICAgICBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFp bjsKK30KKworc3RhdGljIHU2NCBpbnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0g ZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBpcGUgcGlwZTsKKwl1NjQg ZG9tYWluczsKIAotCWlmIChpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKSkK LQkJcmV0dXJuIEJJVF9VTEwoZGlnX3BvcnQtPmRkaV9pb19wb3dlcl9kb21haW4pOworCWlmICgh aW50ZWxfZGRpX2dldF9od19zdGF0ZShlbmNvZGVyLCAmcGlwZSkpCisJCXJldHVybiAwOwogCi0J cmV0dXJuIDA7CisJZG9tYWlucyA9IEJJVF9VTEwoZGlnX3BvcnQtPmRkaV9pb19wb3dlcl9kb21h aW4pOworCWlmICghY3J0Y19zdGF0ZSkKKwkJcmV0dXJuIGRvbWFpbnM7CisKKwkvKgorCSAqIFRP RE86IEFkZCBzdXBwb3J0IGZvciBNU1QgZW5jb2RlcnMuIEF0bSwgdGhlIGZvbGxvd2luZyBzaG91 bGQgbmV2ZXIKKwkgKiBoYXBwZW4gc2luY2UgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBv bmx5IGZvciB0aGUgcHJpbWFyeQorCSAqIGVuY29kZXIgd2hpY2ggZG9lc24ndCBoYXZlIGl0cyBv d24gcGlwZS9jcnRjX3N0YXRlLgorCSAqLworCWlmIChXQVJOX09OKGludGVsX2NydGNfaGFzX3R5 cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RQX01TVCkpKQorCQlyZXR1cm4gZG9tYWluczsK KworCS8qIEFVWCBwb3dlciBpcyBvbmx5IG5lZWRlZCBmb3IgKGUpRFAgbW9kZSwgbm90IGZvciBI RE1JLiAqLworCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CisJ CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmZGlnX3BvcnQtPmRwOworCisJCWRvbWFpbnMg fD0gQklUX1VMTChpbnRlbF9kZGlfbWFpbl9saW5rX2F1eF9kb21haW4oaW50ZWxfZHApKTsKKwl9 CisKKwlyZXR1cm4gZG9tYWluczsKIH0KIAogdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xv Y2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCkBAIC0yNjMxLDYg KzI2NzEsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCVdBUk5fT04oaXNfbXN0ICYmIChwb3J0ID09IFBPUlRf QSB8fCBwb3J0ID09IFBPUlRfRSkpOwogCisJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3By aXYsCisJCQkJaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKGludGVsX2RwKSk7CisKIAlp bnRlbF9kcF9zZXRfbGlua19wYXJhbXMoaW50ZWxfZHAsIGNydGNfc3RhdGUtPnBvcnRfY2xvY2ss CiAJCQkJIGNydGNfc3RhdGUtPmxhbmVfY291bnQsIGlzX21zdCk7CiAKQEAgLTI3NzUsNiArMjgx OCw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIGRp Z19wb3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsKIAogCWludGVsX2RkaV9jbGtfZGlzYWJsZShl bmNvZGVyKTsKKworCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LAorCQkJCWludGVs X2RkaV9tYWluX2xpbmtfYXV4X2RvbWFpbihpbnRlbF9kcCkpOwogfQogCiBzdGF0aWMgdm9pZCBp bnRlbF9kZGlfcG9zdF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMmM4ZmVmM2VkZTU0Li5jZTYx NWY4OWI0M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE1Njc2LDEx ICsxNTY3NiwyMSBAQCBnZXRfZW5jb2Rlcl9wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKCZkZXZfcHJpdi0+ZHJt LCBlbmNvZGVyKSB7CiAJCXU2NCBnZXRfZG9tYWluczsKIAkJZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBkb21haW47CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl OwogCiAJCWlmICghZW5jb2Rlci0+Z2V0X3Bvd2VyX2RvbWFpbnMpCiAJCQljb250aW51ZTsKIAot CQlnZXRfZG9tYWlucyA9IGVuY29kZXItPmdldF9wb3dlcl9kb21haW5zKGVuY29kZXIpOworCQkv KgorCQkgKiBGb3IgTVNUIGFuZCBpbmFjdGl2ZSBlbmNvZGVycyB3ZSBkb24ndCBoYXZlIGEgY3J0 YyBzdGF0ZS4KKwkJICogRklYTUU6IG5vIG5lZWQgdG8gY2FsbCBnZXRfcG93ZXJfZG9tYWlucyBp biBzdWNoIGNhc2VzLCBpdAorCQkgKiB3aWxsIGFsd2F5cyByZXR1cm4gMC4KKwkJICovCisJCWNy dGNfc3RhdGUgPSBlbmNvZGVyLT5iYXNlLmNydGMgPworCQkJICAgICB0b19pbnRlbF9jcnRjX3N0 YXRlKGVuY29kZXItPmJhc2UuY3J0Yy0+c3RhdGUpIDoKKwkJCSAgICAgTlVMTDsKKworCQlnZXRf ZG9tYWlucyA9IGVuY29kZXItPmdldF9wb3dlcl9kb21haW5zKGVuY29kZXIsIGNydGNfc3RhdGUp OwogCQlmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWluLCBnZXRfZG9tYWlucykKIAkJCWludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBkb21haW4pOwogCX0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKaW5kZXggMGMzYWMwZWFmZGUwLi43MTc0NDI5ZDkzMGEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCkBAIC0yNTQsNyArMjU0LDggQEAgc3RydWN0IGludGVsX2VuY29kZXIgewog CQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKIAkvKiBSZXR1cm5z IGEgbWFzayBvZiBwb3dlciBkb21haW5zIHRoYXQgbmVlZCB0byBiZSByZWZlcmVuY2VkIGFzIHBh cnQKIAkgKiBvZiB0aGUgaGFyZHdhcmUgc3RhdGUgcmVhZG91dCBjb2RlLiAqLwotCXU2NCAoKmdl dF9wb3dlcl9kb21haW5zKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CisJdTY0ICgq Z2V0X3Bvd2VyX2RvbWFpbnMpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiAJLyoKIAkgKiBDYWxsZWQgZHVy aW5nIHN5c3RlbSBzdXNwZW5kIGFmdGVyIGFsbCBwZW5kaW5nIHJlcXVlc3RzIGZvciB0aGUKIAkg KiBlbmNvZGVyIGFyZSBmbHVzaGVkIChmb3IgZXhhbXBsZSBmb3IgRFAgQVVYIHRyYW5zYWN0aW9u cykgYW5kCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCmluZGV4IGQ0Y2QxOWZlYTE0OC4uZWVjZGQ4 YjViNWUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwpAQCAtNTYsNDMgKzU2LDYgQEAKICNp bmNsdWRlICJpbnRlbF9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogCi1zdGF0aWMgaW5s aW5lIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KLXBzcl9hdXhfZG9tYWluKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCi17Ci0JLyogQ05MIEhXIHJlcXVpcmVzIGNvcnJlc3BvbmRp bmcgQVVYIElPcyB0byBiZSBwb3dlcmVkIHVwIGZvciBQU1IuCi0JICogSG93ZXZlciwgZm9yIG5v bi1BIEFVWCBwb3J0cyB0aGUgY29ycmVzcG9uZGluZyBub24tRURQIHRyYW5zY29kZXJzCi0JICog d291bGQgaGF2ZSBhbHJlYWR5IGVuYWJsZWQgcG93ZXIgd2VsbCAyIGFuZCBEQ19PRkYuIFRoaXMg bWVhbnMgd2UgY2FuCi0JICogYWNxdWlyZSBhIHdpZGVyIFBPV0VSX0RPTUFJTl9BVVhfe0IsQyxE LEZ9IHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEKLQkgKiBzcGVjaWZpYyBBVVhfSU8gcmVmZXJlbmNl IHdpdGhvdXQgcG93ZXJpbmcgdXAgYW55IGV4dHJhIHdlbGxzLgotCSAqIE5vdGUgdGhhdCBQU1Ig aXMgZW5hYmxlZCBvbmx5IG9uIFBvcnQgQSBldmVuIHRob3VnaCB0aGlzIGZ1bmN0aW9uCi0JICog cmV0dXJucyB0aGUgY29ycmVjdCBkb21haW4gZm9yIG90aGVyIHBvcnRzIHRvby4KLQkgKi8KLQly ZXR1cm4gaW50ZWxfZHAtPmF1eF9jaCA9PSBBVVhfQ0hfQSA/IFBPV0VSX0RPTUFJTl9BVVhfSU9f QSA6Ci0JCQkJCSAgICAgIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluOwotfQotCi1zdGF0aWMg dm9pZCBwc3JfYXV4X2lvX3Bvd2VyX2dldChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQotewot CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwotCi0JaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPCAxMCkKLQkJcmV0dXJuOwotCi0JaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3By aXYsIHBzcl9hdXhfZG9tYWluKGludGVsX2RwKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHBzcl9hdXhf aW9fcG93ZXJfcHV0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCi17Ci0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kaWdf cG9ydC0+YmFzZS5iYXNlLmRldik7Ci0KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDEwKQot CQlyZXR1cm47Ci0KLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgcHNyX2F1eF9k b21haW4oaW50ZWxfZHApKTsKLX0KLQogdm9pZCBpbnRlbF9wc3JfaXJxX2NvbnRyb2woc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGRlYnVnKQogewogCXUzMiBkZWJ1Z19t YXNrLCBtYXNrOwpAQCAtNTk1LDggKzU1OCw2IEBAIHN0YXRpYyB2b2lkIGhzd19wc3JfZW5hYmxl X3NvdXJjZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5z Y29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAotCXBzcl9hdXhfaW9fcG93ZXJf Z2V0KGludGVsX2RwKTsKLQogCS8qIE9ubHkgSFNXIGFuZCBCRFcgaGF2ZSBQU1IgQVVYIHJlZ2lz dGVycyB0aGF0IG5lZWQgdG8gYmUgc2V0dXAuIFNLTCsKIAkgKiB1c2UgaGFyZGNvZGVkIHZhbHVl cyBQU1IgQVVYIHRyYW5zYWN0aW9ucwogCSAqLwpAQCAtNzE3LDggKzY3OCw2IEBAIHN0YXRpYyB2 b2lkIGhzd19wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQllbHNlCiAJ CQlXQVJOX09OKEk5MTVfUkVBRChFRFBfUFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7CiAJfQot Ci0JcHNyX2F1eF9pb19wb3dlcl9wdXQoaW50ZWxfZHApOwogfQogCiAvKioKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwppbmRleCBkZTNhODEwMzRmNzcuLjI5Njk3ODcyMDFl ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMTgyNCw2ICsx ODI0LDcgQEAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAjZGVmaW5lIEdM S19ESVNQTEFZX0FVWF9BX1BPV0VSX0RPTUFJTlMgKAkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlO X0FVWF9BKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0lPX0EpIHwJCVwKIAlCSVRf VUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xLX0RJU1BMQVlfQVVYX0JfUE9XRVJf RE9NQUlOUyAoCQlcCiAJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCVwKLS0gCjIuMTMu MgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==