Lines Matching refs:scrtc

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