Lines Matching refs:objs

107 	struct virtio_gpu_object_array *objs;  in virtio_gpu_gem_object_open()  local
119 objs = virtio_gpu_array_alloc(1); in virtio_gpu_gem_object_open()
120 if (!objs) in virtio_gpu_gem_object_open()
122 virtio_gpu_array_add_obj(objs, obj); in virtio_gpu_gem_object_open()
124 virtio_gpu_cmd_context_attach_resource(vgdev, vfpriv->ctx_id, objs); in virtio_gpu_gem_object_open()
137 struct virtio_gpu_object_array *objs; in virtio_gpu_gem_object_close() local
142 objs = virtio_gpu_array_alloc(1); in virtio_gpu_gem_object_close()
143 if (!objs) in virtio_gpu_gem_object_close()
145 virtio_gpu_array_add_obj(objs, obj); in virtio_gpu_gem_object_close()
148 objs); in virtio_gpu_gem_object_close()
155 struct virtio_gpu_object_array *objs; in virtio_gpu_panic_array_alloc() local
157 objs = kmalloc(sizeof(struct virtio_gpu_object_array), GFP_ATOMIC); in virtio_gpu_panic_array_alloc()
158 if (!objs) in virtio_gpu_panic_array_alloc()
161 objs->nents = 0; in virtio_gpu_panic_array_alloc()
162 objs->total = 1; in virtio_gpu_panic_array_alloc()
163 return objs; in virtio_gpu_panic_array_alloc()
168 struct virtio_gpu_object_array *objs; in virtio_gpu_array_alloc() local
170 objs = kmalloc(struct_size(objs, objs, nents), GFP_KERNEL); in virtio_gpu_array_alloc()
171 if (!objs) in virtio_gpu_array_alloc()
174 objs->nents = 0; in virtio_gpu_array_alloc()
175 objs->total = nents; in virtio_gpu_array_alloc()
176 return objs; in virtio_gpu_array_alloc()
179 static void virtio_gpu_array_free(struct virtio_gpu_object_array *objs) in virtio_gpu_array_free() argument
181 kfree(objs); in virtio_gpu_array_free()
187 struct virtio_gpu_object_array *objs; in virtio_gpu_array_from_handles() local
190 objs = virtio_gpu_array_alloc(nents); in virtio_gpu_array_from_handles()
191 if (!objs) in virtio_gpu_array_from_handles()
195 objs->objs[i] = drm_gem_object_lookup(drm_file, handles[i]); in virtio_gpu_array_from_handles()
196 if (!objs->objs[i]) { in virtio_gpu_array_from_handles()
197 objs->nents = i; in virtio_gpu_array_from_handles()
198 virtio_gpu_array_put_free(objs); in virtio_gpu_array_from_handles()
202 objs->nents = i; in virtio_gpu_array_from_handles()
203 return objs; in virtio_gpu_array_from_handles()
206 void virtio_gpu_array_add_obj(struct virtio_gpu_object_array *objs, in virtio_gpu_array_add_obj() argument
209 if (WARN_ON_ONCE(objs->nents == objs->total)) in virtio_gpu_array_add_obj()
213 objs->objs[objs->nents] = obj; in virtio_gpu_array_add_obj()
214 objs->nents++; in virtio_gpu_array_add_obj()
217 int virtio_gpu_array_lock_resv(struct virtio_gpu_object_array *objs) in virtio_gpu_array_lock_resv() argument
222 if (objs->nents == 1) { in virtio_gpu_array_lock_resv()
223 ret = dma_resv_lock_interruptible(objs->objs[0]->resv, NULL); in virtio_gpu_array_lock_resv()
225 ret = drm_gem_lock_reservations(objs->objs, objs->nents, in virtio_gpu_array_lock_resv()
226 &objs->ticket); in virtio_gpu_array_lock_resv()
231 for (i = 0; i < objs->nents; ++i) { in virtio_gpu_array_lock_resv()
232 ret = dma_resv_reserve_fences(objs->objs[i]->resv, 1); in virtio_gpu_array_lock_resv()
234 virtio_gpu_array_unlock_resv(objs); in virtio_gpu_array_lock_resv()
241 void virtio_gpu_array_unlock_resv(struct virtio_gpu_object_array *objs) in virtio_gpu_array_unlock_resv() argument
243 if (objs->nents == 1) { in virtio_gpu_array_unlock_resv()
244 dma_resv_unlock(objs->objs[0]->resv); in virtio_gpu_array_unlock_resv()
246 drm_gem_unlock_reservations(objs->objs, objs->nents, in virtio_gpu_array_unlock_resv()
247 &objs->ticket); in virtio_gpu_array_unlock_resv()
251 void virtio_gpu_array_add_fence(struct virtio_gpu_object_array *objs, in virtio_gpu_array_add_fence() argument
256 for (i = 0; i < objs->nents; i++) in virtio_gpu_array_add_fence()
257 dma_resv_add_fence(objs->objs[i]->resv, fence, in virtio_gpu_array_add_fence()
261 void virtio_gpu_array_put_free(struct virtio_gpu_object_array *objs) in virtio_gpu_array_put_free() argument
265 if (!objs) in virtio_gpu_array_put_free()
268 for (i = 0; i < objs->nents; i++) in virtio_gpu_array_put_free()
269 drm_gem_object_put(objs->objs[i]); in virtio_gpu_array_put_free()
270 virtio_gpu_array_free(objs); in virtio_gpu_array_put_free()
274 struct virtio_gpu_object_array *objs) in virtio_gpu_array_put_free_delayed() argument
277 list_add_tail(&objs->next, &vgdev->obj_free_list); in virtio_gpu_array_put_free_delayed()
286 struct virtio_gpu_object_array *objs; in virtio_gpu_array_put_free_work() local
290 objs = list_first_entry(&vgdev->obj_free_list, in virtio_gpu_array_put_free_work()
292 list_del(&objs->next); in virtio_gpu_array_put_free_work()
294 virtio_gpu_array_put_free(objs); in virtio_gpu_array_put_free_work()