Lines Matching refs:commit

399 static void rcar_du_atomic_complete(struct rcar_du_commit *commit)  in rcar_du_atomic_complete()  argument
401 struct drm_device *dev = commit->dev; in rcar_du_atomic_complete()
403 struct drm_atomic_state *old_state = commit->state; in rcar_du_atomic_complete()
417 spin_lock(&rcdu->commit.wait.lock); in rcar_du_atomic_complete()
418 rcdu->commit.pending &= ~commit->crtcs; in rcar_du_atomic_complete()
419 wake_up_all_locked(&rcdu->commit.wait); in rcar_du_atomic_complete()
420 spin_unlock(&rcdu->commit.wait.lock); in rcar_du_atomic_complete()
422 kfree(commit); in rcar_du_atomic_complete()
427 struct rcar_du_commit *commit = in rcar_du_atomic_work() local
430 rcar_du_atomic_complete(commit); in rcar_du_atomic_work()
437 struct rcar_du_commit *commit; in rcar_du_atomic_commit() local
446 commit = kzalloc(sizeof(*commit), GFP_KERNEL); in rcar_du_atomic_commit()
447 if (commit == NULL) in rcar_du_atomic_commit()
450 INIT_WORK(&commit->work, rcar_du_atomic_work); in rcar_du_atomic_commit()
451 commit->dev = dev; in rcar_du_atomic_commit()
452 commit->state = state; in rcar_du_atomic_commit()
459 commit->crtcs |= 1 << drm_crtc_index(state->crtcs[i]); in rcar_du_atomic_commit()
462 spin_lock(&rcdu->commit.wait.lock); in rcar_du_atomic_commit()
463 ret = wait_event_interruptible_locked(rcdu->commit.wait, in rcar_du_atomic_commit()
464 !(rcdu->commit.pending & commit->crtcs)); in rcar_du_atomic_commit()
466 rcdu->commit.pending |= commit->crtcs; in rcar_du_atomic_commit()
467 spin_unlock(&rcdu->commit.wait.lock); in rcar_du_atomic_commit()
470 kfree(commit); in rcar_du_atomic_commit()
478 schedule_work(&commit->work); in rcar_du_atomic_commit()
480 rcar_du_atomic_complete(commit); in rcar_du_atomic_commit()