From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 2/4] drm/plane-helper: Add drm_plane_helper_check_update() (v3) Date: Thu, 29 May 2014 08:06:52 -0700 Message-ID: <1401376014-24845-3-git-send-email-matthew.d.roper@intel.com> References: <1401376014-24845-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1401376014-24845-1-git-send-email-matthew.d.roper@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 Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UHVsbCB0aGUgcGFyYW1ldGVyIGNoZWNraW5nIGZyb20gZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0 ZSgpIG91dCBpbnRvCml0cyBvd24gZnVuY3Rpb247IGRyaXZlcnMgdGhhdCBwcm92aWRlIHRoZWly IG93biBzZXRwbGFuZSgpCmltcGxlbWVudGF0aW9ucyByYXRoZXIgdGhhbiB1c2luZyB0aGUgaGVs cGVyIG1heSBzdGlsbCB3YW50IHRvIHNoYXJlCnRoaXMgcGFyYW1ldGVyIGNoZWNraW5nIGxvZ2lj LgoKQSBmZXcgb2YgdGhlIGNoZWNrcyBoZXJlIHdlcmUgYWxzbyB1cGRhdGVkIGJhc2VkIG9uIHN1 Z2dlc3Rpb25zIGJ5ClZpbGxlIFN5cmrDpGzDpC4KCnYzOgogLSBzL3ByaW1hcnlfaGVscGVyL3Bs YW5lX2hlbHBlci8gLS0tIHRoaXMgY2hlY2tpbmcgbG9naWMgbWF5IGJlIHVzZWZ1bAogICBmb3Ig b3RoZXIgdHlwZXMgb2YgcGxhbmVzIGFzIHdlbGwuCiAtIEZpeCB2aXNpYmlsaXR5IGNoZWNrIChu ZWVkIHRvIGRlcmVmZXJlbmNlIHZpc2liaWxpdHkgcG9pbnRlcikKdjI6CiAtIFBhc3Mgc3JjL2Rl c3QvY2xpcCByZWN0cyBhbmQgbWluL21heCBzY2FsaW5nIGRvd24gdG8gaGVscGVyIHRvIGF2b2lk CiAgIGR1cGxpY2F0aW9uIG9mIGVmZm9ydCBiZXR3ZWVuIGhlbHBlciBhbmQgZHJpdmVycyAoc3Vn Z2VzdGVkIGJ5CiAgIFZpbGxlKS4KIC0gQWxsb3cgY2FsbGVyIHRvIHNwZWNpZnkgd2hldGhlciB0 aGUgcHJpbWFyeSBwbGFuZSBzaG91bGQgYmUKICAgdXBkYXRhYmxlIHdoaWxlIHRoZSBjcnRjIGlz IGRpc2FibGVkLgoKQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKUmV2aWV3ZWQt Ynk6IENob24gTWluZyBMZWUgPGNob24ubWluZy5sZWVAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgfCAxMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLQogaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBlci5oICAgICB8ICAyMiArKysr KysrCiAyIGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwppbmRleCBiNjAxMjMzLi5mZDQwMWZjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKQEAgLTY2LDYgKzY2LDc5IEBAIHN0YXRpYyBpbnQg Z2V0X2Nvbm5lY3RvcnNfZm9yX2NydGMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogfQogCiAvKioK KyAqIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKCkgLSBDaGVjayBwbGFuZSB1cGRhdGUg Zm9yIHZhbGlkaXR5CisgKiBAcGxhbmU6IHBsYW5lIG9iamVjdCB0byB1cGRhdGUKKyAqIEBjcnRj OiBvd25pbmcgQ1JUQyBvZiBvd25pbmcgcGxhbmUKKyAqIEBmYjogZnJhbWVidWZmZXIgdG8gZmxp cCBvbnRvIHBsYW5lCisgKiBAc3JjOiBzb3VyY2UgY29vcmRpbmF0ZXMgaW4gMTYuMTYgZml4ZWQg cG9pbnQKKyAqIEBkZXN0OiBpbnRlZ2VyIGRlc3RpbmF0aW9uIGNvb3JkaW5hdGVzCisgKiBAY2xp cDogaW50ZWdlciBjbGlwcGluZyBjb29yZGluYXRlcworICogQG1pbl9zY2FsZTogbWluaW11bSBA c3JjOkBkZXN0IHNjYWxpbmcgZmFjdG9yIGluIDE2LjE2IGZpeGVkIHBvaW50CisgKiBAbWF4X3Nj YWxlOiBtYXhpbXVtIEBzcmM6QGRlc3Qgc2NhbGluZyBmYWN0b3IgaW4gMTYuMTYgZml4ZWQgcG9p bnQKKyAqIEBjYW5fcG9zaXRpb246IGlzIGl0IGxlZ2FsIHRvIHBvc2l0aW9uIHRoZSBwbGFuZSBz dWNoIHRoYXQgaXQKKyAqICAgICAgICAgICAgICAgIGRvZXNuJ3QgY292ZXIgdGhlIGVudGlyZSBj cnRjPyAgVGhpcyB3aWxsIGdlbmVyYWxseQorICogICAgICAgICAgICAgICAgb25seSBiZSBmYWxz ZSBmb3IgcHJpbWFyeSBwbGFuZXMuCisgKiBAY2FuX3VwZGF0ZV9kaXNhYmxlZDogY2FuIHRoZSBw bGFuZSBiZSB1cGRhdGVkIHdoaWxlIHRoZSBjcnRjCisgKiAgICAgICAgICAgICAgICAgICAgICAg aXMgZGlzYWJsZWQ/CisgKiBAdmlzaWJsZTogb3V0cHV0IHBhcmFtZXRlciBpbmRpY2F0aW5nIHdo ZXRoZXIgcGxhbmUgaXMgc3RpbGwgdmlzaWJsZSBhZnRlcgorICogICAgICAgICAgIGNsaXBwaW5n CisgKgorICogQ2hlY2tzIHRoYXQgYSBkZXNpcmVkIHBsYW5lIHVwZGF0ZSBpcyB2YWxpZC4gIERy aXZlcnMgdGhhdCBwcm92aWRlCisgKiB0aGVpciBvd24gcGxhbmUgaGFuZGxpbmcgcmF0aGVyIHRo YW4gaGVscGVyLXByb3ZpZGVkIGltcGxlbWVudGF0aW9ucyBtYXkKKyAqIHN0aWxsIHdpc2ggdG8g Y2FsbCB0aGlzIGZ1bmN0aW9uIHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9mIGVycm9yIGNoZWNraW5n CisgKiBjb2RlLgorICoKKyAqIFJFVFVSTlM6CisgKiBaZXJvIGlmIHVwZGF0ZSBhcHBlYXJzIHZh bGlkLCBlcnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50IGRybV9wbGFuZV9oZWxwZXJfY2hl Y2tfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgICBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCisJCQkJICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCSAgICBz dHJ1Y3QgZHJtX3JlY3QgKnNyYywKKwkJCQkgICAgc3RydWN0IGRybV9yZWN0ICpkZXN0LAorCQkJ CSAgICBjb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmNsaXAsCisJCQkJICAgIGludCBtaW5fc2NhbGUs CisJCQkJICAgIGludCBtYXhfc2NhbGUsCisJCQkJICAgIGJvb2wgY2FuX3Bvc2l0aW9uLAorCQkJ CSAgICBib29sIGNhbl91cGRhdGVfZGlzYWJsZWQsCisJCQkJICAgIGJvb2wgKnZpc2libGUpCit7 CisJaW50IGhzY2FsZSwgdnNjYWxlOworCisJaWYgKCFjcnRjLT5lbmFibGVkICYmICFjYW5fdXBk YXRlX2Rpc2FibGVkKSB7CisJCURSTV9ERUJVR19LTVMoIkNhbm5vdCB1cGRhdGUgcGxhbmUgb2Yg YSBkaXNhYmxlZCBDUlRDLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIENoZWNr IHNjYWxpbmcgKi8KKwloc2NhbGUgPSBkcm1fcmVjdF9jYWxjX2hzY2FsZShzcmMsIGRlc3QsIG1p bl9zY2FsZSwgbWF4X3NjYWxlKTsKKwl2c2NhbGUgPSBkcm1fcmVjdF9jYWxjX3ZzY2FsZShzcmMs IGRlc3QsIG1pbl9zY2FsZSwgbWF4X3NjYWxlKTsKKwlpZiAoaHNjYWxlIDwgMCB8fCB2c2NhbGUg PCAwKSB7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgc2NhbGluZyBvZiBwbGFuZVxuIik7CisJ CXJldHVybiAtRVJBTkdFOworCX0KKworCSp2aXNpYmxlID0gZHJtX3JlY3RfY2xpcF9zY2FsZWQo c3JjLCBkZXN0LCBjbGlwLCBoc2NhbGUsIHZzY2FsZSk7CisJaWYgKCEqdmlzaWJsZSkKKwkJLyoK KwkJICogUGxhbmUgaXNuJ3QgdmlzaWJsZTsgc29tZSBkcml2ZXJzIGNhbiBoYW5kbGUgdGhpcwor CQkgKiBzbyB3ZSBqdXN0IHJldHVybiBzdWNjZXNzIGhlcmUuICBEcml2ZXJzIHRoYXQgY2FuJ3QK KwkJICogKGluY2x1ZGluZyB0aG9zZSB0aGF0IHVzZSB0aGUgcHJpbWFyeSBwbGFuZSBoZWxwZXIn cworCQkgKiB1cGRhdGUgZnVuY3Rpb24pIHdpbGwgcmV0dXJuIGFuIGVycm9yIGZyb20gdGhlaXIK KwkJICogdXBkYXRlX3BsYW5lIGhhbmRsZXIuCisJCSAqLworCQlyZXR1cm4gMDsKKworCWlmICgh Y2FuX3Bvc2l0aW9uICYmICFkcm1fcmVjdF9lcXVhbHMoZGVzdCwgY2xpcCkpIHsKKwkJRFJNX0RF QlVHX0tNUygiUGxhbmUgbXVzdCBjb3ZlciBlbnRpcmUgQ1JUQ1xuIik7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfaGVscGVy X2NoZWNrX3VwZGF0ZSk7CisKKy8qKgogICogZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0ZSgpIC0g SGVscGVyIGZvciBwcmltYXJ5IHBsYW5lIHVwZGF0ZQogICogQHBsYW5lOiBwbGFuZSBvYmplY3Qg dG8gdXBkYXRlCiAgKiBAY3J0Yzogb3duaW5nIENSVEMgb2Ygb3duaW5nIHBsYW5lCkBAIC0xMTMs NTEgKzE4Niw0MiBAQCBpbnQgZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkueCA9IHNyY194ID4+IDE2LAog CQkueSA9IHNyY195ID4+IDE2LAogCX07CisJc3RydWN0IGRybV9yZWN0IHNyYyA9IHsKKwkJLngx ID0gc3JjX3gsCisJCS55MSA9IHNyY195LAorCQkueDIgPSBzcmNfeCArIHNyY193LAorCQkueTIg PSBzcmNfeSArIHNyY19oLAorCX07CiAJc3RydWN0IGRybV9yZWN0IGRlc3QgPSB7CiAJCS54MSA9 IGNydGNfeCwKIAkJLnkxID0gY3J0Y195LAogCQkueDIgPSBjcnRjX3ggKyBjcnRjX3csCiAJCS55 MiA9IGNydGNfeSArIGNydGNfaCwKIAl9OwotCXN0cnVjdCBkcm1fcmVjdCBjbGlwID0geworCWNv bnN0IHN0cnVjdCBkcm1fcmVjdCBjbGlwID0gewogCQkueDIgPSBjcnRjLT5tb2RlLmhkaXNwbGF5 LAogCQkueTIgPSBjcnRjLT5tb2RlLnZkaXNwbGF5LAogCX07CiAJc3RydWN0IGRybV9jb25uZWN0 b3IgKipjb25uZWN0b3JfbGlzdDsKIAlpbnQgbnVtX2Nvbm5lY3RvcnMsIHJldDsKKwlib29sIHZp c2libGU7CiAKLQlpZiAoIWNydGMtPmVuYWJsZWQpIHsKLQkJRFJNX0RFQlVHX0tNUygiQ2Fubm90 IHVwZGF0ZSBwcmltYXJ5IHBsYW5lIG9mIGEgZGlzYWJsZWQgQ1JUQy5cbiIpOwotCQlyZXR1cm4g LUVJTlZBTDsKLQl9Ci0KLQkvKiBEaXNhbGxvdyBzdWJwaXhlbCBwb3NpdGlvbmluZyAqLwotCWlm ICgoc3JjX3ggfCBzcmNfeSB8IHNyY193IHwgc3JjX2gpICYgU1VCUElYRUxfTUFTSykgewotCQlE Uk1fREVCVUdfS01TKCJQcmltYXJ5IHBsYW5lIGRvZXMgbm90IHN1cHBvcnQgc3VicGl4ZWwgcG9z aXRpb25pbmdcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBEaXNhbGxvdyBzY2Fs aW5nICovCi0Jc3JjX3cgPj49IDE2OwotCXNyY19oID4+PSAxNjsKLQlpZiAoY3J0Y193ICE9IHNy Y193IHx8IGNydGNfaCAhPSBzcmNfaCkgewotCQlEUk1fREVCVUdfS01TKCJDYW4ndCBzY2FsZSBw cmltYXJ5IHBsYW5lXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogTWFrZSBzdXJl IHByaW1hcnkgcGxhbmUgY292ZXJzIGVudGlyZSBDUlRDICovCi0JZHJtX3JlY3RfaW50ZXJzZWN0 KCZkZXN0LCAmY2xpcCk7Ci0JaWYgKGRlc3QueDEgIT0gMCB8fCBkZXN0LnkxICE9IDAgfHwKLQkg ICAgZGVzdC54MiAhPSBjcnRjLT5tb2RlLmhkaXNwbGF5IHx8IGRlc3QueTIgIT0gY3J0Yy0+bW9k ZS52ZGlzcGxheSkgewotCQlEUk1fREVCVUdfS01TKCJQcmltYXJ5IHBsYW5lIG11c3QgY292ZXIg ZW50aXJlIENSVENcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBGcmFtZWJ1ZmZl ciBtdXN0IGJlIGJpZyBlbm91Z2ggdG8gY292ZXIgZW50aXJlIHBsYW5lICovCi0JcmV0ID0gZHJt X2NydGNfY2hlY2tfdmlld3BvcnQoY3J0YywgY3J0Y194LCBjcnRjX3ksICZjcnRjLT5tb2RlLCBm Yik7CisJcmV0ID0gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNydGMsIGZi LAorCQkJCQkgICAgJnNyYywgJmRlc3QsICZjbGlwLAorCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAorCQkJCQkgICAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAorCQkJ CQkgICAgZmFsc2UsIGZhbHNlLCAmdmlzaWJsZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsK IAorCWlmICghdmlzaWJsZSkKKwkJLyoKKwkJICogUHJpbWFyeSBwbGFuZSBpc24ndCB2aXNpYmxl LiAgTm90ZSB0aGF0IHVubGVzcyBhIGRyaXZlcgorCQkgKiBwcm92aWRlcyB0aGVpciBvd24gZGlz YWJsZSBmdW5jdGlvbiwgdGhpcyB3aWxsIGp1c3QKKwkJICogd2luZCB1cCByZXR1cm5pbmcgLUVJ TlZBTCB0byB1c2Vyc3BhY2UuCisJCSAqLworCQlyZXR1cm4gcGxhbmUtPmZ1bmNzLT5kaXNhYmxl X3BsYW5lKHBsYW5lKTsKKwogCS8qIEZpbmQgY3VycmVudCBjb25uZWN0b3JzIGZvciBDUlRDICov CiAJbnVtX2Nvbm5lY3RvcnMgPSBnZXRfY29ubmVjdG9yc19mb3JfY3J0YyhjcnRjLCBOVUxMLCAw KTsKIAlCVUdfT04obnVtX2Nvbm5lY3RvcnMgPT0gMCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fcGxhbmVfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmgKaW5k ZXggMDk4MjRiZS4uYTgzYTY0NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hl bHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaApAQCAtMjQsNiArMjQs MTcgQEAKICNpZm5kZWYgRFJNX1BMQU5FX0hFTFBFUl9ICiAjZGVmaW5lIERSTV9QTEFORV9IRUxQ RVJfSAogCisjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+CisKKy8qCisgKiBEcml2ZXJzIHRoYXQg ZG9uJ3QgYWxsb3cgcHJpbWFyeSBwbGFuZSBzY2FsaW5nIG1heSBwYXNzIHRoaXMgbWFjcm8gaW4g cGxhY2UKKyAqIG9mIHRoZSBtaW4vbWF4IHNjYWxlIHBhcmFtZXRlcnMgb2YgdGhlIHVwZGF0ZSBj aGVja2VyIGZ1bmN0aW9uLgorICoKKyAqIER1ZSB0byBzcmMgYmVpbmcgaW4gMTYuMTYgZml4ZWQg cG9pbnQgYW5kIGRlc3QgYmVpbmcgaW4gaW50ZWdlciBwaXhlbHMsCisgKiAxPDwxNiByZXByZXNl bnRzIG5vIHNjYWxpbmcuCisgKi8KKyNkZWZpbmUgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5H ICgxPDwxNikKKwogLyoqCiAgKiBET0M6IHBsYW5lIGhlbHBlcnMKICAqCkBAIC0zMSw2ICs0Miwx NyBAQAogICogcGxhbmVzLgogICovCiAKK2V4dGVybiBpbnQgZHJtX3BsYW5lX2hlbHBlcl9jaGVj a191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJCSBzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCisJCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJCQkJIHN0cnVjdCBk cm1fcmVjdCAqc3JjLAorCQkJCQkgc3RydWN0IGRybV9yZWN0ICpkZXN0LAorCQkJCQkgY29uc3Qg c3RydWN0IGRybV9yZWN0ICpjbGlwLAorCQkJCQkgaW50IG1pbl9zY2FsZSwKKwkJCQkJIGludCBt YXhfc2NhbGUsCisJCQkJCSBib29sIGNhbl9wb3NpdGlvbiwKKwkJCQkJIGJvb2wgY2FuX3VwZGF0 ZV9kaXNhYmxlZCwKKwkJCQkJIGJvb2wgKnZpc2libGUpOwogZXh0ZXJuIGludCBkcm1fcHJpbWFy eV9oZWxwZXJfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICAgc3RydWN0 IGRybV9jcnRjICpjcnRjLAogCQkJCSAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0t IAoxLjguNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=