From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 6/6] drm/atomic: Make async plane update checks work as intended, v2. Date: Mon, 4 Sep 2017 12:48:38 +0200 Message-ID: <20170904104838.23822-7-maarten.lankhorst@linux.intel.com> References: <20170904104838.23822-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170904104838.23822-1-maarten.lankhorst@linux.intel.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 Cc: Gustavo Padovan , intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QnkgYWx3YXlzIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhc3QgY29tbWl0IGluIHBsYW5lX3N0YXRl LCB3ZSBrbm93CndoZXRoZXIgdGhlcmUgaXMgYW4gYWN0aXZlIHVwZGF0ZSBvbiB0aGUgcGxhbmUg b3Igbm90LiBXaXRoIHRoYXQKaW5mb3JtYXRpb24gd2UgY2FuIHJlamVjdCB0aGUgZmFzdCB1cGRh dGUsIGFuZCBmb3JjZSB0aGUgc2xvd3BhdGgKdG8gYmUgdXNlZCBhcyB3YXMgb3JpZ2luYWxseSBp bnRlbmRlZC4KCldlIGNhbm5vdCB1c2UgcGxhbmVfc3RhdGUtPmNydGMtPnN0YXRlIGhlcmUsIGJl Y2F1c2UgdGhpcyBvbmx5IG1lbnRpb25zCnRoZSBtb3N0IHJlY2VudCBjb21taXQgZm9yIHRoZSBj cnRjLCBidXQgbm90IHRoZSBwbGFuZXMgdGhhdCB3ZXJlIHBhcnQKb2YgaXQuIFdlIHNwZWNpZmlj YWxseSBjYXJlIGFib3V0IHdoYXQgdGhlIGxhc3QgY29tbWl0IGludm9sdmluZyB0aGlzCnBsYW5l IGlzLCB3aGljaCBjYW4gb25seSBiZSB0cmFja2VkIHdpdGggYSBwb2ludGVyIGluIHRoZSBwbGFu ZSBzdGF0ZS4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gQ2xlYW4gdXAgdGhlIHdob2xlIGZ1bmN0aW9u IGhlcmUsIGluc3RlYWQgb2YgcGFydGlhbGx5IGVhcmxpZXIuCi0gQWRkIG1lbnRpb24gaW4gdGhl IGNvbW1pdCBtZXNzYWdlIHdoeSB3ZSBuZWVkIGNvbW1pdCBpbiBwbGFuZV9zdGF0ZS4KLSBTd2Fw IHBsYW5lLT5zdGF0ZSBpbiBpbnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0ZSwgaW5zdGVhZCBvZgog IHJlYXNzaWduaW5nIGFsbCB2YXJpYWJsZXMuIFdpdGggdGhpcyBjb21taXQgV2Uga25vdyB0aGF0 IHRoZSBjdXJzb3IKICBpcyBub3QgcGFydCBvZiBhbnkgYWN0aXZlIGNvbW1pdHMgc28gdGhpcyBo YWNrIGNhbiBiZSByZW1vdmVkLgoKQ2M6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFu QGNvbGxhYm9yYS5jb20+ClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+ClJldmlld2VkLWJ5OiBHdXN0YXZvIFBhZG92YW4g PGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4gI3YxCi0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfaGVscGVyLmMgIHwgNTMgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyNyArKysrKysrKysrKy0t LS0tLS0KIGluY2x1ZGUvZHJtL2RybV9wbGFuZS5oICAgICAgICAgICAgICB8ICA1ICsrLS0KIDMg ZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCBjODFkNDY5MjdhNzQuLmEyY2Q0MzJkOGIyZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTEzODgsMzUgKzEzODgsMzEgQEAg aW50IGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Ci0Jc3RydWN0IGRybV9w bGFuZSAqX19wbGFuZSwgKnBsYW5lID0gTlVMTDsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpf X3BsYW5lX3N0YXRlLCAqcGxhbmVfc3RhdGUgPSBOVUxMOworCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwgKm5ld19wbGFu ZV9zdGF0ZTsKIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqZnVuY3M7Ci0J aW50IGksIGosIG5fcGxhbmVzID0gMDsKKwlpbnQgaSwgbl9wbGFuZXMgPSAwOwogCiAJZm9yX2Vh Y2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKIAkJaWYg KGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQogCQkJcmV0dXJuIC1F SU5WQUw7CiAJfQogCi0JZm9yX2VhY2hfbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBfX3BsYW5l LCBfX3BsYW5lX3N0YXRlLCBpKSB7CisJZm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpCiAJCW5fcGxh bmVzKys7Ci0JCXBsYW5lID0gX19wbGFuZTsKLQkJcGxhbmVfc3RhdGUgPSBfX3BsYW5lX3N0YXRl OwotCX0KIAogCS8qIEZJWE1FOiB3ZSBzdXBwb3J0IG9ubHkgc2luZ2xlIHBsYW5lIHVwZGF0ZXMg Zm9yIG5vdyAqLwotCWlmICghcGxhbmUgfHwgbl9wbGFuZXMgIT0gMSkKKwlpZiAobl9wbGFuZXMg IT0gMSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIXBsYW5lX3N0YXRlLT5jcnRjKQorCWlm ICghbmV3X3BsYW5lX3N0YXRlLT5jcnRjKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWZ1bmNzID0g cGxhbmUtPmhlbHBlcl9wcml2YXRlOwogCWlmICghZnVuY3MtPmF0b21pY19hc3luY191cGRhdGUp CiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKHBsYW5lX3N0YXRlLT5mZW5jZSkKKwlpZiAobmV3 X3BsYW5lX3N0YXRlLT5mZW5jZSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKgpAQCAtMTQyNCwz MSArMTQyMCwxMSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfYXN5bmNfY2hlY2soc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkgKiB0aGUgcGxhbmUuICBUaGlzIHByZXZlbnRzIG91ciBhc3luYyB1 cGRhdGUncyBjaGFuZ2VzIGZyb20gZ2V0dGluZwogCSAqIG92ZXJyaWRkZW4gYnkgYSBwcmV2aW91 cyBzeW5jaHJvbm91cyB1cGRhdGUncyBzdGF0ZS4KIAkgKi8KLQlmb3JfZWFjaF9uZXdfY3J0Y19p bl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAocGxhbmUtPmNydGMg IT0gY3J0YykKLQkJCWNvbnRpbnVlOwotCi0JCXNwaW5fbG9jaygmY3J0Yy0+Y29tbWl0X2xvY2sp OwotCQljb21taXQgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJmNydGMtPmNvbW1pdF9saXN0 LAotCQkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0LAotCQkJCQkJICBjb21taXRfZW50cnkp OwotCQlpZiAoIWNvbW1pdCkgewotCQkJc3Bpbl91bmxvY2soJmNydGMtPmNvbW1pdF9sb2NrKTsK LQkJCWNvbnRpbnVlOwotCQl9Ci0JCXNwaW5fdW5sb2NrKCZjcnRjLT5jb21taXRfbG9jayk7Ci0K LQkJaWYgKCFjcnRjLT5zdGF0ZS0+c3RhdGUpCi0JCQljb250aW51ZTsKKwlpZiAob2xkX3BsYW5l X3N0YXRlLT5jb21taXQgJiYKKwkgICAgIXRyeV93YWl0X2Zvcl9jb21wbGV0aW9uKCZvbGRfcGxh bmVfc3RhdGUtPmNvbW1pdC0+aHdfZG9uZSkpCisJCXJldHVybiAtRUJVU1k7CiAKLQkJZm9yX2Vh Y2hfcGxhbmVfaW5fc3RhdGUoY3J0Yy0+c3RhdGUtPnN0YXRlLCBfX3BsYW5lLAotCQkJCQlfX3Bs YW5lX3N0YXRlLCBqKSB7Ci0JCQlpZiAoX19wbGFuZSA9PSBwbGFuZSkKLQkJCQlyZXR1cm4gLUVJ TlZBTDsKLQkJfQotCX0KLQotCXJldHVybiBmdW5jcy0+YXRvbWljX2FzeW5jX2NoZWNrKHBsYW5l LCBwbGFuZV9zdGF0ZSk7CisJcmV0dXJuIGZ1bmNzLT5hdG9taWNfYXN5bmNfY2hlY2socGxhbmUs IG5ld19wbGFuZV9zdGF0ZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2Fz eW5jX2NoZWNrKTsKIApAQCAtMTgxNCw5ICsxNzkwLDEwIEBAIGludCBkcm1fYXRvbWljX2hlbHBl cl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCX0KIAogCWZv cl9lYWNoX29sZG5ld19wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0 ZSwgbmV3X3BsYW5lX3N0YXRlLCBpKSB7Ci0JCS8qIGNvbW1pdCB0cmFja2VkIHRocm91Z2ggbmV3 X2NydGNfc3RhdGUtPmNvbW1pdCwgbm8gbmVlZCB0byBkbyBpdCBleHBsaWNpdGx5ICovCi0JCWlm IChuZXdfcGxhbmVfc3RhdGUtPmNydGMpCi0JCQljb250aW51ZTsKKwkJLyoKKwkJICogVW5saWtl IGNvbm5lY3RvcnMsIGFsd2F5cyB0cmFjayBwbGFuZXMgZXhwbGljaXRseSBmb3IKKwkJICogYXN5 bmMgcGFnZWZsaXAgc3VwcG9ydC4KKwkJICovCiAKIAkJLyogVXNlcnNwYWNlIGlzIG5vdCBhbGxv d2VkIHRvIGdldCBhaGVhZCBvZiB0aGUgcHJldmlvdXMKIAkJICogY29tbWl0IHdpdGggbm9uYmxv Y2tpbmcgb25lcy4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA3YWJi Yzc2MWE2MzUuLjBhZGQwMjlkOTVmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwpAQCAtMTMwNjQsNiArMTMwNjQsMTQgQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWdvdG8gc2xvdzsKIAogCW9sZF9wbGFuZV9zdGF0ZSA9 IHBsYW5lLT5zdGF0ZTsKKwkvKgorCSAqIERvbid0IGRvIGFuIGFzeW5jIHVwZGF0ZSBpZiB0aGVy ZSBpcyBhbiBvdXRzdGFuZGluZyBjb21taXQgbW9kaWZ5aW5nCisJICogdGhlIHBsYW5lLiAgVGhp cyBwcmV2ZW50cyBvdXIgYXN5bmMgdXBkYXRlJ3MgY2hhbmdlcyBmcm9tIGdldHRpbmcKKwkgKiBv dmVycmlkZGVuIGJ5IGEgcHJldmlvdXMgc3luY2hyb25vdXMgdXBkYXRlJ3Mgc3RhdGUuCisJICov CisJaWYgKG9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0ICYmCisJICAgICF0cnlfd2FpdF9mb3JfY29t cGxldGlvbigmb2xkX3BsYW5lX3N0YXRlLT5jb21taXQtPmh3X2RvbmUpKQorCQlnb3RvIHNsb3c7 CiAKIAkvKgogCSAqIElmIGFueSBwYXJhbWV0ZXJzIGNoYW5nZSB0aGF0IG1heSBhZmZlY3Qgd2F0 ZXJtYXJrcywKQEAgLTEzMTI1LDE5ICsxMzEzMywxMiBAQCBpbnRlbF9sZWdhY3lfY3Vyc29yX3Vw ZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAl9CiAKIAlvbGRfZmIgPSBvbGRfcGxhbmVf c3RhdGUtPmZiOwotCW9sZF92bWEgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShvbGRfcGxhbmVfc3Rh dGUpLT52bWE7CiAKIAlpOTE1X2dlbV90cmFja19mYihpbnRlbF9mYl9vYmoob2xkX2ZiKSwgaW50 ZWxfZmJfb2JqKGZiKSwKIAkJCSAgaW50ZWxfcGxhbmUtPmZyb250YnVmZmVyX2JpdCk7CiAKIAkv KiBTd2FwIHBsYW5lIHN0YXRlICovCi0JbmV3X3BsYW5lX3N0YXRlLT5mZW5jZSA9IG9sZF9wbGFu ZV9zdGF0ZS0+ZmVuY2U7Ci0JbmV3X3BsYW5lX3N0YXRlLT5jb21taXQgPSBvbGRfcGxhbmVfc3Rh dGUtPmNvbW1pdDsKLQkqdG9faW50ZWxfcGxhbmVfc3RhdGUob2xkX3BsYW5lX3N0YXRlKSA9ICp0 b19pbnRlbF9wbGFuZV9zdGF0ZShuZXdfcGxhbmVfc3RhdGUpOwotCW5ld19wbGFuZV9zdGF0ZS0+ ZmVuY2UgPSBOVUxMOwotCW5ld19wbGFuZV9zdGF0ZS0+Y29tbWl0ID0gTlVMTDsKLQluZXdfcGxh bmVfc3RhdGUtPmZiID0gb2xkX2ZiOwotCXRvX2ludGVsX3BsYW5lX3N0YXRlKG5ld19wbGFuZV9z dGF0ZSktPnZtYSA9IE5VTEw7CisJcGxhbmUtPnN0YXRlID0gbmV3X3BsYW5lX3N0YXRlOwogCiAJ aWYgKHBsYW5lLT5zdGF0ZS0+dmlzaWJsZSkgewogCQl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUo cGxhbmUsIHRvX2ludGVsX2NydGMoY3J0YykpOwpAQCAtMTMxNDksMTMgKzEzMTUwLDE5IEBAIGlu dGVsX2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlpbnRl bF9wbGFuZS0+ZGlzYWJsZV9wbGFuZShpbnRlbF9wbGFuZSwgdG9faW50ZWxfY3J0YyhjcnRjKSk7 CiAJfQogCi0JaWYgKG9sZF92bWEpCisJb2xkX3ZtYSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKG9s ZF9wbGFuZV9zdGF0ZSktPnZtYTsKKwlpZiAob2xkX3ZtYSkgeworCQl0b19pbnRlbF9wbGFuZV9z dGF0ZShvbGRfcGxhbmVfc3RhdGUpLT52bWEgPSBOVUxMOwogCQlpbnRlbF91bnBpbl9mYl92bWEo b2xkX3ZtYSk7CisJfQogCiBvdXRfdW5sb2NrOgogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwogb3V0X2ZyZWU6Ci0JaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZShw bGFuZSwgbmV3X3BsYW5lX3N0YXRlKTsKKwlpZiAocmV0KQorCQlpbnRlbF9wbGFuZV9kZXN0cm95 X3N0YXRlKHBsYW5lLCBuZXdfcGxhbmVfc3RhdGUpOworCWVsc2UKKwkJaW50ZWxfcGxhbmVfZGVz dHJveV9zdGF0ZShwbGFuZSwgb2xkX3BsYW5lX3N0YXRlKTsKIAlyZXR1cm4gcmV0OwogCiBzbG93 OgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1f cGxhbmUuaAppbmRleCA3ZDk2MTE2ZmQ0YzQuLmZlYjk5NDFkMGNkYiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX3BsYW5lLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKQEAgLTEy NCw5ICsxMjQsMTAgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSB7CiAJYm9vbCB2aXNpYmxlOwog CiAJLyoqCi0JICogQGNvbW1pdDogVHJhY2tzIHRoZSBwZW5kaW5nIGNvbW1pdCB0byBwcmV2ZW50 IHVzZS1hZnRlci1mcmVlIGNvbmRpdGlvbnMuCisJICogQGNvbW1pdDogVHJhY2tzIHRoZSBwZW5k aW5nIGNvbW1pdCB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGNvbmRpdGlvbnMsCisJICogYW5k IGZvciBhc3luYyBwbGFuZSB1cGRhdGVzLgogCSAqCi0JICogSXMgb25seSBzZXQgd2hlbiBAY3J0 YyBpcyBOVUxMLgorCSAqIE1heSBiZSBOVUxMLgogCSAqLwogCXN0cnVjdCBkcm1fY3J0Y19jb21t aXQgKmNvbW1pdDsKIAotLSAKMi4xMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK