Lines Matching refs:commit

89 static void omap_atomic_complete(struct omap_atomic_state_commit *commit)  in omap_atomic_complete()  argument
91 struct drm_device *dev = commit->dev; in omap_atomic_complete()
93 struct drm_atomic_state *old_state = commit->state; in omap_atomic_complete()
111 spin_lock(&priv->commit.lock); in omap_atomic_complete()
112 priv->commit.pending &= ~commit->crtcs; in omap_atomic_complete()
113 spin_unlock(&priv->commit.lock); in omap_atomic_complete()
115 wake_up_all(&priv->commit.wait); in omap_atomic_complete()
117 kfree(commit); in omap_atomic_complete()
122 struct omap_atomic_state_commit *commit = in omap_atomic_work() local
125 omap_atomic_complete(commit); in omap_atomic_work()
129 struct omap_atomic_state_commit *commit) in omap_atomic_is_pending() argument
133 spin_lock(&priv->commit.lock); in omap_atomic_is_pending()
134 pending = priv->commit.pending & commit->crtcs; in omap_atomic_is_pending()
135 spin_unlock(&priv->commit.lock); in omap_atomic_is_pending()
144 struct omap_atomic_state_commit *commit; in omap_atomic_commit() local
154 commit = kzalloc(sizeof(*commit), GFP_KERNEL); in omap_atomic_commit()
155 if (commit == NULL) { in omap_atomic_commit()
160 INIT_WORK(&commit->work, omap_atomic_work); in omap_atomic_commit()
161 commit->dev = dev; in omap_atomic_commit()
162 commit->state = state; in omap_atomic_commit()
169 commit->crtcs |= 1 << drm_crtc_index(state->crtcs[i]); in omap_atomic_commit()
172 wait_event(priv->commit.wait, !omap_atomic_is_pending(priv, commit)); in omap_atomic_commit()
174 spin_lock(&priv->commit.lock); in omap_atomic_commit()
175 priv->commit.pending |= commit->crtcs; in omap_atomic_commit()
176 spin_unlock(&priv->commit.lock); in omap_atomic_commit()
185 &priv->commit.events); in omap_atomic_commit()
193 schedule_work(&commit->work); in omap_atomic_commit()
195 omap_atomic_complete(commit); in omap_atomic_commit()
669 init_waitqueue_head(&priv->commit.wait); in dev_load()
670 spin_lock_init(&priv->commit.lock); in dev_load()
671 INIT_LIST_HEAD(&priv->commit.events); in dev_load()
802 list_for_each_entry(event, &priv->commit.events, link) { in dev_preclose()