From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2 10.1/14] drm/i915: Reset power sequencer pipe tracking when disp2d is off Date: Fri, 22 Aug 2014 17:21:50 +0300 Message-ID: <1408717310-20535-1-git-send-email-ville.syrjala@linux.intel.com> References: <1408470329-11990-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 mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id 250C56E05A for ; Fri, 22 Aug 2014 07:22:14 -0700 (PDT) In-Reply-To: <1408470329-11990-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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBwb3dlciBzZXF1ZW5jZXIgbG9zZXMgaXRzIHN0YXRlIHdoZW4gdGhlIGRpc3AyZCBwb3dlciB3 ZWxsIGlzIGRvd24uCkNsZWFyIHRoZSBkZXZfcHJpdi0+cHBzX3BpcGUgdHJhY2tpbmcgc28gdGhh dCB0aGUgcG93ZXIgc2VxdWVuY2VyIHN0YXRlCmdldHMgcmVpbml0aWFsaXplZCB0aGUgbmV4dCB0 aW1lIGl0J3MgbmVlZGVkLgoKdjI6IEZpeCB0aGUgcHBzX211dGV4IHZzLiBwb3dlcl9kb21haW4g bXV0ZXggZGVhZGxvY2sgYnkgdGFraW5nIHBvd2VyCiAgICBkb21haW4gcmVmZXJlbmNlIGZpcnN0 CgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgotLS0KSW1yZSBub3RpY2VkIG15IHByZXZpb3V5cyBhdHRlbXB0IHdhcyB1dHRlciBn YXJiYWdlLiBMZXQncyB0cnkgYWdhaW4uIEFnYWluIG1heWJlCndlIHdhbnQgdG8gc3F1YXNoIHdp dGggMTAvMTQgb3IgYXQgbGVhc3QgbW92ZSB0aGUgZWRwX3Bwc197bG9jayx1bmxvY2t9KCkgaW50 cm9kdWN0aW9uCnRoZXJlIHRvIGF2b2lkIGNodXJuLgoKVGhlIGFsdGVybmF0aXZlIG9mIHRyeWlu ZyB0byBwbHVtYiBhbGwgdGhlIHBvd2VyIGRvbWFpbiBjYWxscyBvdXQgZnJvbSB1bmRlcgpwcHNf bXV0ZXggc2VlbWVkIGEgYml0IHRvbyBuYXN0eSB0byBtZSwgc28gSSBvcHRlZCBmb3IgdGhpcyBh cHByb2FjaCBpbnN0ZWFkLgoKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgMTU3 ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u YyAgfCAgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggZDZmZTFhMi4uMzQ2ODMxNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC0zODksNiArMzg5LDY3IEBAIHZsdl9pbml0aWFsX3Bv d2VyX3NlcXVlbmNlcl9zZXR1cChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCQkJCQkJICAg ICAgJnBvd2VyX3NlcSk7CiB9CiAKK3ZvaWQgdmx2X3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGRldl9wcml2LT5kZXY7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CisKKwlp ZiAoV0FSTl9PTighSVNfVkFMTEVZVklFVyhkZXYpKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBX ZSBjYW4ndCBncmFiIHBwc19tdXRleCBoZXJlIGR1ZSB0byBkZWFkbG9jayB3aXRoIHBvd2VyX2Rv bWFpbgorCSAqIG11dGV4IHdoZW4gcG93ZXJfZG9tYWluIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHdo aWxlIGhvbGRpbmcgcHBzX211dGV4LgorCSAqIFRoYXQgYWxzbyBtZWFucyB0aGF0IGluIG9yZGVy IHRvIHVzZSBwcHNfcGlwZSB0aGUgY29kZSBuZWVkcyB0bworCSAqIGhvbGQgYm90aCBhIHBvd2Vy IGRvbWFpbiByZWZlcmVuY2UgYW5kIHBwc19tdXRleCwgYW5kIHRoZSBwb3dlciBkb21haW4KKwkg KiByZWZlcmVuY2UgZ2V0L3B1dCBtdXN0IGJlIGRvbmUgd2hpbGUgX25vdF8gaG9sZGluZyBwcHNf bXV0ZXguCisJICogZWRwX3Bwc197bG9jayx1bmxvY2t9KCkgZG8gdGhlc2Ugc3RlcHMgaW4gdGhl IGNvcnJlY3Qgb3JkZXIsIHNvIG9uZQorCSAqIHNob3VsZCB1c2UgdGhlbSBhbHdheXMuCisJICov CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVuY29kZXIsICZkZXYtPm1vZGVfY29uZmlnLmVuY29k ZXJfbGlzdCwgYmFzZS5oZWFkKSB7CisJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7CisKKwkJ aWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKKwkJCWNvbnRpbnVlOworCisJ CWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKKwkJaW50ZWxfZHAt PnBwc19waXBlID0gSU5WQUxJRF9QSVBFOworCX0KK30KKworc3RhdGljIHZvaWQgZWRwX3Bwc19s b2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CisJc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7CisJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47CisKKwkvKgorCSAqIFNlZSB2bHZfcG93ZXJfc2Vx dWVuY2VyX3Jlc2V0KCkgd2h5IHdlIG5lZWQKKwkgKiBhIHBvd2VyIGRvbWFpbiByZWZlcmVuY2Ug aGVyZS4KKwkgKi8KKwlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9t YWluKGVuY29kZXIpOworCWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBwb3dlcl9k b21haW4pOworCisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7Cit9CisKK3N0YXRp YyB2b2lkIGVkcF9wcHNfdW5sb2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCit7CisJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChp bnRlbF9kcCk7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3Bv cnQtPmJhc2U7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJ ZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBwb3dlcl9kb21haW47CisKKwltdXRleF91 bmxvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCisJcG93ZXJfZG9tYWluID0gaW50ZWxfZGlz cGxheV9wb3J0X3Bvd2VyX2RvbWFpbihlbmNvZGVyKTsKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1 dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKK30KKwogc3RhdGljIHUzMiBfcHBfY3RybF9yZWco c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKQEAgLTQyNSw3ICs0ODYsNyBAQCBzdGF0aWMgaW50 IGVkcF9ub3RpZnlfaGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVk IGxvbmcgY29kZSwKIAlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSB8fCAhaXNfZWRwKGludGVsX2Rw KSB8fCBjb2RlICE9IFNZU19SRVNUQVJUKQogCQlyZXR1cm4gMDsKIAotCW11dGV4X2xvY2soJmRl dl9wcml2LT5wcHNfbXV0ZXgpOworCWVkcF9wcHNfbG9jayhpbnRlbF9kcCk7CiAKIAlwaXBlID0g dmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKGludGVsX2RwKTsKIApAQCAtNDM5LDcgKzUwMCw3IEBA IHN0YXRpYyBpbnQgZWRwX25vdGlmeV9oYW5kbGVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhp cywgdW5zaWduZWQgbG9uZyBjb2RlLAogCUk5MTVfV1JJVEUocHBfY3RybF9yZWcsIFBBTkVMX1VO TE9DS19SRUdTIHwgUEFORUxfUE9XRVJfT0ZGKTsKIAltc2xlZXAoaW50ZWxfZHAtPnBhbmVsX3Bv d2VyX2N5Y2xlX2RlbGF5KTsKIAotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7 CisJZWRwX3Bwc191bmxvY2soaW50ZWxfZHApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC00NTgsMTcg KzUxOSwxMyBAQCBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF92ZGQoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwotCWVudW0gaW50ZWxfZGlzcGxheV9wb3dl cl9kb21haW4gcG93ZXJfZG9tYWluOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYt PnBwc19tdXRleCk7CiAKLQlwb3dlcl9kb21haW4gPSBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJf ZG9tYWluKGludGVsX2VuY29kZXIpOwotCXJldHVybiBpbnRlbF9kaXNwbGF5X3Bvd2VyX2VuYWJs ZWQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbikgJiYKLQkgICAgICAgKEk5MTVfUkVBRChfcHBfY3Ry bF9yZWcoaW50ZWxfZHApKSAmIEVEUF9GT1JDRV9WREQpICE9IDA7CisJcmV0dXJuIEk5MTVfUkVB RChfcHBfY3RybF9yZWcoaW50ZWxfZHApKSAmIEVEUF9GT1JDRV9WREQ7CiB9CiAKKwogc3RhdGlj IHZvaWQKIGludGVsX2RwX2NoZWNrX2VkcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewpA QCAtNjE0LDcgKzY3MSw3IEBAIGludGVsX2RwX2F1eF9jaChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAogCWJvb2wgaGFzX2F1eF9pcnEgPSBIQVNfQVVYX0lSUShkZXYpOwogCWJvb2wgdmRkOwog Ci0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJZWRwX3Bwc19sb2NrKGludGVs X2RwKTsKIAogCS8qCiAJICogV2Ugd2lsbCBiZSBjYWxsZWQgd2l0aCBWREQgYWxyZWFkeSBlbmFi bGVkIGZvciBkcGNkL2VkaWQvb3VpIHJlYWRzLgpAQCAtNzMxLDcgKzc4OCw3IEBAIG91dDoKIAlp ZiAodmRkKQogCQllZHBfcGFuZWxfdmRkX29mZihpbnRlbF9kcCwgZmFsc2UpOwogCi0JbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX3VubG9jayhpbnRlbF9kcCk7 CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTMxMiwxNiArMTM2OSwxNCBAQCBzdGF0aWMgYm9vbCBl ZHBfcGFuZWxfdmRkX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAKIHZvaWQgaW50ZWxf ZWRwX3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCWludGVsX2RwX3RvX2RldihpbnRlbF9kcCkt PmRldl9wcml2YXRlOwogCWJvb2wgdmRkOwogCiAJaWYgKCFpc19lZHAoaW50ZWxfZHApKQogCQly ZXR1cm47CiAKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX2xv Y2soaW50ZWxfZHApOwogCXZkZCA9IGVkcF9wYW5lbF92ZGRfb24oaW50ZWxfZHApOwotCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJZWRwX3Bwc191bmxvY2soaW50ZWxfZHAp OwogCiAJV0FSTighdmRkLCAiZURQIFZERCBhbHJlYWR5IHJlcXVlc3RlZCBvblxuIik7CiB9CkBA IC0xMzcwLDEzICsxNDI1LDExIEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIHsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g Y29udGFpbmVyX29mKHRvX2RlbGF5ZWRfd29yayhfX3dvcmspLAogCQkJCQkJIHN0cnVjdCBpbnRl bF9kcCwgcGFuZWxfdmRkX3dvcmspOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9Ci0JCWludGVsX2RwX3RvX2RldihpbnRlbF9kcCktPmRldl9wcml2YXRlOwogCi0JbXV0ZXhf bG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJZWRwX3Bwc19sb2NrKGludGVsX2RwKTsKIAlp ZiAoIWludGVsX2RwLT53YW50X3BhbmVsX3ZkZCkKIAkJZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhp bnRlbF9kcCk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBz X3VubG9jayhpbnRlbF9kcCk7CiB9CiAKIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfc2NoZWR1 bGVfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBAIC0xNDE0LDE1ICsxNDY3LDEyIEBA IHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs IGJvb2wgc3luYykKIAogc3RhdGljIHZvaWQgaW50ZWxfZWRwX3BhbmVsX3ZkZF9vZmYoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgYm9vbCBzeW5jKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9Ci0JCWludGVsX2RwX3RvX2RldihpbnRlbF9kcCktPmRldl9wcml2YXRl OwotCiAJaWYgKCFpc19lZHAoaW50ZWxfZHApKQogCQlyZXR1cm47CiAKLQltdXRleF9sb2NrKCZk ZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX2xvY2soaW50ZWxfZHApOwogCWVkcF9wYW5l bF92ZGRfb2ZmKGludGVsX2RwLCBzeW5jKTsKLQltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNf bXV0ZXgpOworCWVkcF9wcHNfdW5sb2NrKGludGVsX2RwKTsKIH0KIAogdm9pZCBpbnRlbF9lZHBf cGFuZWxfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKQEAgLTE0MzcsNyArMTQ4Nyw3IEBA IHZvaWQgaW50ZWxfZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAKIAlE Uk1fREVCVUdfS01TKCJUdXJuIGVEUCBwb3dlciBvblxuIik7CiAKLQltdXRleF9sb2NrKCZkZXZf cHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX2xvY2soaW50ZWxfZHApOwogCiAJaWYgKGVkcF9o YXZlX3BhbmVsX3Bvd2VyKGludGVsX2RwKSkgewogCQlEUk1fREVCVUdfS01TKCJlRFAgcG93ZXIg YWxyZWFkeSBvblxuIik7CkBAIC0xNDcyLDcgKzE1MjIsNyBAQCB2b2lkIGludGVsX2VkcF9wYW5l bF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCX0KIAogIG91dDoKLQltdXRleF91bmxv Y2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCWVkcF9wcHNfdW5sb2NrKGludGVsX2RwKTsKIH0K IAogdm9pZCBpbnRlbF9lZHBfcGFuZWxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCkBA IC0xNDkwLDcgKzE1NDAsNyBAQCB2b2lkIGludGVsX2VkcF9wYW5lbF9vZmYoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKIAogCURSTV9ERUJVR19LTVMoIlR1cm4gZURQIHBvd2VyIG9mZlxuIik7 CiAKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX2xvY2soaW50 ZWxfZHApOwogCiAJV0FSTighaW50ZWxfZHAtPndhbnRfcGFuZWxfdmRkLCAiTmVlZCBWREQgdG8g dHVybiBvZmYgcGFuZWxcbiIpOwogCkBAIC0xNTE0LDcgKzE1NjQsNyBAQCB2b2lkIGludGVsX2Vk cF9wYW5lbF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlwb3dlcl9kb21haW4gPSBp bnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpOwogCWludGVsX2Rp c3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwogCi0JbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX3VubG9jayhpbnRlbF9kcCk7CiB9CiAK IHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdodF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpA QCAtMTU0MCw3ICsxNTkwLDcgQEAgdm9pZCBpbnRlbF9lZHBfYmFja2xpZ2h0X29uKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCiAJICovCiAJd2FpdF9iYWNrbGlnaHRfb24oaW50ZWxfZHApOwog Ci0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJZWRwX3Bwc19sb2NrKGludGVs X2RwKTsKIAogCXBwID0gaXJvbmxha2VfZ2V0X3BwX2NvbnRyb2woaW50ZWxfZHApOwogCXBwIHw9 IEVEUF9CTENfRU5BQkxFOwpAQCAtMTU1MCw3ICsxNjAwLDcgQEAgdm9pZCBpbnRlbF9lZHBfYmFj a2xpZ2h0X29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJSTkxNV9XUklURShwcF9jdHJs X3JlZywgcHApOwogCVBPU1RJTkdfUkVBRChwcF9jdHJsX3JlZyk7CiAKLQltdXRleF91bmxvY2so JmRldl9wcml2LT5wcHNfbXV0ZXgpOworCWVkcF9wcHNfdW5sb2NrKGludGVsX2RwKTsKIH0KIAog dm9pZCBpbnRlbF9lZHBfYmFja2xpZ2h0X29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpA QCAtMTU2Myw3ICsxNjEzLDcgQEAgdm9pZCBpbnRlbF9lZHBfYmFja2xpZ2h0X29mZihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQogCWlmICghaXNfZWRwKGludGVsX2RwKSkKIAkJcmV0dXJuOwog Ci0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJZWRwX3Bwc19sb2NrKGludGVs X2RwKTsKIAogCURSTV9ERUJVR19LTVMoIlxuIik7CiAJcHAgPSBpcm9ubGFrZV9nZXRfcHBfY29u dHJvbChpbnRlbF9kcCk7CkBAIC0xNTc0LDcgKzE2MjQsNyBAQCB2b2lkIGludGVsX2VkcF9iYWNr bGlnaHRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJSTkxNV9XUklURShwcF9jdHJs X3JlZywgcHApOwogCVBPU1RJTkdfUkVBRChwcF9jdHJsX3JlZyk7CiAKLQltdXRleF91bmxvY2so JmRldl9wcml2LT5wcHNfbXV0ZXgpOworCWVkcF9wcHNfdW5sb2NrKGludGVsX2RwKTsKIAogCWlu dGVsX2RwLT5sYXN0X2JhY2tsaWdodF9vZmYgPSBqaWZmaWVzOwogCWVkcF93YWl0X2JhY2tsaWdo dF9vZmYoaW50ZWxfZHApOwpAQCAtMjI5MCwxOCArMjM0MCwxOSBAQCBzdGF0aWMgdm9pZCB2bHZf c3RlYWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KGVuY29kZXIsICZkZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwgYmFz ZS5oZWFkKSB7CiAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7CisJCWVudW0gcG9ydCBwb3J0 OwogCiAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCiAJCQljb250aW51 ZTsKIAogCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CisJCXBv cnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7CiAKIAkJaWYgKGludGVsX2RwLT5w cHNfcGlwZSAhPSBwaXBlKQogCQkJY29udGludWU7CiAKIAkJRFJNX0RFQlVHX0tNUygic3RlYWxp bmcgcGlwZSAlYyBwb3dlciBzZXF1ZW5jZXIgZnJvbSBwb3J0ICVjXG4iLAotCQkJICAgICAgcGlw ZV9uYW1lKHBpcGUpLAotCQkJICAgICAgcG9ydF9uYW1lKGRwX3RvX2RpZ19wb3J0KGludGVsX2Rw KS0+cG9ydCkpOworCQkJICAgICAgcGlwZV9uYW1lKHBpcGUpLCBwb3J0X25hbWUocG9ydCkpOwog CiAJCS8qIG1ha2Ugc3VyZSB2ZGQgaXMgb2ZmIGJlZm9yZSB3ZSBzdGVhbCBpdCAqLwogCQllZHBf cGFuZWxfdmRkX29mZl9zeW5jKGludGVsX2RwKTsKQEAgLTIzNzcsOSArMjQyOCw5IEBAIHN0YXRp YyB2b2lkIHZsdl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQog CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwaW9fbG9jayk7CiAKIAlpZiAoaXNfZWRwKGludGVs X2RwKSkgewotCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwkJZWRwX3Bwc19s b2NrKGludGVsX2RwKTsKIAkJdmx2X2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKGludGVsX2Rw KTsKLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwkJZWRwX3Bwc191bmxv Y2soaW50ZWxfZHApOwogCX0KIAogCWludGVsX2VuYWJsZV9kcChlbmNvZGVyKTsKQEAgLTI0Nzcs OSArMjUyOCw5IEBAIHN0YXRpYyB2b2lkIGNodl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwaW9fbG9jayk7CiAK IAlpZiAoaXNfZWRwKGludGVsX2RwKSkgewotCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211 dGV4KTsKKwkJZWRwX3Bwc19sb2NrKGludGVsX2RwKTsKIAkJdmx2X2luaXRfcGFuZWxfcG93ZXJf c2VxdWVuY2VyKGludGVsX2RwKTsKLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4 KTsKKwkJZWRwX3Bwc191bmxvY2soaW50ZWxfZHApOwogCX0KIAogCWludGVsX2VuYWJsZV9kcChl bmNvZGVyKTsKQEAgLTQyMTksMTcgKzQyNzAsMTYgQEAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rl c3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwogCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAlkcm1fZHBfYXV4 X3VucmVnaXN0ZXIoJmludGVsX2RwLT5hdXgpOwogCWludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFu dXAoaW50ZWxfZGlnX3BvcnQpOwogCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7CiAJaWYg KGlzX2VkcChpbnRlbF9kcCkpIHsKIAkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZpbnRlbF9k cC0+cGFuZWxfdmRkX3dvcmspOwotCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsK KwkJZWRwX3Bwc19sb2NrKGludGVsX2RwKTsKIAkJZWRwX3BhbmVsX3ZkZF9vZmZfc3luYyhpbnRl bF9kcCk7Ci0JCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJCWVkcF9wcHNf dW5sb2NrKGludGVsX2RwKTsKKwogCQlpZiAoaW50ZWxfZHAtPmVkcF9ub3RpZmllci5ub3RpZmll cl9jYWxsKSB7CiAJCQl1bnJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmaW50ZWxfZHAtPmVkcF9u b3RpZmllcik7CiAJCQlpbnRlbF9kcC0+ZWRwX25vdGlmaWVyLm5vdGlmaWVyX2NhbGwgPSBOVUxM OwpAQCAtNDI0MSwxNSArNDI5MSwxMyBAQCB2b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiBzdGF0aWMgdm9pZCBpbnRlbF9kcF9lbmNvZGVy X3N1c3BlbmQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCiB7CiAJc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmaW50ZWxfZW5jb2Rlci0+YmFz ZSk7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAogCWlmICghaXNfZWRwKGludGVsX2RwKSkKIAkJcmV0dXJuOwogCi0JbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPnBwc19tdXRleCk7CisJZWRwX3Bwc19sb2NrKGludGVsX2RwKTsKIAllZHBfcGFuZWxf dmRkX29mZl9zeW5jKGludGVsX2RwKTsKLQltdXRleF91bmxvY2soJmRldl9wcml2LT5wcHNfbXV0 ZXgpOworCWVkcF9wcHNfdW5sb2NrKGludGVsX2RwKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxf ZHBfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCkBAIC00NzI3LDkg KzQ3NzUsMTAgQEAgdm9pZCBpbnRlbF9lZHBfcGFuZWxfdmRkX3Nhbml0aXplKHN0cnVjdCBpbnRl bF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElO VEVMX09VVFBVVF9FRFApCiAJCXJldHVybjsKIAotCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNf bXV0ZXgpOwotCiAJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmludGVsX2VuY29kZXItPmJh c2UpOworCisJZWRwX3Bwc19sb2NrKGludGVsX2RwKTsKKwogCWlmICghZWRwX2hhdmVfcGFuZWxf dmRkKGludGVsX2RwKSkKIAkJZ290byBvdXQ7CiAJLyoKQEAgLTQ3NDQsNyArNDc5Myw3IEBAIHZv aWQgaW50ZWxfZWRwX3BhbmVsX3ZkZF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlcikKIAogCWVkcF9wYW5lbF92ZGRfc2NoZWR1bGVfb2ZmKGludGVsX2RwKTsKICBv dXQ6Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKKwllZHBfcHBzX3VubG9j ayhpbnRlbF9kcCk7CiB9CiAKIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3Rvcihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLApAQCAtNDc4Niw5ICs0ODM1LDkgQEAgc3RhdGljIGJv b2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJ fQogCiAJLyogV2Ugbm93IGtub3cgaXQncyBub3QgYSBnaG9zdCwgaW5pdCBwb3dlciBzZXF1ZW5j ZSByZWdzLiAqLwotCW11dGV4X2xvY2soJmRldl9wcml2LT5wcHNfbXV0ZXgpOworCWVkcF9wcHNf bG9jayhpbnRlbF9kcCk7CiAJaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVn aXN0ZXJzKGRldiwgaW50ZWxfZHAsIHBvd2VyX3NlcSk7Ci0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+cHBzX211dGV4KTsKKwllZHBfcHBzX3VubG9jayhpbnRlbF9kcCk7CiAKIAltdXRleF9sb2Nr KCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKIAllZGlkID0gZHJtX2dldF9lZGlkKGNvbm5lY3Rv ciwgJmludGVsX2RwLT5hdXguZGRjKTsKQEAgLTQ5MjIsMTQgKzQ5NzEsMTQgQEAgaW50ZWxfZHBf aW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQs CiAJfQogCiAJaWYgKGlzX2VkcChpbnRlbF9kcCkpIHsKLQkJbXV0ZXhfbG9jaygmZGV2X3ByaXYt PnBwc19tdXRleCk7CisJCWVkcF9wcHNfbG9jayhpbnRlbF9kcCk7CiAJCWlmIChJU19WQUxMRVlW SUVXKGRldikpIHsKIAkJCXZsdl9pbml0aWFsX3Bvd2VyX3NlcXVlbmNlcl9zZXR1cChpbnRlbF9k cCk7CiAJCX0gZWxzZSB7CiAJCQlpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3RpbWVzdGFtcHMo aW50ZWxfZHApOwogCQkJaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXIoZGV2LCBp bnRlbF9kcCwgJnBvd2VyX3NlcSk7CiAJCX0KLQkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBz X211dGV4KTsKKwkJZWRwX3Bwc191bmxvY2soaW50ZWxfZHApOwogCX0KIAogCWludGVsX2RwX2F1 eF9pbml0KGludGVsX2RwLCBpbnRlbF9jb25uZWN0b3IpOwpAQCAtNDk0NSw5ICs0OTk0LDkgQEAg aW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQsCiAJCWRybV9kcF9hdXhfdW5yZWdpc3RlcigmaW50ZWxfZHAtPmF1eCk7CiAJCWlm IChpc19lZHAoaW50ZWxfZHApKSB7CiAJCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmludGVs X2RwLT5wYW5lbF92ZGRfd29yayk7Ci0JCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4 KTsKKwkJCWVkcF9wcHNfbG9jayhpbnRlbF9kcCk7CiAJCQllZHBfcGFuZWxfdmRkX29mZl9zeW5j KGludGVsX2RwKTsKLQkJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnBwc19tdXRleCk7CisJCQll ZHBfcHBzX3VubG9jayhpbnRlbF9kcCk7CiAJCX0KIAkJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVy KGNvbm5lY3Rvcik7CiAJCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25uZWN0b3IpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAppbmRleCA4NDlhNDQ3Li4zMjYyN2FlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaApAQCAtOTQzLDYgKzk0Myw3IEBAIHZvaWQgaW50ZWxfZHBfbXN0X3N1c3BlbmQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGludGVsX2RwX21zdF9yZXN1bWUoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CiBpbnQgaW50ZWxfZHBfbWF4X2xpbmtfYncoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCk7CiB2b2lkIGludGVsX2RwX2hvdF9wbHVnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyKTsKK3ZvaWQgdmx2X3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogLyogaW50ZWxfZHBfbXN0LmMgKi8KIGlu dCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7CiB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2Ns ZWFudXAoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKaW5kZXggMzlkZDA2Ni4uZDVmZmRhOSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCkBAIC02MzI4LDYgKzYzMjgsOCBAQCBzdGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dl cl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXNwaW5f dW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAogCXZsdl9zZXRfcG93ZXJfd2VsbChk ZXZfcHJpdiwgcG93ZXJfd2VsbCwgZmFsc2UpOworCisJdmx2X3Bvd2VyX3NlcXVlbmNlcl9yZXNl dChkZXZfcHJpdik7CiB9CiAKIHN0YXRpYyB2b2lkIHZsdl9kcGlvX2Ntbl9wb3dlcl93ZWxsX2Vu YWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0tIAoxLjguNS41CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=