FILE
v3d_fence.c
File preview with syntax highlighting.
linux-6.19.14/drivers/gpu/drm/v3d/v3d_fence.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.