Lines Matching refs:exynos_crtc
25 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_dpms() local
29 if (exynos_crtc->dpms == mode) { in exynos_drm_crtc_dpms()
36 if (!wait_event_timeout(exynos_crtc->pending_flip_queue, in exynos_drm_crtc_dpms()
37 (exynos_crtc->event == NULL), HZ/20)) in exynos_drm_crtc_dpms()
38 exynos_crtc->event = NULL; in exynos_drm_crtc_dpms()
42 if (exynos_crtc->ops->dpms) in exynos_drm_crtc_dpms()
43 exynos_crtc->ops->dpms(exynos_crtc, mode); in exynos_drm_crtc_dpms()
45 exynos_crtc->dpms = mode; in exynos_drm_crtc_dpms()
58 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_commit() local
63 if (exynos_crtc->ops->win_commit) in exynos_drm_crtc_commit()
64 exynos_crtc->ops->win_commit(exynos_crtc, exynos_plane->zpos); in exynos_drm_crtc_commit()
66 if (exynos_crtc->ops->commit) in exynos_drm_crtc_commit()
67 exynos_crtc->ops->commit(exynos_crtc); in exynos_drm_crtc_commit()
75 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_mode_fixup() local
77 if (exynos_crtc->ops->mode_fixup) in exynos_drm_crtc_mode_fixup()
78 return exynos_crtc->ops->mode_fixup(exynos_crtc, mode, in exynos_drm_crtc_mode_fixup()
115 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_mode_set_base() local
121 if (exynos_crtc->dpms > DRM_MODE_DPMS_ON) { in exynos_drm_crtc_mode_set_base()
166 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_page_flip() local
172 if (exynos_crtc->dpms > DRM_MODE_DPMS_ON) { in exynos_drm_crtc_page_flip()
181 if (exynos_crtc->event) { in exynos_drm_crtc_page_flip()
186 ret = drm_vblank_get(dev, exynos_crtc->pipe); in exynos_drm_crtc_page_flip()
192 exynos_crtc->event = event; in exynos_drm_crtc_page_flip()
199 event->pipe = exynos_crtc->pipe; in exynos_drm_crtc_page_flip()
210 exynos_crtc->event = NULL; in exynos_drm_crtc_page_flip()
211 drm_vblank_put(dev, exynos_crtc->pipe); in exynos_drm_crtc_page_flip()
225 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_destroy() local
228 private->crtc[exynos_crtc->pipe] = NULL; in exynos_drm_crtc_destroy()
231 kfree(exynos_crtc); in exynos_drm_crtc_destroy()
247 struct exynos_drm_crtc *exynos_crtc; in exynos_drm_crtc_create() local
252 exynos_crtc = kzalloc(sizeof(*exynos_crtc), GFP_KERNEL); in exynos_drm_crtc_create()
253 if (!exynos_crtc) in exynos_drm_crtc_create()
256 init_waitqueue_head(&exynos_crtc->pending_flip_queue); in exynos_drm_crtc_create()
258 exynos_crtc->dpms = DRM_MODE_DPMS_OFF; in exynos_drm_crtc_create()
259 exynos_crtc->pipe = pipe; in exynos_drm_crtc_create()
260 exynos_crtc->type = type; in exynos_drm_crtc_create()
261 exynos_crtc->ops = ops; in exynos_drm_crtc_create()
262 exynos_crtc->ctx = ctx; in exynos_drm_crtc_create()
264 crtc = &exynos_crtc->base; in exynos_drm_crtc_create()
275 return exynos_crtc; in exynos_drm_crtc_create()
279 kfree(exynos_crtc); in exynos_drm_crtc_create()
286 struct exynos_drm_crtc *exynos_crtc = in exynos_drm_crtc_enable_vblank() local
289 if (exynos_crtc->dpms != DRM_MODE_DPMS_ON) in exynos_drm_crtc_enable_vblank()
292 if (exynos_crtc->ops->enable_vblank) in exynos_drm_crtc_enable_vblank()
293 exynos_crtc->ops->enable_vblank(exynos_crtc); in exynos_drm_crtc_enable_vblank()
301 struct exynos_drm_crtc *exynos_crtc = in exynos_drm_crtc_disable_vblank() local
304 if (exynos_crtc->dpms != DRM_MODE_DPMS_ON) in exynos_drm_crtc_disable_vblank()
307 if (exynos_crtc->ops->disable_vblank) in exynos_drm_crtc_disable_vblank()
308 exynos_crtc->ops->disable_vblank(exynos_crtc); in exynos_drm_crtc_disable_vblank()
315 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(drm_crtc); in exynos_drm_crtc_finish_pageflip() local
319 if (exynos_crtc->event) { in exynos_drm_crtc_finish_pageflip()
321 drm_send_vblank_event(dev, -1, exynos_crtc->event); in exynos_drm_crtc_finish_pageflip()
323 wake_up(&exynos_crtc->pending_flip_queue); in exynos_drm_crtc_finish_pageflip()
327 exynos_crtc->event = NULL; in exynos_drm_crtc_finish_pageflip()
333 struct exynos_drm_crtc *exynos_crtc; in exynos_drm_crtc_complete_scanout() local
342 exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_complete_scanout()
349 if (exynos_crtc->ops->wait_for_vblank) in exynos_drm_crtc_complete_scanout()
350 exynos_crtc->ops->wait_for_vblank(exynos_crtc); in exynos_drm_crtc_complete_scanout()
360 struct exynos_drm_crtc *exynos_crtc; in exynos_drm_crtc_get_pipe_from_type() local
362 exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_get_pipe_from_type()
363 if (exynos_crtc->type == out_type) in exynos_drm_crtc_get_pipe_from_type()
364 return exynos_crtc->pipe; in exynos_drm_crtc_get_pipe_from_type()
372 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_te_handler() local
374 if (exynos_crtc->ops->te_handler) in exynos_drm_crtc_te_handler()
375 exynos_crtc->ops->te_handler(exynos_crtc); in exynos_drm_crtc_te_handler()