Lines Matching refs:crtc
21 static void exynos_drm_crtc_atomic_enable(struct drm_crtc *crtc, in exynos_drm_crtc_atomic_enable() argument
24 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_atomic_enable()
29 drm_crtc_vblank_on(crtc); in exynos_drm_crtc_atomic_enable()
32 static void exynos_drm_crtc_atomic_disable(struct drm_crtc *crtc, in exynos_drm_crtc_atomic_disable() argument
35 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_atomic_disable()
37 drm_crtc_vblank_off(crtc); in exynos_drm_crtc_atomic_disable()
42 if (crtc->state->event && !crtc->state->active) { in exynos_drm_crtc_atomic_disable()
43 spin_lock_irq(&crtc->dev->event_lock); in exynos_drm_crtc_atomic_disable()
44 drm_crtc_send_vblank_event(crtc, crtc->state->event); in exynos_drm_crtc_atomic_disable()
45 spin_unlock_irq(&crtc->dev->event_lock); in exynos_drm_crtc_atomic_disable()
47 crtc->state->event = NULL; in exynos_drm_crtc_atomic_disable()
51 static int exynos_crtc_atomic_check(struct drm_crtc *crtc, in exynos_crtc_atomic_check() argument
55 crtc); in exynos_crtc_atomic_check()
56 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_atomic_check()
67 static void exynos_crtc_atomic_begin(struct drm_crtc *crtc, in exynos_crtc_atomic_begin() argument
70 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_atomic_begin()
76 static void exynos_crtc_atomic_flush(struct drm_crtc *crtc, in exynos_crtc_atomic_flush() argument
79 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_atomic_flush()
85 static enum drm_mode_status exynos_crtc_mode_valid(struct drm_crtc *crtc, in exynos_crtc_mode_valid() argument
88 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_mode_valid()
96 static bool exynos_crtc_mode_fixup(struct drm_crtc *crtc, in exynos_crtc_mode_fixup() argument
100 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_mode_fixup()
122 struct drm_crtc *crtc = &exynos_crtc->base; in exynos_crtc_handle_event() local
123 struct drm_pending_vblank_event *event = crtc->state->event; in exynos_crtc_handle_event()
128 crtc->state->event = NULL; in exynos_crtc_handle_event()
130 WARN_ON(drm_crtc_vblank_get(crtc) != 0); in exynos_crtc_handle_event()
132 spin_lock_irqsave(&crtc->dev->event_lock, flags); in exynos_crtc_handle_event()
133 drm_crtc_arm_vblank_event(crtc, event); in exynos_crtc_handle_event()
134 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); in exynos_crtc_handle_event()
137 static void exynos_drm_crtc_destroy(struct drm_crtc *crtc) in exynos_drm_crtc_destroy() argument
139 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_destroy()
141 drm_crtc_cleanup(crtc); in exynos_drm_crtc_destroy()
145 static int exynos_drm_crtc_enable_vblank(struct drm_crtc *crtc) in exynos_drm_crtc_enable_vblank() argument
147 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_enable_vblank()
155 static void exynos_drm_crtc_disable_vblank(struct drm_crtc *crtc) in exynos_drm_crtc_disable_vblank() argument
157 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_disable_vblank()
181 struct drm_crtc *crtc; in exynos_drm_crtc_create() local
192 crtc = &exynos_crtc->base; in exynos_drm_crtc_create()
194 ret = drm_crtc_init_with_planes(drm_dev, crtc, plane, NULL, in exynos_drm_crtc_create()
199 drm_crtc_helper_add(crtc, &exynos_crtc_helper_funcs); in exynos_drm_crtc_create()
212 struct drm_crtc *crtc; in exynos_drm_crtc_get_by_type() local
214 drm_for_each_crtc(crtc, drm_dev) in exynos_drm_crtc_get_by_type()
215 if (to_exynos_crtc(crtc)->type == out_type) in exynos_drm_crtc_get_by_type()
216 return to_exynos_crtc(crtc); in exynos_drm_crtc_get_by_type()
224 struct exynos_drm_crtc *crtc = exynos_drm_crtc_get_by_type(encoder->dev, in exynos_drm_set_possible_crtcs() local
227 if (IS_ERR(crtc)) in exynos_drm_set_possible_crtcs()
228 return PTR_ERR(crtc); in exynos_drm_set_possible_crtcs()
230 encoder->possible_crtcs = drm_crtc_mask(&crtc->base); in exynos_drm_set_possible_crtcs()
235 void exynos_drm_crtc_te_handler(struct drm_crtc *crtc) in exynos_drm_crtc_te_handler() argument
237 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_te_handler()