From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 09/14] drm/i915: Fix edp vdd locking Date: Mon, 18 Aug 2014 22:16:04 +0300 Message-ID: <1408389369-22898-10-git-send-email-ville.syrjala@linux.intel.com> References: <1408389369-22898-1-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 4C6F16E1CF for ; Mon, 18 Aug 2014 12:22:53 -0700 (PDT) In-Reply-To: <1408389369-22898-1-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 ZW5jZXIKd2hpY2ggY2FuIGJlIHJlYXNzaWduZWQgdG8gZGlmZmVyZW50IHBvcnRzLgoKU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgMyArKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgICAgIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDQ3NTQzMjguLjg2ODQ4OTggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaApAQCAtMTUwMSw2ICsxNTAxLDkgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgewogCS8qIExWRFMgaW5mbyAqLwogCWJvb2wgbm9fYXV4X2hhbmRzaGFrZTsKIAorCS8qIHBy b3RlY3RzIHBhbmVsIHBvd2VyIHNlcXVlbmNlciBzdGF0ZSAqLworCXN0cnVjdCBtdXRleCBwcHNf bXV0ZXg7CisKIAlzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnIGZlbmNlX3JlZ3NbSTkxNV9NQVhf TlVNX0ZFTkNFU107IC8qIGFzc3VtZSA5NjUgKi8KIAlpbnQgZmVuY2VfcmVnX3N0YXJ0OyAvKiA0 IGlmIHVzZXJsYW5kIGhhc24ndCBpb2N0bCdkIHVzIHlldCAqLwogCWludCBudW1fZmVuY2VfcmVn czsgLyogOCBvbiBwcmUtOTY1LCAxNiBvdGhlcndpc2UgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCAzZjhlMDM3Li4wNGMwZTVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCkBAIC0xMjQzNyw2ICsxMjQzNyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2lu aXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCWludGVsX3BhbmVsX2lu aXRfYmFja2xpZ2h0X2Z1bmNzKGRldik7CisKKwltdXRleF9pbml0KCZkZXZfcHJpdi0+cHBzX211 dGV4KTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IDdhZTlhOWEuLjU1NmU0 ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMzAwLDYgKzMwMCw4IEBAIHZsdl9wb3dl cl9zZXF1ZW5jZXJfcGlwZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWVudW0gcG9ydCBw b3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7CiAJZW51bSBwaXBlIHBpcGU7CiAKKwlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCS8qIG1vZGVzZXQgc2hvdWxk IGhhdmUgcGlwZSAqLwogCWlmIChjcnRjKQogCQlyZXR1cm4gdG9faW50ZWxfY3J0YyhjcnRjKS0+ cGlwZTsKQEAgLTM1Miw2ICszNTQsOCBAQCBzdGF0aWMgaW50IGVkcF9ub3RpZnlfaGFuZGxlcihz dHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgY29kZSwKIAlpZiAoIUlT X1ZBTExFWVZJRVcoZGV2KSB8fCAhaXNfZWRwKGludGVsX2RwKSB8fCBjb2RlICE9IFNZU19SRVNU QVJUKQogCQlyZXR1cm4gMDsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwor CiAJcGlwZSA9IHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShpbnRlbF9kcCk7CiAKIAlwcF9jdHJs X3JlZyA9IFZMVl9QSVBFX1BQX0NPTlRST0wocGlwZSk7CkBAIC0zNjQsNiArMzY4LDggQEAgc3Rh dGljIGludCBlZHBfbm90aWZ5X2hhbmRsZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLCB1 bnNpZ25lZCBsb25nIGNvZGUsCiAJSTkxNV9XUklURShwcF9jdHJsX3JlZywgUEFORUxfVU5MT0NL X1JFR1MgfCBQQU5FTF9QT1dFUl9PRkYpOwogCW1zbGVlcChpbnRlbF9kcC0+cGFuZWxfcG93ZXJf Y3ljbGVfZGVsYXkpOwogCisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwog CXJldHVybiAwOwogfQogCkBAIC0zNzIsNiArMzc4LDggQEAgc3RhdGljIGJvb2wgZWRwX2hhdmVf cGFuZWxfcG93ZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCisJbG9ja2RlcF9hc3NlcnRfaGVs ZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CisKIAlyZXR1cm4gKEk5MTVfUkVBRChfcHBfc3RhdF9y ZWcoaW50ZWxfZHApKSAmIFBQX09OKSAhPSAwOwogfQogCkBAIC0zODMsNiArMzkxLDggQEAgc3Rh dGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfdmRkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJ c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJh c2U7CiAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47CiAKKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCXBvd2VyX2RvbWFp biA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7CiAJcmV0 dXJuIGludGVsX2Rpc3BsYXlfcG93ZXJfZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSAm JgogCSAgICAgICAoSTkxNV9SRUFEKF9wcF9jdHJsX3JlZyhpbnRlbF9kcCkpICYgRURQX0ZPUkNF X1ZERCkgIT0gMDsKQEAgLTUzMyw2ICs1NDMsOCBAQCBpbnRlbF9kcF9hdXhfY2goc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKIAlib29sIGhhc19hdXhfaXJxID0gSEFTX0FVWF9JUlEoZGV2KTsK IAlib29sIHZkZDsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJLyoK IAkgKiBXZSB3aWxsIGJlIGNhbGxlZCB3aXRoIFZERCBhbHJlYWR5IGVuYWJsZWQgZm9yIGRwY2Qv ZWRpZC9vdWkgcmVhZHMuCiAJICogSW4gc3VjaCBjYXNlcyB3ZSB3YW50IHRvIGxlYXZlIFZERCBl bmFibGVkIGFuZCBpdCdzIHVwIHRvIHVwcGVyIGxheWVycwpAQCAtNjQ4LDYgKzY2MCw4IEBAIG91 dDoKIAlpZiAodmRkKQogCQllZHBfcGFuZWxfdmRkX29mZihpbnRlbF9kcCwgZmFsc2UpOwogCisJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCXJldHVybiByZXQ7CiB9CiAK QEAgLTExMDIsNiArMTExNiw4IEBAIHN0YXRpYyB2b2lkIHdhaXRfcGFuZWxfc3RhdHVzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1MzIgcHBfc3RhdF9yZWcsIHBwX2N0cmxfcmVnOwogCisJ bG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CisKIAlwcF9zdGF0X3Jl ZyA9IF9wcF9zdGF0X3JlZyhpbnRlbF9kcCk7CiAJcHBfY3RybF9yZWcgPSBfcHBfY3RybF9yZWco aW50ZWxfZHApOwogCkBAIC0xMTY1LDYgKzExODEsOCBAQCBzdGF0aWMgIHUzMiBpcm9ubGFrZV9n ZXRfcHBfY29udHJvbChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJdTMyIGNvbnRyb2w7CiAK Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCWNvbnRyb2wg PSBJOTE1X1JFQUQoX3BwX2N0cmxfcmVnKGludGVsX2RwKSk7CiAJY29udHJvbCAmPSB+UEFORUxf VU5MT0NLX01BU0s7CiAJY29udHJvbCB8PSBQQU5FTF9VTkxPQ0tfUkVHUzsKQEAgLTExODIsNiAr MTIwMCw4IEBAIHN0YXRpYyBib29sIGVkcF9wYW5lbF92ZGRfb24oc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKIAl1MzIgcHBfc3RhdF9yZWcsIHBwX2N0cmxfcmVnOwogCWJvb2wgbmVlZF90b19k aXNhYmxlID0gIWludGVsX2RwLT53YW50X3BhbmVsX3ZkZDsKIAorCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKCFpc19lZHAoaW50ZWxfZHApKQogCQly ZXR1cm4gZmFsc2U7CiAKQEAgLTEyMjEsMTIgKzEyNDEsMTYgQEAgc3RhdGljIGJvb2wgZWRwX3Bh bmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiB2b2lkIGludGVsX2VkcF9w YW5lbF92ZGRfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQorCQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5kZXZf cHJpdmF0ZTsKIAlib29sIHZkZDsKIAogCWlmICghaXNfZWRwKGludGVsX2RwKSkKIAkJcmV0dXJu OwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJdmRkID0gZWRwX3BhbmVs X3ZkZF9vbihpbnRlbF9kcCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsK IAogCVdBUk4oIXZkZCwgImVEUCBWREQgYWxyZWFkeSByZXF1ZXN0ZWQgb25cbiIpOwogfQpAQCAt MTI0Miw3ICsxMjY2LDcgQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCXUzMiBwcDsKIAl1MzIgcHBfc3RhdF9yZWcsIHBwX2N0 cmxfcmVnOwogCi0JV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29u ZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ cHBzX211dGV4KTsKIAogCVdBUk5fT04oaW50ZWxfZHAtPndhbnRfcGFuZWxfdmRkKTsKIApAQCAt MTI3NSwxMiArMTI5OSwxMyBAQCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX3dvcmsoc3RydWN0 IHdvcmtfc3RydWN0ICpfX3dvcmspCiB7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGNv bnRhaW5lcl9vZih0b19kZWxheWVkX3dvcmsoX193b3JrKSwKIAkJCQkJCSBzdHJ1Y3QgaW50ZWxf ZHAsIHBhbmVsX3ZkZF93b3JrKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQor CQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5kZXZfcHJpdmF0ZTsKIAotCWRybV9tb2Rlc2V0 X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7CisJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJaWYgKCFpbnRlbF9kcC0+d2FudF9wYW5lbF92 ZGQpCiAJCWVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMoaW50ZWxfZHApOwotCWRybV9tb2Rlc2V0X3Vu bG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKKwltdXRleF91bmxvY2so JmRldl9wcml2LT5wcHNfbXV0ZXgpOwogfQogCiBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX3Nj aGVkdWxlX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpAQCAtMTI5OCw2ICsxMzIzLDEx IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfc2NoZWR1bGVfb2ZmKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCiAKIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsIGJvb2wgc3luYykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPQorCQlpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApLT5kZXZfcHJpdmF0ZTsKKwor CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKCFpc19l ZHAoaW50ZWxfZHApKQogCQlyZXR1cm47CiAKQEAgLTEzMTMsNyArMTM0MywxNSBAQCBzdGF0aWMg dm9pZCBlZHBfcGFuZWxfdmRkX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIHN5 bmMpCiAKIHN0YXRpYyB2b2lkIGludGVsX2VkcF9wYW5lbF92ZGRfb2ZmKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsIGJvb2wgc3luYykKIHsKLQlyZXR1cm4gZWRwX3BhbmVsX3ZkZF9vZmYoaW50 ZWxfZHAsIHN5bmMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CisJCWlu dGVsX2RwX3RvX2RldihpbnRlbF9kcCktPmRldl9wcml2YXRlOworCisJaWYgKCFpc19lZHAoaW50 ZWxfZHApKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsK KwllZHBfcGFuZWxfdmRkX29mZihpbnRlbF9kcCwgc3luYyk7CisJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+cHBzX211dGV4KTsKIH0KIAogdm9pZCBpbnRlbF9lZHBfcGFuZWxfb24oc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKQEAgLTEzMjgsOSArMTM2NiwxMSBAQCB2b2lkIGludGVsX2VkcF9w YW5lbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCiAJRFJNX0RFQlVHX0tNUygiVHVy biBlRFAgcG93ZXIgb25cbiIpOwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7 CisKIAlpZiAoZWRwX2hhdmVfcGFuZWxfcG93ZXIoaW50ZWxfZHApKSB7CiAJCURSTV9ERUJVR19L TVMoImVEUCBwb3dlciBhbHJlYWR5IG9uXG4iKTsKLQkJcmV0dXJuOworCQlnb3RvIG91dDsKIAl9 CiAKIAl3YWl0X3BhbmVsX3Bvd2VyX2N5Y2xlKGludGVsX2RwKTsKQEAgLTEzNTksNiArMTM5OSw5 IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJ CUk5MTVfV1JJVEUocHBfY3RybF9yZWcsIHBwKTsKIAkJUE9TVElOR19SRUFEKHBwX2N0cmxfcmVn KTsKIAl9CisKKyBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIH0K IAogdm9pZCBpbnRlbF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBA IC0xMzc2LDYgKzE0MTksOCBAQCB2b2lkIGludGVsX2VkcF9wYW5lbF9vZmYoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKIAogCURSTV9ERUJVR19LTVMoIlR1cm4gZURQIHBvd2VyIG9mZlxuIik7 CiAKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCVdBUk4oIWludGVsX2Rw LT53YW50X3BhbmVsX3ZkZCwgIk5lZWQgVkREIHRvIHR1cm4gb2ZmIHBhbmVsXG4iKTsKIAogCXBw ID0gaXJvbmxha2VfZ2V0X3BwX2NvbnRyb2woaW50ZWxfZHApOwpAQCAtMTM5Nyw2ICsxNDQyLDgg QEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJ LyogV2UgZ290IGEgcmVmZXJlbmNlIHdoZW4gd2UgZW5hYmxlZCB0aGUgVkRELiAqLwogCXBvd2Vy X2RvbWFpbiA9IGludGVsX2Rpc3BsYXlfcG9ydF9wb3dlcl9kb21haW4oaW50ZWxfZW5jb2Rlcik7 CiAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7CisKKwlt dXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogfQogCiB2b2lkIGludGVsX2VkcF9i YWNrbGlnaHRfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKQEAgLTE0MjEsNiArMTQ2OCw5 IEBAIHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdodF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQogCSAqIGFsbG93aW5nIGl0IHRvIGFwcGVhci4KIAkgKi8KIAl3YWl0X2JhY2tsaWdodF9vbihp bnRlbF9kcCk7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwogCXBwID0g aXJvbmxha2VfZ2V0X3BwX2NvbnRyb2woaW50ZWxfZHApOwogCXBwIHw9IEVEUF9CTENfRU5BQkxF OwogCkBAIC0xNDI4LDYgKzE0NzgsOCBAQCB2b2lkIGludGVsX2VkcF9iYWNrbGlnaHRfb24oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKIAogCUk5MTVfV1JJVEUocHBfY3RybF9yZWcsIHBwKTsK IAlQT1NUSU5HX1JFQUQocHBfY3RybF9yZWcpOworCisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ cHBzX211dGV4KTsKIH0KIAogdm9pZCBpbnRlbF9lZHBfYmFja2xpZ2h0X29mZihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQpAQCAtMTQ0MCw2ICsxNDkyLDggQEAgdm9pZCBpbnRlbF9lZHBfYmFj a2xpZ2h0X29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWlmICghaXNfZWRwKGludGVs X2RwKSkKIAkJcmV0dXJuOwogCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisK IAlEUk1fREVCVUdfS01TKCJcbiIpOwogCXBwID0gaXJvbmxha2VfZ2V0X3BwX2NvbnRyb2woaW50 ZWxfZHApOwogCXBwICY9IH5FRFBfQkxDX0VOQUJMRTsKQEAgLTE0NDgsOCArMTUwMiwxMCBAQCB2 b2lkIGludGVsX2VkcF9iYWNrbGlnaHRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAK IAlJOTE1X1dSSVRFKHBwX2N0cmxfcmVnLCBwcCk7CiAJUE9TVElOR19SRUFEKHBwX2N0cmxfcmVn KTsKLQlpbnRlbF9kcC0+bGFzdF9iYWNrbGlnaHRfb2ZmID0gamlmZmllczsKIAorCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisKKwlpbnRlbF9kcC0+bGFzdF9iYWNrbGlnaHRf b2ZmID0gamlmZmllczsKIAllZHBfd2FpdF9iYWNrbGlnaHRfb2ZmKGludGVsX2RwKTsKIAogCWlu dGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0KGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3Ip OwpAQCAtMjE4Miw5ICsyMjM4LDExIEBAIHN0YXRpYyB2b2lkIHZsdl9wcmVfZW5hYmxlX2RwKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsK IAkJLyogaW5pdCBwb3dlciBzZXF1ZW5jZXIgb24gdGhpcyBwaXBlIGFuZCBwb3J0ICovCisJCW11 dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCQlpbnRlbF9kcF9pbml0X3BhbmVsX3Bv d2VyX3NlcXVlbmNlcihkZXYsIGludGVsX2RwLCAmcG93ZXJfc2VxKTsKIAkJaW50ZWxfZHBfaW5p dF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKGRldiwgaW50ZWxfZHAsCiAJCQkJCQkJ ICAgICAgJnBvd2VyX3NlcSk7CisJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7 CiAJfQogCiAJaW50ZWxfZW5hYmxlX2RwKGVuY29kZXIpOwpAQCAtMjI4NCw5ICsyMzQyLDExIEBA IHN0YXRpYyB2b2lkIGNodl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQogCiAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKIAkJLyogaW5pdCBwb3dlciBzZXF1ZW5j ZXIgb24gdGhpcyBwaXBlIGFuZCBwb3J0ICovCisJCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNf bXV0ZXgpOwogCQlpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihkZXYsIGludGVs X2RwLCAmcG93ZXJfc2VxKTsKIAkJaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJf cmVnaXN0ZXJzKGRldiwgaW50ZWxfZHAsCiAJCQkJCQkJICAgICAgJnBvd2VyX3NlcSk7CisJCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJfQogCiAJaW50ZWxfZW5hYmxlX2Rw KGVuY29kZXIpOwpAQCAtNDAyNCwxNSArNDA4NCwxNiBAQCB2b2lkIGludGVsX2RwX2VuY29kZXJf ZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7CiAJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAogCWRybV9kcF9hdXhf dW5yZWdpc3RlcigmaW50ZWxfZHAtPmF1eCk7CiAJaW50ZWxfZHBfbXN0X2VuY29kZXJfY2xlYW51 cChpbnRlbF9kaWdfcG9ydCk7CiAJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKIAlpZiAo aXNfZWRwKGludGVsX2RwKSkgewogCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmludGVsX2Rw LT5wYW5lbF92ZGRfd29yayk7Ci0JCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcu Y29ubmVjdGlvbl9tdXRleCwgTlVMTCk7CisJCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0 ZXgpOwogCQllZHBfcGFuZWxfdmRkX29mZl9zeW5jKGludGVsX2RwKTsKLQkJZHJtX21vZGVzZXRf dW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOworCQltdXRleF91bmxv Y2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCQlpZiAoaW50ZWxfZHAtPmVkcF9ub3RpZmllci5u b3RpZmllcl9jYWxsKSB7CiAJCQl1bnJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmaW50ZWxfZHAt PmVkcF9ub3RpZmllcik7CiAJCQlpbnRlbF9kcC0+ZWRwX25vdGlmaWVyLm5vdGlmaWVyX2NhbGwg PSBOVUxMOwpAQCAtNDIxMCw2ICs0MjcxLDggQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9z ZXF1ZW5jZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl1MzIgcHBfb24sIHBwX29mZiwgcHBf ZGl2LCBwcDsKIAlpbnQgcHBfY3RybF9yZWcsIHBwX29uX3JlZywgcHBfb2ZmX3JlZywgcHBfZGl2 X3JlZzsKIAorCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJ aWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewogCQlwcF9jdHJsX3JlZyA9IFBDSF9QUF9DT05UUk9M OwogCQlwcF9vbl9yZWcgPSBQQ0hfUFBfT05fREVMQVlTOwpAQCAtNDMxMSw2ICs0Mzc0LDggQEAg aW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJaW50IHBwX29uX3JlZywgcHBfb2ZmX3JlZywgcHBfZGl2X3JlZzsKIAll bnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKIAorCWxvY2tk ZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaWYgKEhBU19QQ0hfU1BM SVQoZGV2KSkgewogCQlwcF9vbl9yZWcgPSBQQ0hfUFBfT05fREVMQVlTOwogCQlwcF9vZmZfcmVn ID0gUENIX1BQX09GRl9ERUxBWVM7CkBAIC00NTAzLDkgKzQ1NjgsMTEgQEAgdm9pZCBpbnRlbF9l ZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy KQogCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCiAJCXJldHVy bjsKIAorCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCiAJaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmludGVsX2VuY29kZXItPmJhc2UpOwogCWlmICghZWRwX2hhdmVfcGFu ZWxfdmRkKGludGVsX2RwKSkKLQkJcmV0dXJuOworCQlnb3RvIG91dDsKIAkvKgogCSAqIFRoZSBW REQgYml0IG5lZWRzIGEgcG93ZXIgZG9tYWluIHJlZmVyZW5jZSwgc28gaWYgdGhlIGJpdCBpcwog CSAqIGFscmVhZHkgZW5hYmxlZCB3aGVuIHdlIGJvb3Qgb3IgcmVzdW1lLCBncmFiIHRoaXMgcmVm ZXJlbmNlIGFuZApAQCAtNDUxNyw2ICs0NTg0LDggQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRk X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogCWludGVsX2Rp c3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwogCiAJZWRwX3BhbmVsX3Zk ZF9zY2hlZHVsZV9vZmYoaW50ZWxfZHApOworIG91dDoKKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5wcHNfbXV0ZXgpOwogfQogCiBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKQEAgLTQ1NTgsNyArNDYyNyw5IEBAIHN0YXRpYyBi b29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAog CX0KIAogCS8qIFdlIG5vdyBrbm93IGl0J3Mgbm90IGEgZ2hvc3QsIGluaXQgcG93ZXIgc2VxdWVu Y2UgcmVncy4gKi8KKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIAlpbnRlbF9k cF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoZGV2LCBpbnRlbF9kcCwgcG93 ZXJfc2VxKTsKKwltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCiAJbXV0ZXhf bG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAJZWRpZCA9IGRybV9nZXRfZWRpZChjb25u ZWN0b3IsICZpbnRlbF9kcC0+YXV4LmRkYyk7CkBAIC00NjkwLDggKzQ3NjEsMTAgQEAgaW50ZWxf ZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQsCiAJfQogCiAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKKwkJbXV0ZXhfbG9jaygmZGV2X3By aXYtPnBwc19tdXRleCk7CiAJCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfdGltZXN0YW1wcyhp bnRlbF9kcCk7CiAJCWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKGRldiwgaW50 ZWxfZHAsICZwb3dlcl9zZXEpOworCQltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgp OwogCX0KIAogCWludGVsX2RwX2F1eF9pbml0KGludGVsX2RwLCBpbnRlbF9jb25uZWN0b3IpOwpA QCAtNDcwNyw5ICs0NzgwLDkgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCWRybV9kcF9hdXhfdW5yZWdpc3Rlcigm aW50ZWxfZHAtPmF1eCk7CiAJCWlmIChpc19lZHAoaW50ZWxfZHApKSB7CiAJCQljYW5jZWxfZGVs YXllZF93b3JrX3N5bmMoJmludGVsX2RwLT5wYW5lbF92ZGRfd29yayk7Ci0JCQlkcm1fbW9kZXNl dF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOworCQkJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJCQllZHBfcGFuZWxfdmRkX29mZl9zeW5j KGludGVsX2RwKTsKLQkJCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25u ZWN0aW9uX211dGV4KTsKKwkJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAJ CX0KIAkJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7CiAJCWRybV9jb25uZWN0 b3JfY2xlYW51cChjb25uZWN0b3IpOwotLSAKMS44LjUuNQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK