Blame view
drivers/dma-buf/seqno-fence.c
1.79 KB
1802d0bee treewide: Replace... |
1 |
// SPDX-License-Identifier: GPL-2.0-only |
606b23ad6 seqno-fence: Hard... |
2 3 4 5 6 7 8 9 |
/* * seqno-fence, using a dma-buf to synchronize fencing * * Copyright (C) 2012 Texas Instruments * Copyright (C) 2012-2014 Canonical Ltd * Authors: * Rob Clark <robdclark@gmail.com> * Maarten Lankhorst <maarten.lankhorst@canonical.com> |
606b23ad6 seqno-fence: Hard... |
10 11 12 13 14 |
*/ #include <linux/slab.h> #include <linux/export.h> #include <linux/seqno-fence.h> |
f54d18670 dma-buf: Rename s... |
15 |
static const char *seqno_fence_get_driver_name(struct dma_fence *fence) |
606b23ad6 seqno-fence: Hard... |
16 17 |
{ struct seqno_fence *seqno_fence = to_seqno_fence(fence); |
5136629dc dma-buf: Minor co... |
18 |
|
606b23ad6 seqno-fence: Hard... |
19 20 |
return seqno_fence->ops->get_driver_name(fence); } |
f54d18670 dma-buf: Rename s... |
21 |
static const char *seqno_fence_get_timeline_name(struct dma_fence *fence) |
606b23ad6 seqno-fence: Hard... |
22 23 |
{ struct seqno_fence *seqno_fence = to_seqno_fence(fence); |
5136629dc dma-buf: Minor co... |
24 |
|
606b23ad6 seqno-fence: Hard... |
25 26 |
return seqno_fence->ops->get_timeline_name(fence); } |
f54d18670 dma-buf: Rename s... |
27 |
static bool seqno_enable_signaling(struct dma_fence *fence) |
606b23ad6 seqno-fence: Hard... |
28 29 |
{ struct seqno_fence *seqno_fence = to_seqno_fence(fence); |
5136629dc dma-buf: Minor co... |
30 |
|
606b23ad6 seqno-fence: Hard... |
31 32 |
return seqno_fence->ops->enable_signaling(fence); } |
f54d18670 dma-buf: Rename s... |
33 |
static bool seqno_signaled(struct dma_fence *fence) |
606b23ad6 seqno-fence: Hard... |
34 35 |
{ struct seqno_fence *seqno_fence = to_seqno_fence(fence); |
5136629dc dma-buf: Minor co... |
36 |
|
606b23ad6 seqno-fence: Hard... |
37 38 |
return seqno_fence->ops->signaled && seqno_fence->ops->signaled(fence); } |
f54d18670 dma-buf: Rename s... |
39 |
static void seqno_release(struct dma_fence *fence) |
606b23ad6 seqno-fence: Hard... |
40 41 42 43 44 45 46 |
{ struct seqno_fence *f = to_seqno_fence(fence); dma_buf_put(f->sync_buf); if (f->ops->release) f->ops->release(fence); else |
f54d18670 dma-buf: Rename s... |
47 |
dma_fence_free(&f->base); |
606b23ad6 seqno-fence: Hard... |
48 |
} |
f54d18670 dma-buf: Rename s... |
49 50 |
static signed long seqno_wait(struct dma_fence *fence, bool intr, signed long timeout) |
606b23ad6 seqno-fence: Hard... |
51 52 |
{ struct seqno_fence *f = to_seqno_fence(fence); |
5136629dc dma-buf: Minor co... |
53 |
|
606b23ad6 seqno-fence: Hard... |
54 55 |
return f->ops->wait(fence, intr, timeout); } |
f54d18670 dma-buf: Rename s... |
56 |
const struct dma_fence_ops seqno_fence_ops = { |
606b23ad6 seqno-fence: Hard... |
57 58 59 60 61 62 63 64 |
.get_driver_name = seqno_fence_get_driver_name, .get_timeline_name = seqno_fence_get_timeline_name, .enable_signaling = seqno_enable_signaling, .signaled = seqno_signaled, .wait = seqno_wait, .release = seqno_release, }; EXPORT_SYMBOL(seqno_fence_ops); |