Lines Matching refs:objs

119 	struct virtio_gpu_object_array *objs;  in virtio_gpu_gem_object_open()  local
124 objs = virtio_gpu_array_alloc(1); in virtio_gpu_gem_object_open()
125 if (!objs) in virtio_gpu_gem_object_open()
127 virtio_gpu_array_add_obj(objs, obj); in virtio_gpu_gem_object_open()
130 objs); in virtio_gpu_gem_object_open()
139 struct virtio_gpu_object_array *objs; in virtio_gpu_gem_object_close() local
144 objs = virtio_gpu_array_alloc(1); in virtio_gpu_gem_object_close()
145 if (!objs) in virtio_gpu_gem_object_close()
147 virtio_gpu_array_add_obj(objs, obj); in virtio_gpu_gem_object_close()
150 objs); in virtio_gpu_gem_object_close()
155 struct virtio_gpu_object_array *objs; in virtio_gpu_array_alloc() local
156 size_t size = sizeof(*objs) + sizeof(objs->objs[0]) * nents; in virtio_gpu_array_alloc()
158 objs = kmalloc(size, GFP_KERNEL); in virtio_gpu_array_alloc()
159 if (!objs) in virtio_gpu_array_alloc()
162 objs->nents = 0; in virtio_gpu_array_alloc()
163 objs->total = nents; in virtio_gpu_array_alloc()
164 return objs; in virtio_gpu_array_alloc()
167 static void virtio_gpu_array_free(struct virtio_gpu_object_array *objs) in virtio_gpu_array_free() argument
169 kfree(objs); in virtio_gpu_array_free()
175 struct virtio_gpu_object_array *objs; in virtio_gpu_array_from_handles() local
178 objs = virtio_gpu_array_alloc(nents); in virtio_gpu_array_from_handles()
179 if (!objs) in virtio_gpu_array_from_handles()
183 objs->objs[i] = drm_gem_object_lookup(drm_file, handles[i]); in virtio_gpu_array_from_handles()
184 if (!objs->objs[i]) { in virtio_gpu_array_from_handles()
185 objs->nents = i; in virtio_gpu_array_from_handles()
186 virtio_gpu_array_put_free(objs); in virtio_gpu_array_from_handles()
190 objs->nents = i; in virtio_gpu_array_from_handles()
191 return objs; in virtio_gpu_array_from_handles()
194 void virtio_gpu_array_add_obj(struct virtio_gpu_object_array *objs, in virtio_gpu_array_add_obj() argument
197 if (WARN_ON_ONCE(objs->nents == objs->total)) in virtio_gpu_array_add_obj()
201 objs->objs[objs->nents] = obj; in virtio_gpu_array_add_obj()
202 objs->nents++; in virtio_gpu_array_add_obj()
205 int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs) in virtio_gpu_array_lock_resv() argument
209 if (objs->nents == 1) { in virtio_gpu_array_lock_resv()
210 ret = dma_resv_lock_interruptible(objs->objs[0]->resv, NULL); in virtio_gpu_array_lock_resv()
212 ret = drm_gem_lock_reservations(objs->objs, objs->nents, in virtio_gpu_array_lock_resv()
213 &objs->ticket); in virtio_gpu_array_lock_resv()
218 void virtio_gpu_array_unlock_resv(struct virtio_gpu_object_array *objs) in virtio_gpu_array_unlock_resv() argument
220 if (objs->nents == 1) { in virtio_gpu_array_unlock_resv()
221 dma_resv_unlock(objs->objs[0]->resv); in virtio_gpu_array_unlock_resv()
223 drm_gem_unlock_reservations(objs->objs, objs->nents, in virtio_gpu_array_unlock_resv()
224 &objs->ticket); in virtio_gpu_array_unlock_resv()
228 void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs, in virtio_gpu_array_add_fence() argument
233 for (i = 0; i < objs->nents; i++) in virtio_gpu_array_add_fence()
234 dma_resv_add_excl_fence(objs->objs[i]->resv, fence); in virtio_gpu_array_add_fence()
237 void virtio_gpu_array_put_free(struct virtio_gpu_object_array *objs) in virtio_gpu_array_put_free() argument
241 for (i = 0; i < objs->nents; i++) in virtio_gpu_array_put_free()
242 drm_gem_object_put_unlocked(objs->objs[i]); in virtio_gpu_array_put_free()
243 virtio_gpu_array_free(objs); in virtio_gpu_array_put_free()
247 struct virtio_gpu_object_array *objs) in virtio_gpu_array_put_free_delayed() argument
250 list_add_tail(&objs->next, &vgdev->obj_free_list); in virtio_gpu_array_put_free_delayed()
259 struct virtio_gpu_object_array *objs; in virtio_gpu_array_put_free_work() local
263 objs = list_first_entry(&vgdev->obj_free_list, in virtio_gpu_array_put_free_work()
265 list_del(&objs->next); in virtio_gpu_array_put_free_work()
267 virtio_gpu_array_put_free(objs); in virtio_gpu_array_put_free_work()