From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mikko Perttunen Subject: [PATCH 3/3] drm/tegra: Support for sync file-based fences in submit Date: Thu, 9 Mar 2017 19:57:18 +0200 Message-ID: <20170309175718.14843-4-mperttunen@nvidia.com> References: <20170309175718.14843-1-mperttunen@nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kapsi.fi (mail.kapsi.fi [IPv6:2001:1bc8:1004::1:25]) by gabe.freedesktop.org (Postfix) with ESMTPS id B14746ECF5 for ; Thu, 9 Mar 2017 18:00:10 +0000 (UTC) In-Reply-To: <20170309175718.14843-1-mperttunen@nvidia.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: thierry.reding@gmail.com Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: dri-devel@lists.freedesktop.org QWRkIHN1cHBvcnQgZm9yIHN5bmMgZmlsZS1iYXNlZCBwcmVmZW5jZXMgYW5kIHBvc3RmZW5jZXMK dG8gam9iIHN1Ym1pc3Npb24uIEZlbmNlcyBhcmUgcGFzc2VkIHRvIHRoZSBIb3N0MXggaW1wbGVt ZW50YXRpb24uCgpTaWduZWQtb2ZmLWJ5OiBNaWtrbyBQZXJ0dHVuZW4gPG1wZXJ0dHVuZW5AbnZp ZGlhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMgfCA2OSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1OSBp bnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdGVncmEvZHJtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKaW5kZXggNjRkZmY4 NTMwNDAzLi5iZjRhMmExM2MxN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9k cm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZHJtLmMKQEAgLTEwLDYgKzEwLDcgQEAK ICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9ob3N0MXguaD4KICNp bmNsdWRlIDxsaW51eC9pb21tdS5oPgorI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgogCiAj aW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxw ZXIuaD4KQEAgLTM0NCw2ICszNDUsNyBAQCBpbnQgdGVncmFfZHJtX3N1Ym1pdChzdHJ1Y3QgdGVn cmFfZHJtX2NvbnRleHQgKmNvbnRleHQsCiAJCSAgICAgc3RydWN0IGRybV90ZWdyYV9zdWJtaXQg KmFyZ3MsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCiAJCSAgICAgc3RydWN0IGRybV9maWxlICpm aWxlKQogeworCXN0cnVjdCBob3N0MXggKmhvc3QxeCA9IGRldl9nZXRfZHJ2ZGF0YShkcm0tPmRl di0+cGFyZW50KTsKIAl1bnNpZ25lZCBpbnQgbnVtX2NtZGJ1ZnMgPSBhcmdzLT5udW1fY21kYnVm czsKIAl1bnNpZ25lZCBpbnQgbnVtX3JlbG9jcyA9IGFyZ3MtPm51bV9yZWxvY3M7CiAJdW5zaWdu ZWQgaW50IG51bV93YWl0Y2hrcyA9IGFyZ3MtPm51bV93YWl0Y2hrczsKQEAgLTM2MSw2ICszNjMs MTEgQEAgaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0IHRlZ3JhX2RybV9jb250ZXh0ICpjb250 ZXh0LAogCWlmIChhcmdzLT5udW1fc3luY3B0cyAhPSAxKQogCQlyZXR1cm4gLUVJTlZBTDsKIAor CS8qIENoZWNrIGZvciB1bnJlY29nbml6ZWQgZmxhZ3MgKi8KKwlpZiAoYXJncy0+ZmxhZ3MgJiB+ KERSTV9URUdSQV9TVUJNSVRfV0FJVF9GRU5DRV9GRCB8CisJICAgICAgICAgICAgICAgICAgICBE Uk1fVEVHUkFfU1VCTUlUX0NSRUFURV9GRU5DRV9GRCkpCisJCXJldHVybiAtRUlOVkFMOworCiAJ am9iID0gaG9zdDF4X2pvYl9hbGxvYyhjb250ZXh0LT5jaGFubmVsLCBhcmdzLT5udW1fY21kYnVm cywKIAkJCSAgICAgICBhcmdzLT5udW1fcmVsb2NzLCBhcmdzLT5udW1fd2FpdGNoa3MpOwogCWlm ICgham9iKQpAQCAtMzcyLDE5ICszNzksMjcgQEAgaW50IHRlZ3JhX2RybV9zdWJtaXQoc3RydWN0 IHRlZ3JhX2RybV9jb250ZXh0ICpjb250ZXh0LAogCWpvYi0+Y2xhc3MgPSBjb250ZXh0LT5jbGll bnQtPmJhc2UuY2xhc3M7CiAJam9iLT5zZXJpYWxpemUgPSB0cnVlOwogCisJaWYgKGFyZ3MtPmZs YWdzICYgRFJNX1RFR1JBX1NVQk1JVF9XQUlUX0ZFTkNFX0ZEKSB7CisJCWpvYi0+cHJlZmVuY2Ug PSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGFyZ3MtPmZlbmNlKTsKKwkJaWYgKCFqb2ItPnByZWZlbmNl KSB7CisJCQllcnIgPSAtRU5PRU5UOworCQkJZ290byBwdXRfam9iOworCQl9CisJfQorCiAJd2hp bGUgKG51bV9jbWRidWZzKSB7CiAJCXN0cnVjdCBkcm1fdGVncmFfY21kYnVmIGNtZGJ1ZjsKIAkJ c3RydWN0IGhvc3QxeF9ibyAqYm87CiAKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZjbWRidWYsIGNt ZGJ1ZnMsIHNpemVvZihjbWRidWYpKSkgewogCQkJZXJyID0gLUVGQVVMVDsKLQkJCWdvdG8gZmFp bDsKKwkJCWdvdG8gcHV0X2ZlbmNlOwogCQl9CiAKIAkJYm8gPSBob3N0MXhfYm9fbG9va3VwKGZp bGUsIGNtZGJ1Zi5oYW5kbGUpOwogCQlpZiAoIWJvKSB7CiAJCQllcnIgPSAtRU5PRU5UOwotCQkJ Z290byBmYWlsOworCQkJZ290byBwdXRfZmVuY2U7CiAJCX0KIAogCQlob3N0MXhfam9iX2FkZF9n YXRoZXIoam9iLCBibywgY21kYnVmLndvcmRzLCBjbWRidWYub2Zmc2V0KTsKQEAgLTM5OCwxOSAr NDEzLDE5IEBAIGludCB0ZWdyYV9kcm1fc3VibWl0KHN0cnVjdCB0ZWdyYV9kcm1fY29udGV4dCAq Y29udGV4dCwKIAkJCQkJCSAgJnJlbG9jc1tudW1fcmVsb2NzXSwgZHJtLAogCQkJCQkJICBmaWxl KTsKIAkJaWYgKGVyciA8IDApCi0JCQlnb3RvIGZhaWw7CisJCQlnb3RvIHB1dF9mZW5jZTsKIAl9 CiAKIAlpZiAoY29weV9mcm9tX3VzZXIoam9iLT53YWl0Y2hrLCB3YWl0Y2hrcywKIAkJCSAgIHNp emVvZigqd2FpdGNoa3MpICogbnVtX3dhaXRjaGtzKSkgewogCQllcnIgPSAtRUZBVUxUOwotCQln b3RvIGZhaWw7CisJCWdvdG8gcHV0X2ZlbmNlOwogCX0KIAogCWlmIChjb3B5X2Zyb21fdXNlcigm c3luY3B0LCAodm9pZCBfX3VzZXIgKikodWludHB0cl90KWFyZ3MtPnN5bmNwdHMsCiAJCQkgICBz aXplb2Yoc3luY3B0KSkpIHsKIAkJZXJyID0gLUVGQVVMVDsKLQkJZ290byBmYWlsOworCQlnb3Rv IHB1dF9mZW5jZTsKIAl9CiAKIAlqb2ItPmlzX2FkZHJfcmVnID0gY29udGV4dC0+Y2xpZW50LT5v cHMtPmlzX2FkZHJfcmVnOwpAQCAtNDIzLDIwICs0MzgsNTQgQEAgaW50IHRlZ3JhX2RybV9zdWJt aXQoc3RydWN0IHRlZ3JhX2RybV9jb250ZXh0ICpjb250ZXh0LAogCiAJZXJyID0gaG9zdDF4X2pv Yl9waW4oam9iLCBjb250ZXh0LT5jbGllbnQtPmJhc2UuZGV2KTsKIAlpZiAoZXJyKQotCQlnb3Rv IGZhaWw7CisJCWdvdG8gcHV0X2ZlbmNlOwogCiAJZXJyID0gaG9zdDF4X2pvYl9zdWJtaXQoam9i KTsKIAlpZiAoZXJyKQotCQlnb3RvIGZhaWxfc3VibWl0OworCQlnb3RvIHVucGluX2pvYjsKIAot CWFyZ3MtPmZlbmNlID0gam9iLT5zeW5jcHRfZW5kOworCWlmIChhcmdzLT5mbGFncyAmIERSTV9U RUdSQV9TVUJNSVRfQ1JFQVRFX0ZFTkNFX0ZEKSB7CisJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNl OworCQlzdHJ1Y3Qgc3luY19maWxlICpmaWxlOworCisJCWZlbmNlID0gaG9zdDF4X2ZlbmNlX2Ny ZWF0ZSgKKwkJCWhvc3QxeCwgaG9zdDF4X3N5bmNwdF9nZXQoaG9zdDF4LCBqb2ItPnN5bmNwdF9p ZCksCisJCQlqb2ItPnN5bmNwdF9lbmQpOworCQlpZiAoIWZlbmNlKSB7CisJCQllcnIgPSAtRU5P TUVNOworCQkJZ290byBwdXRfZmVuY2U7CisJCX0KKworCQlmaWxlID0gc3luY19maWxlX2NyZWF0 ZShmZW5jZSk7CisJCWlmICghZmlsZSkgeworCQkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7CisJCQll cnIgPSAtRU5PTUVNOworCQkJZ290byBwdXRfZmVuY2U7CisJCX0KKworCQllcnIgPSBnZXRfdW51 c2VkX2ZkX2ZsYWdzKE9fQ0xPRVhFQyk7CisJCWlmIChlcnIgPCAwKSB7CisJCQlkbWFfZmVuY2Vf cHV0KGZlbmNlKTsKKwkJCWdvdG8gcHV0X2ZlbmNlOworCQl9CisKKwkJZmRfaW5zdGFsbChlcnIs IGZpbGUtPmZpbGUpOworCQlhcmdzLT5mZW5jZSA9IGVycjsKKwl9IGVsc2UgeworCQlhcmdzLT5m ZW5jZSA9IGpvYi0+c3luY3B0X2VuZDsKKwl9CiAKKwlpZiAoam9iLT5wcmVmZW5jZSkKKwkJZG1h X2ZlbmNlX3B1dChqb2ItPnByZWZlbmNlKTsKIAlob3N0MXhfam9iX3B1dChqb2IpOwogCXJldHVy biAwOwogCi1mYWlsX3N1Ym1pdDoKK3VucGluX2pvYjoKIAlob3N0MXhfam9iX3VucGluKGpvYik7 Ci1mYWlsOgorcHV0X2ZlbmNlOgorCWlmIChqb2ItPnByZWZlbmNlKQorCQlkbWFfZmVuY2VfcHV0 KGpvYi0+cHJlZmVuY2UpOworcHV0X2pvYjoKIAlob3N0MXhfam9iX3B1dChqb2IpOwogCXJldHVy biBlcnI7CiB9Ci0tIAoyLjExLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=