From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2.1 06/12] drm/i915: Make crtc checking use the atomic state, v2. Date: Thu, 30 Jul 2015 14:59:29 +0200 Message-ID: <55BA1FB1.2000901@linux.intel.com> References: <1438000541-3219-1-git-send-email-maarten.lankhorst@linux.intel.com> <1438000541-3219-7-git-send-email-maarten.lankhorst@linux.intel.com> <1438170585.3839.8.camel@gmail.com> <20150729120413.GV16722@phenom.ffwll.local> <1438173110.3839.9.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id D62617A149 for ; Thu, 30 Jul 2015 05:59:31 -0700 (PDT) In-Reply-To: <1438173110.3839.9.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SW5zdGVhZCBvZiBhbGxvY2F0aW5nIHBpcGVfY29uZmlnIG9uIHRoZSBzdGFjayB1c2UgdGhlIG9s ZApjcnRjX3N0YXRlLCBpdCdzIG9ubHkgZ29pbmcgdG8gZnJlZWQgZnJvbSB0aGlzIHBvaW50IG9u LgoKQWxsIGNydGMnIGFyZSBub3cgb25seSBjaGVja2VkIG9uY2UgZHVyaW5nIG1vZGVzZXQsCmJl Y2F1c2UgZmFsc2UgcG9zaXRpdmVzIGNhbiBoYXBwZW4gd2l0aCBlbmNvZGVycyBhZnRlcgpkcG1z IGNoYW5nZXMgYW5kIHRvIGxpbWl0IHRoZSBhbW91bnQgb2YgZXJyb3JzIGZvciAxIGZhaWx1cmUu CgpDaGFuZ2VzIHNpbmNlIHYxOgotIGNydGNfc3RhdGUgLT4gb2xkX2NydGNfc3RhdGUKLSBzdGF0 ZSAtPiBvbGRfc3RhdGUKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBBbmRlciBDb25zZWx2YW4g ZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDExOCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAxMjk5MzFmMzAxM2UuLjRiYWJl Y2QxYzk5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTE4MjksNyAr MTE4MjksNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQogCQl0 b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUpOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IGNydGNfc3RhdGUtPnN0YXRlOwotCWludCByZXQsIGlkeCA9IGNydGMtPmJhc2Uu aWQ7CisJaW50IHJldDsKIAlib29sIG1vZGVfY2hhbmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19z dGF0ZSk7CiAKIAlpZiAobW9kZV9jaGFuZ2VkICYmICFjaGVja19lbmNvZGVyX2Nsb25pbmcoc3Rh dGUsIGludGVsX2NydGMpKSB7CkBAIC0xMTgzNywxMCArMTE4MzcsNiBAQCBzdGF0aWMgaW50IGlu dGVsX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCi0JSTkxNV9TVEFURV9XQVJOKGNydGMtPnN0YXRlLT5hY3RpdmUgIT0gaW50 ZWxfY3J0Yy0+YWN0aXZlLAotCQkiW0NSVEM6JWldIG1pc21hdGNoIGJldHdlZW4gc3RhdGUtPmFj dGl2ZSglaSkgYW5kIGNydGMtPmFjdGl2ZSglaSlcbiIsCi0JCWlkeCwgY3J0Yy0+c3RhdGUtPmFj dGl2ZSwgaW50ZWxfY3J0Yy0+YWN0aXZlKTsKLQogCWlmIChtb2RlX2NoYW5nZWQgJiYgIWNydGNf c3RhdGUtPmFjdGl2ZSkKIAkJaW50ZWxfY3J0Yy0+YXRvbWljLnVwZGF0ZV93bV9wb3N0ID0gdHJ1 ZTsKIApAQCAtMTI3MjIsMTkgKzEyNzE4LDE2IEBAIGNoZWNrX2VuY29kZXJfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAogCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVy KSB7CiAJCWJvb2wgZW5hYmxlZCA9IGZhbHNlOwotCQlib29sIGFjdGl2ZSA9IGZhbHNlOwotCQll bnVtIHBpcGUgcGlwZSwgdHJhY2tlZF9waXBlOworCQllbnVtIHBpcGUgcGlwZTsKIAogCQlEUk1f REVCVUdfS01TKCJbRU5DT0RFUjolZDolc11cbiIsCiAJCQkgICAgICBlbmNvZGVyLT5iYXNlLmJh c2UuaWQsCiAJCQkgICAgICBlbmNvZGVyLT5iYXNlLm5hbWUpOwogCiAJCWZvcl9lYWNoX2ludGVs X2Nvbm5lY3RvcihkZXYsIGNvbm5lY3RvcikgewotCQkJaWYgKGNvbm5lY3Rvci0+YmFzZS5lbmNv ZGVyICE9ICZlbmNvZGVyLT5iYXNlKQorCQkJaWYgKGNvbm5lY3Rvci0+YmFzZS5zdGF0ZS0+YmVz dF9lbmNvZGVyICE9ICZlbmNvZGVyLT5iYXNlKQogCQkJCWNvbnRpbnVlOwogCQkJZW5hYmxlZCA9 IHRydWU7Ci0JCQlpZiAoY29ubmVjdG9yLT5iYXNlLmRwbXMgIT0gRFJNX01PREVfRFBNU19PRkYp Ci0JCQkJYWN0aXZlID0gdHJ1ZTsKIAogCQkJSTkxNV9TVEFURV9XQVJOKGNvbm5lY3Rvci0+YmFz ZS5zdGF0ZS0+Y3J0YyAhPQogCQkJCQllbmNvZGVyLT5iYXNlLmNydGMsCkBAIC0xMjc0NSw4NSAr MTI3MzgsODYgQEAgY2hlY2tfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQkgICAgICJlbmNvZGVyJ3MgZW5hYmxlZCBzdGF0ZSBtaXNtYXRjaCAiCiAJCSAgICAgIihleHBl Y3RlZCAlaSwgZm91bmQgJWkpXG4iLAogCQkgICAgICEhZW5jb2Rlci0+YmFzZS5jcnRjLCBlbmFi bGVkKTsKLQkJSTkxNV9TVEFURV9XQVJOKGFjdGl2ZSAmJiAhZW5jb2Rlci0+YmFzZS5jcnRjLAot CQkgICAgICJhY3RpdmUgZW5jb2RlciB3aXRoIG5vIGNydGNcbiIpOwotCi0JCWFjdGl2ZSA9IGVu Y29kZXItPmdldF9od19zdGF0ZShlbmNvZGVyLCAmcGlwZSk7CiAKIAkJaWYgKCFlbmNvZGVyLT5i YXNlLmNydGMpIHsKLQkJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUsCi0JCQkgICAgICJlbmNvZGVy IGRldGFjaGVkIGJ1dCBub3QgdHVybmVkIG9mZi5cbiIpOworCQkJYm9vbCBhY3RpdmU7CiAKLQkJ CWNvbnRpbnVlOworCQkJYWN0aXZlID0gZW5jb2Rlci0+Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZw aXBlKTsKKwkJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUsCisJCQkgICAgICJlbmNvZGVyIGRldGFj aGVkIGJ1dCBzdGlsbCBlbmFibGVkIG9uIHBpcGUgJWMuXG4iLAorCQkJICAgICBwaXBlX25hbWUo cGlwZSkpOwogCQl9Ci0KLQkJSTkxNV9TVEFURV9XQVJOKGFjdGl2ZSAhPSBlbmNvZGVyLT5iYXNl LmNydGMtPnN0YXRlLT5hY3RpdmUsCi0JCSAgICAgImVuY29kZXIncyBodyBzdGF0ZSBkb2Vzbid0 IG1hdGNoIHN3IHRyYWNraW5nICIKLQkJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIs Ci0JCSAgICAgZW5jb2Rlci0+YmFzZS5jcnRjLT5zdGF0ZS0+YWN0aXZlLCBhY3RpdmUpOwotCi0K LQkJdHJhY2tlZF9waXBlID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpLT5waXBl OwotCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICYmIHBpcGUgIT0gdHJhY2tlZF9waXBlLAotCQkg ICAgICJhY3RpdmUgZW5jb2RlcidzIHBpcGUgZG9lc24ndCBtYXRjaCIKLQkJICAgICAiKGV4cGVj dGVkICVpLCBmb3VuZCAlaSlcbiIsCi0JCSAgICAgdHJhY2tlZF9waXBlLCBwaXBlKTsKLQogCX0K IH0KIAogc3RhdGljIHZvaWQKLWNoZWNrX2NydGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKK2NoZWNrX2NydGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHBp cGVfY29uZmlnOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGU7CisJc3Ry dWN0IGRybV9jcnRjICpjcnRjOworCWludCBpOwogCi0JZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYs IGNydGMpIHsKKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2Ny dGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsICpz d19jb25maWc7CiAJCWJvb2wgYWN0aXZlOwogCi0JCW1lbXNldCgmcGlwZV9jb25maWcsIDAsIHNp emVvZihwaXBlX2NvbmZpZykpOworCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQor CQkJY29udGludWU7CiAKLQkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWRdXG4iLAotCQkJICAgICAg Y3J0Yy0+YmFzZS5iYXNlLmlkKTsKKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lf c3RhdGUoY3J0Yywgb2xkX2NydGNfc3RhdGUpOworCQlwaXBlX2NvbmZpZyA9IHRvX2ludGVsX2Ny dGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOworCQltZW1zZXQocGlwZV9jb25maWcsIDAsIHNpemVv ZigqcGlwZV9jb25maWcpKTsKKwkJcGlwZV9jb25maWctPmJhc2UuY3J0YyA9IGNydGM7CisJCXBp cGVfY29uZmlnLT5iYXNlLnN0YXRlID0gb2xkX3N0YXRlOwogCi0JCUk5MTVfU1RBVEVfV0FSTihj cnRjLT5hY3RpdmUgJiYgIWNydGMtPmJhc2Uuc3RhdGUtPmVuYWJsZSwKLQkJICAgICAiYWN0aXZl IGNydGMsIGJ1dCBub3QgZW5hYmxlZCBpbiBzdyB0cmFja2luZ1xuIik7CisJCURSTV9ERUJVR19L TVMoIltDUlRDOiVkXVxuIiwKKwkJCSAgICAgIGNydGMtPmJhc2UuaWQpOwogCi0JCWFjdGl2ZSA9 IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLAotCQkJCQkJCSAgICZwaXBl X2NvbmZpZyk7CisJCWFjdGl2ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhp bnRlbF9jcnRjLAorCQkJCQkJCSAgIHBpcGVfY29uZmlnKTsKIAogCQkvKiBodyBzdGF0ZSBpcyBp bmNvbnNpc3RlbnQgd2l0aCB0aGUgcGlwZSBxdWlyayAqLwotCQlpZiAoKGNydGMtPnBpcGUgPT0g UElQRV9BICYmIGRldl9wcml2LT5xdWlya3MgJiBRVUlSS19QSVBFQV9GT1JDRSkgfHwKLQkJICAg IChjcnRjLT5waXBlID09IFBJUEVfQiAmJiBkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfUElQRUJf Rk9SQ0UpKQotCQkJYWN0aXZlID0gY3J0Yy0+YWN0aXZlOwotCi0JCWZvcl9lYWNoX2ludGVsX2Vu Y29kZXIoZGV2LCBlbmNvZGVyKSB7Ci0JCQllbnVtIHBpcGUgcGlwZTsKLQkJCWlmIChlbmNvZGVy LT5iYXNlLmNydGMgIT0gJmNydGMtPmJhc2UpCi0JCQkJY29udGludWU7Ci0JCQlpZiAoZW5jb2Rl ci0+Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKSkKLQkJCQllbmNvZGVyLT5nZXRfY29uZmln KGVuY29kZXIsICZwaXBlX2NvbmZpZyk7Ci0JCX0KKwkJaWYgKChpbnRlbF9jcnRjLT5waXBlID09 IFBJUEVfQSAmJiBkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfUElQRUFfRk9SQ0UpIHx8CisJCSAg ICAoaW50ZWxfY3J0Yy0+cGlwZSA9PSBQSVBFX0IgJiYgZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJL X1BJUEVCX0ZPUkNFKSkKKwkJCWFjdGl2ZSA9IGNydGMtPnN0YXRlLT5hY3RpdmU7CiAKLQkJSTkx NV9TVEFURV9XQVJOKGNydGMtPmFjdGl2ZSAhPSBhY3RpdmUsCisJCUk5MTVfU1RBVEVfV0FSTihj cnRjLT5zdGF0ZS0+YWN0aXZlICE9IGFjdGl2ZSwKIAkJICAgICAiY3J0YyBhY3RpdmUgc3RhdGUg ZG9lc24ndCBtYXRjaCB3aXRoIGh3IHN0YXRlICIKLQkJICAgICAiKGV4cGVjdGVkICVpLCBmb3Vu ZCAlaSlcbiIsIGNydGMtPmFjdGl2ZSwgYWN0aXZlKTsKKwkJICAgICAiKGV4cGVjdGVkICVpLCBm b3VuZCAlaSlcbiIsIGNydGMtPnN0YXRlLT5hY3RpdmUsIGFjdGl2ZSk7CiAKLQkJSTkxNV9TVEFU RV9XQVJOKGNydGMtPmFjdGl2ZSAhPSBjcnRjLT5iYXNlLnN0YXRlLT5hY3RpdmUsCisJCUk5MTVf U1RBVEVfV0FSTihpbnRlbF9jcnRjLT5hY3RpdmUgIT0gY3J0Yy0+c3RhdGUtPmFjdGl2ZSwKIAkJ ICAgICAidHJhbnNpdGlvbmFsIGFjdGl2ZSBzdGF0ZSBkb2VzIG5vdCBtYXRjaCBhdG9taWMgaHcg c3RhdGUgIgotCQkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwgY3J0Yy0+YmFzZS5z dGF0ZS0+YWN0aXZlLCBjcnRjLT5hY3RpdmUpOworCQkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5k ICVpKVxuIiwgY3J0Yy0+c3RhdGUtPmFjdGl2ZSwgaW50ZWxfY3J0Yy0+YWN0aXZlKTsKKworCQlm b3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7CisJCQllbnVtIHBp cGUgcGlwZTsKKworCQkJYWN0aXZlID0gZW5jb2Rlci0+Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZw aXBlKTsKKwkJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgIT0gY3J0Yy0+c3RhdGUtPmFjdGl2ZSwK KwkJCQkiW0VOQ09ERVI6JWldIGFjdGl2ZSAlaSB3aXRoIGNydGMgYWN0aXZlICVpXG4iLAorCQkJ CWVuY29kZXItPmJhc2UuYmFzZS5pZCwgYWN0aXZlLCBjcnRjLT5zdGF0ZS0+YWN0aXZlKTsKKwor CQkJSTkxNV9TVEFURV9XQVJOKGFjdGl2ZSAmJiBpbnRlbF9jcnRjLT5waXBlICE9IHBpcGUsCisJ CQkJCSJFbmNvZGVyIGNvbm5lY3RlZCB0byB3cm9uZyBwaXBlICVjXG4iLAorCQkJCQlwaXBlX25h bWUocGlwZSkpOworCisJCQlpZiAoYWN0aXZlKQorCQkJCWVuY29kZXItPmdldF9jb25maWcoZW5j b2RlciwgcGlwZV9jb25maWcpOworCQl9CiAKLQkJaWYgKCFhY3RpdmUpCisJCWlmICghY3J0Yy0+ c3RhdGUtPmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwogCi0JCWlmICghaW50ZWxfcGlwZV9jb25maWdf Y29tcGFyZShkZXYsIGNydGMtPmNvbmZpZywKLQkJCQkJICAgICAgICZwaXBlX2NvbmZpZywgZmFs c2UpKSB7CisJCXN3X2NvbmZpZyA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwor CQlpZiAoIWludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoZGV2LCBzd19jb25maWcsCisJCQkJCSAg ICAgICBwaXBlX2NvbmZpZywgZmFsc2UpKSB7CiAJCQlJOTE1X1NUQVRFX1dBUk4oMSwgInBpcGUg c3RhdGUgZG9lc24ndCBtYXRjaCFcbiIpOwotCQkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjcnRj LCAmcGlwZV9jb25maWcsCisJCQlpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGludGVsX2NydGMsIHBp cGVfY29uZmlnLAogCQkJCQkgICAgICAgIltodyBzdGF0ZV0iKTsKLQkJCWludGVsX2R1bXBfcGlw ZV9jb25maWcoY3J0YywgY3J0Yy0+Y29uZmlnLAorCQkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhp bnRlbF9jcnRjLCBzd19jb25maWcsCiAJCQkJCSAgICAgICAiW3N3IHN0YXRlXSIpOwogCQl9CiAJ fQpAQCAtMTI4ODUsNyArMTI4NzksNyBAQCBpbnRlbF9tb2Rlc2V0X2NoZWNrX3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJY2hlY2tfd21fc3RhdGUoZGV2KTsKIAljaGVja19jb25uZWN0 b3Jfc3RhdGUoZGV2LCBvbGRfc3RhdGUpOwogCWNoZWNrX2VuY29kZXJfc3RhdGUoZGV2KTsKLQlj aGVja19jcnRjX3N0YXRlKGRldik7CisJY2hlY2tfY3J0Y19zdGF0ZShkZXYsIG9sZF9zdGF0ZSk7 CiAJY2hlY2tfc2hhcmVkX2RwbGxfc3RhdGUoZGV2KTsKIH0KIAotLSAKMi4xLjAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=