From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [RFC v3 7/8] drm/vc4: update cursors asynchronously through atomic Date: Fri, 12 May 2017 16:10:53 -0300 Message-ID: <20170512191054.10074-8-gustavo@padovan.org> References: <20170512191054.10074-1-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-f194.google.com (mail-qt0-f194.google.com [209.85.216.194]) by gabe.freedesktop.org (Postfix) with ESMTPS id B54D66E711 for ; Fri, 12 May 2017 19:11:14 +0000 (UTC) Received: by mail-qt0-f194.google.com with SMTP id l39so7939384qtb.1 for ; Fri, 12 May 2017 12:11:14 -0700 (PDT) In-Reply-To: <20170512191054.10074-1-gustavo@padovan.org> 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 List-Id: dri-devel@lists.freedesktop.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvbT4KCkFk ZCBzdXBwb3J0IHRvIGFzeW5jIHVwZGF0ZXMgb2YgY3Vyc29ycyBieSB1c2luZyB0aGUgbmV3IGF0 b21pYwppbnRlcmZhY2UgZm9yIHRoYXQuIEJhc2ljYWxseSB3aGF0IHRoaXMgY29tbWl0IGRvZXMg aXMgZG8gd2hhdAp2YzRfdXBkYXRlX3BsYW5lKCkgZGlkIGJ1dCB0aHJvdWdoIGF0b21pYy4KCnYz OiBtb3ZlIHNpemUgY2hlY2tzIGJhY2sgdG8gZHJpdmVycyAoVmlsbGUgU3lyasOkbMOkKQoKdjI6 IG1vdmUgZmIgc2V0dGluZyB0byBjb3JlIGFuZCB1c2UgbmV3IHN0YXRlIChFcmljIEFuaG9sdCkK CkNjOiBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0PgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZv IFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X3BsYW5lLmMgfCA5OSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgYi9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9wbGFuZS5jCmluZGV4IGQzNGNkNTMuLjA1ZTlmNWYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3ZjNC92YzRfcGxhbmUuYwpAQCAtNzM1LDcwICs3MzUsMzggQEAgdm9pZCB2YzRfcGxhbmVf YXN5bmNfc2V0X2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYikKIAl2YzRfc3RhdGUtPmRsaXN0W3ZjNF9zdGF0ZS0+cHRyMF9vZmZzZXRdID0gYWRk cjsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHZjNF9w bGFuZV9oZWxwZXJfZnVuY3MgPSB7Ci0JLmF0b21pY19jaGVjayA9IHZjNF9wbGFuZV9hdG9taWNf Y2hlY2ssCi0JLmF0b21pY191cGRhdGUgPSB2YzRfcGxhbmVfYXRvbWljX3VwZGF0ZSwKLX07Ci0K LXN0YXRpYyB2b2lkIHZjNF9wbGFuZV9kZXN0cm95KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQot ewotCWRybV9wbGFuZV9oZWxwZXJfZGlzYWJsZShwbGFuZSk7Ci0JZHJtX3BsYW5lX2NsZWFudXAo cGxhbmUpOwotfQotCi0vKiBJbXBsZW1lbnRzIGltbWVkaWF0ZSAobm9uLXZibGFuay1zeW5jZWQp IHVwZGF0ZXMgb2YgdGhlIGN1cnNvcgotICogcG9zaXRpb24sIG9yIGZhbGxzIGJhY2sgdG8gdGhl IGF0b21pYyBoZWxwZXIgb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50Ci12YzRfdXBkYXRlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQkgc3RydWN0IGRybV9jcnRjICpjcnRjLAot CQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSBpbnQgY3J0Y194LCBpbnQgY3J0Y195 LAotCQkgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKLQkJIHVpbnQz Ml90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKLQkJIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBz cmNfaCwKLQkJIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQorc3RhdGljIGlu dCB2YzRfcGxhbmVfYXRvbWljX2FzeW5jX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAor CQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZTsKLQlzdHJ1Y3QgdmM0X3BsYW5lX3N0YXRlICp2YzRfc3RhdGU7 Ci0KLQlpZiAocGxhbmUgIT0gY3J0Yy0+Y3Vyc29yKQotCQlnb3RvIG91dDsKLQotCXBsYW5lX3N0 YXRlID0gcGxhbmUtPnN0YXRlOwotCXZjNF9zdGF0ZSA9IHRvX3ZjNF9wbGFuZV9zdGF0ZShwbGFu ZV9zdGF0ZSk7CisJaWYgKHBsYW5lICE9IHN0YXRlLT5jcnRjLT5jdXJzb3IpCisJCXJldHVybiAt RUlOVkFMOwogCi0JaWYgKCFwbGFuZV9zdGF0ZSkKLQkJZ290byBvdXQ7CisJaWYgKCFwbGFuZS0+ c3RhdGUpCisJCXJldHVybiAtRUlOVkFMOwogCiAJLyogTm8gY29uZmlndXJpbmcgbmV3IHNjYWxp bmcgaW4gdGhlIGZhc3QgcGF0aC4gKi8KLQlpZiAoY3J0Y193ICE9IHBsYW5lX3N0YXRlLT5jcnRj X3cgfHwKLQkgICAgY3J0Y19oICE9IHBsYW5lX3N0YXRlLT5jcnRjX2ggfHwKLQkgICAgc3JjX3cg IT0gcGxhbmVfc3RhdGUtPnNyY193IHx8Ci0JICAgIHNyY19oICE9IHBsYW5lX3N0YXRlLT5zcmNf aCkgewotCQlnb3RvIG91dDsKKwlpZiAoc3RhdGUtPmNydGNfdyAhPSBwbGFuZS0+c3RhdGUtPmNy dGNfdyB8fAorCSAgICBzdGF0ZS0+Y3J0Y19oICE9IHBsYW5lLT5zdGF0ZS0+Y3J0Y19oIHx8CisJ ICAgIHN0YXRlLT5zcmNfdyAhPSBwbGFuZS0+c3RhdGUtPnNyY193IHx8CisJICAgIHN0YXRlLT5z cmNfaCAhPSBwbGFuZS0+c3RhdGUtPnNyY19oKSB7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAot CWlmIChmYiAhPSBwbGFuZV9zdGF0ZS0+ZmIpIHsKLQkJZHJtX2F0b21pY19zZXRfZmJfZm9yX3Bs YW5lKHBsYW5lLT5zdGF0ZSwgZmIpOwotCQl2YzRfcGxhbmVfYXN5bmNfc2V0X2ZiKHBsYW5lLCBm Yik7Ci0JfQorCXJldHVybiAwOworfQogCi0JLyogU2V0IHRoZSBjdXJzb3IncyBwb3NpdGlvbiBv biB0aGUgc2NyZWVuLiAgVGhpcyBpcyB0aGUKLQkgKiBleHBlY3RlZCBjaGFuZ2UgZnJvbSB0aGUg ZHJtX21vZGVfY3Vyc29yX3VuaXZlcnNhbCgpCi0JICogaGVscGVyLgotCSAqLwotCXBsYW5lX3N0 YXRlLT5jcnRjX3ggPSBjcnRjX3g7Ci0JcGxhbmVfc3RhdGUtPmNydGNfeSA9IGNydGNfeTsKK3N0 YXRpYyB2b2lkIHZjNF9wbGFuZV9hdG9taWNfYXN5bmNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAorCQkJCQkgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKK3sKKwlz dHJ1Y3QgdmM0X3BsYW5lX3N0YXRlICp2YzRfc3RhdGUgPSB0b192YzRfcGxhbmVfc3RhdGUocGxh bmUtPnN0YXRlKTsKIAotCS8qIEFsbG93IGNoYW5naW5nIHRoZSBzdGFydCBwb3NpdGlvbiB3aXRo aW4gdGhlIGN1cnNvciBCTywgaWYKLQkgKiB0aGF0IG1hdHRlcnMuCi0JICovCi0JcGxhbmVfc3Rh dGUtPnNyY194ID0gc3JjX3g7Ci0JcGxhbmVfc3RhdGUtPnNyY195ID0gc3JjX3k7CisJcGxhbmUt PnN0YXRlLT5zcmNfeCA9IG5ld19zdGF0ZS0+c3JjX3g7CisJcGxhbmUtPnN0YXRlLT5zcmNfeSA9 IG5ld19zdGF0ZS0+c3JjX3k7CisJcGxhbmUtPnN0YXRlLT5jcnRjX3ggPSBuZXdfc3RhdGUtPmNy dGNfeDsKKwlwbGFuZS0+c3RhdGUtPmNydGNfeSA9IG5ld19zdGF0ZS0+Y3J0Y195OwogCi0JLyog VXBkYXRlIHRoZSBkaXNwbGF5IGxpc3QgYmFzZWQgb24gdGhlIG5ldyBjcnRjX3gveS4gKi8KLQl2 YzRfcGxhbmVfYXRvbWljX2NoZWNrKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CisJaWYgKHBsYW5lLT5z dGF0ZS0+ZmIgIT0gbmV3X3N0YXRlLT5mYikKKwkJdmM0X3BsYW5lX2FzeW5jX3NldF9mYihwbGFu ZSwgbmV3X3N0YXRlLT5mYik7CiAKIAkvKiBOb3RlIHRoYXQgd2UgY2FuJ3QganVzdCBjYWxsIHZj NF9wbGFuZV93cml0ZV9kbGlzdCgpCiAJICogYmVjYXVzZSB0aGF0IHdvdWxkIHNtYXNoIHRoZSBj b250ZXh0IGRhdGEgdGhhdCB0aGUgSFZTIGlzCkBAIC04MTAsMjAgKzc3OCwyMyBAQCB2YzRfdXBk YXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCSAgICAgICAmdmM0X3N0YXRlLT5o d19kbGlzdFt2YzRfc3RhdGUtPnBvczJfb2Zmc2V0XSk7CiAJd3JpdGVsKHZjNF9zdGF0ZS0+ZGxp c3RbdmM0X3N0YXRlLT5wdHIwX29mZnNldF0sCiAJICAgICAgICZ2YzRfc3RhdGUtPmh3X2RsaXN0 W3ZjNF9zdGF0ZS0+cHRyMF9vZmZzZXRdKTsKK30KIAotCXJldHVybiAwOworc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzIHZjNF9wbGFuZV9oZWxwZXJfZnVuY3MgPSB7 CisJLmF0b21pY19jaGVjayA9IHZjNF9wbGFuZV9hdG9taWNfY2hlY2ssCisJLmF0b21pY191cGRh dGUgPSB2YzRfcGxhbmVfYXRvbWljX3VwZGF0ZSwKKwkuYXRvbWljX2FzeW5jX2NoZWNrID0gdmM0 X3BsYW5lX2F0b21pY19hc3luY19jaGVjaywKKwkuYXRvbWljX2FzeW5jX3VwZGF0ZSA9IHZjNF9w bGFuZV9hdG9taWNfYXN5bmNfdXBkYXRlLAorfTsKIAotb3V0OgotCXJldHVybiBkcm1fYXRvbWlj X2hlbHBlcl91cGRhdGVfcGxhbmUocGxhbmUsIGNydGMsIGZiLAotCQkJCQkgICAgICBjcnRjX3gs IGNydGNfeSwKLQkJCQkJICAgICAgY3J0Y193LCBjcnRjX2gsCi0JCQkJCSAgICAgIHNyY194LCBz cmNfeSwKLQkJCQkJICAgICAgc3JjX3csIHNyY19oLAotCQkJCQkgICAgICBjdHgpOworc3RhdGlj IHZvaWQgdmM0X3BsYW5lX2Rlc3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCit7CisJZHJt X3BsYW5lX2hlbHBlcl9kaXNhYmxlKHBsYW5lKTsKKwlkcm1fcGxhbmVfY2xlYW51cChwbGFuZSk7 CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIHZjNF9wbGFuZV9mdW5j cyA9IHsKLQkudXBkYXRlX3BsYW5lID0gdmM0X3VwZGF0ZV9wbGFuZSwKKwkudXBkYXRlX3BsYW5l ID0gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lLAogCS5kaXNhYmxlX3BsYW5lID0gZHJt X2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSwKIAkuZGVzdHJveSA9IHZjNF9wbGFuZV9kZXN0 cm95LAogCS5zZXRfcHJvcGVydHkgPSBOVUxMLAotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=