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: Mon, 19 May 2014 14:46:58 -0700 Message-ID: <1400536018-18892-1-git-send-email-matthew.d.roper@intel.com> References: <1398877623-16930-3-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: <1398877623-16930-3-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org UHVsbCB0aGUgcGFyYW1ldGVyIGNoZWNraW5nIGZyb20gZHJtX3ByaW1hcnlfaGVscGVyX3VwZGF0 ZSgpIG91dCBpbnRvCml0cyBvd24gZnVuY3Rpb247IGRyaXZlcnMgdGhhdCBwcm92aWRlIHRoZWly IG93biBzZXRwbGFuZSgpCmltcGxlbWVudGF0aW9ucyByYXRoZXIgdGhhbiB1c2luZyB0aGUgaGVs cGVyIG1heSBzdGlsbCB3YW50IHRvIHNoYXJlCnRoaXMgcGFyYW1ldGVyIGNoZWNraW5nIGxvZ2lj LgoKQSBmZXcgb2YgdGhlIGNoZWNrcyBoZXJlIHdlcmUgYWxzbyB1cGRhdGVkIGJhc2VkIG9uIHN1 Z2dlc3Rpb25zIGJ5ClZpbGxlIFN5cmrDpGzDpC4KCnYzOgogLSBzL3ByaW1hcnlfaGVscGVyL3Bs YW5lX2hlbHBlci8gLS0tIHRoaXMgY2hlY2tpbmcgbG9naWMgbWF5IGJlIHVzZWZ1bAogICBmb3Ig b3RoZXIgdHlwZXMgb2YgcGxhbmVzIGFzIHdlbGwuCiAtIEZpeCB2aXNpYmlsaXR5IGNoZWNrIChu ZWVkIHRvIGRlcmVmZXJlbmNlIHZpc2liaWxpdHkgcG9pbnRlcikKdjI6CiAtIFBhc3Mgc3JjL2Rl c3QvY2xpcCByZWN0cyBhbmQgbWluL21heCBzY2FsaW5nIGRvd24gdG8gaGVscGVyIHRvIGF2b2lk CiAgIGR1cGxpY2F0aW9uIG9mIGVmZm9ydCBiZXR3ZWVuIGhlbHBlciBhbmQgZHJpdmVycyAoc3Vn Z2VzdGVkIGJ5CiAgIFZpbGxlKS4KIC0gQWxsb3cgY2FsbGVyIHRvIHNwZWNpZnkgd2hldGhlciB0 aGUgcHJpbWFyeSBwbGFuZSBzaG91bGQgYmUKICAgdXBkYXRhYmxlIHdoaWxlIHRoZSBjcnRjIGlz IGRpc2FibGVkLgoKQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+CkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClNpZ25lZC1vZmYtYnk6 IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2RybV9wbGFuZV9oZWxwZXIuYyB8IDEyNCArKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVscGVyLmggICAgIHwgIDIyICsrKysr KysKIDIgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX3BsYW5lX2hlbHBlci5jCmluZGV4IGEyNTViZWEuLjgzYzhmMGIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmVfaGVscGVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9wbGFuZV9oZWxwZXIuYwpAQCAtNjcsNiArNjcsNzkgQEAgc3RhdGljIGludCBn ZXRfY29ubmVjdG9yc19mb3JfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiB9CiAKIC8qKgor ICogZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUoKSAtIENoZWNrIHBsYW5lIHVwZGF0ZSBm b3IgdmFsaWRpdHkKKyAqIEBwbGFuZTogcGxhbmUgb2JqZWN0IHRvIHVwZGF0ZQorICogQGNydGM6 IG93bmluZyBDUlRDIG9mIG93bmluZyBwbGFuZQorICogQGZiOiBmcmFtZWJ1ZmZlciB0byBmbGlw IG9udG8gcGxhbmUKKyAqIEBzcmM6IHNvdXJjZSBjb29yZGluYXRlcyBpbiAxNi4xNiBmaXhlZCBw b2ludAorICogQGRlc3Q6IGludGVnZXIgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMKKyAqIEBjbGlw OiBpbnRlZ2VyIGNsaXBwaW5nIGNvb3JkaW5hdGVzCisgKiBAbWluX3NjYWxlOiBtaW5pbXVtIEBz cmM6QGRlc3Qgc2NhbGluZyBmYWN0b3IgaW4gMTYuMTYgZml4ZWQgcG9pbnQKKyAqIEBtYXhfc2Nh bGU6IG1heGltdW0gQHNyYzpAZGVzdCBzY2FsaW5nIGZhY3RvciBpbiAxNi4xNiBmaXhlZCBwb2lu dAorICogQGNhbl9wb3NpdGlvbjogaXMgaXQgbGVnYWwgdG8gcG9zaXRpb24gdGhlIHBsYW5lIHN1 Y2ggdGhhdCBpdAorICogICAgICAgICAgICAgICAgZG9lc24ndCBjb3ZlciB0aGUgZW50aXJlIGNy dGM/ICBUaGlzIHdpbGwgZ2VuZXJhbGx5CisgKiAgICAgICAgICAgICAgICBvbmx5IGJlIGZhbHNl IGZvciBwcmltYXJ5IHBsYW5lcy4KKyAqIEBjYW5fdXBkYXRlX2Rpc2FibGVkOiBjYW4gdGhlIHBs YW5lIGJlIHVwZGF0ZWQgd2hpbGUgdGhlIGNydGMKKyAqICAgICAgICAgICAgICAgICAgICAgICBp cyBkaXNhYmxlZD8KKyAqIEB2aXNpYmxlOiBvdXRwdXQgcGFyYW1ldGVyIGluZGljYXRpbmcgd2hl dGhlciBwbGFuZSBpcyBzdGlsbCB2aXNpYmxlIGFmdGVyCisgKiAgICAgICAgICAgY2xpcHBpbmcK KyAqCisgKiBDaGVja3MgdGhhdCBhIGRlc2lyZWQgcGxhbmUgdXBkYXRlIGlzIHZhbGlkLiAgRHJp dmVycyB0aGF0IHByb3ZpZGUKKyAqIHRoZWlyIG93biBwbGFuZSBoYW5kbGluZyByYXRoZXIgdGhh biBoZWxwZXItcHJvdmlkZWQgaW1wbGVtZW50YXRpb25zIG1heQorICogc3RpbGwgd2lzaCB0byBj YWxsIHRoaXMgZnVuY3Rpb24gdG8gYXZvaWQgZHVwbGljYXRpb24gb2YgZXJyb3IgY2hlY2tpbmcK KyAqIGNvZGUuCisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gaWYgdXBkYXRlIGFwcGVhcnMgdmFs aWQsIGVycm9yIGNvZGUgb24gZmFpbHVyZQorICovCitpbnQgZHJtX3BsYW5lX2hlbHBlcl9jaGVj a191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJICAgIHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKKwkJCQkgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCQkJICAgIHN0 cnVjdCBkcm1fcmVjdCAqc3JjLAorCQkJCSAgICBzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QsCisJCQkJ ICAgIGNvbnN0IHN0cnVjdCBkcm1fcmVjdCAqY2xpcCwKKwkJCQkgICAgaW50IG1pbl9zY2FsZSwK KwkJCQkgICAgaW50IG1heF9zY2FsZSwKKwkJCQkgICAgYm9vbCBjYW5fcG9zaXRpb24sCisJCQkJ ICAgIGJvb2wgY2FuX3VwZGF0ZV9kaXNhYmxlZCwKKwkJCQkgICAgYm9vbCAqdmlzaWJsZSkKK3sK KwlpbnQgaHNjYWxlLCB2c2NhbGU7CisKKwlpZiAoIWNydGMtPmVuYWJsZWQgJiYgIWNhbl91cGRh dGVfZGlzYWJsZWQpIHsKKwkJRFJNX0RFQlVHX0tNUygiQ2Fubm90IHVwZGF0ZSBwbGFuZSBvZiBh IGRpc2FibGVkIENSVEMuXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQ2hlY2sg c2NhbGluZyAqLworCWhzY2FsZSA9IGRybV9yZWN0X2NhbGNfaHNjYWxlKHNyYywgZGVzdCwgbWlu X3NjYWxlLCBtYXhfc2NhbGUpOworCXZzY2FsZSA9IGRybV9yZWN0X2NhbGNfdnNjYWxlKHNyYywg ZGVzdCwgbWluX3NjYWxlLCBtYXhfc2NhbGUpOworCWlmIChoc2NhbGUgPCAwIHx8IHZzY2FsZSA8 IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBzY2FsaW5nIG9mIHBsYW5lXG4iKTsKKwkJ cmV0dXJuIC1FUkFOR0U7CisJfQorCisJKnZpc2libGUgPSBkcm1fcmVjdF9jbGlwX3NjYWxlZChz cmMsIGRlc3QsIGNsaXAsIGhzY2FsZSwgdnNjYWxlKTsKKwlpZiAoISp2aXNpYmxlKQorCQkvKgor CQkgKiBQbGFuZSBpc24ndCB2aXNpYmxlOyBzb21lIGRyaXZlcnMgY2FuIGhhbmRsZSB0aGlzCisJ CSAqIHNvIHdlIGp1c3QgcmV0dXJuIHN1Y2Nlc3MgaGVyZS4gIERyaXZlcnMgdGhhdCBjYW4ndAor CQkgKiAoaW5jbHVkaW5nIHRob3NlIHRoYXQgdXNlIHRoZSBwcmltYXJ5IHBsYW5lIGhlbHBlcidz CisJCSAqIHVwZGF0ZSBmdW5jdGlvbikgd2lsbCByZXR1cm4gYW4gZXJyb3IgZnJvbSB0aGVpcgor CQkgKiB1cGRhdGVfcGxhbmUgaGFuZGxlci4KKwkJICovCisJCXJldHVybiAwOworCisJaWYgKCFj YW5fcG9zaXRpb24gJiYgIWRybV9yZWN0X2VxdWFscyhkZXN0LCBjbGlwKSkgeworCQlEUk1fREVC VUdfS01TKCJQbGFuZSBtdXN0IGNvdmVyIGVudGlyZSBDUlRDXG4iKTsKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQorCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9oZWxwZXJf Y2hlY2tfdXBkYXRlKTsKKworLyoqCiAgKiBkcm1fcHJpbWFyeV9oZWxwZXJfdXBkYXRlKCkgLSBI ZWxwZXIgZm9yIHByaW1hcnkgcGxhbmUgdXBkYXRlCiAgKiBAcGxhbmU6IHBsYW5lIG9iamVjdCB0 byB1cGRhdGUKICAqIEBjcnRjOiBvd25pbmcgQ1JUQyBvZiBvd25pbmcgcGxhbmUKQEAgLTExNCw1 MSArMTg3LDQyIEBAIGludCBkcm1fcHJpbWFyeV9oZWxwZXJfdXBkYXRlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCS54ID0gc3JjX3ggPj4gMTYsCiAJ CS55ID0gc3JjX3kgPj4gMTYsCiAJfTsKKwlzdHJ1Y3QgZHJtX3JlY3Qgc3JjID0geworCQkueDEg PSBzcmNfeCwKKwkJLnkxID0gc3JjX3ksCisJCS54MiA9IHNyY194ICsgc3JjX3csCisJCS55MiA9 IHNyY195ICsgc3JjX2gsCisJfTsKIAlzdHJ1Y3QgZHJtX3JlY3QgZGVzdCA9IHsKIAkJLngxID0g Y3J0Y194LAogCQkueTEgPSBjcnRjX3ksCiAJCS54MiA9IGNydGNfeCArIGNydGNfdywKIAkJLnky ID0gY3J0Y195ICsgY3J0Y19oLAogCX07Ci0Jc3RydWN0IGRybV9yZWN0IGNsaXAgPSB7CisJY29u c3Qgc3RydWN0IGRybV9yZWN0IGNsaXAgPSB7CiAJCS54MiA9IGNydGMtPm1vZGUuaGRpc3BsYXks CiAJCS55MiA9IGNydGMtPm1vZGUudmRpc3BsYXksCiAJfTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqKmNvbm5lY3Rvcl9saXN0OwogCWludCBudW1fY29ubmVjdG9ycywgcmV0OworCWJvb2wgdmlz aWJsZTsKIAotCWlmICghY3J0Yy0+ZW5hYmxlZCkgewotCQlEUk1fREVCVUdfS01TKCJDYW5ub3Qg dXBkYXRlIHByaW1hcnkgcGxhbmUgb2YgYSBkaXNhYmxlZCBDUlRDLlxuIik7Ci0JCXJldHVybiAt RUlOVkFMOwotCX0KLQotCS8qIERpc2FsbG93IHN1YnBpeGVsIHBvc2l0aW9uaW5nICovCi0JaWYg KChzcmNfeCB8IHNyY195IHwgc3JjX3cgfCBzcmNfaCkgJiBTVUJQSVhFTF9NQVNLKSB7Ci0JCURS TV9ERUJVR19LTVMoIlByaW1hcnkgcGxhbmUgZG9lcyBub3Qgc3VwcG9ydCBzdWJwaXhlbCBwb3Np dGlvbmluZ1xuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIERpc2FsbG93IHNjYWxp bmcgKi8KLQlzcmNfdyA+Pj0gMTY7Ci0Jc3JjX2ggPj49IDE2OwotCWlmIChjcnRjX3cgIT0gc3Jj X3cgfHwgY3J0Y19oICE9IHNyY19oKSB7Ci0JCURSTV9ERUJVR19LTVMoIkNhbid0IHNjYWxlIHBy aW1hcnkgcGxhbmVcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBNYWtlIHN1cmUg cHJpbWFyeSBwbGFuZSBjb3ZlcnMgZW50aXJlIENSVEMgKi8KLQlkcm1fcmVjdF9pbnRlcnNlY3Qo JmRlc3QsICZjbGlwKTsKLQlpZiAoZGVzdC54MSAhPSAwIHx8IGRlc3QueTEgIT0gMCB8fAotCSAg ICBkZXN0LngyICE9IGNydGMtPm1vZGUuaGRpc3BsYXkgfHwgZGVzdC55MiAhPSBjcnRjLT5tb2Rl LnZkaXNwbGF5KSB7Ci0JCURSTV9ERUJVR19LTVMoIlByaW1hcnkgcGxhbmUgbXVzdCBjb3ZlciBl bnRpcmUgQ1JUQ1xuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIEZyYW1lYnVmZmVy IG11c3QgYmUgYmlnIGVub3VnaCB0byBjb3ZlciBlbnRpcmUgcGxhbmUgKi8KLQlyZXQgPSBkcm1f Y3J0Y19jaGVja192aWV3cG9ydChjcnRjLCBjcnRjX3gsIGNydGNfeSwgJmNydGMtPm1vZGUsIGZi KTsKKwlyZXQgPSBkcm1fcGxhbmVfaGVscGVyX2NoZWNrX3VwZGF0ZShwbGFuZSwgY3J0YywgZmIs CisJCQkJCSAgICAmc3JjLCAmZGVzdCwgJmNsaXAsCisJCQkJCSAgICBEUk1fUExBTkVfSEVMUEVS X05PX1NDQUxJTkcsCisJCQkJCSAgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJ CSAgICBmYWxzZSwgZmFsc2UsICZ2aXNpYmxlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog CisJaWYgKCF2aXNpYmxlKQorCQkvKgorCQkgKiBQcmltYXJ5IHBsYW5lIGlzbid0IHZpc2libGUu ICBOb3RlIHRoYXQgdW5sZXNzIGEgZHJpdmVyCisJCSAqIHByb3ZpZGVzIHRoZWlyIG93biBkaXNh YmxlIGZ1bmN0aW9uLCB0aGlzIHdpbGwganVzdAorCQkgKiB3aW5kIHVwIHJldHVybmluZyAtRUlO VkFMIHRvIHVzZXJzcGFjZS4KKwkJICovCisJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmRpc2FibGVf cGxhbmUocGxhbmUpOworCiAJLyogRmluZCBjdXJyZW50IGNvbm5lY3RvcnMgZm9yIENSVEMgKi8K IAludW1fY29ubmVjdG9ycyA9IGdldF9jb25uZWN0b3JzX2Zvcl9jcnRjKGNydGMsIE5VTEwsIDAp OwogCUJVR19PTihudW1fY29ubmVjdG9ycyA9PSAwKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9wbGFuZV9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZV9oZWxwZXIuaAppbmRl eCBjNWU3YWI5Li41MmU2ODcwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmVfaGVs cGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lX2hlbHBlci5oCkBAIC0yNCw2ICsyNCwx NyBAQAogI2lmbmRlZiBEUk1fUExBTkVfSEVMUEVSX0gKICNkZWZpbmUgRFJNX1BMQU5FX0hFTFBF Ul9ICiAKKyNpbmNsdWRlIDxkcm0vZHJtX3JlY3QuaD4KKworLyoKKyAqIERyaXZlcnMgdGhhdCBk b24ndCBhbGxvdyBwcmltYXJ5IHBsYW5lIHNjYWxpbmcgbWF5IHBhc3MgdGhpcyBtYWNybyBpbiBw bGFjZQorICogb2YgdGhlIG1pbi9tYXggc2NhbGUgcGFyYW1ldGVycyBvZiB0aGUgdXBkYXRlIGNo ZWNrZXIgZnVuY3Rpb24uCisgKgorICogRHVlIHRvIHNyYyBiZWluZyBpbiAxNi4xNiBmaXhlZCBw b2ludCBhbmQgZGVzdCBiZWluZyBpbiBpbnRlZ2VyIHBpeGVscywKKyAqIDE8PDE2IHJlcHJlc2Vu dHMgbm8gc2NhbGluZy4KKyAqLworI2RlZmluZSBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcg KDE8PDE2KQorCiAvKioKICAqIERPQzogcGxhbmUgaGVscGVycwogICoKQEAgLTMxLDYgKzQyLDE3 IEBACiAgKiBwbGFuZXMuCiAgKi8KIAorZXh0ZXJuIGludCBkcm1fcGxhbmVfaGVscGVyX2NoZWNr X3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkJIHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKKwkJCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJCQkgc3RydWN0IGRy bV9yZWN0ICpzcmMsCisJCQkJCSBzdHJ1Y3QgZHJtX3JlY3QgKmRlc3QsCisJCQkJCSBjb25zdCBz dHJ1Y3QgZHJtX3JlY3QgKmNsaXAsCisJCQkJCSBpbnQgbWluX3NjYWxlLAorCQkJCQkgaW50IG1h eF9zY2FsZSwKKwkJCQkJIGJvb2wgY2FuX3Bvc2l0aW9uLAorCQkJCQkgYm9vbCBjYW5fdXBkYXRl X2Rpc2FibGVkLAorCQkJCQkgYm9vbCAqdmlzaWJsZSk7CiBleHRlcm4gaW50IGRybV9wcmltYXJ5 X2hlbHBlcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJICAgICBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCiAJCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKLS0g CjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==