Lines Matching refs:ring

24 	struct msm_ringbuffer *ring;  in msm_ringbuffer_new()  local
31 ring = kzalloc(sizeof(*ring), GFP_KERNEL); in msm_ringbuffer_new()
32 if (!ring) { in msm_ringbuffer_new()
37 ring->gpu = gpu; in msm_ringbuffer_new()
38 ring->id = id; in msm_ringbuffer_new()
40 ring->start = msm_gem_kernel_new(gpu->dev, MSM_GPU_RINGBUFFER_SZ, in msm_ringbuffer_new()
41 MSM_BO_WC, gpu->aspace, &ring->bo, NULL); in msm_ringbuffer_new()
43 if (IS_ERR(ring->start)) { in msm_ringbuffer_new()
44 ret = PTR_ERR(ring->start); in msm_ringbuffer_new()
45 ring->start = 0; in msm_ringbuffer_new()
48 ring->end = ring->start + (MSM_GPU_RINGBUFFER_SZ >> 2); in msm_ringbuffer_new()
49 ring->next = ring->start; in msm_ringbuffer_new()
50 ring->cur = ring->start; in msm_ringbuffer_new()
52 ring->memptrs = memptrs; in msm_ringbuffer_new()
53 ring->memptrs_iova = memptrs_iova; in msm_ringbuffer_new()
55 INIT_LIST_HEAD(&ring->submits); in msm_ringbuffer_new()
56 spin_lock_init(&ring->lock); in msm_ringbuffer_new()
58 snprintf(name, sizeof(name), "gpu-ring-%d", ring->id); in msm_ringbuffer_new()
60 ring->fctx = msm_fence_context_alloc(gpu->dev, name); in msm_ringbuffer_new()
62 return ring; in msm_ringbuffer_new()
65 msm_ringbuffer_destroy(ring); in msm_ringbuffer_new()
69 void msm_ringbuffer_destroy(struct msm_ringbuffer *ring) in msm_ringbuffer_destroy() argument
71 if (IS_ERR_OR_NULL(ring)) in msm_ringbuffer_destroy()
74 msm_fence_context_free(ring->fctx); in msm_ringbuffer_destroy()
76 if (ring->bo) { in msm_ringbuffer_destroy()
77 msm_gem_put_iova(ring->bo, ring->gpu->aspace); in msm_ringbuffer_destroy()
78 msm_gem_put_vaddr(ring->bo); in msm_ringbuffer_destroy()
79 drm_gem_object_put_unlocked(ring->bo); in msm_ringbuffer_destroy()
81 kfree(ring); in msm_ringbuffer_destroy()