Lines Matching refs:crtc
17 struct drm_crtc *crtc = &output->crtc;
30 ret = drm_crtc_handle_vblank(crtc);
38 u64 frame = drm_crtc_accurate_vblank_count(crtc);
63 static int vkms_enable_vblank(struct drm_crtc *crtc)
65 struct drm_vblank_crtc *vblank = drm_crtc_vblank_crtc(crtc);
66 struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
76 static void vkms_disable_vblank(struct drm_crtc *crtc)
78 struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
83 static bool vkms_get_vblank_timestamp(struct drm_crtc *crtc,
87 struct vkms_output *output = drm_crtc_to_vkms_output(crtc);
88 struct drm_vblank_crtc *vblank = drm_crtc_vblank_crtc(crtc);
113 vkms_atomic_crtc_duplicate_state(struct drm_crtc *crtc)
117 if (WARN_ON(!crtc->state))
124 __drm_atomic_helper_crtc_duplicate_state(crtc, &vkms_state->base);
131 static void vkms_atomic_crtc_destroy_state(struct drm_crtc *crtc,
143 static void vkms_atomic_crtc_reset(struct drm_crtc *crtc)
148 if (crtc->state)
149 vkms_atomic_crtc_destroy_state(crtc, crtc->state);
151 __drm_atomic_helper_crtc_reset(crtc, &vkms_state->base);
170 static int vkms_crtc_atomic_check(struct drm_crtc *crtc,
174 crtc);
183 ret = drm_atomic_add_affected_planes(crtc_state->state, crtc);
187 drm_for_each_plane_mask(plane, crtc->dev, crtc_state->plane_mask) {
203 drm_for_each_plane_mask(plane, crtc->dev, crtc_state->plane_mask) {
216 static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
219 drm_crtc_vblank_on(crtc);
222 static void vkms_crtc_atomic_disable(struct drm_crtc *crtc,
225 drm_crtc_vblank_off(crtc);
228 static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
232 struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
240 static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
244 struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
246 if (crtc->state->event) {
247 spin_lock(&crtc->dev->event_lock);
249 if (drm_crtc_vblank_get(crtc) != 0)
250 drm_crtc_send_vblank_event(crtc, crtc->state->event);
252 drm_crtc_arm_vblank_event(crtc, crtc->state->event);
254 spin_unlock(&crtc->dev->event_lock);
256 crtc->state->event = NULL;
259 vkms_output->composer_state = to_vkms_crtc_state(crtc->state);
276 struct drm_crtc *crtc;
279 vkms_out = drmm_crtc_alloc_with_planes(dev, struct vkms_output, crtc,
287 crtc = &vkms_out->crtc;
289 drm_crtc_helper_add(crtc, &vkms_crtc_helper_funcs);
291 ret = drm_mode_crtc_set_gamma_size(crtc, VKMS_LUT_SIZE);
297 drm_crtc_enable_color_mgmt(crtc, 0, false, VKMS_LUT_SIZE);