drm/amd/display: Add DC_BLS command

[why & how]
In the future, DC will off-load block-level initialization to DMUB.

In preparation, update dmub_cmd.h with the command for better tracking.

Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Ovidiu Bunea <ovidiu.bunea@amd.com>
Signed-off-by: James Lin <pinglei.lin@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Ovidiu Bunea 2026-08-04 16:04:18 -04:00 committed by Alex Deucher
parent 0dd25075be
commit 3b381dc0ed

View File

@ -1169,6 +1169,16 @@ enum dmub_ips_comand_type {
DMUB_CMD__IPS_QUERY_RESIDENCY_INFO = 1,
};
/**
* enum dmub_dc_bls_command_type - DC_BLS subcommands.
*/
enum dmub_dc_bls_command_type {
/**
* Placeholder for block-level initialization of the DCHVM
*/
DMUB_CMD__DC_BLS_DCHVM_INIT = 0,
};
/**
* enum dmub_cursor_offload_comand_type - Cursor offload subcommands.
*/
@ -2008,6 +2018,11 @@ enum dmub_cmd_type {
*/
DMUB_CMD__PANEL_POLARITY = 97,
/**
* Command type used for all DC_BLS commands.
*/
DMUB_CMD__DC_BLS = 98,
/**
* Command type use for VBIOS shared commands.
*/
@ -2940,6 +2955,25 @@ struct dmub_rb_cmd_idle_opt_dcn_notify_idle {
struct dmub_dcn_notify_idle_cntl_data cntl_data;
};
/**
* Data passed from driver to FW in a DMUB_CMD__DC_BLS_DCHVM_INIT command.
*/
struct dmub_cmd_dc_bls_dchvm_init_data {
/**
* The value to program to rIOMMU PCTRL register. x86 cannot access this SMN
* register, so the write is performed by DMCUB on the driver's behalf.
*/
uint32_t riommu_pctrl_val; /* r */
};
/**
* Definition of a DMUB_CMD__DC_BLS_DCHVM_INIT command.
*/
struct dmub_rb_cmd_dc_bls_dchvm_init {
struct dmub_cmd_header header;
struct dmub_cmd_dc_bls_dchvm_init_data data;
};
/**
* enum dmub_idle_opt_dc_power_state - DC power states.
*/
@ -7988,6 +8022,8 @@ union dmub_rb_cmd {
struct dmub_rb_cmd_panel_polarity_enable panel_polarity_enable;
struct dmub_rb_cmd_panel_polarity_get_bias panel_polarity_get_bias;
struct dmub_rb_cmd_panel_polarity_reset panel_polarity_reset;
struct dmub_rb_cmd_dc_bls_dchvm_init dc_bls_dchvm_init;
};
/**