Lines Matching full:crtc
11 struct drm_crtc *crtc = &output->crtc; in vkms_vblank_simulate() local
15 ret = drm_crtc_handle_vblank(crtc); in vkms_vblank_simulate()
25 static int vkms_enable_vblank(struct drm_crtc *crtc) in vkms_enable_vblank() argument
27 struct drm_device *dev = crtc->dev; in vkms_enable_vblank()
28 unsigned int pipe = drm_crtc_index(crtc); in vkms_enable_vblank()
30 struct vkms_output *out = drm_crtc_to_vkms_output(crtc); in vkms_enable_vblank()
32 drm_calc_timestamping_constants(crtc, &crtc->mode); in vkms_enable_vblank()
42 static void vkms_disable_vblank(struct drm_crtc *crtc) in vkms_disable_vblank() argument
44 struct vkms_output *out = drm_crtc_to_vkms_output(crtc); in vkms_disable_vblank()
75 static void vkms_crtc_atomic_enable(struct drm_crtc *crtc, in vkms_crtc_atomic_enable() argument
78 drm_crtc_vblank_on(crtc); in vkms_crtc_atomic_enable()
81 static void vkms_crtc_atomic_disable(struct drm_crtc *crtc, in vkms_crtc_atomic_disable() argument
84 drm_crtc_vblank_off(crtc); in vkms_crtc_atomic_disable()
87 static void vkms_crtc_atomic_flush(struct drm_crtc *crtc, in vkms_crtc_atomic_flush() argument
92 if (crtc->state->event) { in vkms_crtc_atomic_flush()
93 spin_lock_irqsave(&crtc->dev->event_lock, flags); in vkms_crtc_atomic_flush()
95 if (drm_crtc_vblank_get(crtc) != 0) in vkms_crtc_atomic_flush()
96 drm_crtc_send_vblank_event(crtc, crtc->state->event); in vkms_crtc_atomic_flush()
98 drm_crtc_arm_vblank_event(crtc, crtc->state->event); in vkms_crtc_atomic_flush()
100 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); in vkms_crtc_atomic_flush()
102 crtc->state->event = NULL; in vkms_crtc_atomic_flush()
112 int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc, in vkms_crtc_init() argument
117 ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor, in vkms_crtc_init()
120 DRM_ERROR("Failed to init CRTC\n"); in vkms_crtc_init()
124 drm_crtc_helper_add(crtc, &vkms_crtc_helper_funcs); in vkms_crtc_init()