Lines Matching full:struct

35 struct pipe_ctx;
36 struct dc_state;
37 struct dc_stream_status;
38 struct dc_writeback_info;
39 struct dchub_init_data;
40 struct dc_static_screen_params;
41 struct resource_pool;
42 struct dc_phy_addr_space_config;
43 struct dc_virtual_addr_space_config;
44 struct dpp;
45 struct dce_hwseq;
46 struct link_resource;
47 struct dc_dmub_cmd;
48 struct pg_block_update;
49 struct drr_params;
51 struct subvp_pipe_control_lock_fast_params {
52 struct dc *dc;
57 struct pipe_control_lock_params {
58 struct dc *dc;
59 struct pipe_ctx *pipe_ctx;
63 struct set_flip_control_gsl_params {
64 struct pipe_ctx *pipe_ctx;
68 struct program_triplebuffer_params {
69 const struct dc *dc;
70 struct pipe_ctx *pipe_ctx;
74 struct update_plane_addr_params {
75 struct dc *dc;
76 struct pipe_ctx *pipe_ctx;
79 struct set_input_transfer_func_params {
80 struct dc *dc;
81 struct pipe_ctx *pipe_ctx;
82 struct dc_plane_state *plane_state;
85 struct program_gamut_remap_params {
86 struct pipe_ctx *pipe_ctx;
89 struct program_manual_trigger_params {
90 struct pipe_ctx *pipe_ctx;
93 struct send_dmcub_cmd_params {
94 struct dc_context *ctx;
99 struct setup_dpp_params {
100 struct pipe_ctx *pipe_ctx;
103 struct program_bias_and_scale_params {
104 struct pipe_ctx *pipe_ctx;
107 struct set_output_transfer_func_params {
108 struct dc *dc;
109 struct pipe_ctx *pipe_ctx;
110 const struct dc_stream_state *stream;
113 struct update_visual_confirm_params {
114 struct dc *dc;
115 struct pipe_ctx *pipe_ctx;
119 struct power_on_mpc_mem_pwr_params {
120 struct mpc *mpc;
125 struct set_output_csc_params {
126 struct mpc *mpc;
132 struct set_ocsc_default_params {
133 struct mpc *mpc;
139 struct subvp_save_surf_addr {
140 struct dc_dmub_srv *dc_dmub_srv;
141 const struct dc_plane_address *addr;
145 struct wait_for_dcc_meta_propagation_params {
146 const struct dc *dc;
147 const struct pipe_ctx *top_pipe_to_program;
150 struct fams2_global_control_lock_fast_params {
151 struct dc *dc;
157 struct update_plane_addr_params update_plane_addr_params;
158 struct subvp_pipe_control_lock_fast_params subvp_pipe_control_lock_fast_params;
159 struct pipe_control_lock_params pipe_control_lock_params;
160 struct set_flip_control_gsl_params set_flip_control_gsl_params;
161 struct program_triplebuffer_params program_triplebuffer_params;
162 struct set_input_transfer_func_params set_input_transfer_func_params;
163 struct program_gamut_remap_params program_gamut_remap_params;
164 struct program_manual_trigger_params program_manual_trigger_params;
165 struct send_dmcub_cmd_params send_dmcub_cmd_params;
166 struct setup_dpp_params setup_dpp_params;
167 struct program_bias_and_scale_params program_bias_and_scale_params;
168 struct set_output_transfer_func_params set_output_transfer_func_params;
169 struct update_visual_confirm_params update_visual_confirm_params;
170 struct power_on_mpc_mem_pwr_params power_on_mpc_mem_pwr_params;
171 struct set_output_csc_params set_output_csc_params;
172 struct set_ocsc_default_params set_ocsc_default_params;
173 struct subvp_save_surf_addr subvp_save_surf_addr;
174 struct wait_for_dcc_meta_propagation_params wait_for_dcc_meta_propagation_params;
175 struct fams2_global_control_lock_fast_params fams2_global_control_lock_fast_params;
200 struct block_sequence {
205 struct hw_sequencer_funcs {
206 void (*hardware_release)(struct dc *dc);
208 void (*edp_power_control)(struct dc_link *link, bool enable);
209 void (*edp_wait_for_hpd_ready)(struct dc_link *link, bool power_up);
210 void (*edp_wait_for_T12)(struct dc_link *link);
213 void (*init_hw)(struct dc *dc);
214 void (*power_down_on_boot)(struct dc *dc);
215 void (*enable_accelerated_mode)(struct dc *dc,
216 struct dc_state *context);
217 enum dc_status (*apply_ctx_to_hw)(struct dc *dc,
218 struct dc_state *context);
219 void (*disable_plane)(struct dc *dc, struct dc_state *state, struct pipe_ctx *pipe_ctx);
220 void (*disable_pixel_data)(struct dc *dc, struct pipe_ctx *pipe_ctx, bool blank);
221 void (*apply_ctx_for_surface)(struct dc *dc,
222 const struct dc_stream_state *stream,
223 int num_planes, struct dc_state *context);
224 void (*program_front_end_for_ctx)(struct dc *dc,
225 struct dc_state *context);
226 void (*wait_for_pending_cleared)(struct dc *dc,
227 struct dc_state *context);
228 void (*post_unlock_program_front_end)(struct dc *dc,
229 struct dc_state *context);
230 void (*update_plane_addr)(const struct dc *dc,
231 struct pipe_ctx *pipe_ctx);
232 void (*update_dchub)(struct dce_hwseq *hws,
233 struct dchub_init_data *dh_data);
234 void (*wait_for_mpcc_disconnect)(struct dc *dc,
235 struct resource_pool *res_pool,
236 struct pipe_ctx *pipe_ctx);
238 struct dc_link *link,
240 void (*program_triplebuffer)(const struct dc *dc,
241 struct pipe_ctx *pipe_ctx, bool enableTripleBuffer);
242 void (*update_pending_status)(struct pipe_ctx *pipe_ctx);
243 void (*update_dsc_pg)(struct dc *dc, struct dc_state *context, bool safe_to_disable);
244 …void (*clear_surface_dcc_and_tiling)(struct pipe_ctx *pipe_ctx, struct dc_plane_state *plane_state…
247 void (*pipe_control_lock)(struct dc *dc,
248 struct pipe_ctx *pipe, bool lock);
249 void (*interdependent_update_lock)(struct dc *dc,
250 struct dc_state *context, bool lock);
251 void (*set_flip_control_gsl)(struct pipe_ctx *pipe_ctx,
253 void (*cursor_lock)(struct dc *dc, struct pipe_ctx *pipe, bool lock);
256 void (*get_position)(struct pipe_ctx **pipe_ctx, int num_pipes,
257 struct crtc_position *position);
258 int (*get_vupdate_offset_from_vsync)(struct pipe_ctx *pipe_ctx);
260 struct dc *dc,
261 struct pipe_ctx *pipe_ctx,
264 void (*enable_per_frame_crtc_position_reset)(struct dc *dc,
265 int group_size, struct pipe_ctx *grouped_pipes[]);
266 void (*enable_timing_synchronization)(struct dc *dc,
267 struct dc_state *state,
269 struct pipe_ctx *grouped_pipes[]);
270 void (*enable_vblanks_synchronization)(struct dc *dc,
272 struct pipe_ctx *grouped_pipes[]);
273 void (*setup_periodic_interrupt)(struct dc *dc,
274 struct pipe_ctx *pipe_ctx);
275 void (*set_drr)(struct pipe_ctx **pipe_ctx, int num_pipes,
276 struct dc_crtc_timing_adjust adjust);
277 void (*set_static_screen_control)(struct pipe_ctx **pipe_ctx,
279 const struct dc_static_screen_params *events);
282 void (*enable_stream)(struct pipe_ctx *pipe_ctx);
283 void (*disable_stream)(struct pipe_ctx *pipe_ctx);
284 void (*blank_stream)(struct pipe_ctx *pipe_ctx);
285 void (*unblank_stream)(struct pipe_ctx *pipe_ctx,
286 struct dc_link_settings *link_settings);
289 void (*prepare_bandwidth)(struct dc *dc, struct dc_state *context);
290 bool (*update_bandwidth)(struct dc *dc, struct dc_state *context);
291 void (*optimize_bandwidth)(struct dc *dc, struct dc_state *context);
294 void (*set_avmute)(struct pipe_ctx *pipe_ctx, bool enable);
296 struct pipe_ctx *pipe_ctx,
299 void (*update_info_frame)(struct pipe_ctx *pipe_ctx);
300 void (*set_dmdata_attributes)(struct pipe_ctx *pipe);
301 void (*program_dmdata_engine)(struct pipe_ctx *pipe_ctx);
302 bool (*dmdata_status_done)(struct pipe_ctx *pipe_ctx);
305 void (*set_cursor_position)(struct pipe_ctx *pipe);
306 void (*set_cursor_attribute)(struct pipe_ctx *pipe);
307 void (*set_cursor_sdr_white_level)(struct pipe_ctx *pipe);
310 void (*program_gamut_remap)(struct pipe_ctx *pipe_ctx);
311 void (*program_output_csc)(struct dc *dc, struct pipe_ctx *pipe_ctx,
314 void (*trigger_3dlut_dma_load)(struct dc *dc, struct pipe_ctx *pipe_ctx);
317 int (*init_sys_ctx)(struct dce_hwseq *hws,
318 struct dc *dc,
319 struct dc_phy_addr_space_config *pa_config);
320 void (*init_vm_ctx)(struct dce_hwseq *hws,
321 struct dc *dc,
322 struct dc_virtual_addr_space_config *va_config,
326 void (*update_writeback)(struct dc *dc,
327 struct dc_writeback_info *wb_info,
328 struct dc_state *context);
329 void (*enable_writeback)(struct dc *dc,
330 struct dc_writeback_info *wb_info,
331 struct dc_state *context);
332 void (*disable_writeback)(struct dc *dc,
336 enum dc_status (*set_clock)(struct dc *dc,
339 void (*get_clock)(struct dc *dc, enum dc_clock_type clock_type,
340 struct dc_clock_config *clock_cfg);
341 void (*optimize_pwr_state)(const struct dc *dc,
342 struct dc_state *context);
343 void (*exit_optimized_pwr_state)(const struct dc *dc,
344 struct dc_state *context);
345 void (*calculate_pix_rate_divider)(struct dc *dc,
346 struct dc_state *context,
347 const struct dc_stream_state *stream);
350 void (*enable_audio_stream)(struct pipe_ctx *pipe_ctx);
351 void (*disable_audio_stream)(struct pipe_ctx *pipe_ctx);
354 void (*setup_stereo)(struct pipe_ctx *pipe_ctx, struct dc *dc);
357 void (*log_hw_state)(struct dc *dc, struct dc_log_buffer_ctx *log_ctx);
358 void (*log_color_state)(struct dc *dc,
359 struct dc_log_buffer_ctx *log_ctx);
360 void (*get_hw_state)(struct dc *dc, char *pBuf,
362 void (*clear_status_bits)(struct dc *dc, unsigned int mask);
364 bool (*set_backlight_level)(struct pipe_ctx *pipe_ctx,
365 struct set_backlight_level_params *params);
367 void (*set_abm_immediate_disable)(struct pipe_ctx *pipe_ctx);
369 void (*set_pipe)(struct pipe_ctx *pipe_ctx);
371 void (*enable_dp_link_output)(struct dc_link *link,
372 const struct link_resource *link_res,
375 const struct dc_link_settings *link_settings);
376 void (*enable_tmds_link_output)(struct dc_link *link,
377 const struct link_resource *link_res,
382 void (*enable_lvds_link_output)(struct dc_link *link,
383 const struct link_resource *link_res,
386 void (*disable_link_output)(struct dc_link *link,
387 const struct link_resource *link_res,
390 void (*get_dcc_en_bits)(struct dc *dc, int *dcc_en_bits);
393 bool (*apply_idle_power_optimizations)(struct dc *dc, bool enable);
395 bool (*does_plane_fit_in_mall)(struct dc *dc,
399 struct dc_cursor_attributes *cursor_attr);
400 void (*commit_subvp_config)(struct dc *dc, struct dc_state *context);
401 void (*enable_phantom_streams)(struct dc *dc, struct dc_state *context);
402 void (*disable_phantom_streams)(struct dc *dc, struct dc_state *context);
403 void (*subvp_pipe_control_lock)(struct dc *dc,
404 struct dc_state *context,
407 struct pipe_ctx *top_pipe_to_program,
411 void (*z10_restore)(const struct dc *dc);
412 void (*z10_save_init)(struct dc *dc);
413 bool (*is_abm_supported)(struct dc *dc,
414 struct dc_state *context, struct dc_stream_state *stream);
416 void (*set_disp_pattern_generator)(const struct dc *dc,
417 struct pipe_ctx *pipe_ctx,
421 const struct tg_color *solid_color,
423 void (*blank_phantom)(struct dc *dc,
424 struct timing_generator *tg,
427 void (*update_visual_confirm_color)(struct dc *dc,
428 struct pipe_ctx *pipe_ctx,
430 void (*update_phantom_vp_position)(struct dc *dc,
431 struct dc_state *context,
432 struct pipe_ctx *phantom_pipe);
433 void (*apply_update_flags_for_phantom)(struct pipe_ctx *phantom_pipe);
435 void (*calc_blocks_to_gate)(struct dc *dc, struct dc_state *context,
436 struct pg_block_update *update_state);
437 void (*calc_blocks_to_ungate)(struct dc *dc, struct dc_state *context,
438 struct pg_block_update *update_state);
439 void (*hw_block_power_up)(struct dc *dc,
440 struct pg_block_update *update_state);
441 void (*hw_block_power_down)(struct dc *dc,
442 struct pg_block_update *update_state);
443 void (*root_clock_control)(struct dc *dc,
444 struct pg_block_update *update_state, bool power_on);
445 bool (*is_pipe_topology_transition_seamless)(struct dc *dc,
446 const struct dc_state *cur_ctx,
447 const struct dc_state *new_ctx);
448 void (*wait_for_dcc_meta_propagation)(const struct dc *dc,
449 const struct pipe_ctx *top_pipe_to_program);
450 void (*fams2_global_control_lock)(struct dc *dc,
451 struct dc_state *context,
453 void (*fams2_update_config)(struct dc *dc,
454 struct dc_state *context,
457 …void (*set_long_vtotal)(struct pipe_ctx **pipe_ctx, int num_pipes, uint32_t v_total_min, uint32_t …
458 void (*program_outstanding_updates)(struct dc *dc,
459 struct dc_state *context);
460 void (*setup_hpo_hw_control)(const struct dce_hwseq *hws, bool enable);
461 void (*wait_for_all_pending_updates)(const struct pipe_ctx *pipe_ctx);
462 void (*detect_pipe_changes)(struct dc_state *old_state,
463 struct dc_state *new_state,
464 struct pipe_ctx *old_pipe,
465 struct pipe_ctx *new_pipe);
466 void (*enable_plane)(struct dc *dc,
467 struct pipe_ctx *pipe_ctx,
468 struct dc_state *context);
469 void (*update_dchubp_dpp)(struct dc *dc,
470 struct pipe_ctx *pipe_ctx,
471 struct dc_state *context);
472 void (*post_unlock_reset_opp)(struct dc *dc,
473 struct pipe_ctx *opp_head);
477 const struct dc *dc,
479 struct tg_color *black_color);
482 struct timing_generator *tg);
489 struct pipe_ctx *pipe_ctx,
490 struct tg_color *color);
492 const struct pipe_ctx *pipe_ctx,
493 struct tg_color *color);
496 struct pipe_ctx *pipe_ctx,
497 struct tg_color *color);
499 struct pipe_ctx *pipe_ctx,
500 struct tg_color *color);
502 struct pipe_ctx *pipe_ctx,
503 struct tg_color *color);
505 struct pipe_ctx *pipe_ctx,
506 struct tg_color *color);
508 struct dc *dc,
509 struct dc_state *context,
510 struct pipe_ctx *pipe_ctx,
511 struct tg_color *color);
514 struct pipe_ctx *pipe_ctx,
515 struct tg_color *color);
518 struct pipe_ctx *pipe_ctx,
519 struct tg_color *color);
522 struct dc *dc,
523 struct pipe_ctx *pipe_ctx,
524 struct tg_color *color);
527 struct dc *dc,
528 struct dc_state *context,
529 struct pipe_ctx *pipe_ctx);
532 struct pipe_ctx *pipe_ctx,
533 struct dc_stream_state *stream,
534 struct drr_params *params);
536 void hwss_execute_sequence(struct dc *dc,
537 struct block_sequence block_sequence[],
540 void hwss_build_fast_sequence(struct dc *dc,
541 struct dc_dmub_cmd *dc_dmub_cmd,
543 struct block_sequence block_sequence[],
545 struct pipe_ctx *pipe_ctx,
546 struct dc_stream_status *stream_status,
547 struct dc_state *context);
549 void hwss_wait_for_all_blank_complete(struct dc *dc,
550 struct dc_state *context);
552 void hwss_wait_for_odm_update_pending_complete(struct dc *dc,
553 struct dc_state *context);
555 void hwss_wait_for_no_pipes_pending(struct dc *dc,
556 struct dc_state *context);
558 void hwss_wait_for_outstanding_hw_updates(struct dc *dc,
559 struct dc_state *dc_context);
561 void hwss_process_outstanding_hw_updates(struct dc *dc,
562 struct dc_state *dc_context);