From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [RFC v3 5/8] drm/msm: update cursors asynchronously through atomic Date: Fri, 12 May 2017 16:10:51 -0300 Message-ID: <20170512191054.10074-6-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-qk0-f193.google.com (mail-qk0-f193.google.com [209.85.220.193]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC20C6E706 for ; Fri, 12 May 2017 19:11:10 +0000 (UTC) Received: by mail-qk0-f193.google.com with SMTP id u75so9017171qka.1 for ; Fri, 12 May 2017 12:11:10 -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 aXMgZG8gd2hhdAptZHA1X3VwZGF0ZV9jdXJzb3JfcGxhbmVfbGVnYWN5KCkgZGlkIGJ1dCB0aHJv dWdoIGF0b21pYy4KCnYzOiBtb3ZlIHNpemUgY2hlY2tzIGJhY2sgdG8gZHJpdmVycyAoVmlsbGUg U3lyasOkbMOkKQoKdjI6IG1vdmUgZmIgc2V0dGluZyB0byBjb3JlIGFuZCB1c2UgbmV3IHN0YXRl IChFcmljIEFuaG9sdCkKCkNjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9yYS5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMgfCAxNTEgKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjMgaW5zZXJ0aW9u cygrKSwgODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9t ZHAvbWRwNS9tZHA1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVf cGxhbmUuYwppbmRleCBhMzhjNWZlLi4wNzEwNmMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21k cC9tZHA1L21kcDVfcGxhbmUuYwpAQCAtMzMsMTUgKzMzLDYgQEAgc3RhdGljIGludCBtZHA1X3Bs YW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQlzdHJ1Y3QgZHJtX3JlY3QgKnNy Yywgc3RydWN0IGRybV9yZWN0ICpkZXN0KTsKIAotc3RhdGljIGludCBtZHA1X3VwZGF0ZV9jdXJz b3JfcGxhbmVfbGVnYWN5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCi0JCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQlpbnQgY3J0Y194LCBp bnQgY3J0Y195LAotCQl1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAot CQl1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCi0JCXVpbnQzMl90IHNyY193LCB1aW50 MzJfdCBzcmNfaCwKLQkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwotCiBz dGF0aWMgc3RydWN0IG1kcDVfa21zICpnZXRfa21zKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQog ewogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0 ZTsKQEAgLTI1Nyw3ICsyNDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5j cyBtZHA1X3BsYW5lX2Z1bmNzID0gewogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxh bmVfZnVuY3MgbWRwNV9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7Ci0JCS51cGRhdGVfcGxhbmUgPSBt ZHA1X3VwZGF0ZV9jdXJzb3JfcGxhbmVfbGVnYWN5LAorCQkudXBkYXRlX3BsYW5lID0gZHJtX2F0 b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lLAogCQkuZGlzYWJsZV9wbGFuZSA9IGRybV9hdG9taWNf aGVscGVyX2Rpc2FibGVfcGxhbmUsCiAJCS5kZXN0cm95ID0gbWRwNV9wbGFuZV9kZXN0cm95LAog CQkuc2V0X3Byb3BlcnR5ID0gZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfc2V0X3Byb3BlcnR5LApA QCAtNDg0LDExICs0NzUsNzMgQEAgc3RhdGljIHZvaWQgbWRwNV9wbGFuZV9hdG9taWNfdXBkYXRl KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCX0KIH0KIAorc3RhdGljIGludCBtZHA1X3BsYW5l X2F0b21pY19hc3luY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkJIHN0cnVj dCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBtZHA1X3BsYW5lX3N0YXRlICpt ZHA1X3N0YXRlID0gdG9fbWRwNV9wbGFuZV9zdGF0ZShzdGF0ZSk7CisJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlOworCisJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2V4aXN0 aW5nX2NydGNfc3RhdGUoc3RhdGUtPnN0YXRlLAorCQkJCQkJCXN0YXRlLT5jcnRjKTsKKwlpZiAo V0FSTl9PTighY3J0Y19zdGF0ZSkpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFjcnRjX3N0 YXRlLT5hY3RpdmUpCisJCXJldHVybiAtRUlOVkFMOworCisJbWRwNV9zdGF0ZSA9IHRvX21kcDVf cGxhbmVfc3RhdGUoc3RhdGUpOworCisJLyogZG9uJ3QgdXNlIGZhc3QgcGF0aCBpZiB3ZSBkb24n dCBoYXZlIGEgaHdwaXBlIGFsbG9jYXRlZCB5ZXQgKi8KKwlpZiAoIW1kcDVfc3RhdGUtPmh3cGlw ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBvbmx5IGFsbG93IGNoYW5naW5nIG9mIHBvc2l0 aW9uKGNydGMgeC95IG9yIHNyYyB4L3kpIGluIGZhc3QgcGF0aCAqLworCWlmIChwbGFuZS0+c3Rh dGUtPmNydGMgIT0gc3RhdGUtPmNydGMgfHwKKwkgICAgcGxhbmUtPnN0YXRlLT5zcmNfdyAhPSBz dGF0ZS0+c3JjX3cgfHwKKwkgICAgcGxhbmUtPnN0YXRlLT5zcmNfaCAhPSBzdGF0ZS0+c3JjX2gg fHwKKwkgICAgcGxhbmUtPnN0YXRlLT5jcnRjX3cgIT0gc3RhdGUtPmNydGNfdyB8fAorCSAgICBw bGFuZS0+c3RhdGUtPmNydGNfaCAhPSBzdGF0ZS0+Y3J0Y19oIHx8CisJICAgICFwbGFuZS0+c3Rh dGUtPmZiIHx8CisJICAgIHBsYW5lLT5zdGF0ZS0+ZmIgIT0gc3RhdGUtPmZiKQorCQlyZXR1cm4g LUVJTlZBTDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtZHA1X3BsYW5lX2F0b21p Y19hc3luY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJCSAgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKm5ld19zdGF0ZSkKK3sKKwlwbGFuZS0+c3RhdGUtPnNyY194ID0gbmV3 X3N0YXRlLT5zcmNfeDsKKwlwbGFuZS0+c3RhdGUtPnNyY195ID0gbmV3X3N0YXRlLT5zcmNfeTsK KwlwbGFuZS0+c3RhdGUtPmNydGNfeCA9IG5ld19zdGF0ZS0+Y3J0Y194OworCXBsYW5lLT5zdGF0 ZS0+Y3J0Y195ID0gbmV3X3N0YXRlLT5jcnRjX3k7CisKKwlpZiAocGxhbmVfZW5hYmxlZChuZXdf c3RhdGUpKSB7CisJCXN0cnVjdCBtZHA1X2N0bCAqY3RsOworCQlzdHJ1Y3QgbWRwNV9waXBlbGlu ZSAqcGlwZWxpbmUgPQorCQkJCQltZHA1X2NydGNfZ2V0X3BpcGVsaW5lKHBsYW5lLT5jcnRjKTsK KwkJaW50IHJldDsKKworCQlyZXQgPSBtZHA1X3BsYW5lX21vZGVfc2V0KHBsYW5lLCBuZXdfc3Rh dGUtPmNydGMsIG5ld19zdGF0ZS0+ZmIsCisJCQkJJm5ld19zdGF0ZS0+c3JjLCAmbmV3X3N0YXRl LT5kc3QpOworCQlXQVJOX09OKHJldCA8IDApOworCisJCWN0bCA9IG1kcDVfY3J0Y19nZXRfY3Rs KG5ld19zdGF0ZS0+Y3J0Yyk7CisKKwkJbWRwNV9jdGxfY29tbWl0KGN0bCwgcGlwZWxpbmUsIG1k cDVfcGxhbmVfZ2V0X2ZsdXNoKHBsYW5lKSk7CisJfQorCisJKnRvX21kcDVfcGxhbmVfc3RhdGUo cGxhbmUtPnN0YXRlKSA9CisJCSp0b19tZHA1X3BsYW5lX3N0YXRlKG5ld19zdGF0ZSk7Cit9CisK IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBtZHA1X3BsYW5lX2hl bHBlcl9mdW5jcyA9IHsKIAkJLnByZXBhcmVfZmIgPSBtZHA1X3BsYW5lX3ByZXBhcmVfZmIsCiAJ CS5jbGVhbnVwX2ZiID0gbWRwNV9wbGFuZV9jbGVhbnVwX2ZiLAogCQkuYXRvbWljX2NoZWNrID0g bWRwNV9wbGFuZV9hdG9taWNfY2hlY2ssCiAJCS5hdG9taWNfdXBkYXRlID0gbWRwNV9wbGFuZV9h dG9taWNfdXBkYXRlLAorCQkuYXRvbWljX2FzeW5jX2NoZWNrID0gbWRwNV9wbGFuZV9hdG9taWNf YXN5bmNfY2hlY2ssCisJCS5hdG9taWNfYXN5bmNfdXBkYXRlID0gbWRwNV9wbGFuZV9hdG9taWNf YXN5bmNfdXBkYXRlLAogfTsKIAogc3RhdGljIHZvaWQgc2V0X3NjYW5vdXRfbG9ja2VkKHN0cnVj dCBtZHA1X2ttcyAqbWRwNV9rbXMsCkBAIC05OTcsODQgKzEwNTAsNiBAQCBzdGF0aWMgaW50IG1k cDVfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJcmV0dXJuIHJldDsK IH0KIAotc3RhdGljIGludCBtZHA1X3VwZGF0ZV9jdXJzb3JfcGxhbmVfbGVnYWN5KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAotCQkJc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKLQkJCWludCBjcnRjX3gsIGludCBjcnRjX3ksCi0JCQl1bnNpZ25lZCBp bnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAotCQkJdWludDMyX3Qgc3JjX3gsIHVpbnQz Ml90IHNyY195LAotCQkJdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oLAotCQkJc3RydWN0 IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCi17Ci0Jc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Ci0Jc3RydWN0IG1kcDVfcGxhbmVfc3Rh dGUgKm1kcDVfcHN0YXRlOwotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IGNy dGMtPnN0YXRlOwotCWludCByZXQ7Ci0KLQlpZiAoIWNydGNfc3RhdGUtPmFjdGl2ZSB8fCBkcm1f YXRvbWljX2NydGNfbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSkKLQkJZ290byBzbG93OwotCi0J cGxhbmVfc3RhdGUgPSBwbGFuZS0+c3RhdGU7Ci0JbWRwNV9wc3RhdGUgPSB0b19tZHA1X3BsYW5l X3N0YXRlKHBsYW5lX3N0YXRlKTsKLQotCS8qIGRvbid0IHVzZSBmYXN0IHBhdGggaWYgd2UgZG9u J3QgaGF2ZSBhIGh3cGlwZSBhbGxvY2F0ZWQgeWV0ICovCi0JaWYgKCFtZHA1X3BzdGF0ZS0+aHdw aXBlKQotCQlnb3RvIHNsb3c7Ci0KLQkvKiBvbmx5IGFsbG93IGNoYW5naW5nIG9mIHBvc2l0aW9u KGNydGMgeC95IG9yIHNyYyB4L3kpIGluIGZhc3QgcGF0aCAqLwotCWlmIChwbGFuZV9zdGF0ZS0+ Y3J0YyAhPSBjcnRjIHx8Ci0JICAgIHBsYW5lX3N0YXRlLT5zcmNfdyAhPSBzcmNfdyB8fAotCSAg ICBwbGFuZV9zdGF0ZS0+c3JjX2ggIT0gc3JjX2ggfHwKLQkgICAgcGxhbmVfc3RhdGUtPmNydGNf dyAhPSBjcnRjX3cgfHwKLQkgICAgcGxhbmVfc3RhdGUtPmNydGNfaCAhPSBjcnRjX2ggfHwKLQkg ICAgIXBsYW5lX3N0YXRlLT5mYiB8fAotCSAgICBwbGFuZV9zdGF0ZS0+ZmIgIT0gZmIpCi0JCWdv dG8gc2xvdzsKLQotCW5ld19wbGFuZV9zdGF0ZSA9IG1kcDVfcGxhbmVfZHVwbGljYXRlX3N0YXRl KHBsYW5lKTsKLQlpZiAoIW5ld19wbGFuZV9zdGF0ZSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlu ZXdfcGxhbmVfc3RhdGUtPnNyY194ID0gc3JjX3g7Ci0JbmV3X3BsYW5lX3N0YXRlLT5zcmNfeSA9 IHNyY195OwotCW5ld19wbGFuZV9zdGF0ZS0+c3JjX3cgPSBzcmNfdzsKLQluZXdfcGxhbmVfc3Rh dGUtPnNyY19oID0gc3JjX2g7Ci0JbmV3X3BsYW5lX3N0YXRlLT5jcnRjX3ggPSBjcnRjX3g7Ci0J bmV3X3BsYW5lX3N0YXRlLT5jcnRjX3kgPSBjcnRjX3k7Ci0JbmV3X3BsYW5lX3N0YXRlLT5jcnRj X3cgPSBjcnRjX3c7Ci0JbmV3X3BsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRjX2g7Ci0KLQlyZXQg PSBtZHA1X3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKGNydGNfc3RhdGUsIG5ld19wbGFu ZV9zdGF0ZSk7Ci0JaWYgKHJldCkKLQkJZ290byBzbG93X2ZyZWU7Ci0KLQlpZiAobmV3X3BsYW5l X3N0YXRlLT52aXNpYmxlKSB7Ci0JCXN0cnVjdCBtZHA1X2N0bCAqY3RsOwotCQlzdHJ1Y3QgbWRw NV9waXBlbGluZSAqcGlwZWxpbmUgPSBtZHA1X2NydGNfZ2V0X3BpcGVsaW5lKGNydGMpOwotCi0J CXJldCA9IG1kcDVfcGxhbmVfbW9kZV9zZXQocGxhbmUsIGNydGMsIGZiLAotCQkJCQkgICZuZXdf cGxhbmVfc3RhdGUtPnNyYywKLQkJCQkJICAmbmV3X3BsYW5lX3N0YXRlLT5kc3QpOwotCQlXQVJO X09OKHJldCA8IDApOwotCi0JCWN0bCA9IG1kcDVfY3J0Y19nZXRfY3RsKGNydGMpOwotCi0JCW1k cDVfY3RsX2NvbW1pdChjdGwsIHBpcGVsaW5lLCBtZHA1X3BsYW5lX2dldF9mbHVzaChwbGFuZSkp OwotCX0KLQotCSp0b19tZHA1X3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKSA9Ci0JCSp0b19tZHA1 X3BsYW5lX3N0YXRlKG5ld19wbGFuZV9zdGF0ZSk7Ci0KLQltZHA1X3BsYW5lX2Rlc3Ryb3lfc3Rh dGUocGxhbmUsIG5ld19wbGFuZV9zdGF0ZSk7Ci0KLQlyZXR1cm4gMDsKLXNsb3dfZnJlZToKLQlt ZHA1X3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUsIG5ld19wbGFuZV9zdGF0ZSk7Ci1zbG93Ogot CXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUocGxhbmUsIGNydGMsIGZiLAot CQkJCQkgICAgICBjcnRjX3gsIGNydGNfeSwgY3J0Y193LCBjcnRjX2gsCi0JCQkJCSAgICAgIHNy Y194LCBzcmNfeSwgc3JjX3csIHNyY19oLCBjdHgpOwotfQotCiAvKgogICogVXNlIHRoaXMgZnVu YyBhbmQgdGhlIG9uZSBiZWxvdyBvbmx5IGFmdGVyIHRoZSBhdG9taWMgc3RhdGUgaGFzIGJlZW4K ICAqIHN1Y2Nlc3NmdWxseSBzd2FwcGVkCi0tIAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==