Lines Matching refs:crtc
23 static void exynos_drm_crtc_dpms(struct drm_crtc *crtc, int mode) in exynos_drm_crtc_dpms() argument
25 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_dpms()
27 DRM_DEBUG_KMS("crtc[%d] mode[%d]\n", crtc->base.id, mode); in exynos_drm_crtc_dpms()
39 drm_crtc_vblank_off(crtc); in exynos_drm_crtc_dpms()
48 drm_crtc_vblank_on(crtc); in exynos_drm_crtc_dpms()
51 static void exynos_drm_crtc_prepare(struct drm_crtc *crtc) in exynos_drm_crtc_prepare() argument
56 static void exynos_drm_crtc_commit(struct drm_crtc *crtc) in exynos_drm_crtc_commit() argument
58 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_commit()
59 struct exynos_drm_plane *exynos_plane = to_exynos_plane(crtc->primary); in exynos_drm_crtc_commit()
61 exynos_drm_crtc_dpms(crtc, DRM_MODE_DPMS_ON); in exynos_drm_crtc_commit()
71 exynos_drm_crtc_mode_fixup(struct drm_crtc *crtc, in exynos_drm_crtc_mode_fixup() argument
75 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_mode_fixup()
85 exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, in exynos_drm_crtc_mode_set() argument
89 struct drm_framebuffer *fb = crtc->primary->fb; in exynos_drm_crtc_mode_set()
98 memcpy(&crtc->mode, adjusted_mode, sizeof(*adjusted_mode)); in exynos_drm_crtc_mode_set()
100 ret = exynos_check_plane(crtc->primary, fb); in exynos_drm_crtc_mode_set()
106 exynos_plane_mode_set(crtc->primary, crtc, fb, 0, 0, in exynos_drm_crtc_mode_set()
112 static int exynos_drm_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, in exynos_drm_crtc_mode_set_base() argument
115 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_mode_set_base()
116 struct drm_framebuffer *fb = crtc->primary->fb; in exynos_drm_crtc_mode_set_base()
129 return exynos_update_plane(crtc->primary, crtc, fb, 0, 0, in exynos_drm_crtc_mode_set_base()
133 static void exynos_drm_crtc_disable(struct drm_crtc *crtc) in exynos_drm_crtc_disable() argument
138 exynos_drm_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); in exynos_drm_crtc_disable()
140 drm_for_each_legacy_plane(plane, &crtc->dev->mode_config.plane_list) { in exynos_drm_crtc_disable()
141 if (plane->crtc != crtc) in exynos_drm_crtc_disable()
160 static int exynos_drm_crtc_page_flip(struct drm_crtc *crtc, in exynos_drm_crtc_page_flip() argument
165 struct drm_device *dev = crtc->dev; in exynos_drm_crtc_page_flip()
166 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_page_flip()
167 struct drm_framebuffer *old_fb = crtc->primary->fb; in exynos_drm_crtc_page_flip()
201 crtc->primary->fb = fb; in exynos_drm_crtc_page_flip()
202 crtc_w = fb->width - crtc->x; in exynos_drm_crtc_page_flip()
203 crtc_h = fb->height - crtc->y; in exynos_drm_crtc_page_flip()
204 ret = exynos_update_plane(crtc->primary, crtc, fb, 0, 0, in exynos_drm_crtc_page_flip()
205 crtc_w, crtc_h, crtc->x, crtc->y, in exynos_drm_crtc_page_flip()
208 crtc->primary->fb = old_fb; in exynos_drm_crtc_page_flip()
223 static void exynos_drm_crtc_destroy(struct drm_crtc *crtc) in exynos_drm_crtc_destroy() argument
225 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_destroy()
226 struct exynos_drm_private *private = crtc->dev->dev_private; in exynos_drm_crtc_destroy()
228 private->crtc[exynos_crtc->pipe] = NULL; in exynos_drm_crtc_destroy()
230 drm_crtc_cleanup(crtc); in exynos_drm_crtc_destroy()
249 struct drm_crtc *crtc; in exynos_drm_crtc_create() local
264 crtc = &exynos_crtc->base; in exynos_drm_crtc_create()
266 private->crtc[pipe] = crtc; in exynos_drm_crtc_create()
268 ret = drm_crtc_init_with_planes(drm_dev, crtc, plane, NULL, in exynos_drm_crtc_create()
273 drm_crtc_helper_add(crtc, &exynos_crtc_helper_funcs); in exynos_drm_crtc_create()
287 to_exynos_crtc(private->crtc[pipe]); in exynos_drm_crtc_enable_vblank()
302 to_exynos_crtc(private->crtc[pipe]); in exynos_drm_crtc_disable_vblank()
314 struct drm_crtc *drm_crtc = dev_priv->crtc[pipe]; in exynos_drm_crtc_finish_pageflip()
335 struct drm_crtc *crtc; in exynos_drm_crtc_complete_scanout() local
341 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { in exynos_drm_crtc_complete_scanout()
342 exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_complete_scanout()
357 struct drm_crtc *crtc; in exynos_drm_crtc_get_pipe_from_type() local
359 list_for_each_entry(crtc, &drm_dev->mode_config.crtc_list, head) { in exynos_drm_crtc_get_pipe_from_type()
362 exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_get_pipe_from_type()
370 void exynos_drm_crtc_te_handler(struct drm_crtc *crtc) in exynos_drm_crtc_te_handler() argument
372 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_te_handler()