From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/3] drm/i915: Do not acquire crtc state to check clock during modeset, v2. Date: Tue, 27 Oct 2015 14:26:31 +0100 Message-ID: <1445952393-25283-1-git-send-email-maarten.lankhorst@linux.intel.com> References: <1445514996-18733-3-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 751206EADC for ; Tue, 27 Oct 2015 06:26:39 -0700 (PDT) In-Reply-To: <1445514996-18733-3-git-send-email-maarten.lankhorst@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 UGFyYWxsZWwgbW9kZXNldHMgYXJlIHN0aWxsIG5vdCBhbGxvd2VkLCBidXQgdGhpcyB3aWxsIGFs bG93IHVwZGF0aW5nCmEgZGlmZmVyZW50IGNydGMgZHVyaW5nIGEgbW9kZXNldCBpZiB0aGUgY2xv Y2sgaXMgbm90IGNoYW5nZWQuCgpBZGRpdGlvbmFsbHkgd2hlbiBhbGwgcGlwZXMgYXJlIERQTVMg b2ZmIHRoZSBjZGNsayB3aWxsIGJlIGxvd2VyZWQKdG8gdGhlIG1pbmltdW0gYWxsb3dlZC4KCkNo YW5nZXMgc2luY2UgdjE6Ci0gQWRkIGRldl9wcml2LT5hY3RpdmVfY3J0Y3MgZm9yIHRyYWNraW5n IHdoaWNoIGNydGNzIGFyZSBhY3RpdmUuCi0gUmVuYW1lIG1pbl9jZGNsayB0byBtaW5fcGl4Y2xr IGFuZCBtb3ZlIHRvIGRldl9wcml2LgotIEFkZCBhIGFjdGl2ZV9jcnRjcyBtYXNrIHdoaWNoIGlz IHVwZGF0ZWQgYXRvbWljYWxseS4KLSBBZGQgaW50ZWxfYXRvbWljX3N0YXRlLT5tb2Rlc2V0IHdo aWNoIGlzIHNldCBvbiBtb2Rlc2V0cy4KLSBDb21taXQgbmV3IHBpeGNsay9hY3RpdmVfY3J0Y3Mg cmlnaHQgYWZ0ZXIgc3RhdGUgc3dhcC4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICA1ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdG9taWMuYyAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyB8IDE2MCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICA3ICstCiA0IGZpbGVzIGNoYW5nZWQsIDEyNSBp bnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCA1OWM5NDkyOWYyNWIuLjM3ZWVmODZlNGEwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC0xODM3LDggKzE4MzcsMTMgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBp bnRlbF9waXBlX2NyYyBwaXBlX2NyY1tJOTE1X01BWF9QSVBFU107CiAjZW5kaWYKIAorCS8qIGRw bGwgYW5kIGNkY2xrIHN0YXRlIGlzIHByb3RlY3RlZCBieSBjb25uZWN0aW9uX211dGV4ICovCiAJ aW50IG51bV9zaGFyZWRfZHBsbDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgc2hhcmVkX2Rw bGxzW0k5MTVfTlVNX1BMTFNdOworCisJdW5zaWduZWQgaW50IGFjdGl2ZV9jcnRjczsKKwl1bnNp Z25lZCBpbnQgbWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107CisKIAlpbnQgZHBpb19waHlfaW9z Zl9wb3J0W0k5MTVfTlVNX1BIWVNfVkxWXTsKIAogCXN0cnVjdCBpOTE1X3dvcmthcm91bmRzIHdv cmthcm91bmRzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWlj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCAyNWE4OTFhYTM4 MjQuLmNiOGZjZjRmZTdmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAgLTMw NSw1ICszMDUsNSBAQCB2b2lkIGludGVsX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqcykKIHsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRv X2ludGVsX2F0b21pY19zdGF0ZShzKTsKIAlkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfY2xlYXIo JnN0YXRlLT5iYXNlKTsKLQlzdGF0ZS0+ZHBsbF9zZXQgPSBmYWxzZTsKKwlzdGF0ZS0+ZHBsbF9z ZXQgPSBzdGF0ZS0+bW9kZXNldCA9IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCmluZGV4IDAyMmU2MjhiODUyMC4uYTA1MDhkNWU5ZTEzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCkBAIC01MjM3LDYgKzUyMzcsNyBAQCBzdGF0aWMgdm9pZCBtb2Rl c2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAogc3RhdGljIHZvaWQgbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpp bnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1bnNpZ25lZCBsb25nIHB1dF9kb21haW5zW0k5MTVf TUFYX1BJUEVTXSA9IHt9OwpAQCAtNTI0NSwxMyArNTI0NiwxOCBAQCBzdGF0aWMgdm9pZCBtb2Rl c2V0X3VwZGF0ZV9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQogCWludCBpOwogCiAJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0 Y19zdGF0ZSwgaSkgewotCQlpZiAobmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCi0JCQlwdXRf ZG9tYWluc1t0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlXSA9Ci0JCQkJbW9kZXNldF9nZXRfY3J0 Y19wb3dlcl9kb21haW5zKGNydGMpOworCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 CisJCQl0b19pbnRlbF9jcnRjKGNydGMpOworCQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7CisKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKKwkJCWNvbnRpbnVl OworCisJCXB1dF9kb21haW5zW3BpcGVdID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5z KGNydGMpOwogCX0KIAogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNs aykgewotCQl1bnNpZ25lZCBpbnQgY2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp LT5jZGNsazsKKwkJdW5zaWduZWQgaW50IGNkY2xrID0gaW50ZWxfc3RhdGUtPmNkY2xrOwogCiAJ CWlmIChjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSAmJgogCQkgICAgIVdBUk5fT04oIXN0 YXRlLT5hbGxvd19tb2Rlc2V0KSkKQEAgLTU5MzgsMjMgKzU5NDQsMzIgQEAgc3RhdGljIGludCBi cm94dG9uX2NhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3Rh dGljIGludCBpbnRlbF9tb2RlX21heF9waXhjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwotCWlu dCBtYXhfcGl4Y2xrID0gMDsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7 CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXVuc2lnbmVkIG1heF9waXhl bF9yYXRlID0gMCwgaTsKKwllbnVtIHBpcGUgcGlwZTsKIAotCWZvcl9lYWNoX2ludGVsX2NydGMo ZGV2LCBpbnRlbF9jcnRjKSB7Ci0JCWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNf c3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwotCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQotCQkJ cmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7CisJbWVtY3B5KGludGVsX3N0YXRlLT5taW5fcGl4 Y2xrLCBkZXZfcHJpdi0+bWluX3BpeGNsaywKKwkgICAgICAgc2l6ZW9mKGludGVsX3N0YXRlLT5t aW5fcGl4Y2xrKSk7CiAKLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKLQkJCWNvbnRp bnVlOworCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkp IHsKKwkJaW50IHBpeGNsayA9IDA7CiAKLQkJbWF4X3BpeGNsayA9IG1heChtYXhfcGl4Y2xrLAot CQkJCSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayk7CisJCWlmIChj cnRjX3N0YXRlLT5lbmFibGUpCisJCQlwaXhjbGsgPSBjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2s7CisKKwkJaW50ZWxfc3RhdGUtPm1pbl9waXhjbGtbaV0gPSBwaXhjbGs7CiAJ fQogCi0JcmV0dXJuIG1heF9waXhjbGs7CisJaWYgKCFpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNz KQorCQlyZXR1cm4gMDsKKworCWZvcl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpCisJCW1heF9w aXhlbF9yYXRlID0gbWF4KGludGVsX3N0YXRlLT5taW5fcGl4Y2xrW3BpcGVdLCBtYXhfcGl4ZWxf cmF0ZSk7CisKKwlyZXR1cm4gbWF4X3BpeGVsX3JhdGU7CiB9CiAKIHN0YXRpYyBpbnQgdmFsbGV5 dmlld19tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQpA QCAtNjI1NSw2ICs2MjcwLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19kaXNhYmxlX25vYXRv bWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlmb3JfZWFjaF9wb3dlcl9kb21haW4oZG9tYWlu LCBkb21haW5zKQogCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgZG9tYWluKTsK IAlpbnRlbF9jcnRjLT5lbmFibGVkX3Bvd2VyX2RvbWFpbnMgPSAwOworCisJZGV2X3ByaXYtPmFj dGl2ZV9jcnRjcyAmPSB+KDEgPDwgaW50ZWxfY3J0Yy0+cGlwZSk7CisJZGV2X3ByaXYtPm1pbl9w aXhjbGtbaW50ZWxfY3J0Yy0+cGlwZV0gPSAwOwogfQogCiAvKgpAQCAtOTQ5MCwyOSArOTUwOCwz OSBAQCBzdGF0aWMgdm9pZCBicm94dG9uX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiAvKiBjb21wdXRlIHRoZSBtYXggcmF0ZSBmb3IgbmV3 IGNvbmZpZ3VyYXRpb24gKi8KIHN0YXRpYyBpbnQgaWxrX21heF9waXhlbF9yYXRlKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YzsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlpbnQgbWF4X3BpeGVs X3JhdGUgPSAwOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9f aW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBzdGF0ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7 CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXVuc2lnbmVkIG1heF9waXhl bF9yYXRlID0gMCwgaTsKKwllbnVtIHBpcGUgcGlwZTsKIAotCWZvcl9lYWNoX2ludGVsX2NydGMo c3RhdGUtPmRldiwgaW50ZWxfY3J0YykgewotCQlpbnQgcGl4ZWxfcmF0ZTsKKwltZW1jcHkoaW50 ZWxfc3RhdGUtPm1pbl9waXhjbGssIGRldl9wcml2LT5taW5fcGl4Y2xrLAorCSAgICAgICBzaXpl b2YoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGspKTsKIAotCQljcnRjX3N0YXRlID0gaW50ZWxfYXRv bWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKLQkJaWYgKElTX0VSUihjcnRj X3N0YXRlKSkKLQkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOworCWZvcl9lYWNoX2NydGNf aW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJaW50IHBpeGNsayA9IDA7 CiAKLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKLQkJCWNvbnRpbnVlOworCQlpZiAo Y3J0Y19zdGF0ZS0+ZW5hYmxlKSB7CisJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxf Y3J0Y19zdGF0ZSA9CisJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKIAotCQlw aXhlbF9yYXRlID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKKwkJCXBpeGNsayA9 IGlsa19waXBlX3BpeGVsX3JhdGUoaW50ZWxfY3J0Y19zdGF0ZSk7CiAKLQkJLyogcGl4ZWwgcmF0 ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24gQkRXICovCi0JCWlmIChJ U19CUk9BRFdFTEwoc3RhdGUtPmRldikgJiYgY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCi0JCQlw aXhlbF9yYXRlID0gRElWX1JPVU5EX1VQKHBpeGVsX3JhdGUgKiAxMDAsIDk1KTsKKwkJCS8qIHBp eGVsIHJhdGUgbXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdpdGggSVBTIG9uIEJEVyAqLwor CQkJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgJiYgaW50ZWxfY3J0Y19zdGF0ZS0+aXBzX2Vu YWJsZWQpCisJCQkJcGl4Y2xrID0gRElWX1JPVU5EX1VQKHBpeGNsayAqIDEwMCwgOTUpOworCQl9 CiAKLQkJbWF4X3BpeGVsX3JhdGUgPSBtYXgobWF4X3BpeGVsX3JhdGUsIHBpeGVsX3JhdGUpOwor CQlpbnRlbF9zdGF0ZS0+bWluX3BpeGNsa1tpXSA9IHBpeGNsazsKIAl9CiAKKwlpZiAoIWludGVs X3N0YXRlLT5hY3RpdmVfY3J0Y3MpCisJCXJldHVybiAwOworCisJZm9yX2VhY2hfcGlwZShkZXZf cHJpdiwgcGlwZSkKKwkJbWF4X3BpeGVsX3JhdGUgPSBtYXgoaW50ZWxfc3RhdGUtPm1pbl9waXhj bGtbcGlwZV0sIG1heF9waXhlbF9yYXRlKTsKKwogCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKIH0K IApAQCAtMTI5NzcsMTUgKzEzMDA1LDI3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxf cGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiBzdGF0aWMgaW50IGludGVs X21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWludCByZXQ7CisJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0YXRlLT5kZXYtPmRldl9w cml2YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGU7CisJaW50IHJldCA9IDAsIGk7CiAKIAlpZiAoIWNoZWNrX2RpZ2l0YWxfcG9y dF9jb25mbGljdHMoc3RhdGUpKSB7CiAJCURSTV9ERUJVR19LTVMoInJlamVjdGluZyBjb25mbGlj dGluZyBkaWdpdGFsIHBvcnQgY29uZmlndXJhdGlvblxuIik7CiAJCXJldHVybiAtRUlOVkFMOwog CX0KIAorCWludGVsX3N0YXRlLT5tb2Rlc2V0ID0gdHJ1ZTsKKwlpbnRlbF9zdGF0ZS0+YWN0aXZl X2NydGNzID0gZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKKworCWZvcl9lYWNoX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKKwkJaWYgKGNydGNfc3RhdGUtPmFjdGl2 ZSkKKwkJCWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBpOworCQllbHNlCisJCQlp bnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzICY9IH4oMSA8PCBpKTsKKwl9CisKIAkvKgogCSAqIFNl ZSBpZiB0aGUgY29uZmlnIHJlcXVpcmVzIGFueSBhZGRpdGlvbmFsIHByZXBhcmF0aW9uLCBlLmcu CiAJICogdG8gYWRqdXN0IGdsb2JhbCBzdGF0ZSB3aXRoIHBpcGVzIG9mZi4gIFdlIG5lZWQgdG8g ZG8gdGhpcwpAQCAtMTMwMDksNyArMTMwNDksNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRf Y2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCWludGVsX21vZGVzZXRf Y2xlYXJfcGxscyhzdGF0ZSk7CiAKLQlpZiAoSVNfSEFTV0VMTChkZXYpKQorCWlmIChJU19IQVNX RUxMKGRldl9wcml2KSkKIAkJcmV0dXJuIGhhc3dlbGxfbW9kZV9zZXRfcGxhbmVzX3dvcmthcm91 bmQoc3RhdGUpOwogCiAJcmV0dXJuIDA7CkBAIC0xMzE3OSwxMiArMTMyMTksMTMgQEAgc3RhdGlj IGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgICAg ICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJICAgICAgIGJvb2wgYXN5bmMp CiB7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9h dG9taWNfc3RhdGUoc3RhdGUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwog CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgaTsKLQlib29sIGFu eV9tcyA9IGZhbHNlOworCWJvb2wgaHdfY2hlY2sgPSBpbnRlbF9zdGF0ZS0+bW9kZXNldDsKIAog CXJldCA9IGludGVsX2F0b21pY19wcmVwYXJlX2NvbW1pdChkZXYsIHN0YXRlLCBhc3luYyk7CiAJ aWYgKHJldCkgewpAQCAtMTMxOTQsMTMgKzEzMjM1LDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRv bWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJZHJtX2F0b21pY19oZWxwZXJf c3dhcF9zdGF0ZShkZXYsIHN0YXRlKTsKIAorCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkgewor CQltZW1jcHkoZGV2X3ByaXYtPm1pbl9waXhjbGssIGludGVsX3N0YXRlLT5taW5fcGl4Y2xrLAor CQkgICAgICAgc2l6ZW9mKGludGVsX3N0YXRlLT5taW5fcGl4Y2xrKSk7CisJCWRldl9wcml2LT5h Y3RpdmVfY3J0Y3MgPSBpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzOworCX0KKwogCWZvcl9lYWNo X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKIAkJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCiAJCWlmICghbmVl ZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCiAJCQljb250aW51ZTsKIAotCQlhbnlfbXMgPSB0cnVl OwogCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwogCiAJCWlmIChjcnRjX3N0 YXRlLT5hY3RpdmUpIHsKQEAgLTEzMjE1LDcgKzEzMjYxLDcgQEAgc3RhdGljIGludCBpbnRlbF9h dG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJICogdXBkYXRlIHRoZSB0aGUg b3V0cHV0IGNvbmZpZ3VyYXRpb24uICovCiAJaW50ZWxfbW9kZXNldF91cGRhdGVfY3J0Y19zdGF0 ZShzdGF0ZSk7CiAKLQlpZiAoYW55X21zKSB7CisJaWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KSB7 CiAJCWludGVsX3NoYXJlZF9kcGxsX2NvbW1pdChzdGF0ZSk7CiAKIAkJZHJtX2F0b21pY19oZWxw ZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKHN0YXRlLT5kZXYsIHN0YXRlKTsKQEAgLTEz MjM5LDcgKzEzMjg1LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQlwdXRfZG9tYWlucyA9IG1vZGVzZXRfZ2V0X2NydGNfcG93ZXJf ZG9tYWlucyhjcnRjKTsKIAogCQkJLyogbWFrZSBzdXJlIGludGVsX21vZGVzZXRfY2hlY2tfc3Rh dGUgcnVucyAqLwotCQkJYW55X21zID0gdHJ1ZTsKKwkJCWh3X2NoZWNrID0gdHJ1ZTsKIAkJfQog CiAJCWlmICghbW9kZXNldCkKQEAgLTEzMjYzLDcgKzEzMzA5LDcgQEAgc3RhdGljIGludCBpbnRl bF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJZHJtX2F0b21pY19oZWxw ZXJfY2xlYW51cF9wbGFuZXMoZGV2LCBzdGF0ZSk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CiAKLQlpZiAoYW55X21zKQorCWlmIChod19jaGVjaykKIAkJaW50ZWxfbW9kZXNl dF9jaGVja19zdGF0ZShkZXYsIHN0YXRlKTsKIAogCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0 ZSk7CkBAIC0xNTI2MywxNiArMTUzMDksMzYgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9y ZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yOwogCWludCBpOwogCisJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyA9 IDA7CisKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykgewotCQlfX2RybV9hdG9taWNf aGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Yy0+YmFzZSwgY3J0Yy0+YmFzZS5zdGF0ZSk7 Ci0JCW1lbXNldChjcnRjLT5jb25maWcsIDAsIHNpemVvZigqY3J0Yy0+Y29uZmlnKSk7Ci0JCWNy dGMtPmNvbmZpZy0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7CisJCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0gY3J0Yy0+Y29uZmlnOworCQlpbnQgcGl4Y2xrID0gMDsKIAot CQljcnRjLT5hY3RpdmUgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0YywK LQkJCQkJCQkJIGNydGMtPmNvbmZpZyk7CisJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0 cm95X3N0YXRlKCZjcnRjLT5iYXNlLCAmY3J0Y19zdGF0ZS0+YmFzZSk7CisJCW1lbXNldChjcnRj X3N0YXRlLCAwLCBzaXplb2YoKmNydGNfc3RhdGUpKTsKKwkJY3J0Y19zdGF0ZS0+YmFzZS5jcnRj ID0gJmNydGMtPmJhc2U7CiAKLQkJY3J0Yy0+YmFzZS5zdGF0ZS0+YWN0aXZlID0gY3J0Yy0+YWN0 aXZlOwotCQljcnRjLT5iYXNlLmVuYWJsZWQgPSBjcnRjLT5hY3RpdmU7CisJCWNydGNfc3RhdGUt PmJhc2UuYWN0aXZlID0gY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPQorCQkJZGV2X3ByaXYtPmRp c3BsYXkuZ2V0X3BpcGVfY29uZmlnKGNydGMsIGNydGNfc3RhdGUpOworCisJCWNydGMtPmJhc2Uu ZW5hYmxlZCA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlOworCQljcnRjLT5hY3RpdmUgPSBjcnRj X3N0YXRlLT5iYXNlLmFjdGl2ZTsKKworCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsK KwkJCWRldl9wcml2LT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBjcnRjLT5waXBlOworCisJCQlpZiAo SVNfQlJPQURXRUxMKGRldl9wcml2KSkgeworCQkJCXBpeGNsayA9IGlsa19waXBlX3BpeGVsX3Jh dGUoY3J0Y19zdGF0ZSk7CisKKwkJCQkvKiBwaXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1JSBv ZiBjZGNsayB3aXRoIElQUyBvbiBCRFcgKi8KKwkJCQlpZiAoY3J0Y19zdGF0ZS0+aXBzX2VuYWJs ZWQpCisJCQkJCXBpeGNsayA9IERJVl9ST1VORF9VUChwaXhjbGsgKiAxMDAsIDk1KTsKKwkJCX0g ZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgfHwgSVNfVkFMTEVZVklFVyhkZXZfcHJpdikp CisJCQkJcGl4Y2xrID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7 CisJCX0KKworCQlkZXZfcHJpdi0+bWluX3BpeGNsa1tjcnRjLT5waXBlXSA9IHBpeGNsazsKIAog CQlyZWFkb3V0X3BsYW5lX3N0YXRlKGNydGMpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmlu ZGV4IDY4MmY3MGY5NWUxNy4uNTc4YWZjN2FjNGJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aApAQCAtMjQ4LDcgKzI0OCwxMiBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKIAlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSBiYXNlOwogCiAJdW5zaWduZWQgaW50IGNkY2xrOwotCWJvb2wg ZHBsbF9zZXQ7CisKKwlib29sIGRwbGxfc2V0LCBtb2Rlc2V0OworCisJdW5zaWduZWQgaW50IGFj dGl2ZV9jcnRjczsKKwl1bnNpZ25lZCBpbnQgbWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107CisK IAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGxfY29uZmlnIHNoYXJlZF9kcGxsW0k5MTVfTlVNX1BM TFNdOwogfTsKIAotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==