From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/2] drm/i915: Fix modeset handling during gpu reset, v2. Date: Mon, 2 May 2016 10:57:01 +0200 Message-ID: <1462179422-32203-1-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 B62116E55F for ; Mon, 2 May 2016 08:57:06 +0000 (UTC) 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 Cc: drm-intel-fixes@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBmdW5jdGlvbiB3b3VsZCBjYWxsIGRybV9tb2Rlc2V0X2xvY2tfYWxsLCB3aGlsZSB0aGUg c3VzcGVuZC9yZXN1bWUKZnVuY3Rpb25zIGFscmVhZHkgaGF2ZSB0aGVpciBvd24gbG9ja2luZy4g Rml4IHRoaXMgYnkgZmFjdG9yaW5nIG91dApfX2ludGVsX2Rpc3BsYXlfcmVzdW1lLCBhbmQgY2Fs bGluZyB0aGUgYXRvbWljIGhlbHBlcnMgZm9yIGR1cGxpY2F0aW5nCmF0b21pYyBzdGF0ZSBhbmQg ZGlzYWJsaW5nIGFsbCBjcnRjJ3MgZHVyaW5nIHN1c3BlbmQuCgpDaGFuZ2VzIHNpbmNlIHYxOgot IERlYWwgd2l0aCAtRURFQURMSyByaWdodCBhZnRlciBsb2NrX2FsbCBhbmQgY2xlYW4gdXAgY2Fs bHMKICB0byBodyByZWFkb3V0LgotIEFsd2F5cyB0YWtlIGFsbCBtb2Rlc2V0IGxvY2tzIHNvIHVw ZGF0ZXMgZHVyaW5nIGdwdSByZXNldCBhcmUgYmxvY2tlZC4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0 ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+CkZpeGVzOiBl MmM4Yjg3MDFlMmQgKCJkcm0vaTkxNTogVXNlIGF0b21pYyBoZWxwZXJzIGZvciBzdXNwZW5kLCB2 Mi4iKQpDYzogZHJtLWludGVsLWZpeGVzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE0MSArKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDUyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAyZjM2NDE0 NzAyZmUuLjRmYjkwNGYyYmNmOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpA QCAtMzE0NCwyNyArMzE0NCw4MyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcHJpbWFyeV9w bGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiB9CiAKK3N0YXRpYyBpbnQKK19faW50 ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJICAgICAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCWludCBpOworCisJaW50ZWxfbW9k ZXNldF9zZXR1cF9od19zdGF0ZShkZXYpOworCWk5MTVfcmVkaXNhYmxlX3ZnYShkZXYpOworCisJ aWYgKCFzdGF0ZSkKKwkJcmV0dXJuIDA7CisKKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRl LCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CisJCS8qCisJCSAqIEZvcmNlIHJlY2FsY3VsYXRpb24g ZXZlbiBpZiB3ZSByZXN0b3JlCisJCSAqIGN1cnJlbnQgc3RhdGUuIFdpdGggZmFzdCBtb2Rlc2V0 IHRoaXMgbWF5IG5vdCByZXN1bHQKKwkJICogaW4gYSBtb2Rlc2V0IHdoZW4gdGhlIHN0YXRlIGlz IGNvbXBhdGlibGUuCisJCSAqLworCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwor CX0KKworCXJldHVybiBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cit9CisKIHZvaWQgaW50ZWxf cHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogeworCXN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKnBjdHg7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCWlu dCByZXQ7CisKIAkvKiBubyByZXNldCBzdXBwb3J0IGZvciBnZW4yICovCi0JaWYgKElTX0dFTjIo ZGV2KSkKKwlpZiAoSVNfR0VOMihkZXZfcHJpdikpCiAJCXJldHVybjsKIAotCS8qIHJlc2V0IGRv ZXNuJ3QgdG91Y2ggdGhlIGRpc3BsYXkgKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g NSB8fCBJU19HNFgoZGV2KSkKKwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOworCisJLyogcmVz ZXQgZG9lc24ndCB0b3VjaCB0aGUgZGlzcGxheSwgYnV0IGZsaXBzIG1pZ2h0IGdldCBudWtlZCBh bnl3YXksICovCisJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gNSB8fCBJU19HNFgo ZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKLQlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOworCXBj dHggPSBkZXYtPm1vZGVfY29uZmlnLmFjcXVpcmVfY3R4OworCiAJLyoKIAkgKiBEaXNhYmxpbmcg dGhlIGNydGNzIGdyYWNlZnVsbHkgc2VlbXMgbmljZXIuIEFsc28gdGhlCiAJICogZzMzIGRvY3Mg c2F5IHdlIHNob3VsZCBhdCBsZWFzdCBkaXNhYmxlIGFsbCB0aGUgcGxhbmVzLgogCSAqLwotCWlu dGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOworCisJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9k dXBsaWNhdGVfc3RhdGUoZGV2LCBwY3R4KTsKKwlpZiAoSVNfRVJSKHN0YXRlKSkgeworCQlyZXQg PSBQVFJfRVJSKHN0YXRlKTsKKwkJc3RhdGUgPSBOVUxMOworCQlEUk1fRVJST1IoIkR1cGxpY2F0 aW5nIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOworCQlnb3RvIGVycjsKKwl9CisKKwly ZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChkZXYsIHBjdHgpOworCWlmIChyZXQp IHsKKwkJRFJNX0VSUk9SKCJTdXNwZW5kaW5nIGNydGMncyBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0 KTsKKwkJZ290byBlcnI7CisJfQorCisJZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9 IHN0YXRlOworCXN0YXRlLT5hY3F1aXJlX2N0eCA9IHBjdHg7CisJcmV0dXJuOworCitlcnI6CisJ ZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKIH0KIAogdm9pZCBpbnRlbF9maW5pc2hfcmVz ZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl ID0gZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZTsKKwlpbnQgcmV0OwogCiAJLyoKIAkg KiBGbGlwcyBpbiB0aGUgcmluZ3Mgd2lsbCBiZSBudWtlZCBieSB0aGUgcmVzZXQsCkBAIC0zMTc3 LDYgKzMyMzMsOCBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCWlmIChJU19HRU4yKGRldikpCiAJCXJldHVybjsKIAorCWRldl9wcml2LT5tb2Rlc2V0 X3Jlc3RvcmVfc3RhdGUgPSBOVUxMOworCiAJLyogcmVzZXQgZG9lc24ndCB0b3VjaCB0aGUgZGlz cGxheSAqLwogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA1IHx8IElTX0c0WChkZXYpKSB7 CiAJCS8qCkBAIC0zMTg5LDI2ICszMjQ3LDI3IEBAIHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIENTLWJhc2VkIGZsaXBzICh3aGljaCBtaWdodCBn ZXQgbG9zdCBpbiBncHUgcmVzZXRzKSBhbnkgbW9yZS4KIAkJICovCiAJCWludGVsX3VwZGF0ZV9w cmltYXJ5X3BsYW5lcyhkZXYpOwotCQlyZXR1cm47Ci0JfQotCi0JLyoKLQkgKiBUaGUgZGlzcGxh eSBoYXMgYmVlbiByZXNldCBhcyB3ZWxsLAotCSAqIHNvIG5lZWQgYSBmdWxsIHJlLWluaXRpYWxp emF0aW9uLgotCSAqLwotCWludGVsX3J1bnRpbWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKGRldl9w cml2KTsKLQlpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKKwl9 IGVsc2UgeworCQkvKgorCQkgKiBUaGUgZGlzcGxheSBoYXMgYmVlbiByZXNldCBhcyB3ZWxsLAor CQkgKiBzbyBuZWVkIGEgZnVsbCByZS1pbml0aWFsaXphdGlvbi4KKwkJICovCisJCWludGVsX3J1 bnRpbWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKKwkJaW50ZWxfcnVudGltZV9w bV9lbmFibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKLQlpbnRlbF9tb2Rlc2V0X2luaXRfaHco ZGV2KTsKKwkJaW50ZWxfbW9kZXNldF9pbml0X2h3KGRldik7CiAKLQlzcGluX2xvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwotCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVw KQotCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKGRldik7Ci0Jc3Bpbl91bmxvY2tf aXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJx X2xvY2spOworCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCkKKwkJCWRldl9w cml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAoZGV2KTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZf cHJpdi0+aXJxX2xvY2spOwogCi0JaW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2KTsKKwkJcmV0ID0g X19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsKKwkJaWYgKHJldCkKKwkJCURSTV9F UlJPUigiUmVzdG9yaW5nIG9sZCBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKIAotCWlu dGVsX2hwZF9pbml0KGRldl9wcml2KTsKKwkJaW50ZWxfaHBkX2luaXQoZGV2X3ByaXYpOworCX0K IAogCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIH0KQEAgLTE1OTU3LDkgKzE2MDE2LDEw IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3Jl X3N0YXRlOwogCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7CiAJaW50IHJldDsK LQlib29sIHNldHVwID0gZmFsc2U7CiAKIAlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRl ID0gTlVMTDsKKwlpZiAoc3RhdGUpCisJCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7CiAKIAkv KgogCSAqIFRoaXMgaXMgYSBjbHVkZ2UgYmVjYXVzZSB3aXRoIHJlYWwgYXRvbWljIG1vZGVzZXQg bW9kZV9jb25maWcubXV0ZXgKQEAgLTE1OTcwLDQwICsxNjAzMCwxNyBAQCB2b2lkIGludGVsX2Rp c3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbXV0ZXhfbG9jaygmZGV2LT5t b2RlX2NvbmZpZy5tdXRleCk7CiAJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwog Ci1yZXRyeToKLQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrX2FsbF9jdHgoZGV2LCAmY3R4KTsKLQot CWlmIChyZXQgPT0gMCAmJiAhc2V0dXApIHsKLQkJc2V0dXAgPSB0cnVlOwotCi0JCWludGVsX21v ZGVzZXRfc2V0dXBfaHdfc3RhdGUoZGV2KTsKLQkJaTkxNV9yZWRpc2FibGVfdmdhKGRldik7Ci0J fQotCi0JaWYgKHJldCA9PSAwICYmIHN0YXRlKSB7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZTsKLQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwotCQlpbnQgaTsKLQotCQlzdGF0 ZS0+YWNxdWlyZV9jdHggPSAmY3R4OwotCi0JCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUs IGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJCS8qCi0JCQkgKiBGb3JjZSByZWNhbGN1bGF0aW9u IGV2ZW4gaWYgd2UgcmVzdG9yZQotCQkJICogY3VycmVudCBzdGF0ZS4gV2l0aCBmYXN0IG1vZGVz ZXQgdGhpcyBtYXkgbm90IHJlc3VsdAotCQkJICogaW4gYSBtb2Rlc2V0IHdoZW4gdGhlIHN0YXRl IGlzIGNvbXBhdGlibGUuCi0JCQkgKi8KLQkJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRy dWU7Ci0JCX0KLQotCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Ci0JfQorCXdoaWxl ICgxKSB7CisJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2tfYWxsX2N0eChkZXYsICZjdHgpOworCQlp ZiAocmV0ICE9IC1FREVBRExLKQorCQkJYnJlYWs7CiAKLQlpZiAocmV0ID09IC1FREVBRExLKSB7 CiAJCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7Ci0JCWdvdG8gcmV0cnk7CiAJfQogCisJcmV0 ID0gX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsKKwlXQVJOX09OKHJldCA9PSAt RURFQURMSyk7CisKIAlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwogCWRybV9tb2Rlc2V0 X2FjcXVpcmVfZmluaSgmY3R4KTsKIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0 ZXgpOwotLSAKMi41LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=