From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wm0-f66.google.com ([74.125.82.66]:39769 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751348AbeD0GRd (ORCPT ); Fri, 27 Apr 2018 02:17:33 -0400 Received: by mail-wm0-f66.google.com with SMTP id b21so801577wme.4 for ; Thu, 26 Apr 2018 23:17:33 -0700 (PDT) From: Daniel Vetter To: DRI Development Cc: Intel Graphics Development , Daniel Vetter , Daniel Vetter , Sumit Semwal , Gustavo Padovan , linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org Subject: [PATCH 03/17] dma-fence: Make ->enable_signaling optional Date: Fri, 27 Apr 2018 08:17:10 +0200 Message-Id: <20180427061724.28497-4-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: Many drivers have a trivial implementation for ->enable_signaling. Let's make it optional by assuming that signalling is already available when the callback isn't present. 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.c | 13 ++++++++++++- include/linux/dma-fence.h | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c index 4edb9fd3cf47..7b5b40d6b70e 100644 --- a/drivers/dma-buf/dma-fence.c +++ b/drivers/dma-buf/dma-fence.c @@ -181,6 +181,13 @@ void dma_fence_release(struct kref *kref) } EXPORT_SYMBOL(dma_fence_release); +/** + * dma_fence_free - default release function for &dma_fence. + * @fence: fence to release + * + * This is the default implementation for &dma_fence_ops.release. It calls + * kfree_rcu() on @fence. + */ void dma_fence_free(struct dma_fence *fence) { kfree_rcu(fence, rcu); @@ -560,7 +567,7 @@ dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops, spinlock_t *lock, u64 context, unsigned seqno) { BUG_ON(!lock); - BUG_ON(!ops || !ops->wait || !ops->enable_signaling || + BUG_ON(!ops || !ops->wait || !ops->get_driver_name || !ops->get_timeline_name); kref_init(&fence->refcount); @@ -572,6 +579,10 @@ dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops, fence->flags = 0UL; fence->error = 0; + if (!ops->enable_signaling) + set_bit(DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT, + &fence->flags); + trace_dma_fence_init(fence); } EXPORT_SYMBOL(dma_fence_init); diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h index f9a6848f8558..c730f569621a 100644 --- a/include/linux/dma-fence.h +++ b/include/linux/dma-fence.h @@ -166,7 +166,8 @@ struct dma_fence_ops { * released when the fence is signalled (through e.g. the interrupt * handler). * - * This callback is mandatory. + * This callback is optional. If this callback is not present, then the + * driver must always have signaling enabled. */ bool (*enable_signaling)(struct dma_fence *fence); -- 2.17.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: [PATCH 03/17] dma-fence: Make ->enable_signaling optional Date: Fri, 27 Apr 2018 08:17:10 +0200 Message-ID: <20180427061724.28497-4-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: In-Reply-To: <20180427061724.28497-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: DRI Development Cc: Intel Graphics Development , linaro-mm-sig@lists.linaro.org, Daniel Vetter , Daniel Vetter , Sumit Semwal , linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org TWFueSBkcml2ZXJzIGhhdmUgYSB0cml2aWFsIGltcGxlbWVudGF0aW9uIGZvciAtPmVuYWJsZV9z aWduYWxpbmcuCkxldCdzIG1ha2UgaXQgb3B0aW9uYWwgYnkgYXNzdW1pbmcgdGhhdCBzaWduYWxs aW5nIGlzIGFscmVhZHkKYXZhaWxhYmxlIHdoZW4gdGhlIGNhbGxiYWNrIGlzbid0IHByZXNlbnQu CgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K Q2M6IFN1bWl0IFNlbXdhbCA8c3VtaXQuc2Vtd2FsQGxpbmFyby5vcmc+CkNjOiBHdXN0YXZvIFBh ZG92YW4gPGd1c3Rhdm9AcGFkb3Zhbi5vcmc+CkNjOiBsaW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5v cmcKQ2M6IGxpbmFyby1tbS1zaWdAbGlzdHMubGluYXJvLm9yZwotLS0KIGRyaXZlcnMvZG1hLWJ1 Zi9kbWEtZmVuY2UuYyB8IDEzICsrKysrKysrKysrKy0KIGluY2x1ZGUvbGludXgvZG1hLWZlbmNl LmggICB8ICAzICsrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYyBiL2RyaXZl cnMvZG1hLWJ1Zi9kbWEtZmVuY2UuYwppbmRleCA0ZWRiOWZkM2NmNDcuLjdiNWI0MGQ2YjcwZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1mZW5jZS5jCisrKyBiL2RyaXZlcnMvZG1h LWJ1Zi9kbWEtZmVuY2UuYwpAQCAtMTgxLDYgKzE4MSwxMyBAQCB2b2lkIGRtYV9mZW5jZV9yZWxl YXNlKHN0cnVjdCBrcmVmICprcmVmKQogfQogRVhQT1JUX1NZTUJPTChkbWFfZmVuY2VfcmVsZWFz ZSk7CiAKKy8qKgorICogZG1hX2ZlbmNlX2ZyZWUgLSBkZWZhdWx0IHJlbGVhc2UgZnVuY3Rpb24g Zm9yICZkbWFfZmVuY2UuCisgKiBAZmVuY2U6IGZlbmNlIHRvIHJlbGVhc2UKKyAqCisgKiBUaGlz IGlzIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciAmZG1hX2ZlbmNlX29wcy5yZWxlYXNl LiBJdCBjYWxscworICoga2ZyZWVfcmN1KCkgb24gQGZlbmNlLgorICovCiB2b2lkIGRtYV9mZW5j ZV9mcmVlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQogewogCWtmcmVlX3JjdShmZW5jZSwgcmN1 KTsKQEAgLTU2MCw3ICs1NjcsNyBAQCBkbWFfZmVuY2VfaW5pdChzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSwgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wcywKIAkgICAgICAgc3BpbmxvY2tf dCAqbG9jaywgdTY0IGNvbnRleHQsIHVuc2lnbmVkIHNlcW5vKQogewogCUJVR19PTighbG9jayk7 Ci0JQlVHX09OKCFvcHMgfHwgIW9wcy0+d2FpdCB8fCAhb3BzLT5lbmFibGVfc2lnbmFsaW5nIHx8 CisJQlVHX09OKCFvcHMgfHwgIW9wcy0+d2FpdCB8fAogCSAgICAgICAhb3BzLT5nZXRfZHJpdmVy X25hbWUgfHwgIW9wcy0+Z2V0X3RpbWVsaW5lX25hbWUpOwogCiAJa3JlZl9pbml0KCZmZW5jZS0+ cmVmY291bnQpOwpAQCAtNTcyLDYgKzU3OSwxMCBAQCBkbWFfZmVuY2VfaW5pdChzdHJ1Y3QgZG1h X2ZlbmNlICpmZW5jZSwgY29uc3Qgc3RydWN0IGRtYV9mZW5jZV9vcHMgKm9wcywKIAlmZW5jZS0+ ZmxhZ3MgPSAwVUw7CiAJZmVuY2UtPmVycm9yID0gMDsKIAorCWlmICghb3BzLT5lbmFibGVfc2ln bmFsaW5nKQorCQlzZXRfYml0KERNQV9GRU5DRV9GTEFHX0VOQUJMRV9TSUdOQUxfQklULAorCQkJ JmZlbmNlLT5mbGFncyk7CisKIAl0cmFjZV9kbWFfZmVuY2VfaW5pdChmZW5jZSk7CiB9CiBFWFBP UlRfU1lNQk9MKGRtYV9mZW5jZV9pbml0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZG1h LWZlbmNlLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oCmluZGV4IGY5YTY4NDhmODU1OC4u YzczMGY1Njk2MjFhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1mZW5jZS5oCisrKyBi L2luY2x1ZGUvbGludXgvZG1hLWZlbmNlLmgKQEAgLTE2Niw3ICsxNjYsOCBAQCBzdHJ1Y3QgZG1h X2ZlbmNlX29wcyB7CiAJICogcmVsZWFzZWQgd2hlbiB0aGUgZmVuY2UgaXMgc2lnbmFsbGVkICh0 aHJvdWdoIGUuZy4gdGhlIGludGVycnVwdAogCSAqIGhhbmRsZXIpLgogCSAqCi0JICogVGhpcyBj YWxsYmFjayBpcyBtYW5kYXRvcnkuCisJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbC4gSWYg dGhpcyBjYWxsYmFjayBpcyBub3QgcHJlc2VudCwgdGhlbiB0aGUKKwkgKiBkcml2ZXIgbXVzdCBh bHdheXMgaGF2ZSBzaWduYWxpbmcgZW5hYmxlZC4KIAkgKi8KIAlib29sICgqZW5hYmxlX3NpZ25h bGluZykoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpOwogCi0tIAoyLjE3LjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=