Lines Matching refs:kms

20 	struct msm_kms *kms = priv->kms;  in msm_atomic_prepare_fb()  local
27 return msm_framebuffer_prepare(new_state->fb, kms->aspace); in msm_atomic_prepare_fb()
36 static void vblank_get(struct msm_kms *kms, unsigned crtc_mask) in vblank_get() argument
40 for_each_crtc_mask(kms->dev, crtc, crtc_mask) { in vblank_get()
47 static void vblank_put(struct msm_kms *kms, unsigned crtc_mask) in vblank_put() argument
51 for_each_crtc_mask(kms->dev, crtc, crtc_mask) { in vblank_put()
58 static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx) in msm_atomic_async_commit() argument
64 mutex_lock(&kms->commit_lock); in msm_atomic_async_commit()
66 if (!(kms->pending_crtc_mask & crtc_mask)) { in msm_atomic_async_commit()
67 mutex_unlock(&kms->commit_lock); in msm_atomic_async_commit()
71 kms->pending_crtc_mask &= ~crtc_mask; in msm_atomic_async_commit()
73 kms->funcs->enable_commit(kms); in msm_atomic_async_commit()
75 vblank_get(kms, crtc_mask); in msm_atomic_async_commit()
81 kms->funcs->flush_commit(kms, crtc_mask); in msm_atomic_async_commit()
82 mutex_unlock(&kms->commit_lock); in msm_atomic_async_commit()
88 kms->funcs->wait_flush(kms, crtc_mask); in msm_atomic_async_commit()
91 vblank_put(kms, crtc_mask); in msm_atomic_async_commit()
93 mutex_lock(&kms->commit_lock); in msm_atomic_async_commit()
94 kms->funcs->complete_commit(kms, crtc_mask); in msm_atomic_async_commit()
95 mutex_unlock(&kms->commit_lock); in msm_atomic_async_commit()
96 kms->funcs->disable_commit(kms); in msm_atomic_async_commit()
106 struct msm_drm_private *priv = timer->kms->dev->dev_private; in msm_atomic_pending_timer()
118 msm_atomic_async_commit(timer->kms, timer->crtc_idx); in msm_atomic_pending_work()
122 struct msm_kms *kms, int crtc_idx) in msm_atomic_init_pending_timer() argument
124 timer->kms = kms; in msm_atomic_init_pending_timer()
178 struct msm_kms *kms = priv->kms; in msm_atomic_commit_tail() local
181 bool async = kms->funcs->vsync_time && in msm_atomic_commit_tail()
186 kms->funcs->enable_commit(kms); in msm_atomic_commit_tail()
193 kms->funcs->wait_flush(kms, crtc_mask); in msm_atomic_commit_tail()
196 mutex_lock(&kms->commit_lock); in msm_atomic_commit_tail()
202 kms->funcs->prepare_commit(kms, state); in msm_atomic_commit_tail()
213 &kms->pending_timers[drm_crtc_index(async_crtc)]; in msm_atomic_commit_tail()
222 if (!(kms->pending_crtc_mask & crtc_mask)) { in msm_atomic_commit_tail()
225 kms->pending_crtc_mask |= crtc_mask; in msm_atomic_commit_tail()
227 vsync_time = kms->funcs->vsync_time(kms, async_crtc); in msm_atomic_commit_tail()
234 kms->funcs->disable_commit(kms); in msm_atomic_commit_tail()
235 mutex_unlock(&kms->commit_lock); in msm_atomic_commit_tail()
254 kms->pending_crtc_mask &= ~crtc_mask; in msm_atomic_commit_tail()
256 vblank_get(kms, crtc_mask); in msm_atomic_commit_tail()
262 kms->funcs->flush_commit(kms, crtc_mask); in msm_atomic_commit_tail()
263 mutex_unlock(&kms->commit_lock); in msm_atomic_commit_tail()
269 kms->funcs->wait_flush(kms, crtc_mask); in msm_atomic_commit_tail()
272 vblank_put(kms, crtc_mask); in msm_atomic_commit_tail()
274 mutex_lock(&kms->commit_lock); in msm_atomic_commit_tail()
275 kms->funcs->complete_commit(kms, crtc_mask); in msm_atomic_commit_tail()
276 mutex_unlock(&kms->commit_lock); in msm_atomic_commit_tail()
277 kms->funcs->disable_commit(kms); in msm_atomic_commit_tail()