Lines Matching refs:objs

114 	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()
141 struct virtio_gpu_object_array *objs; in virtio_gpu_gem_object_close() local
146 objs = virtio_gpu_array_alloc(1); in virtio_gpu_gem_object_close()
147 if (!objs) in virtio_gpu_gem_object_close()
149 virtio_gpu_array_add_obj(objs, obj); in virtio_gpu_gem_object_close()
152 objs); in virtio_gpu_gem_object_close()
158 struct virtio_gpu_object_array *objs; in virtio_gpu_array_alloc() local
160 objs = kmalloc(struct_size(objs, objs, nents), GFP_KERNEL); in virtio_gpu_array_alloc()
161 if (!objs) in virtio_gpu_array_alloc()
164 objs->nents = 0; in virtio_gpu_array_alloc()
165 objs->total = nents; in virtio_gpu_array_alloc()
166 return objs; in virtio_gpu_array_alloc()
169 static void virtio_gpu_array_free(struct virtio_gpu_object_array *objs) in virtio_gpu_array_free() argument
171 kfree(objs); in virtio_gpu_array_free()
177 struct virtio_gpu_object_array *objs; in virtio_gpu_array_from_handles() local
180 objs = virtio_gpu_array_alloc(nents); in virtio_gpu_array_from_handles()
181 if (!objs) in virtio_gpu_array_from_handles()
185 objs->objs[i] = drm_gem_object_lookup(drm_file, handles[i]); in virtio_gpu_array_from_handles()
186 if (!objs->objs[i]) { in virtio_gpu_array_from_handles()
187 objs->nents = i; in virtio_gpu_array_from_handles()
188 virtio_gpu_array_put_free(objs); in virtio_gpu_array_from_handles()
192 objs->nents = i; in virtio_gpu_array_from_handles()
193 return objs; in virtio_gpu_array_from_handles()
196 void virtio_gpu_array_add_obj(struct virtio_gpu_object_array *objs, in virtio_gpu_array_add_obj() argument
199 if (WARN_ON_ONCE(objs->nents == objs->total)) in virtio_gpu_array_add_obj()
203 objs->objs[objs->nents] = obj; in virtio_gpu_array_add_obj()
204 objs->nents++; in virtio_gpu_array_add_obj()
207 int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs) in virtio_gpu_array_lock_resv() argument
211 if (objs->nents == 1) { in virtio_gpu_array_lock_resv()
212 ret = dma_resv_lock_interruptible(objs->objs[0]->resv, NULL); in virtio_gpu_array_lock_resv()
214 ret = drm_gem_lock_reservations(objs->objs, objs->nents, in virtio_gpu_array_lock_resv()
215 &objs->ticket); in virtio_gpu_array_lock_resv()
220 void virtio_gpu_array_unlock_resv(struct virtio_gpu_object_array *objs) in virtio_gpu_array_unlock_resv() argument
222 if (objs->nents == 1) { in virtio_gpu_array_unlock_resv()
223 dma_resv_unlock(objs->objs[0]->resv); in virtio_gpu_array_unlock_resv()
225 drm_gem_unlock_reservations(objs->objs, objs->nents, in virtio_gpu_array_unlock_resv()
226 &objs->ticket); in virtio_gpu_array_unlock_resv()
230 void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs, in virtio_gpu_array_add_fence() argument
235 for (i = 0; i < objs->nents; i++) in virtio_gpu_array_add_fence()
236 dma_resv_add_excl_fence(objs->objs[i]->resv, fence); in virtio_gpu_array_add_fence()
239 void virtio_gpu_array_put_free(struct virtio_gpu_object_array *objs) in virtio_gpu_array_put_free() argument
243 for (i = 0; i < objs->nents; i++) in virtio_gpu_array_put_free()
244 drm_gem_object_put(objs->objs[i]); in virtio_gpu_array_put_free()
245 virtio_gpu_array_free(objs); in virtio_gpu_array_put_free()
249 struct virtio_gpu_object_array *objs) in virtio_gpu_array_put_free_delayed() argument
252 list_add_tail(&objs->next, &vgdev->obj_free_list); in virtio_gpu_array_put_free_delayed()
261 struct virtio_gpu_object_array *objs; in virtio_gpu_array_put_free_work() local
265 objs = list_first_entry(&vgdev->obj_free_list, in virtio_gpu_array_put_free_work()
267 list_del(&objs->next); in virtio_gpu_array_put_free_work()
269 virtio_gpu_array_put_free(objs); in virtio_gpu_array_put_free_work()