From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 1/2] drm/i915: Fix modeset handling during gpu reset, v3. Date: Mon, 9 May 2016 13:04:21 +0200 Message-ID: References: <1462179422-32203-1-git-send-email-maarten.lankhorst@linux.intel.com> <20160506130612.GZ4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160506130612.GZ4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org, drm-intel-fixes@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBmdW5jdGlvbiB3b3VsZCBjYWxsIGRybV9tb2Rlc2V0X2xvY2tfYWxsLCB3aGlsZSB0aGUg c3VzcGVuZC9yZXN1bWUKZnVuY3Rpb25zIGFscmVhZHkgaGF2ZSB0aGVpciBvd24gbG9ja2luZy4g Rml4IHRoaXMgYnkgZmFjdG9yaW5nIG91dApfX2ludGVsX2Rpc3BsYXlfcmVzdW1lLCBhbmQgY2Fs bGluZyB0aGUgYXRvbWljIGhlbHBlcnMgZm9yIGR1cGxpY2F0aW5nCmF0b21pYyBzdGF0ZSBhbmQg ZGlzYWJsaW5nIGFsbCBjcnRjJ3MgZHVyaW5nIHN1c3BlbmQuCgpDaGFuZ2VzIHNpbmNlIHYxOgot IERlYWwgd2l0aCAtRURFQURMSyByaWdodCBhZnRlciBsb2NrX2FsbCBhbmQgY2xlYW4gdXAgY2Fs bHMKICB0byBodyByZWFkb3V0LgotIEFsd2F5cyB0YWtlIGFsbCBtb2Rlc2V0IGxvY2tzIHNvIHVw ZGF0ZXMgZHVyaW5nIGdwdSByZXNldCBhcmUgYmxvY2tlZC4KQ2hhbmdlcyBzaW5jZSB2MjoKLSBG aXggZGVhZGxvY2sgaW4gaW50ZWxfdXBkYXRlX3ByaW1hcnlfcGxhbmVzLgotIE1vdmUgV0FSTl9P TihFREVBRExLKSB0byBfX2ludGVsX2Rpc3BsYXlfcmVzdW1lLgotIHBjdHggLT4gY3R4Ci0gb25s eSBjYWxsIF9faW50ZWxfZGlzcGxheV9yZXN1bWUgb24gc3VjY2VzcyBpbiBpbnRlbF9kaXNwbGF5 X3Jlc3VtZS4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmto b3JzdEBsaW51eC5pbnRlbC5jb20+CkZpeGVzOiBlMmM4Yjg3MDFlMmQgKCJkcm0vaTkxNTogVXNl IGF0b21pYyBoZWxwZXJzIGZvciBzdXNwZW5kLCB2Mi4iKQpDYzogZHJtLWludGVsLWZpeGVzQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyB8IDE1MCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxNGUwNTA5MWMzOTcuLjZmYWE1MjlmMzVkZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMzEzMCw0MSArMzEzMCw5NiBAQCBzdGF0 aWMgdm9pZCBpbnRlbF91cGRhdGVfcHJpbWFyeV9wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAogCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7CiAJCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5wcmltYXJ5KTsKLQkJc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKLQotCQlkcm1fbW9kZXNldF9sb2NrX2NydGMoY3J0Yywg JnBsYW5lLT5iYXNlKTsKLQkJcGxhbmVfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFu ZS0+YmFzZS5zdGF0ZSk7CisJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUg PQorCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uuc3RhdGUpOwogCiAJCWlmIChw bGFuZV9zdGF0ZS0+dmlzaWJsZSkKIAkJCXBsYW5lLT51cGRhdGVfcGxhbmUoJnBsYW5lLT5iYXNl LAogCQkJCQkgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSksCiAJCQkJCSAgICBw bGFuZV9zdGF0ZSk7CisJfQorfQorCitzdGF0aWMgaW50CitfX2ludGVsX2Rpc3BsYXlfcmVzdW1l KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVj dCBkcm1fY3J0YyAqY3J0YzsKKwlpbnQgaSwgcmV0OworCisJaW50ZWxfbW9kZXNldF9zZXR1cF9o d19zdGF0ZShkZXYpOworCWk5MTVfcmVkaXNhYmxlX3ZnYShkZXYpOwogCi0JCWRybV9tb2Rlc2V0 X3VubG9ja19jcnRjKGNydGMpOworCWlmICghc3RhdGUpCisJCXJldHVybiAwOworCisJZm9yX2Vh Y2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgeworCQkvKgorCQkg KiBGb3JjZSByZWNhbGN1bGF0aW9uIGV2ZW4gaWYgd2UgcmVzdG9yZQorCQkgKiBjdXJyZW50IHN0 YXRlLiBXaXRoIGZhc3QgbW9kZXNldCB0aGlzIG1heSBub3QgcmVzdWx0CisJCSAqIGluIGEgbW9k ZXNldCB3aGVuIHRoZSBzdGF0ZSBpcyBjb21wYXRpYmxlLgorCQkgKi8KKwkJY3J0Y19zdGF0ZS0+ bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKIAl9CisKKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0 ZSk7CisKKwlXQVJOX09OKHJldCA9PSAtRURFQURMSyk7CisJcmV0dXJuIHJldDsKIH0KIAogdm9p ZCBpbnRlbF9wcmVwYXJlX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CisJc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0 eCAqY3R4OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKKwlpbnQgcmV0OworCiAJLyogbm8gcmVzZXQgc3VwcG9ydCBmb3IgZ2VuMiAqLwotCWlmIChJ U19HRU4yKGRldikpCisJaWYgKElTX0dFTjIoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKLQkvKiBy ZXNldCBkb2Vzbid0IHRvdWNoIHRoZSBkaXNwbGF5ICovCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDUgfHwgSVNfRzRYKGRldikpCisJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKKwor CS8qIHJlc2V0IGRvZXNuJ3QgdG91Y2ggdGhlIGRpc3BsYXksIGJ1dCBmbGlwcyBtaWdodCBnZXQg bnVrZWQgYW55d2F5LCAqLworCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDUgfHwg SVNfRzRYKGRldl9wcml2KSkKIAkJcmV0dXJuOwogCi0JZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2 KTsKKwljdHggPSBkZXYtPm1vZGVfY29uZmlnLmFjcXVpcmVfY3R4OworCiAJLyoKIAkgKiBEaXNh YmxpbmcgdGhlIGNydGNzIGdyYWNlZnVsbHkgc2VlbXMgbmljZXIuIEFsc28gdGhlCiAJICogZzMz IGRvY3Mgc2F5IHdlIHNob3VsZCBhdCBsZWFzdCBkaXNhYmxlIGFsbCB0aGUgcGxhbmVzLgogCSAq LwotCWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOworCisJc3RhdGUgPSBkcm1fYXRvbWljX2hl bHBlcl9kdXBsaWNhdGVfc3RhdGUoZGV2LCBjdHgpOworCWlmIChJU19FUlIoc3RhdGUpKSB7CisJ CXJldCA9IFBUUl9FUlIoc3RhdGUpOworCQlzdGF0ZSA9IE5VTEw7CisJCURSTV9FUlJPUigiRHVw bGljYXRpbmcgc3RhdGUgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7CisJCWdvdG8gZXJyOworCX0K KworCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKGRldiwgY3R4KTsKKwlpZiAo cmV0KSB7CisJCURSTV9FUlJPUigiU3VzcGVuZGluZyBjcnRjJ3MgZmFpbGVkIHdpdGggJWlcbiIs IHJldCk7CisJCWdvdG8gZXJyOworCX0KKworCWRldl9wcml2LT5tb2Rlc2V0X3Jlc3RvcmVfc3Rh dGUgPSBzdGF0ZTsKKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSBjdHg7CisJcmV0dXJuOworCitlcnI6 CisJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKIH0KIAogdm9pZCBpbnRlbF9maW5pc2hf cmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZTsKKwlpbnQgcmV0OwogCiAJLyoK IAkgKiBGbGlwcyBpbiB0aGUgcmluZ3Mgd2lsbCBiZSBudWtlZCBieSB0aGUgcmVzZXQsCkBAIC0z MTc3LDYgKzMyMzIsOCBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCWlmIChJU19HRU4yKGRldikpCiAJCXJldHVybjsKIAorCWRldl9wcml2LT5tb2Rl c2V0X3Jlc3RvcmVfc3RhdGUgPSBOVUxMOworCiAJLyogcmVzZXQgZG9lc24ndCB0b3VjaCB0aGUg ZGlzcGxheSAqLwogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA1IHx8IElTX0c0WChkZXYp KSB7CiAJCS8qCkBAIC0zMTg5LDI2ICszMjQ2LDI3IEBAIHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIENTLWJhc2VkIGZsaXBzICh3aGljaCBtaWdo dCBnZXQgbG9zdCBpbiBncHUgcmVzZXRzKSBhbnkgbW9yZS4KIAkJICovCiAJCWludGVsX3VwZGF0 ZV9wcmltYXJ5X3BsYW5lcyhkZXYpOwotCQlyZXR1cm47Ci0JfQotCi0JLyoKLQkgKiBUaGUgZGlz cGxheSBoYXMgYmVlbiByZXNldCBhcyB3ZWxsLAotCSAqIHNvIG5lZWQgYSBmdWxsIHJlLWluaXRp YWxpemF0aW9uLgotCSAqLwotCWludGVsX3J1bnRpbWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKGRl dl9wcml2KTsKLQlpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsK Kwl9IGVsc2UgeworCQkvKgorCQkgKiBUaGUgZGlzcGxheSBoYXMgYmVlbiByZXNldCBhcyB3ZWxs LAorCQkgKiBzbyBuZWVkIGEgZnVsbCByZS1pbml0aWFsaXphdGlvbi4KKwkJICovCisJCWludGVs X3J1bnRpbWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKKwkJaW50ZWxfcnVudGlt ZV9wbV9lbmFibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7CiAKLQlpbnRlbF9tb2Rlc2V0X2luaXRf aHcoZGV2KTsKKwkJaW50ZWxfbW9kZXNldF9pbml0X2h3KGRldik7CiAKLQlzcGluX2xvY2tfaXJx KCZkZXZfcHJpdi0+aXJxX2xvY2spOwotCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3Nl dHVwKQotCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKGRldik7Ci0Jc3Bpbl91bmxv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOworCQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxX2xvY2spOworCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCkKKwkJCWRl dl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAoZGV2KTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwogCi0JaW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2KTsKKwkJcmV0 ID0gX19pbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYsIHN0YXRlKTsKKwkJaWYgKHJldCkKKwkJCURS TV9FUlJPUigiUmVzdG9yaW5nIG9sZCBzdGF0ZSBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKIAot CWludGVsX2hwZF9pbml0KGRldl9wcml2KTsKKwkJaW50ZWxfaHBkX2luaXQoZGV2X3ByaXYpOwor CX0KIAogCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIH0KQEAgLTE1OTU1LDkgKzE2MDEz LDEwIEBAIHZvaWQgaW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBkZXZfcHJpdi0+bW9kZXNldF9yZXN0 b3JlX3N0YXRlOwogCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7CiAJaW50IHJl dDsKLQlib29sIHNldHVwID0gZmFsc2U7CiAKIAlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0 YXRlID0gTlVMTDsKKwlpZiAoc3RhdGUpCisJCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7CiAK IAkvKgogCSAqIFRoaXMgaXMgYSBjbHVkZ2UgYmVjYXVzZSB3aXRoIHJlYWwgYXRvbWljIG1vZGVz ZXQgbW9kZV9jb25maWcubXV0ZXgKQEAgLTE1OTY4LDQwICsxNjAyNywxNyBAQCB2b2lkIGludGVs X2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbXV0ZXhfbG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDAp OwogCi1yZXRyeToKLQlyZXQgPSBkcm1fbW9kZXNldF9sb2NrX2FsbF9jdHgoZGV2LCAmY3R4KTsK LQotCWlmIChyZXQgPT0gMCAmJiAhc2V0dXApIHsKLQkJc2V0dXAgPSB0cnVlOwotCi0JCWludGVs X21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoZGV2KTsKLQkJaTkxNV9yZWRpc2FibGVfdmdhKGRldik7 Ci0JfQotCi0JaWYgKHJldCA9PSAwICYmIHN0YXRlKSB7Ci0JCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZTsKLQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwotCQlpbnQgaTsKLQotCQlz dGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4OwotCi0JCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJCS8qCi0JCQkgKiBGb3JjZSByZWNhbGN1bGF0 aW9uIGV2ZW4gaWYgd2UgcmVzdG9yZQotCQkJICogY3VycmVudCBzdGF0ZS4gV2l0aCBmYXN0IG1v ZGVzZXQgdGhpcyBtYXkgbm90IHJlc3VsdAotCQkJICogaW4gYSBtb2Rlc2V0IHdoZW4gdGhlIHN0 YXRlIGlzIGNvbXBhdGlibGUuCi0JCQkgKi8KLQkJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9 IHRydWU7Ci0JCX0KLQotCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Ci0JfQorCXdo aWxlICgxKSB7CisJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2tfYWxsX2N0eChkZXYsICZjdHgpOwor CQlpZiAocmV0ICE9IC1FREVBRExLKQorCQkJYnJlYWs7CiAKLQlpZiAocmV0ID09IC1FREVBRExL KSB7CiAJCWRybV9tb2Rlc2V0X2JhY2tvZmYoJmN0eCk7Ci0JCWdvdG8gcmV0cnk7CiAJfQogCisJ aWYgKCFyZXQpCisJCXJldCA9IF9faW50ZWxfZGlzcGxheV9yZXN1bWUoZGV2LCBzdGF0ZSk7CisK IAlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwogCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmlu aSgmY3R4KTsKIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwotLSAKMi41 LjUKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK