From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 07/27] drm/i915: Add a simple atomic crtc check function, v2. Date: Thu, 4 Jun 2015 14:47:37 +0200 Message-ID: <1433422077-14907-8-git-send-email-maarten.lankhorst@linux.intel.com> References: <1433422077-14907-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 4E5706EAED for ; Thu, 4 Jun 2015 05:48:12 -0700 (PDT) In-Reply-To: <1433422077-14907-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 TW92ZSB0aGUgY2hlY2sgZm9yIGVuY29kZXIgY2xvbmluZyBoZXJlLgoKQ2hhbmdlcyBzaW5jZSB2 MToKLSBSZW1vdmUgd2FzL2lzIGNydGNfZGlzYWJsZWQuIChtYXR0cm9wZSkKLSBSZW5hbWUgZnVu Y3Rpb24gdG8gaW50ZWxfY3J0Y19hdG9taWNfY2hlY2suIChtYXR0cm9wZSkKClNpZ25lZC1vZmYt Ynk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgIHwgICA1ICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMjYgKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgNTYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCA2MzUwN2U4 YTMwOGEuLmYxMTg0OWMwYThhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAg LTEwMCw3ICsxMDAsMTAgQEAgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQkvKiBGSVhNRTogbW92ZSB0byBj cnRjIGF0b21pYyBjaGVjayBmdW5jdGlvbiBvbmNlIGl0IGlzIHJlYWR5ICovCisJLyoKKwkgKiBG SVhNRTogbW92ZSB0byBjcnRjIGF0b21pYyBjaGVjayBmdW5jdGlvbiBvbmNlIHRoaXMgaXMKKwkg KiBtb3JlIGF0b21pYyBmcmllbmRseS4KKwkgKi8KIAlyZXQgPSBpbnRlbF9hdG9taWNfc2V0dXBf c2NhbGVycyhkZXYsIG51Y2xlYXJfY3J0YywgY3J0Y19zdGF0ZSk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCAzZGEzMWJlZWU4 ZDAuLmQ1YTY3ZGJlMDFiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAt MTE0MjYsMTEgKzExNDI2LDgyIEBAIG91dF9oYW5nOgogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRp YyBib29sIGVuY29kZXJzX2Nsb25lYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYSwK KwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYikKK3sKKwkvKiBtYXNrcyBj b3VsZCBiZSBhc3ltbWV0cmljLCBzbyBjaGVjayBib3RoIHdheXMgKi8KKwlyZXR1cm4gYSA9PSBi IHx8IChhLT5jbG9uZWFibGUgJiAoMSA8PCBiLT50eXBlKSAmJgorCQkJICBiLT5jbG9uZWFibGUg JiAoMSA8PCBhLT50eXBlKSk7Cit9CisKK3N0YXRpYyBib29sIGNoZWNrX3NpbmdsZV9lbmNvZGVy X2Nsb25pbmcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCQkgc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCisJCQkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sK KwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqc291cmNlX2VuY29kZXI7CisJc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9y X3N0YXRlOworCWludCBpOworCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBj b25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgeworCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5j cnRjICE9ICZjcnRjLT5iYXNlKQorCQkJY29udGludWU7CisKKwkJc291cmNlX2VuY29kZXIgPQor CQkJdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2Rlcik7CisJCWlm ICghZW5jb2RlcnNfY2xvbmVhYmxlKGVuY29kZXIsIHNvdXJjZV9lbmNvZGVyKSkKKwkJCXJldHVy biBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgY2hlY2tfZW5j b2Rlcl9jbG9uaW5nKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgIHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwor CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKKwlpbnQgaTsKKworCWZvcl9lYWNoX2Nvbm5lY3Rvcl9p bl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKKwkJaWYgKGNv bm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSAmY3J0Yy0+YmFzZSkKKwkJCWNvbnRpbnVlOworCisJCWVu Y29kZXIgPSB0b19pbnRlbF9lbmNvZGVyKGNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsK KwkJaWYgKCFjaGVja19zaW5nbGVfZW5jb2Rlcl9jbG9uaW5nKHN0YXRlLCBjcnRjLCBlbmNvZGVy KSkKKwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGlu dCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICAg c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5zdGF0ZTsKKwlpbnQgaWR4ID0gY3J0Yy0+YmFzZS5p ZDsKKwlib29sIG1vZGVfY2hhbmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7CisKKwlp ZiAobW9kZV9jaGFuZ2VkICYmICFjaGVja19lbmNvZGVyX2Nsb25pbmcoc3RhdGUsIGludGVsX2Ny dGMpKSB7CisJCURSTV9ERUJVR19LTVMoInJlamVjdGluZyBpbnZhbGlkIGNsb25pbmcgY29uZmln dXJhdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCUk5MTVfU1RBVEVfV0FSTihj cnRjLT5zdGF0ZS0+YWN0aXZlICE9IGludGVsX2NydGMtPmFjdGl2ZSwKKwkJIltDUlRDOiVpXSBt aXNtYXRjaCBiZXR3ZWVuIHN0YXRlLT5hY3RpdmUoJWkpIGFuZCBjcnRjLT5hY3RpdmUoJWkpXG4i LAorCQlpZHgsIGNydGMtPnN0YXRlLT5hY3RpdmUsIGludGVsX2NydGMtPmFjdGl2ZSk7CisKKwly ZXR1cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3Mg aW50ZWxfaGVscGVyX2Z1bmNzID0gewogCS5tb2RlX3NldF9iYXNlX2F0b21pYyA9IGludGVsX3Bp cGVfc2V0X2Jhc2VfYXRvbWljLAogCS5sb2FkX2x1dCA9IGludGVsX2NydGNfbG9hZF9sdXQsCiAJ LmF0b21pY19iZWdpbiA9IGludGVsX2JlZ2luX2NydGNfY29tbWl0LAogCS5hdG9taWNfZmx1c2gg PSBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQsCisJLmF0b21pY19jaGVjayA9IGludGVsX2NydGNf YXRvbWljX2NoZWNrLAogfTsKIAogLyogVHJhbnNpdGlvbmFsIGhlbHBlciB0byBjb3B5IGN1cnJl bnQgY29ubmVjdG9yL2VuY29kZXIgc3RhdGUgdG8KQEAgLTExNjU2LDU2ICsxMTcyNyw2IEBAIHN0 YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMs CiAJfQogfQogCi1zdGF0aWMgYm9vbCBlbmNvZGVyc19jbG9uZWFibGUoY29uc3Qgc3RydWN0IGlu dGVsX2VuY29kZXIgKmEsCi0JCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2VuY29kZXIgKmIp Ci17Ci0JLyogbWFza3MgY291bGQgYmUgYXN5bW1ldHJpYywgc28gY2hlY2sgYm90aCB3YXlzICov Ci0JcmV0dXJuIGEgPT0gYiB8fCAoYS0+Y2xvbmVhYmxlICYgKDEgPDwgYi0+dHlwZSkgJiYKLQkJ CSAgYi0+Y2xvbmVhYmxlICYgKDEgPDwgYS0+dHlwZSkpOwotfQotCi1zdGF0aWMgYm9vbCBjaGVj a19zaW5nbGVfZW5jb2Rlcl9jbG9uaW5nKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK LQkJCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAotCQkJCQkgc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCi17Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKnNvdXJjZV9lbmNvZGVyOwot CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKLQlpbnQgaTsKLQotCWZvcl9lYWNoX2Nvbm5lY3Rvcl9p bl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKLQkJaWYgKGNv bm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSAmY3J0Yy0+YmFzZSkKLQkJCWNvbnRpbnVlOwotCi0JCXNv dXJjZV9lbmNvZGVyID0KLQkJCXRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9yX3N0YXRlLT5iZXN0 X2VuY29kZXIpOwotCQlpZiAoIWVuY29kZXJzX2Nsb25lYWJsZShlbmNvZGVyLCBzb3VyY2VfZW5j b2RlcikpCi0JCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRp YyBib29sIGNoZWNrX2VuY29kZXJfY2xvbmluZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUsCi0JCQkJICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKLXsKLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7Ci0JaW50IGk7Ci0KLQlmb3Jf ZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRl LCBpKSB7Ci0JCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCi0JCQlj b250aW51ZTsKLQotCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3RhdGUt PmJlc3RfZW5jb2Rlcik7Ci0JCWlmICghY2hlY2tfc2luZ2xlX2VuY29kZXJfY2xvbmluZyhzdGF0 ZSwgY3J0YywgZW5jb2RlcikpCi0JCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JcmV0dXJuIHRydWU7 Ci19Ci0KIHN0YXRpYyBib29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9jb25mbGljdHMoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0 ZS0+ZGV2OwpAQCAtMTE3OTIsMTEgKzExODEzLDYgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZp ZyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJaW50IGk7CiAJYm9vbCByZXRyeSA9IHRydWU7CiAK LQlpZiAoIWNoZWNrX2VuY29kZXJfY2xvbmluZyhzdGF0ZSwgdG9faW50ZWxfY3J0YyhjcnRjKSkp IHsKLQkJRFJNX0RFQlVHX0tNUygicmVqZWN0aW5nIGludmFsaWQgY2xvbmluZyBjb25maWd1cmF0 aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCiAJY2xlYXJfaW50ZWxfY3J0Y19zdGF0 ZShwaXBlX2NvbmZpZyk7CiAKIAlwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgPQotLSAKMi4x LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==