Lines Matching defs:obj
23 * struct drm_gem_object *obj;
41 * drm_exec_for_each_locked_object(&exec, index, obj) {
42 * dma_resv_add_fence(obj->resv, fence, DMA_RESV_USAGE_READ);
56 struct drm_gem_object *obj;
59 drm_exec_for_each_locked_object_reverse(exec, index, obj) {
60 dma_resv_unlock(obj->resv);
61 drm_gem_object_put(obj);
135 struct drm_gem_object *obj)
149 drm_gem_object_get(obj);
150 exec->objects[exec->num_objects++] = obj;
158 struct drm_gem_object *obj = exec->contended;
161 if (likely(!obj))
167 ret = dma_resv_lock_slow_interruptible(obj->resv,
172 dma_resv_lock_slow(obj->resv, &exec->ticket);
175 ret = drm_exec_obj_locked(exec, obj);
179 exec->prelocked = obj;
183 dma_resv_unlock(obj->resv);
186 drm_gem_object_put(obj);
193 * @obj: the GEM object to lock
201 int drm_exec_lock_obj(struct drm_exec *exec, struct drm_gem_object *obj)
209 if (exec->prelocked == obj) {
216 ret = dma_resv_lock_interruptible(obj->resv, &exec->ticket);
218 ret = dma_resv_lock(obj->resv, &exec->ticket);
221 drm_gem_object_get(obj);
222 exec->contended = obj;
233 ret = drm_exec_obj_locked(exec, obj);
240 dma_resv_unlock(obj->resv);
248 * @obj: the GEM object to unlock
254 void drm_exec_unlock_obj(struct drm_exec *exec, struct drm_gem_object *obj)
259 if (exec->objects[i] == obj) {
260 dma_resv_unlock(obj->resv);
264 drm_gem_object_put(obj);
275 * @obj: the GEM object to prepare
283 int drm_exec_prepare_obj(struct drm_exec *exec, struct drm_gem_object *obj,
288 ret = drm_exec_lock_obj(exec, obj);
292 ret = dma_resv_reserve_fences(obj->resv, num_fences);
294 drm_exec_unlock_obj(exec, obj);