Lines Matching full: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
54 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_atomic_check()
65 static void exynos_crtc_atomic_begin(struct drm_crtc *crtc, in exynos_crtc_atomic_begin() argument
68 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_atomic_begin()
74 static void exynos_crtc_atomic_flush(struct drm_crtc *crtc, in exynos_crtc_atomic_flush() argument
77 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_atomic_flush()
83 static enum drm_mode_status exynos_crtc_mode_valid(struct drm_crtc *crtc, in exynos_crtc_mode_valid() argument
86 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_mode_valid()
94 static bool exynos_crtc_mode_fixup(struct drm_crtc *crtc, in exynos_crtc_mode_fixup() argument
98 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_crtc_mode_fixup()
120 struct drm_crtc *crtc = &exynos_crtc->base; in exynos_crtc_handle_event() local
121 struct drm_pending_vblank_event *event = crtc->state->event; in exynos_crtc_handle_event()
126 crtc->state->event = NULL; in exynos_crtc_handle_event()
128 WARN_ON(drm_crtc_vblank_get(crtc) != 0); in exynos_crtc_handle_event()
130 spin_lock_irqsave(&crtc->dev->event_lock, flags); in exynos_crtc_handle_event()
131 drm_crtc_arm_vblank_event(crtc, event); in exynos_crtc_handle_event()
132 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); in exynos_crtc_handle_event()
135 static void exynos_drm_crtc_destroy(struct drm_crtc *crtc) in exynos_drm_crtc_destroy() argument
137 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_destroy()
139 drm_crtc_cleanup(crtc); in exynos_drm_crtc_destroy()
143 static int exynos_drm_crtc_enable_vblank(struct drm_crtc *crtc) in exynos_drm_crtc_enable_vblank() argument
145 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_enable_vblank()
153 static void exynos_drm_crtc_disable_vblank(struct drm_crtc *crtc) in exynos_drm_crtc_disable_vblank() argument
155 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_disable_vblank()
179 struct drm_crtc *crtc; in exynos_drm_crtc_create() local
190 crtc = &exynos_crtc->base; in exynos_drm_crtc_create()
192 ret = drm_crtc_init_with_planes(drm_dev, crtc, plane, NULL, in exynos_drm_crtc_create()
197 drm_crtc_helper_add(crtc, &exynos_crtc_helper_funcs); in exynos_drm_crtc_create()
210 struct drm_crtc *crtc; in exynos_drm_crtc_get_by_type() local
212 drm_for_each_crtc(crtc, drm_dev) in exynos_drm_crtc_get_by_type()
213 if (to_exynos_crtc(crtc)->type == out_type) in exynos_drm_crtc_get_by_type()
214 return to_exynos_crtc(crtc); in exynos_drm_crtc_get_by_type()
222 struct exynos_drm_crtc *crtc = exynos_drm_crtc_get_by_type(encoder->dev, in exynos_drm_set_possible_crtcs() local
225 if (IS_ERR(crtc)) in exynos_drm_set_possible_crtcs()
226 return PTR_ERR(crtc); in exynos_drm_set_possible_crtcs()
228 encoder->possible_crtcs = drm_crtc_mask(&crtc->base); in exynos_drm_set_possible_crtcs()
233 void exynos_drm_crtc_te_handler(struct drm_crtc *crtc) in exynos_drm_crtc_te_handler() argument
235 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_te_handler()