Lines Matching refs:crtc

16 	struct drm_crtc *crtc = &output->crtc;
29 ret = drm_crtc_handle_vblank(crtc);
37 u64 frame = drm_crtc_accurate_vblank_count(crtc);
62 static int vkms_enable_vblank(struct drm_crtc *crtc)
64 struct drm_device *dev = crtc->dev;
65 unsigned int pipe = drm_crtc_index(crtc);
67 struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
69 drm_calc_timestamping_constants(crtc, &crtc->mode);
79 static void vkms_disable_vblank(struct drm_crtc *crtc)
81 struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
86 static bool vkms_get_vblank_timestamp(struct drm_crtc *crtc,
90 struct drm_device *dev = crtc->dev;
91 unsigned int pipe = crtc->index;
119 vkms_atomic_crtc_duplicate_state(struct drm_crtc *crtc)
123 if (WARN_ON(!crtc->state))
130 __drm_atomic_helper_crtc_duplicate_state(crtc, &vkms_state->base);
137 static void vkms_atomic_crtc_destroy_state(struct drm_crtc *crtc,
149 static void vkms_atomic_crtc_reset(struct drm_crtc *crtc)
154 if (crtc->state)
155 vkms_atomic_crtc_destroy_state(crtc, crtc->state);
157 __drm_atomic_helper_crtc_reset(crtc, &vkms_state->base);
176 static int vkms_crtc_atomic_check(struct drm_crtc *crtc,
180 crtc);
189 ret = drm_atomic_add_affected_planes(crtc_state->state, crtc);
193 drm_for_each_plane_mask(plane, crtc->dev, crtc_state->plane_mask) {
210 drm_for_each_plane_mask(plane, crtc->dev, crtc_state->plane_mask) {
224 static void vkms_crtc_atomic_enable(struct drm_crtc *crtc,
227 drm_crtc_vblank_on(crtc);
230 static void vkms_crtc_atomic_disable(struct drm_crtc *crtc,
233 drm_crtc_vblank_off(crtc);
236 static void vkms_crtc_atomic_begin(struct drm_crtc *crtc,
239 struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
247 static void vkms_crtc_atomic_flush(struct drm_crtc *crtc,
250 struct vkms_output *vkms_output = drm_crtc_to_vkms_output(crtc);
252 if (crtc->state->event) {
253 spin_lock(&crtc->dev->event_lock);
255 if (drm_crtc_vblank_get(crtc) != 0)
256 drm_crtc_send_vblank_event(crtc, crtc->state->event);
258 drm_crtc_arm_vblank_event(crtc, crtc->state->event);
260 spin_unlock(&crtc->dev->event_lock);
262 crtc->state->event = NULL;
265 vkms_output->composer_state = to_vkms_crtc_state(crtc->state);
278 int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
281 struct vkms_output *vkms_out = drm_crtc_to_vkms_output(crtc);
284 ret = drmm_crtc_init_with_planes(dev, crtc, primary, cursor,
291 drm_crtc_helper_add(crtc, &vkms_crtc_helper_funcs);
293 drm_mode_crtc_set_gamma_size(crtc, VKMS_LUT_SIZE);
294 drm_crtc_enable_color_mgmt(crtc, 0, false, VKMS_LUT_SIZE);