File Index
Files and directories
Sign in
FILE

v3d_fence.c

File preview with syntax highlighting.

linux-6.19.14/drivers/gpu/drm/v3d/v3d_fence.c C
 1// SPDX-License-Identifier: GPL-2.0+
 2/* Copyright (C) 2017-2018 Broadcom */
 3
 4#include "v3d_drv.h"
 5
 6struct dma_fence *v3d_fence_create(struct v3d_dev *v3d, enum v3d_queue q)
 7{
 8	struct v3d_queue_state *queue = &v3d->queue[q];
 9	struct v3d_fence *fence;
10
11	fence = kzalloc(sizeof(*fence), GFP_KERNEL);
12	if (!fence)
13		return ERR_PTR(-ENOMEM);
14
15	fence->dev = &v3d->drm;
16	fence->queue = q;
17	fence->seqno = ++queue->emit_seqno;
18	dma_fence_init(&fence->base, &v3d_fence_ops, &queue->fence_lock,
19		       queue->fence_context, fence->seqno);
20
21	return &fence->base;
22}
23
24static const char *v3d_fence_get_driver_name(struct dma_fence *fence)
25{
26	return "v3d";
27}
28
29static const char *v3d_fence_get_timeline_name(struct dma_fence *fence)
30{
31	struct v3d_fence *f = to_v3d_fence(fence);
32
33	switch (f->queue) {
34	case V3D_BIN:
35		return "v3d-bin";
36	case V3D_RENDER:
37		return "v3d-render";
38	case V3D_TFU:
39		return "v3d-tfu";
40	case V3D_CSD:
41		return "v3d-csd";
42	default:
43		return NULL;
44	}
45}
46
47const struct dma_fence_ops v3d_fence_ops = {
48	.get_driver_name = v3d_fence_get_driver_name,
49	.get_timeline_name = v3d_fence_get_timeline_name,
50};
~/ Read-only file preview.