Lines Matching defs:crtc
50 static int meson_crtc_enable_vblank(struct drm_crtc *crtc)
52 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
61 static void meson_crtc_disable_vblank(struct drm_crtc *crtc)
63 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
84 static void meson_g12a_crtc_atomic_enable(struct drm_crtc *crtc,
87 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
88 struct drm_crtc_state *crtc_state = crtc->state;
117 drm_crtc_vblank_on(crtc);
120 static void meson_crtc_atomic_enable(struct drm_crtc *crtc,
123 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
124 struct drm_crtc_state *crtc_state = crtc->state;
145 drm_crtc_vblank_on(crtc);
148 static void meson_g12a_crtc_atomic_disable(struct drm_crtc *crtc,
151 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
156 drm_crtc_vblank_off(crtc);
164 if (crtc->state->event && !crtc->state->active) {
165 spin_lock_irq(&crtc->dev->event_lock);
166 drm_crtc_send_vblank_event(crtc, crtc->state->event);
167 spin_unlock_irq(&crtc->dev->event_lock);
169 crtc->state->event = NULL;
173 static void meson_crtc_atomic_disable(struct drm_crtc *crtc,
176 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
181 drm_crtc_vblank_off(crtc);
194 if (crtc->state->event && !crtc->state->active) {
195 spin_lock_irq(&crtc->dev->event_lock);
196 drm_crtc_send_vblank_event(crtc, crtc->state->event);
197 spin_unlock_irq(&crtc->dev->event_lock);
199 crtc->state->event = NULL;
203 static void meson_crtc_atomic_begin(struct drm_crtc *crtc,
206 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
209 if (crtc->state->event) {
210 WARN_ON(drm_crtc_vblank_get(crtc) != 0);
212 spin_lock_irqsave(&crtc->dev->event_lock, flags);
213 meson_crtc->event = crtc->state->event;
214 spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
215 crtc->state->event = NULL;
219 static void meson_crtc_atomic_flush(struct drm_crtc *crtc,
222 struct meson_crtc *meson_crtc = to_meson_crtc(crtc);
315 struct meson_crtc *meson_crtc = to_meson_crtc(priv->crtc);
663 drm_crtc_handle_vblank(priv->crtc);
667 drm_crtc_send_vblank_event(priv->crtc, meson_crtc->event);
668 drm_crtc_vblank_put(priv->crtc);
677 struct drm_crtc *crtc;
686 crtc = &meson_crtc->base;
687 ret = drm_crtc_init_with_planes(priv->drm, crtc,
703 drm_crtc_helper_add(crtc, &meson_g12a_crtc_helper_funcs);
713 drm_crtc_helper_add(crtc, &meson_crtc_helper_funcs);
716 priv->crtc = crtc;