On Mon, Dec 3, 2018 at 8:40 AM Christian König <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > Am 03.12.18 um 14:33 schrieb Chunming Zhou: > > The series is Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> > > > > for patch#2, please remove my Signed-off-by, it's new when using stub > > from dma-fence. > > Yeah, ok. There is indeed nothing left from your original code. > > Alex, Daniel, Chris any objections that I push the first two patches in > this series to drm-misc-next? No objections from me. Does Intel want to run it through their CI? Alex > > Shouldn't be any functional change, > Christian. > > > > > > > -David > > > > > > 在 2018/12/3 21:07, Christian König 写道: > >> Extract of useful code from the timeline work. This provides a function > >> to return a stub or dummy fence which is always signaled. > >> > >> Signed-off-by: Christian König <christian.koenig@xxxxxxx> > >> --- > >> drivers/dma-buf/dma-fence.c | 36 +++++++++++++++++++++++++++++++++++- > >> include/linux/dma-fence.h | 1 + > >> 2 files changed, 36 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c > >> index 1551ca7df394..136ec04d683f 100644 > >> --- a/drivers/dma-buf/dma-fence.c > >> +++ b/drivers/dma-buf/dma-fence.c > >> @@ -30,13 +30,16 @@ > >> EXPORT_TRACEPOINT_SYMBOL(dma_fence_emit); > >> EXPORT_TRACEPOINT_SYMBOL(dma_fence_enable_signal); > >> > >> +static DEFINE_SPINLOCK(dma_fence_stub_lock); > >> +static struct dma_fence dma_fence_stub; > >> + > >> /* > >> * fence context counter: each execution context should have its own > >> * fence context, this allows checking if fences belong to the same > >> * context or not. One device can have multiple separate contexts, > >> * and they're used if some engine can run independently of another. > >> */ > >> -static atomic64_t dma_fence_context_counter = ATOMIC64_INIT(0); > >> +static atomic64_t dma_fence_context_counter = ATOMIC64_INIT(1); > >> > >> /** > >> * DOC: DMA fences overview > >> @@ -68,6 +71,37 @@ static atomic64_t dma_fence_context_counter = ATOMIC64_INIT(0); > >> * &dma_buf.resv pointer. > >> */ > >> > >> +static const char *dma_fence_stub_get_name(struct dma_fence *fence) > >> +{ > >> + return "stub"; > >> +} > >> + > >> +static const struct dma_fence_ops dma_fence_stub_ops = { > >> + .get_driver_name = dma_fence_stub_get_name, > >> + .get_timeline_name = dma_fence_stub_get_name, > >> +}; > >> + > >> +/** > >> + * dma_fence_get_stub - return a signaled fence > >> + * > >> + * Return a stub fence which is already signaled. > >> + */ > >> +struct dma_fence *dma_fence_get_stub(void) > >> +{ > >> + spin_lock(&dma_fence_stub_lock); > >> + if (!dma_fence_stub.ops) { > >> + dma_fence_init(&dma_fence_stub, > >> + &dma_fence_stub_ops, > >> + &dma_fence_stub_lock, > >> + 0, 0); > >> + dma_fence_signal_locked(&dma_fence_stub); > >> + } > >> + spin_unlock(&dma_fence_stub_lock); > >> + > >> + return dma_fence_get(&dma_fence_stub); > >> +} > >> +EXPORT_SYMBOL(dma_fence_get_stub); > >> + > >> /** > >> * dma_fence_context_alloc - allocate an array of fence contexts > >> * @num: amount of contexts to allocate > >> diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h > >> index 02dba8cd033d..999e4b104410 100644 > >> --- a/include/linux/dma-fence.h > >> +++ b/include/linux/dma-fence.h > >> @@ -541,6 +541,7 @@ static inline signed long dma_fence_wait(struct dma_fence *fence, bool intr) > >> return ret < 0 ? ret : 0; > >> } > >> > >> +struct dma_fence *dma_fence_get_stub(void); > >> u64 dma_fence_context_alloc(unsigned num); > >> > >> #define DMA_FENCE_TRACE(f, fmt, args...) \ > > _______________________________________________ > > dri-devel mailing list > > dri-devel@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel