From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2] drm/i915/ddi: Get AUX power domain for DP main link too Date: Thu, 21 Jun 2018 20:12:47 +0300 Message-ID: <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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7F2A86E2DB for ; Thu, 21 Jun 2018 17:13:05 +0000 (UTC) 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 cHNyLmMuCgpTaW5jZSB3ZSB0YWtlIG5vdyBhIHJlcmVmZXJlbmNlIGZvciBtYWluIGxpbmsgZnVu Y3Rpb25hbGl0eSBvbiBhbGwgRFAKcG9ydHMgd2UgY2FuIGZvcmdvIHRha2luZyB0aGUgc2VwZXJh dGUgcG93ZXIgcmVmIGZvciBQU1IgZnVuY3Rpb25hbGl0eS4KCnYyOgotIE1ha2Ugc3VyZSBEQyBz dGF0ZXMgc3RheSBlbmFibGVkIHdoZW4gdGFraW5nIHRoZSByZWYgb24gcG9ydCBBLgogIChWaWxs ZSkKCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpD YzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+CkNj OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTog SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jICAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgMTIgKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAzICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICAgICAgfCA0MSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAgMSArCiA1 IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggMDQ0ZmUxZmI5ODcyLi4xNDZhOWRhYTY1NjQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0xOTgzLDE1ICsxOTgzLDU1IEBAIGJvb2wgaW50ZWxf ZGRpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgdTY0IGludGVsX2RkaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyBpbmxpbmUgZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbgoraW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCit7CisJLyogQ05MIEhXIHJlcXVpcmVzIGNvcnJlc3BvbmRpbmcgQVVY IElPcyB0byBiZSBwb3dlcmVkIHVwIGZvciBQU1Igd2l0aAorCSAqIERDIHN0YXRlcyBlbmFibGVk IGF0IHRoZSBzYW1lIHRpbWUsIHdoaWxlIGZvciBkcml2ZXIgaW5pdGlhdGVkIEFVWAorCSAqIHRy YW5zZmVycyB3ZSBuZWVkIHRoZSBzYW1lIEFVWCBJT3MgdG8gYmUgcG93ZXJlZCBidXQgd2l0aCBE QyBzdGF0ZXMKKwkgKiBkaXNhYmxlZC4gQWNjb3JkaW5nbHkgdXNlIHRoZSBBVVggcG93ZXIgZG9t YWluIGhlcmUgd2hpY2ggbGVhdmVzIERDCisJICogc3RhdGVzIGVuYWJsZWQuCisJICogSG93ZXZl ciwgZm9yIG5vbi1BIEFVWCBwb3J0cyB0aGUgY29ycmVzcG9uZGluZyBub24tRURQIHRyYW5zY29k ZXJzCisJICogd291bGQgaGF2ZSBhbHJlYWR5IGVuYWJsZWQgcG93ZXIgd2VsbCAyIGFuZCBEQ19P RkYuIFRoaXMgbWVhbnMgd2UgY2FuCisJICogYWNxdWlyZSBhIHdpZGVyIFBPV0VSX0RPTUFJTl9B VVhfe0IsQyxELEZ9IHJlZmVyZW5jZSBpbnN0ZWFkIG9mIGEKKwkgKiBzcGVjaWZpYyBBVVhfSU8g cmVmZXJlbmNlIHdpdGhvdXQgcG93ZXJpbmcgdXAgYW55IGV4dHJhIHdlbGxzLgorCSAqIE5vdGUg dGhhdCBQU1IgaXMgZW5hYmxlZCBvbmx5IG9uIFBvcnQgQSBldmVuIHRob3VnaCB0aGlzIGZ1bmN0 aW9uCisJICogcmV0dXJucyB0aGUgY29ycmVjdCBkb21haW4gZm9yIG90aGVyIHBvcnRzIHRvby4K KwkgKi8KKwlyZXR1cm4gaW50ZWxfZHAtPmF1eF9jaCA9PSBBVVhfQ0hfQSA/IFBPV0VSX0RPTUFJ Tl9BVVhfSU9fQSA6CisJCQkJCSAgICAgIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluOworfQor CitzdGF0aWMgdTY0IGludGVsX2RkaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKKwkJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9f ZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCWVudW0gcGlwZSBwaXBlOworCXU2NCBkb21haW5z OwogCi0JaWYgKGludGVsX2RkaV9nZXRfaHdfc3RhdGUoZW5jb2RlciwgJnBpcGUpKQotCQlyZXR1 cm4gQklUX1VMTChkaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbik7CisJaWYgKCFpbnRlbF9k ZGlfZ2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKSkKKwkJcmV0dXJuIDA7CiAKLQlyZXR1cm4g MDsKKwlkb21haW5zID0gQklUX1VMTChkaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbik7CisJ aWYgKCFjcnRjX3N0YXRlKQorCQlyZXR1cm4gZG9tYWluczsKKworCS8qCisJICogVE9ETzogQWRk IHN1cHBvcnQgZm9yIE1TVCBlbmNvZGVycy4gQXRtLCB0aGUgZm9sbG93aW5nIHNob3VsZCBuZXZl cgorCSAqIGhhcHBlbiBzaW5jZSB0aGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIG9ubHkgZm9y IHRoZSBwcmltYXJ5CisJICogZW5jb2RlciB3aGljaCBkb2Vzbid0IGhhdmUgaXRzIG93biBwaXBl L2NydGNfc3RhdGUuCisJICovCisJaWYgKFdBUk5fT04oaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRj X3N0YXRlLCBJTlRFTF9PVVRQVVRfRFBfTVNUKSkpCisJCXJldHVybiBkb21haW5zOworCisJLyog QVVYIHBvd2VyIGlzIG9ubHkgbmVlZGVkIGZvciAoZSlEUCBtb2RlLCBub3QgZm9yIEhETUkuICov CisJaWYgKCFpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1J KSkgeworCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmRpZ19wb3J0LT5kcDsKKworCQlk b21haW5zIHw9IEJJVF9VTEwoaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKGludGVsX2Rw KSk7CisJfQorCisJcmV0dXJuIGRvbWFpbnM7CiB9CiAKIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV9w aXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQpAQCAt MjYzMSw2ICsyNjcxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlXQVJOX09OKGlzX21zdCAmJiAocG9ydCA9 PSBQT1JUX0EgfHwgcG9ydCA9PSBQT1JUX0UpKTsKIAorCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0 KGRldl9wcml2LAorCQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4X2RvbWFpbihpbnRlbF9kcCkp OworCiAJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBjcnRjX3N0YXRlLT5wb3J0 X2Nsb2NrLAogCQkJCSBjcnRjX3N0YXRlLT5sYW5lX2NvdW50LCBpc19tc3QpOwogCkBAIC0yNzc1 LDYgKzI4MTgsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9w cml2LCBkaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbik7CiAKIAlpbnRlbF9kZGlfY2xrX2Rp c2FibGUoZW5jb2Rlcik7CisKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwKKwkJ CQlpbnRlbF9kZGlfbWFpbl9saW5rX2F1eF9kb21haW4oaW50ZWxfZHApKTsKIH0KIAogc3RhdGlj IHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDJjOGZlZjNlZGU1 NC4uZDlmZWZjZWM0YjFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0x NTY3NiwxMSArMTU2NzYsMjEgQEAgZ2V0X2VuY29kZXJfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3By aXYtPmRybSwgZW5jb2RlcikgewogCQl1NjQgZ2V0X2RvbWFpbnM7CiAJCWVudW0gaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW4gZG9tYWluOworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKIAogCQlpZiAoIWVuY29kZXItPmdldF9wb3dlcl9kb21haW5zKQogCQkJY29udGlu dWU7CiAKLQkJZ2V0X2RvbWFpbnMgPSBlbmNvZGVyLT5nZXRfcG93ZXJfZG9tYWlucyhlbmNvZGVy KTsKKwkJLyoKKwkJICogSW4gY2FzZSBvZiBhIGRhbmdsaW5nIGVuY29kZXIgd2l0aG91dCBhIGNy dGMgd2Ugc3RpbGwgbmVlZAorCQkgKiB0byBnZXQgcG93ZXIgZG9tYWluIHJlZnMuIFN1Y2ggZW5j b2RlcnMgd2lsbCBiZSBkaXNhYmxlZAorCQkgKiBkcm9wcGluZyB0aGVzZSByZWZlcmVuY2VzLgor CQkgKi8KKwkJY3J0Y19zdGF0ZSA9IGVuY29kZXItPmJhc2UuY3J0YyA/CisJCQkgICAgIHRvX2lu dGVsX2NydGNfc3RhdGUoZW5jb2Rlci0+YmFzZS5jcnRjLT5zdGF0ZSkgOgorCQkJICAgICBOVUxM OworCisJCWdldF9kb21haW5zID0gZW5jb2Rlci0+Z2V0X3Bvd2VyX2RvbWFpbnMoZW5jb2Rlciwg Y3J0Y19zdGF0ZSk7CiAJCWZvcl9lYWNoX3Bvd2VyX2RvbWFpbihkb21haW4sIGdldF9kb21haW5z KQogCQkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIGRvbWFpbik7CiAJfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAwYzNhYzBlYWZkZTAuLjcxNzQ0MjlkOTMwYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTI1NCw3ICsyNTQsOCBAQCBzdHJ1Y3QgaW50ZWxf ZW5jb2RlciB7CiAJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwog CS8qIFJldHVybnMgYSBtYXNrIG9mIHBvd2VyIGRvbWFpbnMgdGhhdCBuZWVkIHRvIGJlIHJlZmVy ZW5jZWQgYXMgcGFydAogCSAqIG9mIHRoZSBoYXJkd2FyZSBzdGF0ZSByZWFkb3V0IGNvZGUuICov Ci0JdTY0ICgqZ2V0X3Bvd2VyX2RvbWFpbnMpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KTsKKwl1NjQgKCpnZXRfcG93ZXJfZG9tYWlucykoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCisJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKIAkvKgogCSAq IENhbGxlZCBkdXJpbmcgc3lzdGVtIHN1c3BlbmQgYWZ0ZXIgYWxsIHBlbmRpbmcgcmVxdWVzdHMg Zm9yIHRoZQogCSAqIGVuY29kZXIgYXJlIGZsdXNoZWQgKGZvciBleGFtcGxlIGZvciBEUCBBVVgg dHJhbnNhY3Rpb25zKSBhbmQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKaW5kZXggZDRjZDE5ZmVh MTQ4Li5lZWNkZDhiNWI1ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCkBAIC01Niw0MyAr NTYsNiBAQAogI2luY2x1ZGUgImludGVsX2Rydi5oIgogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAK LXN0YXRpYyBpbmxpbmUgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgotcHNyX2F1eF9k b21haW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKLXsKLQkvKiBDTkwgSFcgcmVxdWlyZXMg Y29ycmVzcG9uZGluZyBBVVggSU9zIHRvIGJlIHBvd2VyZWQgdXAgZm9yIFBTUi4KLQkgKiBIb3dl dmVyLCBmb3Igbm9uLUEgQVVYIHBvcnRzIHRoZSBjb3JyZXNwb25kaW5nIG5vbi1FRFAgdHJhbnNj b2RlcnMKLQkgKiB3b3VsZCBoYXZlIGFscmVhZHkgZW5hYmxlZCBwb3dlciB3ZWxsIDIgYW5kIERD X09GRi4gVGhpcyBtZWFucyB3ZSBjYW4KLQkgKiBhY3F1aXJlIGEgd2lkZXIgUE9XRVJfRE9NQUlO X0FVWF97QixDLEQsRn0gcmVmZXJlbmNlIGluc3RlYWQgb2YgYQotCSAqIHNwZWNpZmljIEFVWF9J TyByZWZlcmVuY2Ugd2l0aG91dCBwb3dlcmluZyB1cCBhbnkgZXh0cmEgd2VsbHMuCi0JICogTm90 ZSB0aGF0IFBTUiBpcyBlbmFibGVkIG9ubHkgb24gUG9ydCBBIGV2ZW4gdGhvdWdoIHRoaXMgZnVu Y3Rpb24KLQkgKiByZXR1cm5zIHRoZSBjb3JyZWN0IGRvbWFpbiBmb3Igb3RoZXIgcG9ydHMgdG9v LgotCSAqLwotCXJldHVybiBpbnRlbF9kcC0+YXV4X2NoID09IEFVWF9DSF9BID8gUE9XRVJfRE9N QUlOX0FVWF9JT19BIDoKLQkJCQkJICAgICAgaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW47Ci19 Ci0KLXN0YXRpYyB2b2lkIHBzcl9hdXhfaW9fcG93ZXJfZ2V0KHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCi17Ci0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCk7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Ci0KLQlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDEwKQotCQlyZXR1cm47Ci0KLQlpbnRlbF9kaXNwbGF5X3Bvd2Vy X2dldChkZXZfcHJpdiwgcHNyX2F1eF9kb21haW4oaW50ZWxfZHApKTsKLX0KLQotc3RhdGljIHZv aWQgcHNyX2F1eF9pb19wb3dlcl9wdXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKLXsKLQlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKLQotCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpIDwgMTApCi0JCXJldHVybjsKLQotCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2 LCBwc3JfYXV4X2RvbWFpbihpbnRlbF9kcCkpOwotfQotCiB2b2lkIGludGVsX3Bzcl9pcnFfY29u dHJvbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgZGVidWcpCiB7CiAJ dTMyIGRlYnVnX21hc2ssIG1hc2s7CkBAIC01OTUsOCArNTU4LDYgQEAgc3RhdGljIHZvaWQgaHN3 X3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCWVudW0gdHJhbnNjb2Rl ciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCi0JcHNyX2F1 eF9pb19wb3dlcl9nZXQoaW50ZWxfZHApOwotCiAJLyogT25seSBIU1cgYW5kIEJEVyBoYXZlIFBT UiBBVVggcmVnaXN0ZXJzIHRoYXQgbmVlZCB0byBiZSBzZXR1cC4gU0tMKwogCSAqIHVzZSBoYXJk Y29kZWQgdmFsdWVzIFBTUiBBVVggdHJhbnNhY3Rpb25zCiAJICovCkBAIC03MTcsOCArNjc4LDYg QEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs CiAJCWVsc2UKIAkJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5B QkxFKTsKIAl9Ci0KLQlwc3JfYXV4X2lvX3Bvd2VyX3B1dChpbnRlbF9kcCk7CiB9CiAKIC8qKgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCmluZGV4IGRlM2E4MTAzNGY3Ny4u Mjk2OTc4NzIwMWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50 aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCkBA IC0xODI0LDYgKzE4MjQsNyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkK ICNkZWZpbmUgR0xLX0RJU1BMQVlfQVVYX0FfUE9XRVJfRE9NQUlOUyAoCQlcCiAJQklUX1VMTChQ T1dFUl9ET01BSU5fQVVYX0EpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfSU9fQSkg fAkJXAogCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQogI2RlZmluZSBHTEtfRElTUExBWV9B VVhfQl9QT1dFUl9ET01BSU5TICgJCVwKIAlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJ XAotLSAKMi4xMy4yCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK