Lines Matching refs:crtc_state
149 static void apply_lut(const struct vkms_crtc_state *crtc_state, struct line_buffer *output_buffer) in apply_lut() argument
151 if (!crtc_state->gamma_lut.base) in apply_lut()
154 if (!crtc_state->gamma_lut.lut_length) in apply_lut()
160 pixel->r = apply_lut_to_channel_value(&crtc_state->gamma_lut, pixel->r, LUT_RED); in apply_lut()
161 pixel->g = apply_lut_to_channel_value(&crtc_state->gamma_lut, pixel->g, LUT_GREEN); in apply_lut()
162 pixel->b = apply_lut_to_channel_value(&crtc_state->gamma_lut, pixel->b, LUT_BLUE); in apply_lut()
180 struct vkms_crtc_state *crtc_state, in blend() argument
184 struct vkms_plane_state **plane = crtc_state->active_planes; in blend()
185 u32 n_active_planes = crtc_state->num_active_planes; in blend()
190 size_t crtc_y_limit = crtc_state->base.crtc->mode.vdisplay; in blend()
207 apply_lut(crtc_state, output_buffer); in blend()
216 static int check_format_funcs(struct vkms_crtc_state *crtc_state, in check_format_funcs() argument
219 struct vkms_plane_state **planes = crtc_state->active_planes; in check_format_funcs()
220 u32 n_active_planes = crtc_state->num_active_planes; in check_format_funcs()
232 static int check_iosys_map(struct vkms_crtc_state *crtc_state) in check_iosys_map() argument
234 struct vkms_plane_state **plane_state = crtc_state->active_planes; in check_iosys_map()
235 u32 n_active_planes = crtc_state->num_active_planes; in check_iosys_map()
245 struct vkms_crtc_state *crtc_state, in compose_active_planes() argument
260 if (WARN_ON(check_iosys_map(crtc_state))) in compose_active_planes()
263 if (WARN_ON(check_format_funcs(crtc_state, active_wb))) in compose_active_planes()
266 line_width = crtc_state->base.crtc->mode.hdisplay; in compose_active_planes()
283 blend(active_wb, crtc_state, crc32, &stage_buffer, in compose_active_planes()
304 struct vkms_crtc_state *crtc_state = container_of(work, in vkms_composer_worker() local
307 struct drm_crtc *crtc = crtc_state->base.crtc; in vkms_composer_worker()
308 struct vkms_writeback_job *active_wb = crtc_state->active_writeback; in vkms_composer_worker()
316 frame_start = crtc_state->frame_start; in vkms_composer_worker()
317 frame_end = crtc_state->frame_end; in vkms_composer_worker()
318 crc_pending = crtc_state->crc_pending; in vkms_composer_worker()
319 wb_pending = crtc_state->wb_pending; in vkms_composer_worker()
320 crtc_state->frame_start = 0; in vkms_composer_worker()
321 crtc_state->frame_end = 0; in vkms_composer_worker()
322 crtc_state->crc_pending = false; in vkms_composer_worker()
328 crtc_state->gamma_lut.base = (struct drm_color_lut *)crtc->state->gamma_lut->data; in vkms_composer_worker()
329 crtc_state->gamma_lut.lut_length = in vkms_composer_worker()
331 max_lut_index_fp = drm_int2fixp(crtc_state->gamma_lut.lut_length - 1); in vkms_composer_worker()
332 crtc_state->gamma_lut.channel_value2index_ratio = drm_fixp_div(max_lut_index_fp, in vkms_composer_worker()
336 crtc_state->gamma_lut.base = NULL; in vkms_composer_worker()
349 ret = compose_active_planes(active_wb, crtc_state, &crc32); in vkms_composer_worker()
351 ret = compose_active_planes(NULL, crtc_state, &crc32); in vkms_composer_worker()
359 crtc_state->wb_pending = false; in vkms_composer_worker()