From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v3 03/19] drm/i915: Add a simple atomic crtc check function, v2. Date: Mon, 15 Jun 2015 12:33:40 +0200 Message-ID: <1434364436-6366-4-git-send-email-maarten.lankhorst@linux.intel.com> References: <1434364436-6366-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 925B86E731 for ; Mon, 15 Jun 2015 03:34:13 -0700 (PDT) In-Reply-To: <1434364436-6366-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 bWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCAwNDFiZmY1 MDQ2MjkuLjZhYjcxZWE5MjgxOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKQEAg LTEwMCw3ICsxMDAsMTAgQEAgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQkvKiBGSVhNRTogbW92ZSB0byBj cnRjIGF0b21pYyBjaGVjayBmdW5jdGlvbiBvbmNlIGl0IGlzIHJlYWR5ICovCisJLyoKKwkgKiBG SVhNRTogbW92ZSB0byBjcnRjIGF0b21pYyBjaGVjayBmdW5jdGlvbiBvbmNlIHRoaXMgaXMKKwkg KiBtb3JlIGF0b21pYyBmcmllbmRseS4KKwkgKi8KIAlyZXQgPSBpbnRlbF9hdG9taWNfc2V0dXBf c2NhbGVycyhkZXYsIG51Y2xlYXJfY3J0YywgY3J0Y19zdGF0ZSk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA5NTZmYjg0MjNm ZmYuLjI5ZTc2MWQ5ZTBlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAt MTE2NjEsMTEgKzExNjYxLDgyIEBAIHJldHJ5OgogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBi b29sIGVuY29kZXJzX2Nsb25lYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYSwKKwkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYikKK3sKKwkvKiBtYXNrcyBjb3Vs ZCBiZSBhc3ltbWV0cmljLCBzbyBjaGVjayBib3RoIHdheXMgKi8KKwlyZXR1cm4gYSA9PSBiIHx8 IChhLT5jbG9uZWFibGUgJiAoMSA8PCBiLT50eXBlKSAmJgorCQkJICBiLT5jbG9uZWFibGUgJiAo MSA8PCBhLT50eXBlKSk7Cit9CisKK3N0YXRpYyBib29sIGNoZWNrX3NpbmdsZV9lbmNvZGVyX2Ns b25pbmcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJCQkgc3RydWN0IGludGVs X2NydGMgKmNydGMsCisJCQkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqc291cmNlX2VuY29kZXI7CisJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0 YXRlOworCWludCBpOworCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25u ZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgeworCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRj ICE9ICZjcnRjLT5iYXNlKQorCQkJY29udGludWU7CisKKwkJc291cmNlX2VuY29kZXIgPQorCQkJ dG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3RhdGUtPmJlc3RfZW5jb2Rlcik7CisJCWlmICgh ZW5jb2RlcnNfY2xvbmVhYmxlKGVuY29kZXIsIHNvdXJjZV9lbmNvZGVyKSkKKwkJCXJldHVybiBm YWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgY2hlY2tfZW5jb2Rl cl9jbG9uaW5nKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgIHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOworCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5lY3Rvcl9zdGF0ZTsKKwlpbnQgaTsKKworCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9z dGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKKwkJaWYgKGNvbm5l Y3Rvcl9zdGF0ZS0+Y3J0YyAhPSAmY3J0Yy0+YmFzZSkKKwkJCWNvbnRpbnVlOworCisJCWVuY29k ZXIgPSB0b19pbnRlbF9lbmNvZGVyKGNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKKwkJ aWYgKCFjaGVja19zaW5nbGVfZW5jb2Rlcl9jbG9uaW5nKHN0YXRlLCBjcnRjLCBlbmNvZGVyKSkK KwkJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGludCBp bnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICAgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5zdGF0ZTsKKwlpbnQgaWR4ID0gY3J0Yy0+YmFzZS5pZDsK Kwlib29sIG1vZGVfY2hhbmdlZCA9IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7CisKKwlpZiAo bW9kZV9jaGFuZ2VkICYmICFjaGVja19lbmNvZGVyX2Nsb25pbmcoc3RhdGUsIGludGVsX2NydGMp KSB7CisJCURSTV9ERUJVR19LTVMoInJlamVjdGluZyBpbnZhbGlkIGNsb25pbmcgY29uZmlndXJh dGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCUk5MTVfU1RBVEVfV0FSTihjcnRj LT5zdGF0ZS0+YWN0aXZlICE9IGludGVsX2NydGMtPmFjdGl2ZSwKKwkJIltDUlRDOiVpXSBtaXNt YXRjaCBiZXR3ZWVuIHN0YXRlLT5hY3RpdmUoJWkpIGFuZCBjcnRjLT5hY3RpdmUoJWkpXG4iLAor CQlpZHgsIGNydGMtPnN0YXRlLT5hY3RpdmUsIGludGVsX2NydGMtPmFjdGl2ZSk7CisKKwlyZXR1 cm4gMDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgaW50 ZWxfaGVscGVyX2Z1bmNzID0gewogCS5tb2RlX3NldF9iYXNlX2F0b21pYyA9IGludGVsX3BpcGVf c2V0X2Jhc2VfYXRvbWljLAogCS5sb2FkX2x1dCA9IGludGVsX2NydGNfbG9hZF9sdXQsCiAJLmF0 b21pY19iZWdpbiA9IGludGVsX2JlZ2luX2NydGNfY29tbWl0LAogCS5hdG9taWNfZmx1c2ggPSBp bnRlbF9maW5pc2hfY3J0Y19jb21taXQsCisJLmF0b21pY19jaGVjayA9IGludGVsX2NydGNfYXRv bWljX2NoZWNrLAogfTsKIAogLyoqCkBAIC0xMTkxOCw1NiArMTE5ODksNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCX0KIH0K IAotc3RhdGljIGJvb2wgZW5jb2RlcnNfY2xvbmVhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9lbmNv ZGVyICphLAotCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9lbmNvZGVyICpiKQotewotCS8q IG1hc2tzIGNvdWxkIGJlIGFzeW1tZXRyaWMsIHNvIGNoZWNrIGJvdGggd2F5cyAqLwotCXJldHVy biBhID09IGIgfHwgKGEtPmNsb25lYWJsZSAmICgxIDw8IGItPnR5cGUpICYmCi0JCQkgIGItPmNs b25lYWJsZSAmICgxIDw8IGEtPnR5cGUpKTsKLX0KLQotc3RhdGljIGJvb2wgY2hlY2tfc2luZ2xl X2VuY29kZXJfY2xvbmluZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCi0JCQkJCSBz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKLQkJCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQotewotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpzb3VyY2VfZW5jb2RlcjsKLQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uZWN0b3Jfc3RhdGU7Ci0JaW50IGk7Ci0KLQlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3RhdGUo c3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Ci0JCWlmIChjb25uZWN0b3Jf c3RhdGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCi0JCQljb250aW51ZTsKLQotCQlzb3VyY2VfZW5j b2RlciA9Ci0JCQl0b19pbnRlbF9lbmNvZGVyKGNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVy KTsKLQkJaWYgKCFlbmNvZGVyc19jbG9uZWFibGUoZW5jb2Rlciwgc291cmNlX2VuY29kZXIpKQot CQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCXJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBj aGVja19lbmNvZGVyX2Nsb25pbmcoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAotCQkJ CSAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCi17Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXI7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwotCWludCBpOwotCi0JZm9yX2VhY2hfY29u bmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewot CQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9ICZjcnRjLT5iYXNlKQotCQkJY29udGludWU7 Ci0KLQkJZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoY29ubmVjdG9yX3N0YXRlLT5iZXN0X2Vu Y29kZXIpOwotCQlpZiAoIWNoZWNrX3NpbmdsZV9lbmNvZGVyX2Nsb25pbmcoc3RhdGUsIGNydGMs IGVuY29kZXIpKQotCQkJcmV0dXJuIGZhbHNlOwotCX0KLQotCXJldHVybiB0cnVlOwotfQotCiBz dGF0aWMgYm9vbCBjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsK QEAgLTEyMDU0LDExICsxMjA3NSw2IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCWludCBpOwogCWJvb2wgcmV0cnkgPSB0cnVlOwogCi0JaWYgKCFj aGVja19lbmNvZGVyX2Nsb25pbmcoc3RhdGUsIHRvX2ludGVsX2NydGMoY3J0YykpKSB7Ci0JCURS TV9ERUJVR19LTVMoInJlamVjdGluZyBpbnZhbGlkIGNsb25pbmcgY29uZmlndXJhdGlvblxuIik7 Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWNsZWFyX2ludGVsX2NydGNfc3RhdGUocGlwZV9j b25maWcpOwogCiAJcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID0KLS0gCjIuMS4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=