From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 06/11] drm/atomic: atomic_check functions Date: Thu, 18 Dec 2014 16:01:51 -0500 Message-ID: <1418936516-10754-7-git-send-email-robdclark@gmail.com> References: <1418936516-10754-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f44.google.com (mail-qa0-f44.google.com [209.85.216.44]) by gabe.freedesktop.org (Postfix) with ESMTP id 1EAE06EA7F for ; Thu, 18 Dec 2014 13:02:17 -0800 (PST) Received: by mail-qa0-f44.google.com with SMTP id bm13so1396059qab.31 for ; Thu, 18 Dec 2014 13:02:16 -0800 (PST) In-Reply-To: <1418936516-10754-1-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QWRkIGZ1bmN0aW9ucyB0byBjaGVjayBjb3JlIHBsYW5lL2NydGMgc3RhdGUuCgp2MjogY29tbWVu dHMsIGludC1vdmVyZmxvdyBjaGVja3MsIGNhbGwgZnJvbSBjb3JlIHJhdGhlciB0aGFuCiAgICBo ZWxwZXJzIHRvIGJlIHN1cmUgZHJpdmVycyBjYW4ndCBmaW5kIGEgd2F5IHRvIGJ5cGFzcyBjb3Jl CiAgICBjaGVja3MKClNpZ25lZC1vZmYtYnk6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpSZXZpZXdl ZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDEzOSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgICA0 ICstCiAyIGZpbGVzIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jCmluZGV4IGNlM2M2ODEuLjFjNDcyYjEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YwpAQCAtMjY5LDYgKzI2OSwyOSBAQCBpbnQgZHJtX2F0b21pY19jcnRjX2dldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfY3J0Y19nZXRf cHJvcGVydHkpOwogCiAvKioKKyAqIGRybV9hdG9taWNfY3J0Y19jaGVjayAtIGNoZWNrIGNydGMg c3RhdGUKKyAqIEBjcnRjOiBjcnRjIHRvIGNoZWNrCisgKiBAc3RhdGU6IGNydGMgc3RhdGUgdG8g Y2hlY2sKKyAqCisgKiBQcm92aWRlcyBjb3JlIHNhbml0eSBjaGVja3MgZm9yIGNydGMgc3RhdGUu CisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWls dXJlCisgKi8KK3N0YXRpYyBpbnQgZHJtX2F0b21pY19jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKK3sKKwkvKiBOT1RFOiB3 ZSBleHBsaWNpdGx5IGRvbid0IGVuZm9yY2UgY29uc3RyYWludHMgc3VjaCBhcyBwcmltYXJ5CisJ ICogbGF5ZXIgY292ZXJpbmcgZW50aXJlIHNjcmVlbiwgc2luY2UgdGhhdCBpcyBzb21ldGhpbmcg d2Ugd2FudAorCSAqIHRvIGFsbG93IChvbiBodyB0aGF0IHN1cHBvcnRzIGl0KS4gIEZvciBodyB0 aGF0IGRvZXMgbm90LCBpdAorCSAqIHNob3VsZCBiZSBjaGVja2VkIGluIGRyaXZlcidzIGNydGMt PmF0b21pY19jaGVjaygpIHZmdW5jLgorCSAqCisJICogVE9ETzogQWRkIGdlbmVyaWMgbW9kZXNl dCBzdGF0ZSBjaGVja3Mgb25jZSB3ZSBzdXBwb3J0IHRob3NlLgorCSAqLworCXJldHVybiAwOwor fQorCisvKioKICAqIGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlIC0gZ2V0IHBsYW5lIHN0YXRl CiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2JqZWN0CiAgKiBAcGxhbmU6IHBsYW5l IHRvIGdldCBzdGF0ZSBvYmplY3QgZm9yCkBAIC0zNzYsNiArMzk5LDgyIEBAIGludCBkcm1fYXRv bWljX3BsYW5lX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIEVYUE9SVF9T WU1CT0woZHJtX2F0b21pY19wbGFuZV9nZXRfcHJvcGVydHkpOwogCiAvKioKKyAqIGRybV9hdG9t aWNfcGxhbmVfY2hlY2sgLSBjaGVjayBwbGFuZSBzdGF0ZQorICogQHBsYW5lOiBwbGFuZSB0byBj aGVjaworICogQHN0YXRlOiBwbGFuZSBzdGF0ZSB0byBjaGVjaworICoKKyAqIFByb3ZpZGVzIGNv cmUgc2FuaXR5IGNoZWNrcyBmb3IgcGxhbmUgc3RhdGUuCisgKgorICogUkVUVVJOUzoKKyAqIFpl cm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK3N0YXRpYyBpbnQgZHJt X2F0b21pY19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3RhdGUpCit7CisJdW5zaWduZWQgaW50IGZiX3dpZHRoLCBmYl9oZWln aHQ7CisJdW5zaWduZWQgaW50IGk7CisKKwkvKiBlaXRoZXIgKmJvdGgqIENSVEMgYW5kIEZCIG11 c3QgYmUgc2V0LCBvciBuZWl0aGVyICovCisJaWYgKFdBUk5fT04oc3RhdGUtPmNydGMgJiYgIXN0 YXRlLT5mYikpIHsKKwkJRFJNX0RFQlVHX0tNUygiQ1JUQyBzZXQgYnV0IG5vIEZCXG4iKTsKKwkJ cmV0dXJuIC1FSU5WQUw7CisJfSBlbHNlIGlmIChXQVJOX09OKHN0YXRlLT5mYiAmJiAhc3RhdGUt PmNydGMpKSB7CisJCURSTV9ERUJVR19LTVMoIkZCIHNldCBidXQgbm8gQ1JUQ1xuIik7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCS8qIGlmIGRpc2FibGVkLCB3ZSBkb24ndCBjYXJlIGFib3V0 IHRoZSByZXN0IG9mIHRoZSBzdGF0ZTogKi8KKwlpZiAoIXN0YXRlLT5jcnRjKQorCQlyZXR1cm4g MDsKKworCS8qIENoZWNrIHdoZXRoZXIgdGhpcyBwbGFuZSBpcyB1c2FibGUgb24gdGhpcyBDUlRD ICovCisJaWYgKCEocGxhbmUtPnBvc3NpYmxlX2NydGNzICYgZHJtX2NydGNfbWFzayhzdGF0ZS0+ Y3J0YykpKSB7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgY3J0YyBmb3IgcGxhbmVcbiIpOwor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBDaGVjayB3aGV0aGVyIHRoaXMgcGxhbmUgc3Vw cG9ydHMgdGhlIGZiIHBpeGVsIGZvcm1hdC4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgcGxhbmUtPmZv cm1hdF9jb3VudDsgaSsrKQorCQlpZiAoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQgPT0gcGxhbmUt PmZvcm1hdF90eXBlc1tpXSkKKwkJCWJyZWFrOworCWlmIChpID09IHBsYW5lLT5mb3JtYXRfY291 bnQpIHsKKwkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBwaXhlbCBmb3JtYXQgJXNcbiIsCisJCQkg ICAgICBkcm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0KSk7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCS8qIEdpdmUgZHJpdmVycyBzb21lIGhlbHAgYWdhaW5zdCBp bnRlZ2VyIG92ZXJmbG93cyAqLworCWlmIChzdGF0ZS0+Y3J0Y193ID4gSU5UX01BWCB8fAorCSAg ICBzdGF0ZS0+Y3J0Y194ID4gSU5UX01BWCAtIChpbnQzMl90KSBzdGF0ZS0+Y3J0Y193IHx8CisJ ICAgIHN0YXRlLT5jcnRjX2ggPiBJTlRfTUFYIHx8CisJICAgIHN0YXRlLT5jcnRjX3kgPiBJTlRf TUFYIC0gKGludDMyX3QpIHN0YXRlLT5jcnRjX2gpIHsKKwkJRFJNX0RFQlVHX0tNUygiSW52YWxp ZCBDUlRDIGNvb3JkaW5hdGVzICV1eCV1KyVkKyVkXG4iLAorCQkJICAgICAgc3RhdGUtPmNydGNf dywgc3RhdGUtPmNydGNfaCwKKwkJCSAgICAgIHN0YXRlLT5jcnRjX3gsIHN0YXRlLT5jcnRjX3kp OworCQlyZXR1cm4gLUVSQU5HRTsKKwl9CisKKwlmYl93aWR0aCA9IHN0YXRlLT5mYi0+d2lkdGgg PDwgMTY7CisJZmJfaGVpZ2h0ID0gc3RhdGUtPmZiLT5oZWlnaHQgPDwgMTY7CisKKwkvKiBNYWtl IHN1cmUgc291cmNlIGNvb3JkaW5hdGVzIGFyZSBpbnNpZGUgdGhlIGZiLiAqLworCWlmIChzdGF0 ZS0+c3JjX3cgPiBmYl93aWR0aCB8fAorCSAgICBzdGF0ZS0+c3JjX3ggPiBmYl93aWR0aCAtIHN0 YXRlLT5zcmNfdyB8fAorCSAgICBzdGF0ZS0+c3JjX2ggPiBmYl9oZWlnaHQgfHwKKwkgICAgc3Rh dGUtPnNyY195ID4gZmJfaGVpZ2h0IC0gc3RhdGUtPnNyY19oKSB7CisJCURSTV9ERUJVR19LTVMo IkludmFsaWQgc291cmNlIGNvb3JkaW5hdGVzICIKKwkJCSAgICAgICIldS4lMDZ1eCV1LiUwNnUr JXUuJTA2dSsldS4lMDZ1XG4iLAorCQkJICAgICAgc3RhdGUtPnNyY193ID4+IDE2LCAoKHN0YXRl LT5zcmNfdyAmIDB4ZmZmZikgKiAxNTYyNSkgPj4gMTAsCisJCQkgICAgICBzdGF0ZS0+c3JjX2gg Pj4gMTYsICgoc3RhdGUtPnNyY19oICYgMHhmZmZmKSAqIDE1NjI1KSA+PiAxMCwKKwkJCSAgICAg IHN0YXRlLT5zcmNfeCA+PiAxNiwgKChzdGF0ZS0+c3JjX3ggJiAweGZmZmYpICogMTU2MjUpID4+ IDEwLAorCQkJICAgICAgc3RhdGUtPnNyY195ID4+IDE2LCAoKHN0YXRlLT5zcmNfeSAmIDB4ZmZm ZikgKiAxNTYyNSkgPj4gMTApOworCQlyZXR1cm4gLUVOT1NQQzsKKwl9CisKKwlyZXR1cm4gMDsK K30KKworLyoqCiAgKiBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUgLSBnZXQgY29ubmVj dG9yIHN0YXRlCiAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2JqZWN0CiAgKiBAY29u bmVjdG9yOiBjb25uZWN0b3IgdG8gZ2V0IHN0YXRlIG9iamVjdCBmb3IKQEAgLTgwMSwxNCArOTAw LDQ2IEBAIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19sZWdhY3lfYmFja29mZik7CiAgKi8KIGlu dCBkcm1fYXRvbWljX2NoZWNrX29ubHkoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQog ewotCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZzdGF0ZS0+ZGV2LT5tb2RlX2Nv bmZpZzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKKwlzdHJ1Y3QgZHJt X21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKKwlpbnQgbnBsYW5lcyA9 IGNvbmZpZy0+bnVtX3RvdGFsX3BsYW5lOworCWludCBuY3J0Y3MgPSBjb25maWctPm51bV9jcnRj OworCWludCBpLCByZXQgPSAwOwogCiAJRFJNX0RFQlVHX0tNUygiY2hlY2tpbmcgJXBcbiIsIHN0 YXRlKTsKIAorCWZvciAoaSA9IDA7IGkgPCBucGxhbmVzOyBpKyspIHsKKwkJc3RydWN0IGRybV9w bGFuZSAqcGxhbmUgPSBzdGF0ZS0+cGxhbmVzW2ldOworCisJCWlmICghcGxhbmUpCisJCQljb250 aW51ZTsKKworCQlyZXQgPSBkcm1fYXRvbWljX3BsYW5lX2NoZWNrKHBsYW5lLCBzdGF0ZS0+cGxh bmVfc3RhdGVzW2ldKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVk XSBhdG9taWMgY29yZSBjaGVjayBmYWlsZWRcbiIsCisJCQkJICAgICAgcGxhbmUtPmJhc2UuaWQp OworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCWZvciAoaSA9IDA7IGkgPCBuY3J0Y3M7IGkr KykgeworCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzdGF0ZS0+Y3J0Y3NbaV07CisKKwkJaWYg KCFjcnRjKQorCQkJY29udGludWU7CisKKwkJcmV0ID0gZHJtX2F0b21pY19jcnRjX2NoZWNrKGNy dGMsIHN0YXRlLT5jcnRjX3N0YXRlc1tpXSk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9ERUJVR19L TVMoIltDUlRDOiVkXSBhdG9taWMgY29yZSBjaGVjayBmYWlsZWRcbiIsCisJCQkJICAgICAgY3J0 Yy0+YmFzZS5pZCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfQorCiAJaWYgKGNvbmZpZy0+ZnVu Y3MtPmF0b21pY19jaGVjaykKLQkJcmV0dXJuIGNvbmZpZy0+ZnVuY3MtPmF0b21pY19jaGVjayhz dGF0ZS0+ZGV2LCBzdGF0ZSk7Ci0JZWxzZQotCQlyZXR1cm4gMDsKKwkJcmV0ID0gY29uZmlnLT5m dW5jcy0+YXRvbWljX2NoZWNrKHN0YXRlLT5kZXYsIHN0YXRlKTsKKworCXJldHVybiByZXQ7CiB9 CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfY2hlY2tfb25seSk7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMKaW5kZXggNTdlNTU0MC4uNTQxYmE4MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19wbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQlyZXQgPSBmdW5jcy0+YXRvbWlj X2NoZWNrKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAJCWlmIChyZXQpIHsKLQkJCURSTV9ERUJVR19L TVMoIltQTEFORTolZF0gYXRvbWljIGNoZWNrIGZhaWxlZFxuIiwKKwkJCURSTV9ERUJVR19LTVMo IltQTEFORTolZF0gYXRvbWljIGRyaXZlciBjaGVjayBmYWlsZWRcbiIsCiAJCQkJICAgICAgcGxh bmUtPmJhc2UuaWQpOwogCQkJcmV0dXJuIHJldDsKIAkJfQpAQCAtNDg3LDcgKzQ4Nyw3IEBAIGRy bV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJ CXJldCA9IGZ1bmNzLT5hdG9taWNfY2hlY2soY3J0Yywgc3RhdGUtPmNydGNfc3RhdGVzW2ldKTsK IAkJaWYgKHJldCkgewotCQkJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWRdIGF0b21pYyBjaGVjayBm YWlsZWRcbiIsCisJCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZF0gYXRvbWljIGRyaXZlciBjaGVj ayBmYWlsZWRcbiIsCiAJCQkJICAgICAgY3J0Yy0+YmFzZS5pZCk7CiAJCQlyZXR1cm4gcmV0Owog CQl9Ci0tIAoyLjEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK