Lines Matching refs:commit
450 static void rcar_du_atomic_complete(struct rcar_du_commit *commit) in rcar_du_atomic_complete() argument
452 struct drm_device *dev = commit->dev; in rcar_du_atomic_complete()
454 struct drm_atomic_state *old_state = commit->state; in rcar_du_atomic_complete()
468 spin_lock(&rcdu->commit.wait.lock); in rcar_du_atomic_complete()
469 rcdu->commit.pending &= ~commit->crtcs; in rcar_du_atomic_complete()
470 wake_up_all_locked(&rcdu->commit.wait); in rcar_du_atomic_complete()
471 spin_unlock(&rcdu->commit.wait.lock); in rcar_du_atomic_complete()
473 kfree(commit); in rcar_du_atomic_complete()
478 struct rcar_du_commit *commit = in rcar_du_atomic_work() local
481 rcar_du_atomic_complete(commit); in rcar_du_atomic_work()
488 struct rcar_du_commit *commit; in rcar_du_atomic_commit() local
497 commit = kzalloc(sizeof(*commit), GFP_KERNEL); in rcar_du_atomic_commit()
498 if (commit == NULL) { in rcar_du_atomic_commit()
503 INIT_WORK(&commit->work, rcar_du_atomic_work); in rcar_du_atomic_commit()
504 commit->dev = dev; in rcar_du_atomic_commit()
505 commit->state = state; in rcar_du_atomic_commit()
512 commit->crtcs |= 1 << drm_crtc_index(state->crtcs[i]); in rcar_du_atomic_commit()
515 spin_lock(&rcdu->commit.wait.lock); in rcar_du_atomic_commit()
516 ret = wait_event_interruptible_locked(rcdu->commit.wait, in rcar_du_atomic_commit()
517 !(rcdu->commit.pending & commit->crtcs)); in rcar_du_atomic_commit()
519 rcdu->commit.pending |= commit->crtcs; in rcar_du_atomic_commit()
520 spin_unlock(&rcdu->commit.wait.lock); in rcar_du_atomic_commit()
523 kfree(commit); in rcar_du_atomic_commit()
531 schedule_work(&commit->work); in rcar_du_atomic_commit()
533 rcar_du_atomic_complete(commit); in rcar_du_atomic_commit()