From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 042/262] drm/i915: Mark up Ironlake ips with rpm wakerefs Date: Thu, 17 May 2018 07:03:58 +0100 Message-ID: <20180517060738.19193-42-chris@chris-wilson.co.uk> References: <20180517060738.19193-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 525DF6E620 for ; Thu, 17 May 2018 06:09:15 +0000 (UTC) In-Reply-To: <20180517060738.19193-1-chris@chris-wilson.co.uk> 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 Q3VycmVudGx5IElyb25sYWtlIG9wZXJhdGVzIHVuZGVyIHRoZSBhc3N1bXB0aW9uIHRoYXQgcnBt IGF3YWtlIChhbmQgaXRzCmVycm9yIGNoZWNraW5nIGlzIGRpc2FibGVkKS4gQXMgc3VjaCwgd2Ug aGF2ZSBtaXNzZWQgYSBmZXcgcGxhY2VzIHdoZXJlIHdlCmFjY2VzcyByZWdpc3RlcnMgd2l0aG91 dCB0YWtpbmcgdGhlIHJwbSB3YWtlcmVmIGFuZCB0aHVzIHRyaWdnZXIKd2FybmluZ3MuIGludGVs X2lwcyBiZWluZyBvbmUgY3VscHJpdC4KCkFzIHRoaXMgaW52b2x2ZWQgYWRkaW5nIGEgcG90ZW50 aWFsbHkgc2xlZXBpbmcgcnBtX2dldCwgd2UgaGF2ZSB0bwpyZWFycmFuZ2UgdGhlIHNwaW5sb2Nr cyBzbGlnaHRseSBhbmQgc28gc3dpdGNoIHRvIGFjcXVpcmluZyBhIGRldmljZS1yZWYKdW5kZXIg dGhlIHNwaW5sb2NrIHJhdGhlciB0aGFuIGhvbGQgdGhlIHNwaW5sb2NrIGZvciB0aGUgd2hvbGUK b3BlcmF0aW9uLiBUbyBiZSBjb25zaXN0ZW50LCB3ZSBtYWtlIHRoZSBjaGFuZ2UgaW4gcGF0dGVy biBjb21tb24gdG8gdGhlCmludGVsX2lwcyBpbnRlcmZhY2UgZXZlbiB0aG91Z2ggdGhpcyBhZGRz IGEgZmV3IG1vcmUgYXRvbWljIG9wZXJhdGlvbnMKdGhhbiBuZWNlc3NhcnkgaW4gYSBmZXcgY2Fz ZXMuCgp2MjogU2FnYXIgbm90ZWQgdGhlIG1iIGFyb3VuZCBzZXR0aW5nIG1jaF9kZXYgd2VyZSBv dmVya2lsbCBhcyB3ZSBvbmx5Cm5lZWQgb3JkZXJpbmcgdGhlcmUsIGFuZCB0aGF0IGk5MTVfZW1v bl9zdGF0dXMgd2FzIHN0aWxsIHVzaW5nCnN0cnVjdF9tdXRleCBmb3Igbm8gcmVhc29uLCBidXQg bGFja2VkIHJwbS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgpDYzogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyB8ICAxOSArKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jICAgICB8IDEzOCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t CiAzIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDc5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNzM2YjBkYTIwNGU5Li44ZGQxMjc5OGNj YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0xNzY4LDIyICsxNzY4LDE5 IEBAIHN0YXRpYyBpbnQgaTkxNV9zcl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCiAKIHN0YXRpYyBpbnQgaTkxNV9lbW9uX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKnVudXNlZCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBu b2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZf cHJpdi0+ZHJtOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gbm9kZV90b19pOTE1 KG0tPnByaXZhdGUpOwogCXVuc2lnbmVkIGxvbmcgdGVtcCwgY2hpcHNldCwgZ2Z4OwotCWludCBy ZXQ7CiAKLQlpZiAoIUlTX0dFTjUoZGV2X3ByaXYpKQorCWlmICghSVNfR0VONShpOTE1KSkKIAkJ cmV0dXJuIC1FTk9ERVY7CiAKLQlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+ c3RydWN0X211dGV4KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OworCWludGVsX3J1bnRpbWVf cG1fZ2V0KGk5MTUpOwogCi0JdGVtcCA9IGk5MTVfbWNoX3ZhbChkZXZfcHJpdik7Ci0JY2hpcHNl dCA9IGk5MTVfY2hpcHNldF92YWwoZGV2X3ByaXYpOwotCWdmeCA9IGk5MTVfZ2Z4X3ZhbChkZXZf cHJpdik7Ci0JbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJdGVtcCA9IGk5MTVf bWNoX3ZhbChpOTE1KTsKKwljaGlwc2V0ID0gaTkxNV9jaGlwc2V0X3ZhbChpOTE1KTsKKwlnZngg PSBpOTE1X2dmeF92YWwoaTkxNSk7CisKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKIAog CXNlcV9wcmludGYobSwgIkdNQ0ggdGVtcDogJWxkXG4iLCB0ZW1wKTsKIAlzZXFfcHJpbnRmKG0s ICJDaGlwc2V0IHBvd2VyOiAlbGRcbiIsIGNoaXBzZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK aW5kZXggNGE0NGYxYTIzM2UzLi44OTMyNzMzOWE3M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YwpAQCAtMTQ0OSw2ICsxNDQ5LDkgQEAgdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAogCWk5MTVfZHJpdmVyX3VucmVnaXN0ZXIoZGV2X3ByaXYpOwogCisJ LyogRmx1c2ggYW55IGV4dGVybmFsIGNvZGUgdGhhdCBzdGlsbCBtYXkgYmUgdW5kZXIgdGhlIFJD VSBsb2NrICovCisJc3luY2hyb25pemVfcmN1KCk7CisKIAlpZiAoaTkxNV9nZW1fc3VzcGVuZChk ZXZfcHJpdikpCiAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGlkbGUgaGFyZHdhcmU7IGNvbnRpbnVp bmcgdG8gdW5sb2FkIVxuIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDFiMDQ4YmIx ZmVhMy4uZjk0ZmM2NWM1MTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTYxMDcsMTAg KzYxMDcsNiBAQCB2b2lkIGludGVsX2luaXRfaXBjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKICAqLwogREVGSU5FX1NQSU5MT0NLKG1jaGRldl9sb2NrKTsKIAotLyogR2xvYmFs IGZvciBJUFMgZHJpdmVyIHRvIGdldCBhdCB0aGUgY3VycmVudCBpOTE1IGRldmljZS4gUHJvdGVj dGVkIGJ5Ci0gKiBtY2hkZXZfbG9jay4gKi8KLXN0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNV9tY2hfZGV2OwotCiBib29sIGlyb25sYWtlX3NldF9kcnBzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTggdmFsKQogewogCXUxNiByZ3Zzd2N0bDsKQEAgLTc3NTcs MTEgKzc3NTMsMTMgQEAgdW5zaWduZWQgbG9uZyBpOTE1X2NoaXBzZXRfdmFsKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlpZiAoIUlTX0dFTjUoZGV2X3ByaXYpKQogCQlyZXR1 cm4gMDsKIAorCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAlzcGluX2xvY2tfaXJx KCZtY2hkZXZfbG9jayk7CiAKIAl2YWwgPSBfX2k5MTVfY2hpcHNldF92YWwoZGV2X3ByaXYpOwog CiAJc3Bpbl91bmxvY2tfaXJxKCZtY2hkZXZfbG9jayk7CisJaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYpOwogCiAJcmV0dXJuIHZhbDsKIH0KQEAgLTc4NDEsMTEgKzc4MzksMTMgQEAgdm9p ZCBpOTE1X3VwZGF0ZV9nZnhfdmFsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAlpZiAoIUlTX0dFTjUoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKKwlpbnRlbF9ydW50aW1lX3Bt X2dldChkZXZfcHJpdik7CiAJc3Bpbl9sb2NrX2lycSgmbWNoZGV2X2xvY2spOwogCiAJX19pOTE1 X3VwZGF0ZV9nZnhfdmFsKGRldl9wcml2KTsKIAogCXNwaW5fdW5sb2NrX2lycSgmbWNoZGV2X2xv Y2spOworCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKIH0KIAogc3RhdGljIHVuc2ln bmVkIGxvbmcgX19pOTE1X2dmeF92YWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQpAQCAtNzg5MiwxNSArNzg5MiwzMiBAQCB1bnNpZ25lZCBsb25nIGk5MTVfZ2Z4X3ZhbChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFJU19HRU41KGRldl9wcml2KSkK IAkJcmV0dXJuIDA7CiAKKwlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAJc3Bpbl9s b2NrX2lycSgmbWNoZGV2X2xvY2spOwogCiAJdmFsID0gX19pOTE1X2dmeF92YWwoZGV2X3ByaXYp OwogCiAJc3Bpbl91bmxvY2tfaXJxKCZtY2hkZXZfbG9jayk7CisJaW50ZWxfcnVudGltZV9wbV9w dXQoZGV2X3ByaXYpOwogCiAJcmV0dXJuIHZhbDsKIH0KIAorc3RhdGljIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1X21jaF9kZXY7CisKK3N0YXRpYyBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqbWNoZGV2X2dldCh2b2lkKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1Owor CisJcmN1X3JlYWRfbG9jaygpOworCWk5MTUgPSBpOTE1X21jaF9kZXY7CisJaWYgKCFrcmVmX2dl dF91bmxlc3NfemVybygmaTkxNS0+ZHJtLnJlZikpCisJCWk5MTUgPSBOVUxMOworCXJjdV9yZWFk X3VubG9jaygpOworCisJcmV0dXJuIGk5MTU7Cit9CisKIC8qKgogICogaTkxNV9yZWFkX21jaF92 YWwgLSByZXR1cm4gdmFsdWUgZm9yIElQUyB1c2UKICAqCkBAIC03OTA5LDIzICs3OTI2LDIyIEBA IHVuc2lnbmVkIGxvbmcgaTkxNV9nZnhfdmFsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKICAqLwogdW5zaWduZWQgbG9uZyBpOTE1X3JlYWRfbWNoX3ZhbCh2b2lkKQogewotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdjsKLQl1bnNpZ25lZCBsb25nIGNoaXBzZXRf dmFsLCBncmFwaGljc192YWwsIHJldCA9IDA7Ci0KLQlzcGluX2xvY2tfaXJxKCZtY2hkZXZfbG9j ayk7Ci0JaWYgKCFpOTE1X21jaF9kZXYpCi0JCWdvdG8gb3V0X3VubG9jazsKLQlkZXZfcHJpdiA9 IGk5MTVfbWNoX2RldjsKLQotCWNoaXBzZXRfdmFsID0gX19pOTE1X2NoaXBzZXRfdmFsKGRldl9w cml2KTsKLQlncmFwaGljc192YWwgPSBfX2k5MTVfZ2Z4X3ZhbChkZXZfcHJpdik7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7CisJdW5zaWduZWQgbG9uZyBjaGlwc2V0X3ZhbCwgZ3Jh cGhpY3NfdmFsOwogCi0JcmV0ID0gY2hpcHNldF92YWwgKyBncmFwaGljc192YWw7CisJaTkxNSA9 IG1jaGRldl9nZXQoKTsKKwlpZiAoIWk5MTUpCisJCXJldHVybiAwOwogCi1vdXRfdW5sb2NrOgor CWludGVsX3J1bnRpbWVfcG1fZ2V0KGk5MTUpOworCXNwaW5fbG9ja19pcnEoJm1jaGRldl9sb2Nr KTsKKwljaGlwc2V0X3ZhbCA9IF9faTkxNV9jaGlwc2V0X3ZhbChpOTE1KTsKKwlncmFwaGljc192 YWwgPSBfX2k5MTVfZ2Z4X3ZhbChpOTE1KTsKIAlzcGluX3VubG9ja19pcnEoJm1jaGRldl9sb2Nr KTsKKwlpbnRlbF9ydW50aW1lX3BtX3B1dChpOTE1KTsKIAotCXJldHVybiByZXQ7CisJZHJtX2Rl dl9wdXQoJmk5MTUtPmRybSk7CisJcmV0dXJuIGNoaXBzZXRfdmFsICsgZ3JhcGhpY3NfdmFsOwog fQogRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9yZWFkX21jaF92YWwpOwogCkBAIC03OTM2LDIzICs3 OTUyLDE5IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGk5MTVfcmVhZF9tY2hfdmFsKTsKICAqLwogYm9v bCBpOTE1X2dwdV9yYWlzZSh2b2lkKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdjsKLQlib29sIHJldCA9IHRydWU7Ci0KLQlzcGluX2xvY2tfaXJxKCZtY2hkZXZfbG9jayk7 Ci0JaWYgKCFpOTE1X21jaF9kZXYpIHsKLQkJcmV0ID0gZmFsc2U7Ci0JCWdvdG8gb3V0X3VubG9j azsKLQl9Ci0JZGV2X3ByaXYgPSBpOTE1X21jaF9kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTU7CiAKLQlpZiAoZGV2X3ByaXYtPmlwcy5tYXhfZGVsYXkgPiBkZXZfcHJpdi0+aXBz LmZtYXgpCi0JCWRldl9wcml2LT5pcHMubWF4X2RlbGF5LS07CisJaTkxNSA9IG1jaGRldl9nZXQo KTsKKwlpZiAoIWk5MTUpCisJCXJldHVybiBmYWxzZTsKIAotb3V0X3VubG9jazoKKwlzcGluX2xv Y2tfaXJxKCZtY2hkZXZfbG9jayk7CisJaWYgKGk5MTUtPmlwcy5tYXhfZGVsYXkgPiBpOTE1LT5p cHMuZm1heCkKKwkJaTkxNS0+aXBzLm1heF9kZWxheS0tOwogCXNwaW5fdW5sb2NrX2lycSgmbWNo ZGV2X2xvY2spOwogCi0JcmV0dXJuIHJldDsKKwlkcm1fZGV2X3B1dCgmaTkxNS0+ZHJtKTsKKwly ZXR1cm4gdHJ1ZTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGk5MTVfZ3B1X3JhaXNlKTsKIApAQCAt Nzk2NCwyMyArNzk3NiwxOSBAQCBFWFBPUlRfU1lNQk9MX0dQTChpOTE1X2dwdV9yYWlzZSk7CiAg Ki8KIGJvb2wgaTkxNV9ncHVfbG93ZXIodm9pZCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXY7Ci0JYm9vbCByZXQgPSB0cnVlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1OwogCi0Jc3Bpbl9sb2NrX2lycSgmbWNoZGV2X2xvY2spOwotCWlmICghaTkxNV9tY2hf ZGV2KSB7Ci0JCXJldCA9IGZhbHNlOwotCQlnb3RvIG91dF91bmxvY2s7Ci0JfQotCWRldl9wcml2 ID0gaTkxNV9tY2hfZGV2OwotCi0JaWYgKGRldl9wcml2LT5pcHMubWF4X2RlbGF5IDwgZGV2X3By aXYtPmlwcy5taW5fZGVsYXkpCi0JCWRldl9wcml2LT5pcHMubWF4X2RlbGF5Kys7CisJaTkxNSA9 IG1jaGRldl9nZXQoKTsKKwlpZiAoIWk5MTUpCisJCXJldHVybiBmYWxzZTsKIAotb3V0X3VubG9j azoKKwlzcGluX2xvY2tfaXJxKCZtY2hkZXZfbG9jayk7CisJaWYgKGk5MTUtPmlwcy5tYXhfZGVs YXkgPCBpOTE1LT5pcHMubWluX2RlbGF5KQorCQlpOTE1LT5pcHMubWF4X2RlbGF5Kys7CiAJc3Bp bl91bmxvY2tfaXJxKCZtY2hkZXZfbG9jayk7CiAKLQlyZXR1cm4gcmV0OworCWRybV9kZXZfcHV0 KCZpOTE1LT5kcm0pOworCXJldHVybiB0cnVlOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9n cHVfbG93ZXIpOwogCkBAIC03OTkxLDEzICs3OTk5LDE2IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGk5 MTVfZ3B1X2xvd2VyKTsKICAqLwogYm9vbCBpOTE1X2dwdV9idXN5KHZvaWQpCiB7Ci0JYm9vbCBy ZXQgPSBmYWxzZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKKwlib29sIHJldDsK IAotCXNwaW5fbG9ja19pcnEoJm1jaGRldl9sb2NrKTsKLQlpZiAoaTkxNV9tY2hfZGV2KQotCQly ZXQgPSBpOTE1X21jaF9kZXYtPmd0LmF3YWtlOwotCXNwaW5fdW5sb2NrX2lycSgmbWNoZGV2X2xv Y2spOworCWk5MTUgPSBtY2hkZXZfZ2V0KCk7CisJaWYgKCFpOTE1KQorCQlyZXR1cm4gZmFsc2U7 CisKKwlyZXQgPSBpOTE1LT5ndC5hd2FrZTsKIAorCWRybV9kZXZfcHV0KCZpOTE1LT5kcm0pOwog CXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpOTE1X2dwdV9idXN5KTsKQEAgLTgw MTAsMjQgKzgwMjEsMTkgQEAgRVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9ncHVfYnVzeSk7CiAgKi8K IGJvb2wgaTkxNV9ncHVfdHVyYm9fZGlzYWJsZSh2b2lkKQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdjsKLQlib29sIHJldCA9IHRydWU7Ci0KLQlzcGluX2xvY2tfaXJxKCZt Y2hkZXZfbG9jayk7Ci0JaWYgKCFpOTE1X21jaF9kZXYpIHsKLQkJcmV0ID0gZmFsc2U7Ci0JCWdv dG8gb3V0X3VubG9jazsKLQl9Ci0JZGV2X3ByaXYgPSBpOTE1X21jaF9kZXY7Ci0KLQlkZXZfcHJp di0+aXBzLm1heF9kZWxheSA9IGRldl9wcml2LT5pcHMuZnN0YXJ0OworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1OworCWJvb2wgcmV0OwogCi0JaWYgKCFpcm9ubGFrZV9zZXRfZHJwcyhk ZXZfcHJpdiwgZGV2X3ByaXYtPmlwcy5mc3RhcnQpKQotCQlyZXQgPSBmYWxzZTsKKwlpOTE1ID0g bWNoZGV2X2dldCgpOworCWlmICghaTkxNSkKKwkJcmV0dXJuIGZhbHNlOwogCi1vdXRfdW5sb2Nr OgorCXNwaW5fbG9ja19pcnEoJm1jaGRldl9sb2NrKTsKKwlpOTE1LT5pcHMubWF4X2RlbGF5ID0g aTkxNS0+aXBzLmZzdGFydDsKKwlyZXQgPSBpcm9ubGFrZV9zZXRfZHJwcyhpOTE1LCBpOTE1LT5p cHMuZnN0YXJ0KTsKIAlzcGluX3VubG9ja19pcnEoJm1jaGRldl9sb2NrKTsKIAorCWRybV9kZXZf cHV0KCZpOTE1LT5kcm0pOwogCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpOTE1 X2dwdV90dXJib19kaXNhYmxlKTsKQEAgLTgwNTYsMTggKzgwNjIsMTQgQEAgdm9pZCBpbnRlbF9n cHVfaXBzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCS8qIFdl IG9ubHkgcmVnaXN0ZXIgdGhlIGk5MTUgaXBzIHBhcnQgd2l0aCBpbnRlbC1pcHMgb25jZSBldmVy eXRoaW5nIGlzCiAJICogc2V0IHVwLCB0byBhdm9pZCBpbnRlbC1pcHMgc25lYWtpbmcgaW4gYW5k IHJlYWRpbmcgYm9ndXMgdmFsdWVzLiAqLwotCXNwaW5fbG9ja19pcnEoJm1jaGRldl9sb2NrKTsK LQlpOTE1X21jaF9kZXYgPSBkZXZfcHJpdjsKLQlzcGluX3VubG9ja19pcnEoJm1jaGRldl9sb2Nr KTsKKwlyY3VfYXNzaWduX3BvaW50ZXIoaTkxNV9tY2hfZGV2LCBkZXZfcHJpdik7CiAKIAlpcHNf cGluZ19mb3JfaTkxNV9sb2FkKCk7CiB9CiAKIHZvaWQgaW50ZWxfZ3B1X2lwc190ZWFyZG93bih2 b2lkKQogewotCXNwaW5fbG9ja19pcnEoJm1jaGRldl9sb2NrKTsKLQlpOTE1X21jaF9kZXYgPSBO VUxMOwotCXNwaW5fdW5sb2NrX2lycSgmbWNoZGV2X2xvY2spOworCXJjdV9hc3NpZ25fcG9pbnRl cihpOTE1X21jaF9kZXYsIE5VTEwpOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X2Vtb24o c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotLSAKMi4xNy4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK