Lines Matching refs:kms

21 static void vblank_get(struct msm_kms *kms, unsigned crtc_mask)
25 for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
32 static void vblank_put(struct msm_kms *kms, unsigned crtc_mask)
36 for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
43 static void lock_crtcs(struct msm_kms *kms, unsigned int crtc_mask)
48 for_each_crtc_mask(kms->dev, crtc, crtc_mask) {
50 mutex_lock_nested(&kms->commit_lock[crtc_index], crtc_index);
54 static void unlock_crtcs(struct msm_kms *kms, unsigned int crtc_mask)
58 for_each_crtc_mask_reverse(kms->dev, crtc, crtc_mask)
59 mutex_unlock(&kms->commit_lock[drm_crtc_index(crtc)]);
62 static void msm_atomic_async_commit(struct msm_kms *kms, int crtc_idx)
68 lock_crtcs(kms, crtc_mask);
70 if (!(kms->pending_crtc_mask & crtc_mask)) {
71 unlock_crtcs(kms, crtc_mask);
75 kms->pending_crtc_mask &= ~crtc_mask;
77 kms->funcs->enable_commit(kms);
79 vblank_get(kms, crtc_mask);
85 kms->funcs->flush_commit(kms, crtc_mask);
91 kms->funcs->wait_flush(kms, crtc_mask);
94 vblank_put(kms, crtc_mask);
96 kms->funcs->complete_commit(kms, crtc_mask);
97 unlock_crtcs(kms, crtc_mask);
98 kms->funcs->disable_commit(kms);
109 msm_atomic_async_commit(timer->kms, timer->crtc_idx);
113 struct msm_kms *kms, int crtc_idx)
115 timer->kms = kms;
206 struct msm_kms *kms = priv->kms;
213 kms->funcs->enable_commit(kms);
219 lock_crtcs(kms, crtc_mask);
221 kms->funcs->wait_flush(kms, crtc_mask);
228 if (kms->funcs->prepare_commit)
229 kms->funcs->prepare_commit(kms, state);
240 &kms->pending_timers[drm_crtc_index(async_crtc)];
249 if (!(kms->pending_crtc_mask & crtc_mask)) {
252 kms->pending_crtc_mask |= crtc_mask;
263 kms->funcs->disable_commit(kms);
264 unlock_crtcs(kms, crtc_mask);
283 kms->pending_crtc_mask &= ~crtc_mask;
285 vblank_get(kms, crtc_mask);
291 kms->funcs->flush_commit(kms, crtc_mask);
292 unlock_crtcs(kms, crtc_mask);
297 kms->funcs->wait_flush(kms, crtc_mask);
300 vblank_put(kms, crtc_mask);
302 lock_crtcs(kms, crtc_mask);
303 kms->funcs->complete_commit(kms, crtc_mask);
304 unlock_crtcs(kms, crtc_mask);
305 kms->funcs->disable_commit(kms);