From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:55307 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751348AbeD0GRg (ORCPT ); Fri, 27 Apr 2018 02:17:36 -0400 Received: by mail-wm0-f65.google.com with SMTP id a8so693606wmg.5 for ; Thu, 26 Apr 2018 23:17:35 -0700 (PDT) From: Daniel Vetter To: DRI Development Cc: Intel Graphics Development , Daniel Vetter , Sumit Semwal , Gustavo Padovan , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org Subject: [PATCH 05/17] dma-fence: Make ->wait callback optional Date: Fri, 27 Apr 2018 08:17:12 +0200 Message-Id: <20180427061724.28497-6-daniel.vetter@ffwll.ch> In-Reply-To: <20180427061724.28497-1-daniel.vetter@ffwll.ch> References: <20180427061724.28497-1-daniel.vetter@ffwll.ch> Sender: linux-media-owner@vger.kernel.org List-ID: Almost everyone uses dma_fence_default_wait. Signed-off-by: Daniel Vetter Cc: Sumit Semwal Cc: Gustavo Padovan Cc: linux-media@vger.kernel.org Cc: linaro-mm-sig@lists.linaro.org --- drivers/dma-buf/dma-fence-array.c | 1 - drivers/dma-buf/dma-fence.c | 5 ++++- drivers/dma-buf/sw_sync.c | 1 - include/linux/dma-fence.h | 13 ++++++++----- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/drivers/dma-buf/dma-fence-array.c b/drivers/dma-buf/dma-fence-array.c index dd1edfb27b61..a8c254497251 100644 --- a/drivers/dma-buf/dma-fence-array.c +++ b/drivers/dma-buf/dma-fence-array.c @@ -104,7 +104,6 @@ const struct dma_fence_ops dma_fence_array_ops = { .get_timeline_name = dma_fence_array_get_timeline_name, .enable_signaling = dma_fence_array_enable_signaling, .signaled = dma_fence_array_signaled, - .wait = dma_fence_default_wait, .release = dma_fence_array_release, }; EXPORT_SYMBOL(dma_fence_array_ops); diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c index 59049375bd19..30fcbe415ff4 100644 --- a/drivers/dma-buf/dma-fence.c +++ b/drivers/dma-buf/dma-fence.c @@ -158,7 +158,10 @@ dma_fence_wait_timeout(struct dma_fence *fence, bool intr, signed long timeout) return -EINVAL; trace_dma_fence_wait_start(fence); - ret = fence->ops->wait(fence, intr, timeout); + if (fence->ops->wait) + ret = fence->ops->wait(fence, intr, timeout); + else + ret = dma_fence_default_wait(fence, intr, timeout); trace_dma_fence_wait_end(fence); return ret; } diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c index 3d78ca89a605..53c1d6d36a64 100644 --- a/drivers/dma-buf/sw_sync.c +++ b/drivers/dma-buf/sw_sync.c @@ -188,7 +188,6 @@ static const struct dma_fence_ops timeline_fence_ops = { .get_timeline_name = timeline_fence_get_timeline_name, .enable_signaling = timeline_fence_enable_signaling, .signaled = timeline_fence_signaled, - .wait = dma_fence_default_wait, .release = timeline_fence_release, .fence_value_str = timeline_fence_value_str, .timeline_value_str = timeline_fence_timeline_value_str, diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h index c730f569621a..d05496ff0d10 100644 --- a/include/linux/dma-fence.h +++ b/include/linux/dma-fence.h @@ -191,11 +191,14 @@ struct dma_fence_ops { /** * @wait: * - * Custom wait implementation, or dma_fence_default_wait. + * Custom wait implementation, defaults to dma_fence_default_wait() if + * not set. * - * Must not be NULL, set to dma_fence_default_wait for default implementation. - * the dma_fence_default_wait implementation should work for any fence, as long - * as enable_signaling works correctly. + * The dma_fence_default_wait implementation should work for any fence, as long + * as @enable_signaling works correctly. This hook allows drivers to + * have an optimized version for the case where a process context is + * already available, e.g. if @enable_signaling for the general case + * needs to set up a worker thread. * * Must return -ERESTARTSYS if the wait is intr = true and the wait was * interrupted, and remaining jiffies if fence has signaled, or 0 if wait @@ -203,7 +206,7 @@ struct dma_fence_ops { * which should be treated as if the fence is signaled. For example a hardware * lockup could be reported like that. * - * This callback is mandatory. + * This callback is optional. */ signed long (*wait)(struct dma_fence *fence, bool intr, signed long timeout); -- 2.17.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 05/17] dma-fence: Make ->wait callback optional Date: Fri, 27 Apr 2018 08:17:12 +0200 Message-ID: <20180427061724.28497-6-daniel.vetter@ffwll.ch> References: <20180427061724.28497-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0B3086E6CB for ; Fri, 27 Apr 2018 06:17:37 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id t11so716412wmt.0 for ; Thu, 26 Apr 2018 23:17:36 -0700 (PDT) In-Reply-To: <20180427061724.28497-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org QWxtb3N0IGV2ZXJ5b25lIHVzZXMgZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdC4KClNpZ25lZC1vZmYt Ynk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBTdW1pdCBTZW13 YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgpDYzogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZv QHBhZG92YW4ub3JnPgpDYzogbGludXgtbWVkaWFAdmdlci5rZXJuZWwub3JnCkNjOiBsaW5hcm8t bW0tc2lnQGxpc3RzLmxpbmFyby5vcmcKLS0tCiBkcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLWFy cmF5LmMgfCAgMSAtCiBkcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMgICAgICAgfCAgNSArKysr LQogZHJpdmVycy9kbWEtYnVmL3N3X3N5bmMuYyAgICAgICAgIHwgIDEgLQogaW5jbHVkZS9saW51 eC9kbWEtZmVuY2UuaCAgICAgICAgIHwgMTMgKysrKysrKystLS0tLQogNCBmaWxlcyBjaGFuZ2Vk LCAxMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZG1hLWJ1Zi9kbWEtZmVuY2UtYXJyYXkuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UtYXJy YXkuYwppbmRleCBkZDFlZGZiMjdiNjEuLmE4YzI1NDQ5NzI1MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9kbWEtYnVmL2RtYS1mZW5jZS1hcnJheS5jCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVu Y2UtYXJyYXkuYwpAQCAtMTA0LDcgKzEwNCw2IEBAIGNvbnN0IHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IGRtYV9mZW5jZV9hcnJheV9vcHMgPSB7CiAJLmdldF90aW1lbGluZV9uYW1lID0gZG1hX2ZlbmNl X2FycmF5X2dldF90aW1lbGluZV9uYW1lLAogCS5lbmFibGVfc2lnbmFsaW5nID0gZG1hX2ZlbmNl X2FycmF5X2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkID0gZG1hX2ZlbmNlX2FycmF5X3Np Z25hbGVkLAotCS53YWl0ID0gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCwKIAkucmVsZWFzZSA9IGRt YV9mZW5jZV9hcnJheV9yZWxlYXNlLAogfTsKIEVYUE9SVF9TWU1CT0woZG1hX2ZlbmNlX2FycmF5 X29wcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvZG1hLWZlbmNlLmMgYi9kcml2ZXJz L2RtYS1idWYvZG1hLWZlbmNlLmMKaW5kZXggNTkwNDkzNzViZDE5Li4zMGZjYmU0MTVmZjQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYworKysgYi9kcml2ZXJzL2RtYS1i dWYvZG1hLWZlbmNlLmMKQEAgLTE1OCw3ICsxNTgsMTAgQEAgZG1hX2ZlbmNlX3dhaXRfdGltZW91 dChzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBzaWduZWQgbG9uZyB0aW1lb3V0 KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXRyYWNlX2RtYV9mZW5jZV93YWl0X3N0YXJ0KGZlbmNl KTsKLQlyZXQgPSBmZW5jZS0+b3BzLT53YWl0KGZlbmNlLCBpbnRyLCB0aW1lb3V0KTsKKwlpZiAo ZmVuY2UtPm9wcy0+d2FpdCkKKwkJcmV0ID0gZmVuY2UtPm9wcy0+d2FpdChmZW5jZSwgaW50ciwg dGltZW91dCk7CisJZWxzZQorCQlyZXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0KGZlbmNlLCBp bnRyLCB0aW1lb3V0KTsKIAl0cmFjZV9kbWFfZmVuY2Vfd2FpdF9lbmQoZmVuY2UpOwogCXJldHVy biByZXQ7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3dfc3luYy5jIGIvZHJpdmVy cy9kbWEtYnVmL3N3X3N5bmMuYwppbmRleCAzZDc4Y2E4OWE2MDUuLjUzYzFkNmQzNmE2NCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N3X3N5bmMuYworKysgYi9kcml2ZXJzL2RtYS1idWYv c3dfc3luYy5jCkBAIC0xODgsNyArMTg4LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfZmVu Y2Vfb3BzIHRpbWVsaW5lX2ZlbmNlX29wcyA9IHsKIAkuZ2V0X3RpbWVsaW5lX25hbWUgPSB0aW1l bGluZV9mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKIAkuZW5hYmxlX3NpZ25hbGluZyA9IHRpbWVs aW5lX2ZlbmNlX2VuYWJsZV9zaWduYWxpbmcsCiAJLnNpZ25hbGVkID0gdGltZWxpbmVfZmVuY2Vf c2lnbmFsZWQsCi0JLndhaXQgPSBkbWFfZmVuY2VfZGVmYXVsdF93YWl0LAogCS5yZWxlYXNlID0g dGltZWxpbmVfZmVuY2VfcmVsZWFzZSwKIAkuZmVuY2VfdmFsdWVfc3RyID0gdGltZWxpbmVfZmVu Y2VfdmFsdWVfc3RyLAogCS50aW1lbGluZV92YWx1ZV9zdHIgPSB0aW1lbGluZV9mZW5jZV90aW1l bGluZV92YWx1ZV9zdHIsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oIGIv aW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaAppbmRleCBjNzMwZjU2OTYyMWEuLmQwNTQ5NmZmMGQx MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kbWEtZmVuY2UuaAorKysgYi9pbmNsdWRlL2xp bnV4L2RtYS1mZW5jZS5oCkBAIC0xOTEsMTEgKzE5MSwxNCBAQCBzdHJ1Y3QgZG1hX2ZlbmNlX29w cyB7CiAJLyoqCiAJICogQHdhaXQ6CiAJICoKLQkgKiBDdXN0b20gd2FpdCBpbXBsZW1lbnRhdGlv biwgb3IgZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdC4KKwkgKiBDdXN0b20gd2FpdCBpbXBsZW1lbnRh dGlvbiwgZGVmYXVsdHMgdG8gZG1hX2ZlbmNlX2RlZmF1bHRfd2FpdCgpIGlmCisJICogbm90IHNl dC4KIAkgKgotCSAqIE11c3Qgbm90IGJlIE5VTEwsIHNldCB0byBkbWFfZmVuY2VfZGVmYXVsdF93 YWl0IGZvciBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgotCSAqIHRoZSBkbWFfZmVuY2VfZGVmYXVs dF93YWl0IGltcGxlbWVudGF0aW9uIHNob3VsZCB3b3JrIGZvciBhbnkgZmVuY2UsIGFzIGxvbmcK LQkgKiBhcyBlbmFibGVfc2lnbmFsaW5nIHdvcmtzIGNvcnJlY3RseS4KKwkgKiBUaGUgZG1hX2Zl bmNlX2RlZmF1bHRfd2FpdCBpbXBsZW1lbnRhdGlvbiBzaG91bGQgd29yayBmb3IgYW55IGZlbmNl LCBhcyBsb25nCisJICogYXMgQGVuYWJsZV9zaWduYWxpbmcgd29ya3MgY29ycmVjdGx5LiBUaGlz IGhvb2sgYWxsb3dzIGRyaXZlcnMgdG8KKwkgKiBoYXZlIGFuIG9wdGltaXplZCB2ZXJzaW9uIGZv ciB0aGUgY2FzZSB3aGVyZSBhIHByb2Nlc3MgY29udGV4dCBpcworCSAqIGFscmVhZHkgYXZhaWxh YmxlLCBlLmcuIGlmIEBlbmFibGVfc2lnbmFsaW5nIGZvciB0aGUgZ2VuZXJhbCBjYXNlCisJICog bmVlZHMgdG8gc2V0IHVwIGEgd29ya2VyIHRocmVhZC4KIAkgKgogCSAqIE11c3QgcmV0dXJuIC1F UkVTVEFSVFNZUyBpZiB0aGUgd2FpdCBpcyBpbnRyID0gdHJ1ZSBhbmQgdGhlIHdhaXQgd2FzCiAJ ICogaW50ZXJydXB0ZWQsIGFuZCByZW1haW5pbmcgamlmZmllcyBpZiBmZW5jZSBoYXMgc2lnbmFs ZWQsIG9yIDAgaWYgd2FpdApAQCAtMjAzLDcgKzIwNiw3IEBAIHN0cnVjdCBkbWFfZmVuY2Vfb3Bz IHsKIAkgKiB3aGljaCBzaG91bGQgYmUgdHJlYXRlZCBhcyBpZiB0aGUgZmVuY2UgaXMgc2lnbmFs ZWQuIEZvciBleGFtcGxlIGEgaGFyZHdhcmUKIAkgKiBsb2NrdXAgY291bGQgYmUgcmVwb3J0ZWQg bGlrZSB0aGF0LgogCSAqCi0JICogVGhpcyBjYWxsYmFjayBpcyBtYW5kYXRvcnkuCisJICogVGhp cyBjYWxsYmFjayBpcyBvcHRpb25hbC4KIAkgKi8KIAlzaWduZWQgbG9uZyAoKndhaXQpKHN0cnVj dCBkbWFfZmVuY2UgKmZlbmNlLAogCQkJICAgIGJvb2wgaW50ciwgc2lnbmVkIGxvbmcgdGltZW91 dCk7Ci0tIAoyLjE3LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=