From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 07/24] drm/i915: Add a simple atomic crtc check function. Date: Mon, 1 Jun 2015 15:27:10 +0200 Message-ID: <1433165247-15928-8-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433165247-15928-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 ESMTP id AEE496E5FD for ; Mon, 1 Jun 2015 06:27:44 -0700 (PDT) In-Reply-To: <1433165247-15928-1-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 TW92ZSB0aGUgY2hlY2sgZm9yIGVuY29kZXIgY2xvbmluZyBoZXJlLgoKU2lnbmVkLW9mZi1ieTog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgfCAgIDUgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEzMSArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA1NiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCmluZGV4IDE1NmRmMWI1OWRk ZC4uMWVkZDE2NTFjMDQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwpAQCAtMTAw LDcgKzEwMCwxMCBAQCBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCS8qIEZJWE1FOiBtb3ZlIHRvIGNydGMg YXRvbWljIGNoZWNrIGZ1bmN0aW9uIG9uY2UgaXQgaXMgcmVhZHkgKi8KKwkvKgorCSAqIEZJWE1F OiBtb3ZlIHRvIGNydGMgYXRvbWljIGNoZWNrIGZ1bmN0aW9uIG9uY2UgdGhpcyBpcworCSAqIG1v cmUgYXRvbWljIGZyaWVuZGx5LgorCSAqLwogCXJldCA9IGludGVsX2F0b21pY19zZXR1cF9zY2Fs ZXJzKGRldiwgbnVjbGVhcl9jcnRjLCBjcnRjX3N0YXRlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDZmM2U5NjkzMGRhNS4u MDA2MDc4NDUyNWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMTQw NCwxMSArMTE0MDQsODcgQEAgb3V0X2hhbmc6CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGJv b2wgZW5jb2RlcnNfY2xvbmVhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmNvZGVyICphLAorCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmNvZGVyICpiKQoreworCS8qIG1hc2tzIGNvdWxk IGJlIGFzeW1tZXRyaWMsIHNvIGNoZWNrIGJvdGggd2F5cyAqLworCXJldHVybiBhID09IGIgfHwg KGEtPmNsb25lYWJsZSAmICgxIDw8IGItPnR5cGUpICYmCisJCQkgIGItPmNsb25lYWJsZSAmICgx IDw8IGEtPnR5cGUpKTsKK30KKworc3RhdGljIGJvb2wgY2hlY2tfc2luZ2xlX2VuY29kZXJfY2xv bmluZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJCSBzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKKwkJCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICpzb3VyY2VfZW5jb2RlcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3Rh dGU7CisJaW50IGk7CisKKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5l Y3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7CisJCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMg IT0gJmNydGMtPmJhc2UpCisJCQljb250aW51ZTsKKworCQlzb3VyY2VfZW5jb2RlciA9CisJCQl0 b19pbnRlbF9lbmNvZGVyKGNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKKwkJaWYgKCFl bmNvZGVyc19jbG9uZWFibGUoZW5jb2Rlciwgc291cmNlX2VuY29kZXIpKQorCQkJcmV0dXJuIGZh bHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBjaGVja19lbmNvZGVy X2Nsb25pbmcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCSAgc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCit7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CisJc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubmVjdG9yX3N0YXRlOworCWludCBpOworCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0 YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgeworCQlpZiAoY29ubmVj dG9yX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQorCQkJY29udGludWU7CisKKwkJZW5jb2Rl ciA9IHRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9yX3N0YXRlLT5iZXN0X2VuY29kZXIpOworCQlp ZiAoIWNoZWNrX3NpbmdsZV9lbmNvZGVyX2Nsb25pbmcoc3RhdGUsIGNydGMsIGVuY29kZXIpKQor CQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgaW50IGlu dGVsX2F0b21pY19jaGVja19jcnRjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCit7CisJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IGNydGNfc3RhdGUtPnN0YXRlOworCWludCBpZHggPSBjcnRjLT5iYXNlLmlkOwor CWJvb2wgaXNfY3J0Y19lbmFibGVkID0gY3J0Y19zdGF0ZS0+YWN0aXZlOworCWJvb2wgd2FzX2Ny dGNfZW5hYmxlZCA9IGNydGMtPnN0YXRlLT5hY3RpdmU7CisJYm9vbCBtb2RlX2NoYW5nZWQgPSBu ZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpOworCisJaWYgKG1vZGVfY2hhbmdlZCAmJiAhY2hlY2tf ZW5jb2Rlcl9jbG9uaW5nKHN0YXRlLCBpbnRlbF9jcnRjKSkgeworCQlEUk1fREVCVUdfS01TKCJy ZWplY3RpbmcgaW52YWxpZCBjbG9uaW5nIGNvbmZpZ3VyYXRpb25cbiIpOworCQlyZXR1cm4gLUVJ TlZBTDsKKwl9CisKKwlJOTE1X1NUQVRFX1dBUk4oY3J0Yy0+c3RhdGUtPmFjdGl2ZSAhPSBpbnRl bF9jcnRjLT5hY3RpdmUsCisJCSJbQ1JUQzolaV0gbWlzbWF0Y2ggYmV0d2VlbiBzdGF0ZS0+YWN0 aXZlKCVpKSBhbmQgY3J0Yy0+YWN0aXZlKCVpKVxuIiwKKwkJaWR4LCBjcnRjLT5zdGF0ZS0+YWN0 aXZlLCBpbnRlbF9jcnRjLT5hY3RpdmUpOworCisJRFJNX0RFQlVHX0FUT01JQygiQ3J0YyAlaSB3 YXMgZW5hYmxlZCAlaSBub3cgZW5hYmxlZDogJWlcbiIsCisJCQkgaWR4LCB3YXNfY3J0Y19lbmFi bGVkLCBpc19jcnRjX2VuYWJsZWQpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIGludGVsX2hlbHBlcl9mdW5jcyA9IHsKIAkubW9k ZV9zZXRfYmFzZV9hdG9taWMgPSBpbnRlbF9waXBlX3NldF9iYXNlX2F0b21pYywKIAkubG9hZF9s dXQgPSBpbnRlbF9jcnRjX2xvYWRfbHV0LAogCS5hdG9taWNfYmVnaW4gPSBpbnRlbF9iZWdpbl9j cnRjX2NvbW1pdCwKIAkuYXRvbWljX2ZsdXNoID0gaW50ZWxfZmluaXNoX2NydGNfY29tbWl0LAor CS5hdG9taWNfY2hlY2sgPSBpbnRlbF9hdG9taWNfY2hlY2tfY3J0YywKIH07CiAKIC8qIFRyYW5z aXRpb25hbCBoZWxwZXIgdG8gY29weSBjdXJyZW50IGNvbm5lY3Rvci9lbmNvZGVyIHN0YXRlIHRv CkBAIC0xMTYzNCw1NiArMTE3MTAsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCX0KIH0KIAotc3RhdGljIGJvb2wgZW5jb2Rl cnNfY2xvbmVhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmNvZGVyICphLAotCQkJICAgICAgIGNv bnN0IHN0cnVjdCBpbnRlbF9lbmNvZGVyICpiKQotewotCS8qIG1hc2tzIGNvdWxkIGJlIGFzeW1t ZXRyaWMsIHNvIGNoZWNrIGJvdGggd2F5cyAqLwotCXJldHVybiBhID09IGIgfHwgKGEtPmNsb25l YWJsZSAmICgxIDw8IGItPnR5cGUpICYmCi0JCQkgIGItPmNsb25lYWJsZSAmICgxIDw8IGEtPnR5 cGUpKTsKLX0KLQotc3RhdGljIGJvb2wgY2hlY2tfc2luZ2xlX2VuY29kZXJfY2xvbmluZyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKLQkJCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVjdCBpbnRl bF9lbmNvZGVyICpzb3VyY2VfZW5jb2RlcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Ci0JaW50 IGk7Ci0KLQlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29u bmVjdG9yX3N0YXRlLCBpKSB7Ci0JCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMt PmJhc2UpCi0JCQljb250aW51ZTsKLQotCQlzb3VyY2VfZW5jb2RlciA9Ci0JCQl0b19pbnRlbF9l bmNvZGVyKGNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKLQkJaWYgKCFlbmNvZGVyc19j bG9uZWFibGUoZW5jb2Rlciwgc291cmNlX2VuY29kZXIpKQotCQkJcmV0dXJuIGZhbHNlOwotCX0K LQotCXJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBjaGVja19lbmNvZGVyX2Nsb25pbmco c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJCSAgc3RydWN0IGludGVsX2NydGMg KmNydGMpCi17Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Ci0Jc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVj dG9yX3N0YXRlOwotCWludCBpOwotCi0JZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRl LCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewotCQlpZiAoY29ubmVjdG9yX3N0YXRl LT5jcnRjICE9ICZjcnRjLT5iYXNlKQotCQkJY29udGludWU7Ci0KLQkJZW5jb2RlciA9IHRvX2lu dGVsX2VuY29kZXIoY29ubmVjdG9yX3N0YXRlLT5iZXN0X2VuY29kZXIpOwotCQlpZiAoIWNoZWNr X3NpbmdsZV9lbmNvZGVyX2Nsb25pbmcoc3RhdGUsIGNydGMsIGVuY29kZXIpKQotCQkJcmV0dXJu IGZhbHNlOwotCX0KLQotCXJldHVybiB0cnVlOwotfQotCiBzdGF0aWMgYm9vbCBjaGVja19kaWdp dGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKQEAgLTExNzcwLDExICsxMTc5Niw2 IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlu dCBpOwogCWJvb2wgcmV0cnkgPSB0cnVlOwogCi0JaWYgKCFjaGVja19lbmNvZGVyX2Nsb25pbmco c3RhdGUsIHRvX2ludGVsX2NydGMoY3J0YykpKSB7Ci0JCURSTV9ERUJVR19LTVMoInJlamVjdGlu ZyBpbnZhbGlkIGNsb25pbmcgY29uZmlndXJhdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwot CX0KLQogCWNsZWFyX2ludGVsX2NydGNfc3RhdGUocGlwZV9jb25maWcpOwogCiAJcGlwZV9jb25m aWctPmNwdV90cmFuc2NvZGVyID0KLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=