From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 2/2] drm/i915: Refactor intel_display_set_init_power() logic Date: Thu, 16 Aug 2018 15:37:57 +0300 Message-ID: <20180816123757.3286-2-imre.deak@intel.com> References: <20180816123757.3286-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 092716E162 for ; Thu, 16 Aug 2018 12:38:56 +0000 (UTC) In-Reply-To: <20180816123757.3286-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 List-Id: intel-gfx@lists.freedesktop.org VGhlIGRldmljZSBnbG9iYWwgaW5pdF9wb3dlcl9vbiBmbGFnIGlzIHNvbWV3aGF0IGFyYml0cmFy eSBhbmQgbWFrZXMKZGVidWdnaW5nIHBvd2VyIHJlZmNvdW50aW5nIHByb2JsZW1zIGRpZmZpY3Vs dC4gSW5zdGVhZCBhcnJhbmdlIHRoaW5ncwpzbyB0aGF0IGFsbCBkaXNwbGF5IHBvd2VyIGRvbWFp biBnZXQgaGFzIGEgY29ycmVzcG9uZGluZyBwdXQgY2FsbC4gQWZ0ZXIKdGhpcyBjaGFuZ2Ugd2Ug aGF2ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlczoKCmRyaXZlciBsb2FkaW5nOgppbnRlbF9wb3dl cl9kb21haW5zX2luaXRfaHcoKTsKPG90aGVyIGluaXQgc3RlcHM+CmludGVsX3Bvd2VyX2RvbWFp bnNfZW5hYmxlKCk7Cgpkcml2ZXIgdW5sb2FkaW5nOgppbnRlbF9wb3dlcl9kb21haW5zX2Rpc2Fi bGUoKTsKPG90aGVyIHVuaW5pdCBzdGVwcz4KaW50ZWxfcG93ZXJfZG9tYWluc19maW5pX2h3KCk7 CgpzeXN0ZW0gc3VzcGVuZDoKaW50ZWxfcG93ZXJfZG9tYWluc19kaXNhYmxlKCk7CjxvdGhlciBz dXNwZW5kIHN0ZXBzPgppbnRlbF9wb3dlcl9kb21haW5zX3N1c3BlbmQoKTsKCnN5c3RlbSByZXN1 bWU6CmludGVsX3Bvd2VyX2RvbWFpbnNfcmVzdW1lKCk7CjxvdGhlciByZXN1bWUgc3RlcHM+Cmlu dGVsX3Bvd2VyX2RvbWFpbnNfZW5hYmxlKCk7CgphdCBvdGhlciB0aW1lcyB3aGlsZSB0aGUgZHJp dmVyIGlzIGxvYWRlZDoKaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoKTsKLi4uCmludGVsX2Rpc3Bs YXlfcG93ZXJfcHV0KCk7CgpTdWdnZXN0ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgNjUgKysrKysrKy0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgICAyICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCAgIDUgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICB8ICAxNSArKystCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAxMzMgKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDc4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDAyMTMwNGUyNTJlYi4uMzVhMDEyZmZjMDNi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTEyODIsNiArMTI4Miw3IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZHJpdmVyX3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIAlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPm51bV9waXBlcykKIAkJZHJtX2ttc19oZWxw ZXJfcG9sbF9pbml0KGRldik7CiAKKwlpbnRlbF9wb3dlcl9kb21haW5zX2VuYWJsZShkZXZfcHJp dik7CiAJaW50ZWxfcnVudGltZV9wbV9lbmFibGUoZGV2X3ByaXYpOwogfQogCkBAIC0xMjkyLDYg KzEyOTMsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl91bnJlZ2lzdGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlpbnRlbF9ydW50aW1lX3Bt X2Rpc2FibGUoZGV2X3ByaXYpOworCWludGVsX3Bvd2VyX2RvbWFpbnNfZGlzYWJsZShkZXZfcHJp dik7CiAKIAlpbnRlbF9mYmRldl91bnJlZ2lzdGVyKGRldl9wcml2KTsKIAlpbnRlbF9hdWRpb19k ZWluaXQoZGV2X3ByaXYpOwpAQCAtMTM3NCw3ICsxMzc2LDcgQEAgaW50IGk5MTVfZHJpdmVyX2xv YWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQp CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gb3V0X3BjaV9kaXNhYmxlOwogCi0JaW50ZWxfcnVudGlt ZV9wbV9nZXQoZGV2X3ByaXYpOworCWRpc2FibGVfcnBtX3dha2VyZWZfYXNzZXJ0cyhkZXZfcHJp dik7CiAKIAlyZXQgPSBpOTE1X2RyaXZlcl9pbml0X21taW8oZGV2X3ByaXYpOwogCWlmIChyZXQg PCAwKQpAQCAtMTQwNCw3ICsxNDA2LDcgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IHBj aV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAKIAlpbnRlbF9p bml0X2lwYyhkZXZfcHJpdik7CiAKLQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CisJ ZW5hYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwogCiAJaTkxNV93ZWxjb21lX21l c3NhZ2VzKGRldl9wcml2KTsKIApAQCAtMTQxNSw3ICsxNDE3LDcgQEAgaW50IGk5MTVfZHJpdmVy X2xvYWQoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICpl bnQpCiBvdXRfY2xlYW51cF9tbWlvOgogCWk5MTVfZHJpdmVyX2NsZWFudXBfbW1pbyhkZXZfcHJp dik7CiBvdXRfcnVudGltZV9wbV9wdXQ6Ci0JaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYp OworCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKIAlpOTE1X2RyaXZlcl9j bGVhbnVwX2Vhcmx5KGRldl9wcml2KTsKIG91dF9wY2lfZGlzYWJsZToKIAlwY2lfZGlzYWJsZV9k ZXZpY2UocGRldik7CkBAIC0xNDMzLDcgKzE0MzUsNyBAQCB2b2lkIGk5MTVfZHJpdmVyX3VubG9h ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5k cm0ucGRldjsKIAotCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01B SU5fSU5JVCk7CisJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKIAogCWk5 MTVfZHJpdmVyX3VucmVnaXN0ZXIoZGV2X3ByaXYpOwogCkBAIC0xNDY1LDcgKzE0NjcsOCBAQCB2 b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWk5MTVfZHJp dmVyX2NsZWFudXBfaHcoZGV2X3ByaXYpOwogCWk5MTVfZHJpdmVyX2NsZWFudXBfbW1pbyhkZXZf cHJpdik7CiAKLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlO X0lOSVQpOworCWVuYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKKwogCVdBUk5f T04oYXRvbWljX3JlYWQoJmRldl9wcml2LT5ydW50aW1lX3BtLndha2VyZWZfY291bnQpKTsKIH0K IApAQCAtMTU3NSw3ICsxNTc4LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAKIAkvKiBXZSBkbyBhIGxvdCBvZiBwb2tpbmcgaW4gYSBsb3Qg b2YgcmVnaXN0ZXJzLCBtYWtlIHN1cmUgdGhleSB3b3JrCiAJICogcHJvcGVybHkuICovCi0JaW50 ZWxfZGlzcGxheV9zZXRfaW5pdF9wb3dlcihkZXZfcHJpdiwgdHJ1ZSk7CisJaW50ZWxfcG93ZXJf ZG9tYWluc19kaXNhYmxlKGRldl9wcml2KTsKIAogCWRybV9rbXNfaGVscGVyX3BvbGxfZGlzYWJs ZShkZXYpOwogCkBAIC0xNjEyLDYgKzE2MTUsMTggQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNw ZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBlbnVt IGk5MTVfZHJtX3N1c3BlbmRfbW9kZQorZ2V0X3N1c3BlbmRfbW9kZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgaGliZXJuYXRlKQoreworCWlmIChoaWJlcm5hdGUpCisJ CXJldHVybiBJOTE1X0RSTV9TVVNQRU5EX0hJQkVSTkFURTsKKworCWlmIChzdXNwZW5kX3RvX2lk bGUoZGV2X3ByaXYpKQorCQlyZXR1cm4gSTkxNV9EUk1fU1VTUEVORF9JRExFOworCisJcmV0dXJu IEk5MTVfRFJNX1NVU1BFTkRfTUVNOworfQorCiBzdGF0aWMgaW50IGk5MTVfZHJtX3N1c3BlbmRf bGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIGhpYmVybmF0aW9uKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKQEAgLTE2MjIsMjEg KzE2MzcsMTAgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgYm9vbCBoaWJlcm5hdGlvbikKIAogCWk5MTVfZ2VtX3N1c3BlbmRfbGF0ZShk ZXZfcHJpdik7CiAKLQlpbnRlbF9kaXNwbGF5X3NldF9pbml0X3Bvd2VyKGRldl9wcml2LCBmYWxz ZSk7CiAJaW50ZWxfdW5jb3JlX3N1c3BlbmQoZGV2X3ByaXYpOwogCi0JLyoKLQkgKiBJbiBjYXNl IG9mIGZpcm13YXJlIGFzc2lzdGVkIGNvbnRleHQgc2F2ZS9yZXN0b3JlIGRvbid0IG1hbnVhbGx5 Ci0JICogZGVpbml0IHRoZSBwb3dlciBkb21haW5zLiBUaGlzIGFsc28gbWVhbnMgdGhlIENTUi9E TUMgZmlybXdhcmUgd2lsbAotCSAqIHN0YXkgYWN0aXZlLCBpdCB3aWxsIHBvd2VyIGRvd24gYW55 IEhXIHJlc291cmNlcyBhcyByZXF1aXJlZCBhbmQKLQkgKiBhbHNvIGVuYWJsZSBkZWVwZXIgc3lz dGVtIHBvd2VyIHN0YXRlcyB0aGF0IHdvdWxkIGJlIGJsb2NrZWQgaWYgdGhlCi0JICogZmlybXdh cmUgd2FzIGluYWN0aXZlLgotCSAqLwotCWlmIChJU19HRU45X0xQKGRldl9wcml2KSB8fCBoaWJl cm5hdGlvbiB8fCAhc3VzcGVuZF90b19pZGxlKGRldl9wcml2KSB8fAotCSAgICBkZXZfcHJpdi0+ Y3NyLmRtY19wYXlsb2FkID09IE5VTEwpIHsKLQkJaW50ZWxfcG93ZXJfZG9tYWluc19zdXNwZW5k KGRldl9wcml2KTsKLQkJZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnNfc3VzcGVuZGVkID0gdHJ1ZTsK LQl9CisJaW50ZWxfcG93ZXJfZG9tYWluc19zdXNwZW5kKGRldl9wcml2LAorCQkJCSAgICBnZXRf c3VzcGVuZF9tb2RlKGRldl9wcml2LCBoaWJlcm5hdGlvbikpOwogCiAJcmV0ID0gMDsKIAlpZiAo SVNfR0VOOV9MUChkZXZfcHJpdikpCkBAIC0xNjQ4LDEwICsxNjUyLDcgQEAgc3RhdGljIGludCBp OTE1X2RybV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBoaWJlcm5h dGlvbikKIAogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJTdXNwZW5kIGNvbXBsZXRlIGZhaWxl ZDogJWRcbiIsIHJldCk7Ci0JCWlmIChkZXZfcHJpdi0+cG93ZXJfZG9tYWluc19zdXNwZW5kZWQp IHsKLQkJCWludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdF9odyhkZXZfcHJpdiwgdHJ1ZSk7Ci0JCQlk ZXZfcHJpdi0+cG93ZXJfZG9tYWluc19zdXNwZW5kZWQgPSBmYWxzZTsKLQkJfQorCQlpbnRlbF9w b3dlcl9kb21haW5zX3Jlc3VtZShkZXZfcHJpdik7CiAKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTc2 OCw2ICsxNzY5LDggQEAgc3RhdGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAogCWludGVsX29wcmVnaW9uX25vdGlmeV9hZGFwdGVyKGRldl9wcml2LCBQQ0lf RDApOwogCisJaW50ZWxfcG93ZXJfZG9tYWluc19lbmFibGUoZGV2X3ByaXYpOworCiAJZW5hYmxl X3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwogCiAJcmV0dXJuIDA7CkBAIC0xODAyLDcg KzE4MDUsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCXJldCA9IHBjaV9zZXRfcG93ZXJfc3RhdGUocGRldiwgUENJX0QwKTsKIAlp ZiAocmV0KSB7CiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIHNldCBQQ0kgRDAgcG93ZXIgc3RhdGUg KCVkKVxuIiwgcmV0KTsKLQkJZ290byBvdXQ7CisJCXJldHVybiByZXQ7CiAJfQogCiAJLyoKQEAg LTE4MTgsMTAgKzE4MjEsOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIGRlcGVuZCBvbiB0aGUgZGV2aWNlIGVuYWJsZSByZWZj b3VudCB3ZSBjYW4ndCBhbnl3YXkgZGVwZW5kIG9uIHRoZW0KIAkgKiBkaXNhYmxpbmcvZW5hYmxp bmcgdGhlIGRldmljZS4KIAkgKi8KLQlpZiAocGNpX2VuYWJsZV9kZXZpY2UocGRldikpIHsKLQkJ cmV0ID0gLUVJTzsKLQkJZ290byBvdXQ7Ci0JfQorCWlmIChwY2lfZW5hYmxlX2RldmljZShwZGV2 KSkKKwkJcmV0dXJuIC1FSU87CiAKIAlwY2lfc2V0X21hc3RlcihwZGV2KTsKIApAQCAtMTg0NCwx OCArMTg0NSwxMiBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCiAJaW50ZWxfdW5jb3JlX3Nhbml0aXplKGRldl9wcml2KTsKIAotCWlm IChkZXZfcHJpdi0+cG93ZXJfZG9tYWluc19zdXNwZW5kZWQpCi0JCWludGVsX3Bvd2VyX2RvbWFp bnNfaW5pdF9odyhkZXZfcHJpdiwgdHJ1ZSk7Ci0JZWxzZQotCQlpbnRlbF9kaXNwbGF5X3NldF9p bml0X3Bvd2VyKGRldl9wcml2LCB0cnVlKTsKKwlpbnRlbF9wb3dlcl9kb21haW5zX3Jlc3VtZShk ZXZfcHJpdik7CiAKIAlpbnRlbF9lbmdpbmVzX3Nhbml0aXplKGRldl9wcml2KTsKIAogCWVuYWJs ZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKIAotb3V0OgotCWRldl9wcml2LT5wb3dl cl9kb21haW5zX3N1c3BlbmRlZCA9IGZhbHNlOwotCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKaW5kZXggNWZhMTM4ODdiOTExLi43NDQ4Mjc1M2EwNGUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtOTM1LDggKzkzNSw4IEBAIHN0cnVjdCBpOTE1X3Bvd2VyX2Rv bWFpbnMgewogCSAqIFBvd2VyIHdlbGxzIG5lZWRlZCBmb3IgaW5pdGlhbGl6YXRpb24gYXQgZHJp dmVyIGluaXQgYW5kIHN1c3BlbmQKIAkgKiB0aW1lIGFyZSBvbi4gVGhleSBhcmUga2VwdCBvbiB1 bnRpbCBhZnRlciB0aGUgZmlyc3QgbW9kZXNldC4KIAkgKi8KLQlib29sIGluaXRfcG93ZXJfb247 CiAJYm9vbCBpbml0aWFsaXppbmc7CisJYm9vbCBkaXNwbGF5X2NvcmVfc3VzcGVuZGVkOwogCWlu dCBwb3dlcl93ZWxsX2NvdW50OwogCiAJc3RydWN0IG11dGV4IGxvY2s7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNjkwZTFlODE2ZTc3Li4wOWQ2MmIwYzYyY2IgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE1ODQ4LDYgKzE1ODQ4LDggQEAgaW50 ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCWludCBpOwogCisJaW50ZWxfZGlzcGxheV9wb3dl cl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9JTklUKTsKKwogCWludGVsX2Vhcmx5X2Rpc3Bs YXlfd2FzKGRldl9wcml2KTsKIAlpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoZGV2KTsK IApAQCAtMTU5MDIsNyArMTU5MDQsOCBAQCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWlmIChXQVJOX09OKHB1dF9kb21haW5zKSkKIAkJCW1v ZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoZGV2X3ByaXYsIHB1dF9kb21haW5zKTsKIAl9Ci0JaW50 ZWxfZGlzcGxheV9zZXRfaW5pdF9wb3dlcihkZXZfcHJpdiwgZmFsc2UpOworCisJaW50ZWxfZGlz cGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9JTklUKTsKIAogCWludGVsX3Bv d2VyX2RvbWFpbnNfdmVyaWZ5X3N0YXRlKGRldl9wcml2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAppbmRleCAzZjAxMjcxNmYyZGMuLmQwNDAyMDUxOTI1YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKQEAgLTE5NTQsNyArMTk1NCwxOCBAQCBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICopOwogdm9pZCBpbnRlbF9wb3dlcl9kb21haW5z X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxf cG93ZXJfZG9tYWluc19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg Ym9vbCByZXN1bWUpOwogdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2ZpbmlfaHcoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19zdXNw ZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX3Bvd2Vy X2RvbWFpbnNfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lk IGludGVsX3Bvd2VyX2RvbWFpbnNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOworCitlbnVtIGk5MTVfZHJtX3N1c3BlbmRfbW9kZSB7CisJSTkxNV9EUk1fU1VTUEVO RF9JRExFLAorCUk5MTVfRFJNX1NVU1BFTkRfTUVNLAorCUk5MTVfRFJNX1NVU1BFTkRfSElCRVJO QVRFLAorfTsKKwordm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX3N1c3BlbmQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSBlbnVtIGk5MTVfZHJtX3N1c3BlbmRfbW9kZSk7 Cit2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CiB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfdmVyaWZ5X3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGJ4dF9kaXNwbGF5X2NvcmVfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgcmVzdW1lKTsKIHZvaWQg Ynh0X2Rpc3BsYXlfY29yZV91bmluaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKQEAgLTIwMzcsOCArMjA0OCw2IEBAIGJvb2wgaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5f dXNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX3J1bnRp bWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2 b2lkIGludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7CiAKLXZvaWQgaW50ZWxfZGlzcGxheV9zZXRfaW5pdF9wb3dlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2LCBib29sIGVuYWJsZSk7Ci0KIHZvaWQgY2h2X3BoeV9wb3dlcmdhdGVfbGFu ZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIGJvb2wgb3ZlcnJpZGUs IHVuc2lnbmVkIGludCBtYXNrKTsKIGJvb2wgY2h2X3BoeV9wb3dlcmdhdGVfY2goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIGRwaW9fcGh5IHBoeSwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwppbmRleCBjMDk4M2YwZTQ2YWMuLjYxNTNkNWJlNWNm NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMjU3LDMwICsy NTcsNiBAQCBib29sIGludGVsX2Rpc3BsYXlfcG93ZXJfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIHJldDsKIH0KIAotLyoqCi0gKiBpbnRlbF9k aXNwbGF5X3NldF9pbml0X3Bvd2VyIC0gc2V0IHRoZSBpbml0aWFsIHBvd2VyIGRvbWFpbiBzdGF0 ZQotICogQGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQotICogQGVuYWJsZTogd2hldGhl ciB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgaW5pdGlhbCBwb3dlciBkb21haW4gc3RhdGUKLSAq Ci0gKiBGb3Igc2ltcGxpY2l0eSBvdXIgZHJpdmVyIGxvYWQvdW5sb2FkIGFuZCBzeXN0ZW0gc3Vz cGVuZC9yZXN1bWUgY29kZSBhc3N1bWVzCi0gKiB0aGF0IGFsbCBwb3dlciBkb21haW5zIGFyZSBh bHdheXMgZW5hYmxlZC4gVGhpcyBmdW5jdGlvbnMgY29udHJvbHMgdGhlIHN0YXRlCi0gKiBvZiB0 aGlzIGxpdHRsZSBoYWNrLiBXaGlsZSB0aGUgaW5pdGlhbCBwb3dlciBkb21haW4gc3RhdGUgaXMg ZW5hYmxlZCBydW50aW1lCi0gKiBwbSBpcyBlZmZlY3RpdmVseSBkaXNhYmxlZC4KLSAqLwotdm9p ZCBpbnRlbF9kaXNwbGF5X3NldF9pbml0X3Bvd2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKLQkJCQkgIGJvb2wgZW5hYmxlKQotewotCWlmIChkZXZfcHJpdi0+cG93ZXJfZG9t YWlucy5pbml0X3Bvd2VyX29uID09IGVuYWJsZSkKLQkJcmV0dXJuOwotCi0JaWYgKGVuYWJsZSkK LQkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9JTklUKTsK LQllbHNlCi0JCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5f SU5JVCk7Ci0KLQlkZXZfcHJpdi0+cG93ZXJfZG9tYWlucy5pbml0X3Bvd2VyX29uID0gZW5hYmxl OwotfQotCiAvKgogICogU3RhcnRpbmcgd2l0aCBIYXN3ZWxsLCB3ZSBoYXZlIGEgIlBvd2VyIERv d24gV2VsbCIgdGhhdCBjYW4gYmUgdHVybmVkIG9mZgogICogd2hlbiBub3QgbmVlZGVkIGFueW1v cmUuIFdlIGhhdmUgNCByZWdpc3RlcnMgdGhhdCBjYW4gcmVxdWVzdCB0aGUgcG93ZXIgd2VsbApA QCAtMzc1MCw2ICszNzI2LDEwIEBAIHN0YXRpYyB2b2lkIHZsdl9jbW5sYW5lX3dhKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKICAqIGRvbWFpbnMgKGFuZCBub3QgaW4gdGhlIElO SVQgZG9tYWluKSBhcmUgcmVmZXJlbmNlZCBvciBkaXNhYmxlZCBkdXJpbmcgdGhlCiAgKiBtb2Rl c2V0IHN0YXRlIEhXIHJlYWRvdXQuIEFmdGVyIHRoYXQgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBl YWNoIHBvd2VyIHdlbGwKICAqIG11c3QgbWF0Y2ggaXRzIEhXIGVuYWJsZWQgc3RhdGUsIHNlZSBp bnRlbF9wb3dlcl9kb21haW5zX3ZlcmlmeV9zdGF0ZSgpLgorICoKKyAqIEl0IHdpbGwgcmV0dXJu IHdpdGggcG93ZXIgZG9tYWlucyBkaXNhYmxlZCAodG8gYmUgZW5hYmxlZCBsYXRlciBieQorICog aW50ZWxfcG93ZXJfZG9tYWluc19lbmFibGUoKSkgYW5kIG11c3QgYmUgcGFpcmVkIHdpdGgKKyAq IGludGVsX3Bvd2VyX2RvbWFpbnNfZmluaV9odygpLgogICovCiB2b2lkIGludGVsX3Bvd2VyX2Rv bWFpbnNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgcmVz dW1lKQogewpAQCAtMzc3NSw4ICszNzU1LDEzIEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19p bml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpCiAJ CW11dGV4X3VubG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7CiAJfQogCi0JLyogRm9yIG5vdywg d2UgbmVlZCB0aGUgcG93ZXIgd2VsbCB0byBiZSBhbHdheXMgZW5hYmxlZC4gKi8KLQlpbnRlbF9k aXNwbGF5X3NldF9pbml0X3Bvd2VyKGRldl9wcml2LCB0cnVlKTsKKwkvKgorCSAqIEtlZXAgYWxs IHBvd2VyIHdlbGxzIGVuYWJsZWQgZm9yIGFueSBkZXBlbmRlbnQgSFcgYWNjZXNzIGR1cmluZwor CSAqIGluaXRpYWxpemF0aW9uIGFuZCB0byBtYWtlIHN1cmUgd2Uga2VlcCBCSU9TIGVuYWJsZWQg ZGlzcGxheSBIVworCSAqIHJlc291cmNlcyBwb3dlcmVkIHVudGlsIGRpc3BsYXkgSFcgcmVhZG91 dCBpcyBjb21wbGV0ZS4gV2UgZHJvcAorCSAqIHRoaXMgcmVmZXJlbmNlIGluIGludGVsX3Bvd2Vy X2RvbWFpbnNfZW5hYmxlKCkuCisJICovCisJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3By aXYsIFBPV0VSX0RPTUFJTl9JTklUKTsKIAkvKiBEaXNhYmxlIHBvd2VyIHN1cHBvcnQgaWYgdGhl IHVzZXIgYXNrZWQgc28uICovCiAJaWYgKCFpOTE1X21vZHBhcmFtcy5kaXNhYmxlX3Bvd2VyX3dl bGwpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fSU5J VCk7CkBAIC0zNzkwLDE2ICszNzc1LDEzIEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0 X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpCiAgKgog ICogRGUtaW5pdGlhbGl6ZXMgdGhlIGRpc3BsYXkgcG93ZXIgZG9tYWluIEhXIHN0YXRlLiBJdCBh bHNvIGVuc3VyZXMgdGhhdCB0aGUKICAqIGRldmljZSBzdGF5cyBwb3dlcmVkIHVwIHNvIHRoYXQg dGhlIGRyaXZlciBjYW4gYmUgcmVsb2FkZWQuCisgKgorICogSXQgbXVzdCBiZSBjYWxsZWQgd2l0 aCBwb3dlciBkb21haW5zIGFscmVhZHkgZGlzYWJsZWQgKGFmdGVyIGEgY2FsbCB0bworICogaW50 ZWxfcG93ZXJfZG9tYWluc19kaXNhYmxlKCkpIGFuZCBtdXN0IGJlIHBhaXJlZCB3aXRoCisgKiBp bnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoKS4KICAqLwogdm9pZCBpbnRlbF9wb3dlcl9kb21h aW5zX2ZpbmlfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCS8qCi0J ICogVGhlIGk5MTUua28gbW9kdWxlIGlzIHN0aWxsIG5vdCBwcmVwYXJlZCB0byBiZSBsb2FkZWQg d2hlbgotCSAqIHRoZSBwb3dlciB3ZWxsIGlzIG5vdCBlbmFibGVkLCBzbyBqdXN0IGVuYWJsZSBp dCBpbiBjYXNlCi0JICogd2UncmUgZ29pbmcgdG8gdW5sb2FkL3JlbG9hZC4KLQkgKi8KLQlpbnRl bF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0lOSVQpOwotCiAJLyog S2VlcCB0aGUgcG93ZXIgd2VsbCBlbmFibGVkLCBidXQgY2FuY2VsIGl0cyBycG0gd2FrZXJlZi4g Ki8KIAlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7CiAKQEAgLTM4MDksMTcgKzM3OTEs NjYgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2ZpbmlfaHcoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogfQogCiAvKioKKyAqIGludGVsX3Bvd2VyX2RvbWFpbnNfZW5hYmxl IC0gZW5hYmxlIHRvZ2dsaW5nIG9mIGRpc3BsYXkgcG93ZXIgd2VsbHMKKyAqIEBkZXZfcHJpdjog aTkxNSBkZXZpY2UgaW5zdGFuY2UKKyAqCisgKiBFbmFibGUgdGhlIG9uZGVtYW5kIGVuYWJsaW5n L2Rpc2FibGluZyBvZiB0aGUgZGlzcGxheSBwb3dlciB3ZWxscy4gTm90ZSB0aGF0CisgKiBwb3dl ciB3ZWxscyBub3QgYmVsb25naW5nIHRvIFBPV0VSX0RPTUFJTl9JTklUIGFyZSBhbGxvd2VkIHRv IGJlIHRvZ2dsZWQKKyAqIG9ubHkgYXQgc3BlY2lmaWMgcG9pbnRzIG9mIHRoZSBkaXNwbGF5IG1v ZGVzZXQgc2VxdWVuY2UsIHRodXMgdGhleSBhcmUgbm90CisgKiBhZmZlY3RlZCBieSB0aGUgaW50 ZWxfcG93ZXJfZG9tYWluc19lbmFibGUoKS9kaXNhYmxlKCkgY2FsbHMuIFRoZSBwdXJwb3NlCisg KiBvZiB0aGVzZSBmdW5jdGlvbiBpcyB0byBrZWVwIHRoZSByZXN0IG9mIHBvd2VyIHdlbGxzIGVu YWJsZWQgdW50aWwgdGhlIGVuZAorICogb2YgZGlzcGxheSBIVyByZWFkb3V0ICh3aGljaCB3aWxs IGFjcXVpcmUgdGhlIHBvd2VyIHJlZmVyZW5jZXMgcmVmbGVjdGluZworICogdGhlIGN1cnJlbnQg SFcgc3RhdGUpLgorICovCit2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfZW5hYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChk ZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0lOSVQpOworfQorCisvKioKKyAqIGludGVsX3Bvd2VyX2Rv bWFpbnNfZGlzYWJsZSAtIGRpc2FibGUgdG9nZ2xpbmcgb2YgZGlzcGxheSBwb3dlciB3ZWxscwor ICogQGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQorICoKKyAqIERpc2FibGUgdGhlIG9u ZGVtYW5kIGVuYWJsaW5nL2Rpc2FibGluZyBvZiB0aGUgZGlzcGxheSBwb3dlciB3ZWxscy4gU2Vl CisgKiBpbnRlbF9wb3dlcl9kb21haW5zX2VuYWJsZSgpIGZvciB3aGljaCBwb3dlciB3ZWxscyB0 aGlzIGNhbGwgY29udHJvbHMuCisgKi8KK3ZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19kaXNhYmxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpbnRlbF9kaXNwbGF5X3Bv d2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0lOSVQpOworfQorCisvKioKICAqIGludGVs X3Bvd2VyX2RvbWFpbnNfc3VzcGVuZCAtIHN1c3BlbmQgcG93ZXIgZG9tYWluIHN0YXRlCiAgKiBA ZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKiBAc3VzcGVuZF9tb2RlOiBzcGVjaWZp ZXMgdGhlIHRhcmdldCBzdXNwZW5kIHN0YXRlIChpZGxlLCBtZW0sIGhpYmVybmF0aW9uKQogICoK ICAqIFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgdGhlIGhhcmR3YXJlIHBvd2VyIGRvbWFpbiBzdGF0 ZSBiZWZvcmUgZW50ZXJpbmcKLSAqIHN5c3RlbSBzdXNwZW5kLiBJdCBtdXN0IGJlIHBhaXJlZCB3 aXRoIGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdF9odygpLgorICogc3lzdGVtIHN1c3BlbmQuCisg KgorICogSXQgbXVzdCBiZSBjYWxsZWQgd2l0aCBwb3dlciBkb21haW5zIGFscmVhZHkgZGlzYWJs ZWQgKGFmdGVyIGEgY2FsbCB0bworICogaW50ZWxfcG93ZXJfZG9tYWluc19kaXNhYmxlKCkpIGFu ZCBwYWlyZWQgd2l0aCBpbnRlbF9wb3dlcl9kb21haW5zX3Jlc3VtZSgpLgogICovCi12b2lkIGlu dGVsX3Bvd2VyX2RvbWFpbnNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCit2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCisJCQkJIGVudW0gaTkxNV9kcm1fc3VzcGVuZF9tb2RlIHN1c3BlbmRf bW9kZSkKIHsKKwlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zID0gJmRl dl9wcml2LT5wb3dlcl9kb21haW5zOworCisJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3By aXYsIFBPV0VSX0RPTUFJTl9JTklUKTsKKworCS8qCisJICogSW4gY2FzZSBvZiBmaXJtd2FyZSBh c3Npc3RlZCBjb250ZXh0IHNhdmUvcmVzdG9yZSBkb24ndCBtYW51YWxseQorCSAqIGRlaW5pdCB0 aGUgcG93ZXIgZG9tYWlucy4gVGhpcyBhbHNvIG1lYW5zIHRoZSBDU1IvRE1DIGZpcm13YXJlIHdp bGwKKwkgKiBzdGF5IGFjdGl2ZSwgaXQgd2lsbCBwb3dlciBkb3duIGFueSBIVyByZXNvdXJjZXMg YXMgcmVxdWlyZWQgYW5kCisJICogYWxzbyBlbmFibGUgZGVlcGVyIHN5c3RlbSBwb3dlciBzdGF0 ZXMgdGhhdCB3b3VsZCBiZSBibG9ja2VkIGlmIHRoZQorCSAqIGZpcm13YXJlIHdhcyBpbmFjdGl2 ZS4KKwkgKi8KKwlpZiAoIUlTX0dFTjlfTFAoZGV2X3ByaXYpICYmIHN1c3BlbmRfbW9kZSA9PSBJ OTE1X0RSTV9TVVNQRU5EX0lETEUgJiYKKwkgICAgZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCAh PSBOVUxMKQorCQlyZXR1cm47CisKIAkvKgogCSAqIEV2ZW4gaWYgcG93ZXIgd2VsbCBzdXBwb3J0 IHdhcyBkaXNhYmxlZCB3ZSBzdGlsbCB3YW50IHRvIGRpc2FibGUKLQkgKiBwb3dlciB3ZWxscyB3 aGlsZSB3ZSBhcmUgc3lzdGVtIHN1c3BlbmRlZC4KKwkgKiBwb3dlciB3ZWxscyBpZiBwb3dlciBk b21haW5zIG11c3QgYmUgZGVpbml0aWFsaXplZCBmb3Igc3VzcGVuZC4KIAkgKi8KIAlpZiAoIWk5 MTVfbW9kcGFyYW1zLmRpc2FibGVfcG93ZXJfd2VsbCkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9w dXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9JTklUKTsKQEAgLTM4MzIsNiArMzg2MywzMiBAQCB2 b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJCXNrbF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9wcml2KTsKIAllbHNlIGlm IChJU19HRU45X0xQKGRldl9wcml2KSkKIAkJYnh0X2Rpc3BsYXlfY29yZV91bmluaXQoZGV2X3By aXYpOworCisJcG93ZXJfZG9tYWlucy0+ZGlzcGxheV9jb3JlX3N1c3BlbmRlZCA9IHRydWU7Cit9 CisKKy8qKgorICogaW50ZWxfcG93ZXJfZG9tYWluc19yZXN1bWUgLSByZXN1bWUgcG93ZXIgZG9t YWluIHN0YXRlCisgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKgorICogVGhp cyBmdW5jdGlvbiByZXN1bWUgdGhlIGhhcmR3YXJlIHBvd2VyIGRvbWFpbiBzdGF0ZSBkdXJpbmcg c3lzdGVtIHJlc3VtZS4KKyAqCisgKiBJdCB3aWxsIHJldHVybiB3aXRoIHBvd2VyIGRvbWFpbiBz dXBwb3J0IGRpc2FibGVkICh0byBiZSBlbmFibGVkIGxhdGVyIGJ5CisgKiBpbnRlbF9wb3dlcl9k b21haW5zX2VuYWJsZSgpKSBhbmQgbXVzdCBiZSBwYWlyZWQgd2l0aAorICogaW50ZWxfcG93ZXJf ZG9tYWluc19zdXNwZW5kKCkuCisgKi8KK3ZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19yZXN1bWUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXN0cnVjdCBpOTE1X3Bvd2Vy X2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2RvbWFpbnM7CisKKwlp ZiAocG93ZXJfZG9tYWlucy0+ZGlzcGxheV9jb3JlX3N1c3BlbmRlZCkgeworCQlpbnRlbF9wb3dl cl9kb21haW5zX2luaXRfaHcoZGV2X3ByaXYsIHRydWUpOworCQlwb3dlcl9kb21haW5zLT5kaXNw bGF5X2NvcmVfc3VzcGVuZGVkID0gZmFsc2U7CisKKwkJcmV0dXJuOworCX0KKworCWludGVsX2Rp c3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fSU5JVCk7CiB9CiAKIHN0YXRp YyB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfZHVtcF9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKQEAgLTQwMzAsOCArNDA4Nyw4IEBAIHZvaWQgaW50ZWxfcnVudGltZV9w bV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogVGhpcyBmdW5jdGlv biBlbmFibGVzIHJ1bnRpbWUgcG0gYXQgdGhlIGVuZCBvZiB0aGUgZHJpdmVyIGxvYWQgc2VxdWVu Y2UuCiAgKgogICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gZG9lcyBjdXJyZW50bHkgbm90IGVu YWJsZSBydW50aW1lIHBtIGZvciB0aGUKLSAqIHN1Ym9yZGluYXRlIGRpc3BsYXkgcG93ZXIgZG9t YWlucy4gVGhhdCBpcyBvbmx5IGRvbmUgb24gdGhlIGZpcnN0IG1vZGVzZXQKLSAqIHVzaW5nIGlu dGVsX2Rpc3BsYXlfc2V0X2luaXRfcG93ZXIoKS4KKyAqIHN1Ym9yZGluYXRlIGRpc3BsYXkgcG93 ZXIgZG9tYWlucy4gVGhhdCBpcyBkb25lIGJ5CisgKiBpbnRlbF9wb3dlcl9kb21haW5zX2VuYWJs ZSgpLgogICovCiB2b2lkIGludGVsX3J1bnRpbWVfcG1fZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKLS0gCjIuMTMuMgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==