Lines Matching refs:scrtc
47 void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc)
50 struct drm_device *dev = scrtc->base.dev;
54 event = scrtc->event;
55 scrtc->event = NULL;
57 drm_crtc_send_vblank_event(&scrtc->base, event);
58 wake_up(&scrtc->flip_wait);
59 drm_crtc_vblank_put(&scrtc->base);
64 static bool shmob_drm_crtc_page_flip_pending(struct shmob_drm_crtc *scrtc)
66 struct drm_device *dev = scrtc->base.dev;
71 pending = scrtc->event != NULL;
77 static void shmob_drm_crtc_wait_page_flip(struct shmob_drm_crtc *scrtc)
79 struct drm_crtc *crtc = &scrtc->base;
82 if (wait_event_timeout(scrtc->flip_wait,
83 !shmob_drm_crtc_page_flip_pending(scrtc),
89 shmob_drm_crtc_finish_page_flip(scrtc);
110 static void shmob_drm_crtc_setup_geometry(struct shmob_drm_crtc *scrtc)
112 struct drm_crtc *crtc = &scrtc->base;
169 static void shmob_drm_crtc_start_stop(struct shmob_drm_crtc *scrtc, bool start)
171 struct shmob_drm_device *sdev = to_shmob_device(scrtc->base.dev);
203 struct shmob_drm_crtc *scrtc = to_shmob_crtc(crtc);
220 shmob_drm_crtc_start_stop(scrtc, false);
245 shmob_drm_crtc_setup_geometry(scrtc);
252 shmob_drm_crtc_start_stop(scrtc, true);
261 struct shmob_drm_crtc *scrtc = to_shmob_crtc(crtc);
269 shmob_drm_crtc_wait_page_flip(scrtc);
273 shmob_drm_crtc_start_stop(scrtc, false);
309 struct shmob_drm_crtc *scrtc = to_shmob_crtc(crtc);
310 struct drm_device *dev = scrtc->base.dev;
314 if (scrtc->event != NULL) {
324 drm_crtc_vblank_get(&scrtc->base);
326 scrtc->event = event;