From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2 09/14] drm/i915: Fix edp vdd locking Date: Tue, 19 Aug 2014 20:32:34 +0300 Message-ID: <1408469554-11625-1-git-send-email-ville.syrjala@linux.intel.com> References: <1408389369-22898-10-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 9E0F16E073 for ; Tue, 19 Aug 2014 10:36:08 -0700 (PDT) In-Reply-To: <1408389369-22898-10-git-send-email-ville.syrjala@linux.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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCklu dHJvZHVjZSBhIG5ldyBtdXRleCAocHBzX211dGV4KSB0byBwcm90ZWN0IHRoZSBwb3dlciBzZXF1 ZW5jZXIKc3RhdGUuIEZvciBub3cgdGhpcyBzdGF0ZSBpbmNsdWRlcyB3YW50X3BhbmVsX3ZkZCBh cyB3ZWxsIGFzIHRoZQpwb3dlciBzZXF1ZW5jZXIgcmVnaXN0ZXJzLgoKV2UgbmVlZCBhIHNpbmds ZSBtdXRleCAoYXMgb3Bwb3NlZCB0byBwZXIgcG9ydCkgYmVjYXVzZSBsYXRlciBvbiB3ZQp3aWxs IG5lZWQgdG8gZGVhbCB3aXRoIFZMVi9DSFYgd2hpY2ggaGF2ZSBtdWx0aXBsZSBwb3dlciBzZXF1 ZW5jZXIKd2hpY2ggY2FuIGJlIHJlYXNzaWduZWQgdG8gZGlmZmVyZW50IHBvcnRzLgoKdjI6IEFk ZCB0aGUgbG9ja2luZyB0byBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQgdG9vIChJbXJlKQoKU2ln bmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMyArKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDZmYmQzMTYuLmM1ZmFlZmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtMTUwMSw2ICsxNTAxLDkgQEAgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgewogCS8qIExWRFMgaW5mbyAqLwogCWJvb2wgbm9fYXV4X2hhbmRzaGFrZTsKIAorCS8q IHByb3RlY3RzIHBhbmVsIHBvd2VyIHNlcXVlbmNlciBzdGF0ZSAqLworCXN0cnVjdCBtdXRleCBw cHNfbXV0ZXg7CisKIAlzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnIGZlbmNlX3JlZ3NbSTkxNV9N QVhfTlVNX0ZFTkNFU107IC8qIGFzc3VtZSA5NjUgKi8KIAlpbnQgZmVuY2VfcmVnX3N0YXJ0OyAv KiA0IGlmIHVzZXJsYW5kIGhhc24ndCBpb2N0bCdkIHVzIHlldCAqLwogCWludCBudW1fZmVuY2Vf cmVnczsgLyogOCBvbiBwcmUtOTY1LCAxNiBvdGhlcndpc2UgKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCAwYjMyN2ViLi5mZjg2NzI5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCkBAIC0xMjQzNyw2ICsxMjQzNyw4IEBAIHN0YXRpYyB2b2lkIGludGVs X2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCWludGVsX3BhbmVs X2luaXRfYmFja2xpZ2h0X2Z1bmNzKGRldik7CisKKwltdXRleF9pbml0KCZkZXZfcHJpdi0+cHBz X211dGV4KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IDllZmE2YmYuLjQ0 NmRmMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMzAwLDYgKzMwMCw4IEBAIHZsdl9w b3dlcl9zZXF1ZW5jZXJfcGlwZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7CiAJZW51bSBwaXBlIHBpcGU7CiAKKwlsb2Nr ZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCS8qIG1vZGVzZXQgc2hv dWxkIGhhdmUgcGlwZSAqLwogCWlmIChjcnRjKQogCQlyZXR1cm4gdG9faW50ZWxfY3J0YyhjcnRj KS0+cGlwZTsKQEAgLTM1Miw2ICszNTQsOCBAQCBzdGF0aWMgaW50IGVkcF9ub3RpZnlfaGFuZGxl cihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgY29kZSwKIAlpZiAo IUlTX1ZBTExFWVZJRVcoZGV2KSB8fCAhaXNfZWRwKGludGVsX2RwKSB8fCBjb2RlICE9IFNZU19S RVNUQVJUKQogCQlyZXR1cm4gMDsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgp OworCiAJcGlwZSA9IHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShpbnRlbF9kcCk7CiAKIAlwcF9j dHJsX3JlZyA9IFZMVl9QSVBFX1BQX0NPTlRST0wocGlwZSk7CkBAIC0zNjQsNiArMzY4LDggQEAg c3RhdGljIGludCBlZHBfbm90aWZ5X2hhbmRsZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlz LCB1bnNpZ25lZCBsb25nIGNvZGUsCiAJSTkxNV9XUklURShwcF9jdHJsX3JlZywgUEFORUxfVU5M T0NLX1JFR1MgfCBQQU5FTF9QT1dFUl9PRkYpOwogCW1zbGVlcChpbnRlbF9kcC0+cGFuZWxfcG93 ZXJfY3ljbGVfZGVsYXkpOwogCisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsK KwogCXJldHVybiAwOwogfQogCkBAIC0zNzIsNiArMzc4LDggQEAgc3RhdGljIGJvb2wgZWRwX2hh dmVfcGFuZWxfcG93ZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCisJbG9ja2RlcF9hc3NlcnRf aGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CisKIAlyZXR1cm4gKEk5MTVfUkVBRChfcHBfc3Rh dF9yZWcoaW50ZWxfZHApKSAmIFBQX09OKSAhPSAwOwogfQogCkBAIC0zODMsNiArMzkxLDggQEAg c3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfdmRkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQt PmJhc2U7CiAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47CiAK Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCXBvd2VyX2Rv bWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7CiAJ cmV0dXJuIGludGVsX2Rpc3BsYXlfcG93ZXJfZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWlu KSAmJgogCSAgICAgICAoSTkxNV9SRUFEKF9wcF9jdHJsX3JlZyhpbnRlbF9kcCkpICYgRURQX0ZP UkNFX1ZERCkgIT0gMDsKQEAgLTUzMyw2ICs1NDMsOCBAQCBpbnRlbF9kcF9hdXhfY2goc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKIAlib29sIGhhc19hdXhfaXJxID0gSEFTX0FVWF9JUlEoZGV2 KTsKIAlib29sIHZkZDsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJ LyoKIAkgKiBXZSB3aWxsIGJlIGNhbGxlZCB3aXRoIFZERCBhbHJlYWR5IGVuYWJsZWQgZm9yIGRw Y2QvZWRpZC9vdWkgcmVhZHMuCiAJICogSW4gc3VjaCBjYXNlcyB3ZSB3YW50IHRvIGxlYXZlIFZE RCBlbmFibGVkIGFuZCBpdCdzIHVwIHRvIHVwcGVyIGxheWVycwpAQCAtNjQ4LDYgKzY2MCw4IEBA IG91dDoKIAlpZiAodmRkKQogCQllZHBfcGFuZWxfdmRkX29mZihpbnRlbF9kcCwgZmFsc2UpOwog CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTExMDIsNiArMTExNiw4IEBAIHN0YXRpYyB2b2lkIHdhaXRfcGFuZWxfc3RhdHVzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1MzIgcHBfc3RhdF9yZWcsIHBwX2N0cmxfcmVnOwog CisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CisKIAlwcF9zdGF0 X3JlZyA9IF9wcF9zdGF0X3JlZyhpbnRlbF9kcCk7CiAJcHBfY3RybF9yZWcgPSBfcHBfY3RybF9y ZWcoaW50ZWxfZHApOwogCkBAIC0xMTY1LDYgKzExODEsOCBAQCBzdGF0aWMgIHUzMiBpcm9ubGFr ZV9nZXRfcHBfY29udHJvbChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJdTMyIGNvbnRyb2w7 CiAKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCWNvbnRy b2wgPSBJOTE1X1JFQUQoX3BwX2N0cmxfcmVnKGludGVsX2RwKSk7CiAJY29udHJvbCAmPSB+UEFO RUxfVU5MT0NLX01BU0s7CiAJY29udHJvbCB8PSBQQU5FTF9VTkxPQ0tfUkVHUzsKQEAgLTExODIs NiArMTIwMCw4IEBAIHN0YXRpYyBib29sIGVkcF9wYW5lbF92ZGRfb24oc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKIAl1MzIgcHBfc3RhdF9yZWcsIHBwX2N0cmxfcmVnOwogCWJvb2wgbmVlZF90 b19kaXNhYmxlID0gIWludGVsX2RwLT53YW50X3BhbmVsX3ZkZDsKIAorCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKCFpc19lZHAoaW50ZWxfZHApKQog CQlyZXR1cm4gZmFsc2U7CiAKQEAgLTEyMjEsMTIgKzEyNDEsMTYgQEAgc3RhdGljIGJvb2wgZWRw X3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiB2b2lkIGludGVsX2Vk cF9wYW5lbF92ZGRfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQorCQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5k ZXZfcHJpdmF0ZTsKIAlib29sIHZkZDsKIAogCWlmICghaXNfZWRwKGludGVsX2RwKSkKIAkJcmV0 dXJuOwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJdmRkID0gZWRwX3Bh bmVsX3ZkZF9vbihpbnRlbF9kcCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4 KTsKIAogCVdBUk4oIXZkZCwgImVEUCBWREQgYWxyZWFkeSByZXF1ZXN0ZWQgb25cbiIpOwogfQpA QCAtMTI0Miw3ICsxMjY2LDcgQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCXUzMiBwcDsKIAl1MzIgcHBfc3RhdF9yZWcsIHBw X2N0cmxfcmVnOwogCi0JV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVf Y29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJp di0+cHBzX211dGV4KTsKIAogCVdBUk5fT04oaW50ZWxfZHAtPndhbnRfcGFuZWxfdmRkKTsKIApA QCAtMTI3NSwxMiArMTI5OSwxMyBAQCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiB7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGNvbnRhaW5lcl9vZih0b19kZWxheWVkX3dvcmsoX193b3JrKSwKIAkJCQkJCSBzdHJ1Y3QgaW50 ZWxfZHAsIHBhbmVsX3ZkZF93b3JrKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxf ZHBfdG9fZGV2KGludGVsX2RwKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PQorCQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5kZXZfcHJpdmF0ZTsKIAotCWRybV9tb2Rl c2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7CisJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJaWYgKCFpbnRlbF9kcC0+d2FudF9wYW5l bF92ZGQpCiAJCWVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoaW50ZWxfZHApOwotCWRybV9tb2Rlc2V0 X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKKwltdXRleF91bmxv Y2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogfQogCiBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRk X3NjaGVkdWxlX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpAQCAtMTI5OCw2ICsxMzIz LDExIEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfc2NoZWR1bGVfb2ZmKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCiAKIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPQorCQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5kZXZfcHJpdmF0ZTsK KworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKCFp c19lZHAoaW50ZWxfZHApKQogCQlyZXR1cm47CiAKQEAgLTEzMTMsNyArMTM0MywxNSBAQCBzdGF0 aWMgdm9pZCBlZHBfcGFuZWxfdmRkX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29s IHN5bmMpCiAKIHN0YXRpYyB2b2lkIGludGVsX2VkcF9wYW5lbF92ZGRfb2ZmKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPQorCQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5kZXZfcHJpdmF0ZTsKKwor CWlmICghaXNfZWRwKGludGVsX2RwKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZGV2X3By aXYtPnBwc19tdXRleCk7CiAJZWRwX3BhbmVsX3ZkZF9vZmYoaW50ZWxfZHAsIHN5bmMpOworCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiB9CiAKIHZvaWQgaW50ZWxfZWRwX3Bh bmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBAIC0xMzI4LDkgKzEzNjYsMTEgQEAg dm9pZCBpbnRlbF9lZHBfcGFuZWxfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAogCURS TV9ERUJVR19LTVMoIlR1cm4gZURQIHBvd2VyIG9uXG4iKTsKIAorCW11dGV4X2xvY2soJmRldl9w cml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKGVkcF9oYXZlX3BhbmVsX3Bvd2VyKGludGVsX2RwKSkg ewogCQlEUk1fREVCVUdfS01TKCJlRFAgcG93ZXIgYWxyZWFkeSBvblxuIik7Ci0JCXJldHVybjsK KwkJZ290byBvdXQ7CiAJfQogCiAJd2FpdF9wYW5lbF9wb3dlcl9jeWNsZShpbnRlbF9kcCk7CkBA IC0xMzU5LDYgKzEzOTksOSBAQCB2b2lkIGludGVsX2VkcF9wYW5lbF9vbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogCQlJOTE1X1dSSVRFKHBwX2N0cmxfcmVnLCBwcCk7CiAJCVBPU1RJTkdf UkVBRChwcF9jdHJsX3JlZyk7CiAJfQorCisgb3V0OgorCW11dGV4X3VubG9jaygmZGV2X3ByaXYt PnBwc19tdXRleCk7CiB9CiAKIHZvaWQgaW50ZWxfZWRwX3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQpAQCAtMTM3Niw2ICsxNDE5LDggQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxf b2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAKIAlEUk1fREVCVUdfS01TKCJUdXJuIGVE UCBwb3dlciBvZmZcbiIpOwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisK IAlXQVJOKCFpbnRlbF9kcC0+d2FudF9wYW5lbF92ZGQsICJOZWVkIFZERCB0byB0dXJuIG9mZiBw YW5lbFxuIik7CiAKIAlwcCA9IGlyb25sYWtlX2dldF9wcF9jb250cm9sKGludGVsX2RwKTsKQEAg LTEzOTcsNiArMTQ0Miw4IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX29mZihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogCS8qIFdlIGdvdCBhIHJlZmVyZW5jZSB3aGVuIHdlIGVuYWJsZWQgdGhl IFZERC4gKi8KIAlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWlu KGludGVsX2VuY29kZXIpOwogCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dl cl9kb21haW4pOworCisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIH0KIAog dm9pZCBpbnRlbF9lZHBfYmFja2xpZ2h0X29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBA IC0xNDIxLDYgKzE0NjgsOSBAQCB2b2lkIGludGVsX2VkcF9iYWNrbGlnaHRfb24oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKIAkgKiBhbGxvd2luZyBpdCB0byBhcHBlYXIuCiAJICovCiAJd2Fp dF9iYWNrbGlnaHRfb24oaW50ZWxfZHApOworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19t dXRleCk7CisKIAlwcCA9IGlyb25sYWtlX2dldF9wcF9jb250cm9sKGludGVsX2RwKTsKIAlwcCB8 PSBFRFBfQkxDX0VOQUJMRTsKIApAQCAtMTQyOCw2ICsxNDc4LDggQEAgdm9pZCBpbnRlbF9lZHBf YmFja2xpZ2h0X29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAKIAlJOTE1X1dSSVRFKHBw X2N0cmxfcmVnLCBwcCk7CiAJUE9TVElOR19SRUFEKHBwX2N0cmxfcmVnKTsKKworCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiB9CiAKIHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdo dF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKQEAgLTE0NDAsNiArMTQ5Miw4IEBAIHZv aWQgaW50ZWxfZWRwX2JhY2tsaWdodF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlp ZiAoIWlzX2VkcChpbnRlbF9kcCkpCiAJCXJldHVybjsKIAorCW11dGV4X2xvY2soJmRldl9wcml2 LT5wcHNfbXV0ZXgpOworCiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAlwcCA9IGlyb25sYWtlX2dl dF9wcF9jb250cm9sKGludGVsX2RwKTsKIAlwcCAmPSB+RURQX0JMQ19FTkFCTEU7CkBAIC0xNDQ4 LDggKzE1MDIsMTAgQEAgdm9pZCBpbnRlbF9lZHBfYmFja2xpZ2h0X29mZihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogCiAJSTkxNV9XUklURShwcF9jdHJsX3JlZywgcHApOwogCVBPU1RJTkdf UkVBRChwcF9jdHJsX3JlZyk7Ci0JaW50ZWxfZHAtPmxhc3RfYmFja2xpZ2h0X29mZiA9IGppZmZp ZXM7CiAKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCisJaW50ZWxfZHAt Pmxhc3RfYmFja2xpZ2h0X29mZiA9IGppZmZpZXM7CiAJZWRwX3dhaXRfYmFja2xpZ2h0X29mZihp bnRlbF9kcCk7CiAKIAlpbnRlbF9wYW5lbF9kaXNhYmxlX2JhY2tsaWdodChpbnRlbF9kcC0+YXR0 YWNoZWRfY29ubmVjdG9yKTsKQEAgLTIxODIsOSArMjIzOCwxMSBAQCBzdGF0aWMgdm9pZCB2bHZf cHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCWlmIChpc19l ZHAoaW50ZWxfZHApKSB7CiAJCS8qIGluaXQgcG93ZXIgc2VxdWVuY2VyIG9uIHRoaXMgcGlwZSBh bmQgcG9ydCAqLworCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIAkJaW50ZWxf ZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXIoZGV2LCBpbnRlbF9kcCwgJnBvd2VyX3NlcSk7 CiAJCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhkZXYsIGlu dGVsX2RwLAogCQkJCQkJCSAgICAgICZwb3dlcl9zZXEpOworCQltdXRleF91bmxvY2soJmRldl9w cml2LT5wcHNfbXV0ZXgpOwogCX0KIAogCWludGVsX2VuYWJsZV9kcChlbmNvZGVyKTsKQEAgLTIy ODQsOSArMjM0MiwxMSBAQCBzdGF0aWMgdm9pZCBjaHZfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCWlmIChpc19lZHAoaW50ZWxfZHApKSB7CiAJCS8qIGlu aXQgcG93ZXIgc2VxdWVuY2VyIG9uIHRoaXMgcGlwZSBhbmQgcG9ydCAqLworCQltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIAkJaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1 ZW5jZXIoZGV2LCBpbnRlbF9kcCwgJnBvd2VyX3NlcSk7CiAJCWludGVsX2RwX2luaXRfcGFuZWxf cG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhkZXYsIGludGVsX2RwLAogCQkJCQkJCSAgICAgICZw b3dlcl9zZXEpOworCQltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCX0KIAog CWludGVsX2VuYWJsZV9kcChlbmNvZGVyKTsKQEAgLTQwMjcsMTUgKzQwODcsMTYgQEAgdm9pZCBp bnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KGVuY29kZXIpOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfZGlnX3BvcnQt PmRwOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHAp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 CiAKIAlkcm1fZHBfYXV4X3VucmVnaXN0ZXIoJmludGVsX2RwLT5hdXgpOwogCWludGVsX2RwX21z dF9lbmNvZGVyX2NsZWFudXAoaW50ZWxfZGlnX3BvcnQpOwogCWRybV9lbmNvZGVyX2NsZWFudXAo ZW5jb2Rlcik7CiAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKIAkJY2FuY2VsX2RlbGF5ZWRfd29y a19zeW5jKCZpbnRlbF9kcC0+cGFuZWxfdmRkX3dvcmspOwotCQlkcm1fbW9kZXNldF9sb2NrKCZk ZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOworCQltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cHBzX211dGV4KTsKIAkJZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhpbnRlbF9kcCk7 Ci0JCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4 KTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIAkJaWYgKGludGVsX2Rw LT5lZHBfbm90aWZpZXIubm90aWZpZXJfY2FsbCkgewogCQkJdW5yZWdpc3Rlcl9yZWJvb3Rfbm90 aWZpZXIoJmludGVsX2RwLT5lZHBfbm90aWZpZXIpOwogCQkJaW50ZWxfZHAtPmVkcF9ub3RpZmll ci5ub3RpZmllcl9jYWxsID0gTlVMTDsKQEAgLTQwNDcsMTEgKzQxMDgsMTUgQEAgdm9pZCBpbnRl bF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogc3RhdGlj IHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmludGVsX2VuY29kZXItPmJhc2UpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAlpZiAoIWlzX2VkcChpbnRlbF9kcCkpCiAJCXJldHVy bjsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCWVkcF9wYW5lbF92ZGRf b2ZmX3N5bmMoaW50ZWxfZHApOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7 CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQpAQCAtNDIzMiw2ICs0Mjk3LDggQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9w b3dlcl9zZXF1ZW5jZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl1MzIgcHBfb24sIHBwX29m ZiwgcHBfZGl2LCBwcDsKIAlpbnQgcHBfY3RybF9yZWcsIHBwX29uX3JlZywgcHBfb2ZmX3JlZywg cHBfZGl2X3JlZzsKIAorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgp OworCiAJaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewogCQlwcF9jdHJsX3JlZyA9IFBDSF9QUF9D T05UUk9MOwogCQlwcF9vbl9yZWcgPSBQQ0hfUFBfT05fREVMQVlTOwpAQCAtNDMzMyw2ICs0NDAw LDggQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJaW50IHBwX29uX3JlZywgcHBfb2ZmX3JlZywgcHBfZGl2X3Jl ZzsKIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKIAor CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKEhBU19Q Q0hfU1BMSVQoZGV2KSkgewogCQlwcF9vbl9yZWcgPSBQQ0hfUFBfT05fREVMQVlTOwogCQlwcF9v ZmZfcmVnID0gUENIX1BQX09GRl9ERUxBWVM7CkBAIC00NTI1LDkgKzQ1OTQsMTEgQEAgdm9pZCBp bnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyKQogCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCiAJ CXJldHVybjsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoJmludGVsX2VuY29kZXItPmJhc2UpOwogCWlmICghZWRwX2hh dmVfcGFuZWxfdmRkKGludGVsX2RwKSkKLQkJcmV0dXJuOworCQlnb3RvIG91dDsKIAkvKgogCSAq IFRoZSBWREQgYml0IG5lZWRzIGEgcG93ZXIgZG9tYWluIHJlZmVyZW5jZSwgc28gaWYgdGhlIGJp dCBpcwogCSAqIGFscmVhZHkgZW5hYmxlZCB3aGVuIHdlIGJvb3Qgb3IgcmVzdW1lLCBncmFiIHRo aXMgcmVmZXJlbmNlIGFuZApAQCAtNDUzOSw2ICs0NjEwLDggQEAgdm9pZCBpbnRlbF9lZHBfcGFu ZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogCWlu dGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwogCiAJZWRwX3Bh bmVsX3ZkZF9zY2hlZHVsZV9vZmYoaW50ZWxfZHApOworIG91dDoKKwltdXRleF91bmxvY2soJmRl dl9wcml2LT5wcHNfbXV0ZXgpOwogfQogCiBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9jb25u ZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKQEAgLTQ1ODAsNyArNDY1Myw5IEBAIHN0 YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAogCX0KIAogCS8qIFdlIG5vdyBrbm93IGl0J3Mgbm90IGEgZ2hvc3QsIGluaXQgcG93ZXIg c2VxdWVuY2UgcmVncy4gKi8KKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIAlp bnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoZGV2LCBpbnRlbF9k cCwgcG93ZXJfc2VxKTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCiAJ bXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAJZWRpZCA9IGRybV9nZXRfZWRp ZChjb25uZWN0b3IsICZpbnRlbF9kcC0+YXV4LmRkYyk7CkBAIC00NzEyLDggKzQ3ODcsMTAgQEAg aW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQsCiAJfQogCiAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKKwkJbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfdGltZXN0 YW1wcyhpbnRlbF9kcCk7CiAJCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKGRl diwgaW50ZWxfZHAsICZwb3dlcl9zZXEpOworCQltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNf bXV0ZXgpOwogCX0KIAogCWludGVsX2RwX2F1eF9pbml0KGludGVsX2RwLCBpbnRlbF9jb25uZWN0 b3IpOwpAQCAtNDcyOSw5ICs0ODA2LDkgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCWRybV9kcF9hdXhfdW5yZWdp c3RlcigmaW50ZWxfZHAtPmF1eCk7CiAJCWlmIChpc19lZHAoaW50ZWxfZHApKSB7CiAJCQljYW5j ZWxfZGVsYXllZF93b3JrX3N5bmMoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yayk7Ci0JCQlkcm1f bW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwor CQkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJCQllZHBfcGFuZWxfdmRkX29m Zl9zeW5jKGludGVsX2RwKTsKLQkJCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0aW9uX211dGV4KTsKKwkJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRl eCk7CiAJCX0KIAkJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7CiAJCWRybV9j b25uZWN0b3JfY2xlYW51cChjb25uZWN0b3IpOwotLSAKMS44LjUuNQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK