Lines Matching refs:dmub

98 /* enum dmub_asic - dmub asic identifier */
119 /* enum dmub_window_id - dmub window identifier */
133 /* enum dmub_notification_type - dmub outbox notification identifier */
170 * struct dmub_region - dmub hw memory region
180 * struct dmub_window - dmub hw cache window
190 * struct dmub_fb - defines a dmub framebuffer memory region
202 * struct dmub_srv_region_params - params used for calculating dmub regions
218 * struct dmub_srv_region_info - output region info from the dmub service
220 * @num_regions: number of regions used by the dmub service
241 * @region_info: region info calculated by dmub service
257 * struct dmub_srv_fb_info - output fb info from the dmub service
258 * @num_fbs: number of required dmub framebuffers
261 * Output from the dmub service helper that can be used by the
262 * driver to prepare dmub_fb that can be passed into the dmub
267 * by the dmub service.
275 * struct dmub_srv_hw_params - params for dmub hardware initialization
350 * struct dmub_srv_hw_funcs - hardware sequencer funcs for dmub
355 void (*init)(struct dmub_srv *dmub);
357 void (*reset)(struct dmub_srv *dmub);
359 void (*reset_release)(struct dmub_srv *dmub);
361 void (*backdoor_load)(struct dmub_srv *dmub,
365 void (*backdoor_load_zfb_mode)(struct dmub_srv *dmub,
368 void (*setup_windows)(struct dmub_srv *dmub,
376 void (*setup_mailbox)(struct dmub_srv *dmub,
379 uint32_t (*get_inbox1_wptr)(struct dmub_srv *dmub);
381 uint32_t (*get_inbox1_rptr)(struct dmub_srv *dmub);
383 void (*set_inbox1_wptr)(struct dmub_srv *dmub, uint32_t wptr_offset);
385 void (*setup_out_mailbox)(struct dmub_srv *dmub,
388 uint32_t (*get_outbox1_wptr)(struct dmub_srv *dmub);
390 void (*set_outbox1_rptr)(struct dmub_srv *dmub, uint32_t rptr_offset);
392 void (*setup_outbox0)(struct dmub_srv *dmub,
395 uint32_t (*get_outbox0_wptr)(struct dmub_srv *dmub);
397 void (*set_outbox0_rptr)(struct dmub_srv *dmub, uint32_t rptr_offset);
399 uint32_t (*emul_get_inbox1_rptr)(struct dmub_srv *dmub);
401 void (*emul_set_inbox1_wptr)(struct dmub_srv *dmub, uint32_t wptr_offset);
403 bool (*is_supported)(struct dmub_srv *dmub);
405 bool (*is_psrsu_supported)(struct dmub_srv *dmub);
407 bool (*is_hw_init)(struct dmub_srv *dmub);
408 bool (*is_hw_powered_up)(struct dmub_srv *dmub);
410 void (*enable_dmub_boot_options)(struct dmub_srv *dmub,
413 void (*skip_dmub_panel_power_sequence)(struct dmub_srv *dmub, bool skip);
415 union dmub_fw_boot_status (*get_fw_status)(struct dmub_srv *dmub);
417 union dmub_fw_boot_options (*get_fw_boot_option)(struct dmub_srv *dmub);
419 void (*set_gpint)(struct dmub_srv *dmub,
422 bool (*is_gpint_acked)(struct dmub_srv *dmub,
425 uint32_t (*get_gpint_response)(struct dmub_srv *dmub);
427 uint32_t (*get_gpint_dataout)(struct dmub_srv *dmub);
429 void (*configure_dmub_in_system_memory)(struct dmub_srv *dmub);
430 void (*clear_inbox0_ack_register)(struct dmub_srv *dmub);
431 uint32_t (*read_inbox0_ack_register)(struct dmub_srv *dmub);
432 void (*send_inbox0_cmd)(struct dmub_srv *dmub, union dmub_inbox0_data_register data);
433 uint32_t (*get_current_time)(struct dmub_srv *dmub);
435 void (*get_diagnostic_data)(struct dmub_srv *dmub, struct dmub_diagnostic_data *dmub_oca);
437 bool (*should_detect)(struct dmub_srv *dmub);
438 void (*init_reg_offsets)(struct dmub_srv *dmub, struct dc_context *ctx);
440 void (*subvp_save_surf_addr)(struct dmub_srv *dmub, const struct dc_plane_address *addr, uint8_t subvp_index);
444 * struct dmub_srv_create_params - params for dmub service creation
463 * @asic: dmub asic identifier
467 * @shared_state: dmub shared state between firmware and driver
468 * @fw_state: dmub firmware state pointer
512 * struct dmub_notification - dmub notification data
513 * @type: dmub notification type
515 * @result: USB4 status returned from dmub
546 * @dmub: the dmub service
553 enum dmub_status dmub_srv_create(struct dmub_srv *dmub,
558 * @dmub: the dmub service
560 void dmub_srv_destroy(struct dmub_srv *dmub);
563 * dmub_srv_calc_region_info() - retreives region info from the dmub service
564 * @dmub: the dmub service
566 * @info_out: the output region info from dmub
568 * Calculates the base and top address for all relevant dmub regions
576 dmub_srv_calc_region_info(struct dmub_srv *dmub,
581 * dmub_srv_calc_region_info() - retreives fb info from the dmub service
582 * @dmub: the dmub service
584 * @info_out: the output fb info from dmub
586 * Calculates the base and top address for all relevant dmub regions
593 enum dmub_status dmub_srv_calc_mem_info(struct dmub_srv *dmub,
599 * @dmub: the dmub service
610 enum dmub_status dmub_srv_has_hw_support(struct dmub_srv *dmub,
620 enum dmub_status dmub_srv_is_hw_init(struct dmub_srv *dmub, bool *is_hw_init);
624 * @dmub: the dmub service
635 enum dmub_status dmub_srv_hw_init(struct dmub_srv *dmub,
640 * @dmub: the dmub service
651 enum dmub_status dmub_srv_hw_reset(struct dmub_srv *dmub);
655 * @dmub: the dmub service
663 enum dmub_status dmub_srv_sync_inbox1(struct dmub_srv *dmub);
667 * @dmub: the dmub service
678 enum dmub_status dmub_srv_cmd_queue(struct dmub_srv *dmub,
682 * dmub_srv_cmd_execute() - Executes a queued sequence to the dmub
683 * @dmub: the dmub service
685 * Begins execution of queued commands on the dmub.
691 enum dmub_status dmub_srv_cmd_execute(struct dmub_srv *dmub);
695 * @dmub: the dmub service
706 enum dmub_status dmub_srv_wait_for_hw_pwr_up(struct dmub_srv *dmub,
709 bool dmub_srv_is_hw_pwr_up(struct dmub_srv *dmub);
713 * @dmub: the dmub service
727 enum dmub_status dmub_srv_wait_for_auto_load(struct dmub_srv *dmub,
732 * @dmub: the dmub service
746 enum dmub_status dmub_srv_wait_for_phy_init(struct dmub_srv *dmub,
751 * @dmub: the dmub service
763 enum dmub_status dmub_srv_wait_for_idle(struct dmub_srv *dmub,
768 * @dmub: the dmub service
785 dmub_srv_send_gpint_command(struct dmub_srv *dmub,
791 * @dmub: the dmub service
802 enum dmub_status dmub_srv_get_gpint_response(struct dmub_srv *dmub,
807 * @dmub: the dmub service
818 enum dmub_status dmub_srv_get_gpint_dataout(struct dmub_srv *dmub,
834 * @dmub: the dmub service
841 enum dmub_status dmub_srv_get_fw_boot_status(struct dmub_srv *dmub,
844 enum dmub_status dmub_srv_get_fw_boot_option(struct dmub_srv *dmub,
847 enum dmub_status dmub_srv_cmd_with_reply_data(struct dmub_srv *dmub,
850 enum dmub_status dmub_srv_set_skip_panel_power_sequence(struct dmub_srv *dmub,
853 bool dmub_srv_get_outbox0_msg(struct dmub_srv *dmub, struct dmcub_trace_buf_entry *entry);
855 bool dmub_srv_get_diagnostic_data(struct dmub_srv *dmub, struct dmub_diagnostic_data *diag_data);
857 bool dmub_srv_should_detect(struct dmub_srv *dmub);
861 * @dmub: the dmub service
870 enum dmub_status dmub_srv_send_inbox0_cmd(struct dmub_srv *dmub, union dmub_inbox0_data_register data);
874 * @dmub: the dmub service
884 enum dmub_status dmub_srv_wait_for_inbox0_ack(struct dmub_srv *dmub, uint32_t timeout_us);
888 * @dmub: the dmub service
896 enum dmub_status dmub_srv_clear_inbox0_ack(struct dmub_srv *dmub);
900 * @dmub: The dmub service
911 void dmub_srv_subvp_save_surf_addr(struct dmub_srv *dmub, const struct dc_plane_address *addr, uint8_t subvp_index);
915 * @dmub: The dmub service
923 void dmub_srv_set_power_state(struct dmub_srv *dmub, enum dmub_srv_power_state_type dmub_srv_power_state);