From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 09/13] drm/atomic: atomic_check functions Date: Tue, 16 Dec 2014 18:05:37 -0500 Message-ID: <1418771141-16954-10-git-send-email-robdclark@gmail.com> References: <1418771141-16954-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-qc0-f171.google.com (mail-qc0-f171.google.com [209.85.216.171]) by gabe.freedesktop.org (Postfix) with ESMTP id 231466E4AD for ; Tue, 16 Dec 2014 15:06:07 -0800 (PST) Received: by mail-qc0-f171.google.com with SMTP id r5so11156362qcx.16 for ; Tue, 16 Dec 2014 15:06:06 -0800 (PST) In-Reply-To: <1418771141-16954-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 QWRkIGZ1bmN0aW9ucyB0byBjaGVjayBjb3JlIHBsYW5lL2NydGMgc3RhdGUuCgpTaWduZWQtb2Zm LWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyAgICAgICAgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDQ3ICsrKysrKysr KysrKysrLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICB8ICA0ICsr CiAzIGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYwppbmRleCA0MDk5YjQ0Li5hZmI4MzBkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK QEAgLTI2MSw2ICsyNjEsMjcgQEAgaW50IGRybV9hdG9taWNfY3J0Y19nZXRfcHJvcGVydHkoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2NydGNfZ2V0X3By b3BlcnR5KTsKIAogLyoqCisgKiBkcm1fYXRvbWljX2NydGNfY2hlY2sgLSBjaGVjayBjcnRjIHN0 YXRlCisgKiBAY3J0YzogY3J0YyB0byBjaGVjaworICogQHN0YXRlOiBjcnRjIHN0YXRlIHRvIGNo ZWNrCisgKgorICogUHJvdmlkZXMgY29yZSBzYW5pdHkgY2hlY2tzIGZvciBjcnRjIHN0YXRlLgor ICoKKyAqIFJFVFVSTlM6CisgKiBaZXJvIG9uIHN1Y2Nlc3MsIGVycm9yIGNvZGUgb24gZmFpbHVy ZQorICovCitpbnQgZHJtX2F0b21pY19jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK KwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKK3sKKwkvKiBUT0RPIGFueXRoaW5nIHRv IGNoZWNrPyAgSSB0aGluayBpZiBkcml2ZXJzIHdhbnQgdG8gZW5mb3JjZSB0aGF0CisJICogcHJp bWFyeSBsYXllciBjb3ZlcnMgZW50aXJlIHNjcmVlbiwgdGhleSBzaG91bGQgZG8gdGhhdCBpbiB0 aGVpcgorCSAqIG93biBjcnRjLT5hdG9taWNfY2hlY2soKSB2ZnVuYy4uCisJICovCisJcmV0dXJu IDA7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfY3J0Y19jaGVjayk7CisKKy8qKgogICog ZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUgLSBnZXQgcGxhbmUgc3RhdGUKICAqIEBzdGF0ZTog Z2xvYmFsIGF0b21pYyBzdGF0ZSBvYmplY3QKICAqIEBwbGFuZTogcGxhbmUgdG8gZ2V0IHN0YXRl IG9iamVjdCBmb3IKQEAgLTM2MCw2ICszODEsNzIgQEAgaW50IGRybV9hdG9taWNfcGxhbmVfZ2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogRVhQT1JUX1NZTUJPTChkcm1fYXRv bWljX3BsYW5lX2dldF9wcm9wZXJ0eSk7CiAKIC8qKgorICogZHJtX2F0b21pY19wbGFuZV9jaGVj ayAtIGNoZWNrIHBsYW5lIHN0YXRlCisgKiBAcGxhbmU6IHBsYW5lIHRvIGNoZWNrCisgKiBAc3Rh dGU6IHBsYW5lIHN0YXRlIHRvIGNoZWNrCisgKgorICogUHJvdmlkZXMgY29yZSBzYW5pdHkgY2hl Y2tzIGZvciBwbGFuZSBzdGF0ZS4KKyAqCisgKiBSRVRVUk5TOgorICogWmVybyBvbiBzdWNjZXNz LCBlcnJvciBjb2RlIG9uIGZhaWx1cmUKKyAqLworaW50IGRybV9hdG9taWNfcGxhbmVfY2hlY2so c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRl KQoreworCXVuc2lnbmVkIGludCBmYl93aWR0aCwgZmJfaGVpZ2h0OworCXVuc2lnbmVkIGludCBp OworCisJLyogZWl0aGVyICpib3RoKiBDUlRDIGFuZCBGQiBtdXN0IGJlIHNldCwgb3IgbmVpdGhl ciAqLworCWlmIChXQVJOX09OKHN0YXRlLT5jcnRjICYmICFzdGF0ZS0+ZmIpKSB7CisJCURSTV9E RUJVR19LTVMoIkNSVEMgc2V0IGJ1dCBubyBGQlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0g ZWxzZSBpZiAoV0FSTl9PTihzdGF0ZS0+ZmIgJiYgIXN0YXRlLT5jcnRjKSkgeworCQlEUk1fREVC VUdfS01TKCJGQiBzZXQgYnV0IG5vIENSVENcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisK KwkvKiBpZiBkaXNhYmxlZCwgd2UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgcmVzdCBvZiB0aGUgc3Rh dGU6ICovCisJaWYgKCFzdGF0ZS0+Y3J0YykKKwkJcmV0dXJuIDA7CisKKwkvKiBDaGVjayB3aGV0 aGVyIHRoaXMgcGxhbmUgaXMgdXNhYmxlIG9uIHRoaXMgQ1JUQyAqLworCWlmICghKHBsYW5lLT5w b3NzaWJsZV9jcnRjcyAmIGRybV9jcnRjX21hc2soc3RhdGUtPmNydGMpKSkgeworCQlEUk1fREVC VUdfS01TKCJJbnZhbGlkIGNydGMgZm9yIHBsYW5lXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJ fQorCisJLyogQ2hlY2sgd2hldGhlciB0aGlzIHBsYW5lIHN1cHBvcnRzIHRoZSBmYiBwaXhlbCBm b3JtYXQuICovCisJZm9yIChpID0gMDsgaSA8IHBsYW5lLT5mb3JtYXRfY291bnQ7IGkrKykKKwkJ aWYgKHN0YXRlLT5mYi0+cGl4ZWxfZm9ybWF0ID09IHBsYW5lLT5mb3JtYXRfdHlwZXNbaV0pCisJ CQlicmVhazsKKwlpZiAoaSA9PSBwbGFuZS0+Zm9ybWF0X2NvdW50KSB7CisJCURSTV9ERUJVR19L TVMoIkludmFsaWQgcGl4ZWwgZm9ybWF0ICVzXG4iLAorCQkJICAgICAgZHJtX2dldF9mb3JtYXRf bmFtZShzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCkpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisK KwlmYl93aWR0aCA9IHN0YXRlLT5mYi0+d2lkdGggPDwgMTY7CisJZmJfaGVpZ2h0ID0gc3RhdGUt PmZiLT5oZWlnaHQgPDwgMTY7CisKKwkvKiBNYWtlIHN1cmUgc291cmNlIGNvb3JkaW5hdGVzIGFy ZSBpbnNpZGUgdGhlIGZiLiAqLworCWlmIChzdGF0ZS0+c3JjX3cgPiBmYl93aWR0aCB8fAorCSAg ICBzdGF0ZS0+c3JjX3ggPiBmYl93aWR0aCAtIHN0YXRlLT5zcmNfdyB8fAorCSAgICBzdGF0ZS0+ c3JjX2ggPiBmYl9oZWlnaHQgfHwKKwkgICAgc3RhdGUtPnNyY195ID4gZmJfaGVpZ2h0IC0gc3Rh dGUtPnNyY19oKSB7CisJCURSTV9ERUJVR19LTVMoIkludmFsaWQgc291cmNlIGNvb3JkaW5hdGVz ICIKKwkJCSAgICAgICIldS4lMDZ1eCV1LiUwNnUrJXUuJTA2dSsldS4lMDZ1XG4iLAorCQkJICAg ICAgc3RhdGUtPnNyY193ID4+IDE2LCAoKHN0YXRlLT5zcmNfdyAmIDB4ZmZmZikgKiAxNTYyNSkg Pj4gMTAsCisJCQkgICAgICBzdGF0ZS0+c3JjX2ggPj4gMTYsICgoc3RhdGUtPnNyY19oICYgMHhm ZmZmKSAqIDE1NjI1KSA+PiAxMCwKKwkJCSAgICAgIHN0YXRlLT5zcmNfeCA+PiAxNiwgKChzdGF0 ZS0+c3JjX3ggJiAweGZmZmYpICogMTU2MjUpID4+IDEwLAorCQkJICAgICAgc3RhdGUtPnNyY195 ID4+IDE2LCAoKHN0YXRlLT5zcmNfeSAmIDB4ZmZmZikgKiAxNTYyNSkgPj4gMTApOworCQlyZXR1 cm4gLUVOT1NQQzsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21p Y19wbGFuZV9jaGVjayk7CisKKy8qKgogICogZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRl IC0gZ2V0IGNvbm5lY3RvciBzdGF0ZQogICogQHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlIG9i amVjdAogICogQGNvbm5lY3RvcjogY29ubmVjdG9yIHRvIGdldCBzdGF0ZSBvYmplY3QgZm9yCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDFhMWFiMzQuLjU1YjY5ODEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC00MDcsNiArNDA3LDM3IEBAIGRybV9hdG9t aWNfaGVscGVyX2NoZWNrX21vZGVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4g bW9kZV9maXh1cChzdGF0ZSk7CiB9CiAKK3N0YXRpYyBpbnQgcGxhbmVfY2hlY2soc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXN0cnVj dCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpmdW5jcyA9IHBsYW5lLT5oZWxwZXJfcHJpdmF0ZTsK KwlpbnQgcmV0OworCisJcmV0ID0gZHJtX2F0b21pY19wbGFuZV9jaGVjayhwbGFuZSwgc3RhdGUp OworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKworCWlmIChmdW5jcyAmJiBmdW5jcy0+YXRv bWljX2NoZWNrKQorCQlyZXQgPSBmdW5jcy0+YXRvbWljX2NoZWNrKHBsYW5lLCBzdGF0ZSk7CisK KwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNydGNfY2hlY2soc3RydWN0IGRybV9jcnRj ICpjcnRjLCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBkcm1fY3J0 Y19oZWxwZXJfZnVuY3MgKmZ1bmNzID0gY3J0Yy0+aGVscGVyX3ByaXZhdGU7CisJaW50IHJldDsK KworCXJldCA9IGRybV9hdG9taWNfY3J0Y19jaGVjayhjcnRjLCBzdGF0ZSk7CisJaWYgKHJldCkK KwkJcmV0dXJuIHJldDsKKworCWlmIChmdW5jcyAmJiBmdW5jcy0+YXRvbWljX2NoZWNrKQorCQly ZXQgPSBmdW5jcy0+YXRvbWljX2NoZWNrKGNydGMsIHN0YXRlKTsKKworCXJldHVybiByZXQ7Cit9 CisKIC8qKgogICogZHJtX2F0b21pY19oZWxwZXJfY2hlY2sgLSB2YWxpZGF0ZSBzdGF0ZSBvYmpl Y3QKICAqIEBkZXY6IERSTSBkZXZpY2UKQEAgLTQyOSwyMSArNDYwLDE1IEBAIGludCBkcm1fYXRv bWljX2hlbHBlcl9jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWludCBpLCByZXQgPSAw OwogCiAJZm9yIChpID0gMDsgaSA8IG5wbGFuZXM7IGkrKykgewotCQlzdHJ1Y3QgZHJtX3BsYW5l X2hlbHBlcl9mdW5jcyAqZnVuY3M7CiAJCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gc3RhdGUt PnBsYW5lc1tpXTsKIAkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBzdGF0 ZS0+cGxhbmVfc3RhdGVzW2ldOwogCiAJCWlmICghcGxhbmUpCiAJCQljb250aW51ZTsKIAotCQlm dW5jcyA9IHBsYW5lLT5oZWxwZXJfcHJpdmF0ZTsKLQogCQlkcm1fYXRvbWljX2hlbHBlcl9wbGFu ZV9jaGFuZ2VkKHN0YXRlLCBwbGFuZV9zdGF0ZSwgcGxhbmUpOwogCi0JCWlmICghZnVuY3MgfHwg IWZ1bmNzLT5hdG9taWNfY2hlY2spCi0JCQljb250aW51ZTsKLQotCQlyZXQgPSBmdW5jcy0+YXRv bWljX2NoZWNrKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CisJCXJldCA9IHBsYW5lX2NoZWNrKHBsYW5l LCBwbGFuZV9zdGF0ZSk7CiAJCWlmIChyZXQpIHsKIAkJCURSTV9ERUJVR19LTVMoIltQTEFORTol ZF0gYXRvbWljIGNoZWNrIGZhaWxlZFxuIiwKIAkJCQkgICAgICBwbGFuZS0+YmFzZS5pZCk7CkBA IC00NTIsMTggKzQ3NywxMiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfY2hlY2soc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgbmNydGNzOyBpKyspIHsKLQkJ c3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAqZnVuY3M7CiAJCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IHN0YXRlLT5jcnRjc1tpXTsKIAogCQlpZiAoIWNydGMpCiAJCQljb250aW51ZTsKIAot CQlmdW5jcyA9IGNydGMtPmhlbHBlcl9wcml2YXRlOwotCi0JCWlmICghZnVuY3MgfHwgIWZ1bmNz LT5hdG9taWNfY2hlY2spCi0JCQljb250aW51ZTsKLQotCQlyZXQgPSBmdW5jcy0+YXRvbWljX2No ZWNrKGNydGMsIHN0YXRlLT5jcnRjX3N0YXRlc1tpXSk7CisJCXJldCA9IGNydGNfY2hlY2soY3J0 Yywgc3RhdGUtPmNydGNfc3RhdGVzW2ldKTsKIAkJaWYgKHJldCkgewogCQkJRFJNX0RFQlVHX0tN UygiW0NSVEM6JWRdIGF0b21pYyBjaGVjayBmYWlsZWRcbiIsCiAJCQkJICAgICAgY3J0Yy0+YmFz ZS5pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2Ry bS9kcm1fYXRvbWljLmgKaW5kZXggYjM0MjI0YS4uNzQyZDAyNyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX2F0b21pYy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaApAQCAtNDQs NiArNDQsOCBAQCBpbnQgZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiBpbnQgZHJtX2F0b21pY19jcnRjX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCiAJCXN0cnVj dCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LCB1aW50NjRfdCAqdmFsKTsKK2ludCBkcm1fYXRvbWlj X2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQlzdHJ1Y3QgZHJtX2NydGNfc3Rh dGUgKnN0YXRlKTsKIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKiBfX211c3RfY2hlY2sKIGRybV9h dG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJ CSAgIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKQEAgLTUzLDYgKzU1LDggQEAgaW50IGRybV9h dG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogaW50IGRy bV9hdG9taWNfcGxhbmVfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlj b25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwKIAkJc3RydWN0IGRybV9wcm9wZXJ0 eSAqcHJvcGVydHksIHVpbnQ2NF90ICp2YWwpOworaW50IGRybV9hdG9taWNfcGxhbmVfY2hlY2so c3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRl KTsKIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICogX19tdXN0X2NoZWNrCiBkcm1fYXRvbWlj X2dldF9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJ ICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwotLSAKMi4xLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==