Commit f51d22b0 authored by Qingqing Zhuo's avatar Qingqing Zhuo Committed by Alex Deucher

drm/amd/display: update topology_update_input_v3 struct

[Why]
DIO parameters were missing in topology_update_intput_v3 struct.

[How]
Add DIO parameters in v3 struct and update in functions perspectively.
Reviewed-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Acked-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarQingqing Zhuo <qingqing.zhuo@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a141d208
...@@ -476,6 +476,7 @@ static void update_config(void *handle, struct cp_psp_stream_config *config) ...@@ -476,6 +476,7 @@ static void update_config(void *handle, struct cp_psp_stream_config *config)
link->ddc_line = aconnector->dc_link->ddc_hw_inst + 1; link->ddc_line = aconnector->dc_link->ddc_hw_inst + 1;
display->stream_enc_idx = config->stream_enc_idx; display->stream_enc_idx = config->stream_enc_idx;
link->link_enc_idx = config->link_enc_idx; link->link_enc_idx = config->link_enc_idx;
link->dio_output_id = config->dio_output_idx;
link->phy_idx = config->phy_idx; link->phy_idx = config->phy_idx;
if (sink) if (sink)
link_is_hdcp14 = dc_link_is_hdcp14(aconnector->dc_link, sink->sink_signal); link_is_hdcp14 = dc_link_is_hdcp14(aconnector->dc_link, sink->sink_signal);
...@@ -483,6 +484,7 @@ static void update_config(void *handle, struct cp_psp_stream_config *config) ...@@ -483,6 +484,7 @@ static void update_config(void *handle, struct cp_psp_stream_config *config)
link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw; link->dp.rev = aconnector->dc_link->dpcd_caps.dpcd_rev.raw;
link->dp.assr_enabled = config->assr_enabled; link->dp.assr_enabled = config->assr_enabled;
link->dp.mst_enabled = config->mst_enabled; link->dp.mst_enabled = config->mst_enabled;
link->dp.usb4_enabled = config->usb4_enabled;
display->adjust.disable = MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION; display->adjust.disable = MOD_HDCP_DISPLAY_DISABLE_AUTHENTICATION;
link->adjust.auth_delay = 3; link->adjust.auth_delay = 3;
link->adjust.hdcp1.disable = 0; link->adjust.hdcp1.disable = 0;
......
...@@ -202,6 +202,10 @@ static enum mod_hdcp_status add_display_to_topology_v3( ...@@ -202,6 +202,10 @@ static enum mod_hdcp_status add_display_to_topology_v3(
dtm_cmd->dtm_status = TA_DTM_STATUS__GENERIC_FAILURE; dtm_cmd->dtm_status = TA_DTM_STATUS__GENERIC_FAILURE;
dtm_cmd->dtm_in_message.topology_update_v3.phy_id = link->phy_idx; dtm_cmd->dtm_in_message.topology_update_v3.phy_id = link->phy_idx;
dtm_cmd->dtm_in_message.topology_update_v3.link_hdcp_cap = link->hdcp_supported_informational; dtm_cmd->dtm_in_message.topology_update_v3.link_hdcp_cap = link->hdcp_supported_informational;
dtm_cmd->dtm_in_message.topology_update_v3.dio_output_type = link->dp.usb4_enabled ?
TA_DTM_DIO_OUTPUT_TYPE__DPIA :
TA_DTM_DIO_OUTPUT_TYPE__DIRECT;
dtm_cmd->dtm_in_message.topology_update_v3.dio_output_id = link->dio_output_id;
psp_dtm_invoke(psp, dtm_cmd->cmd_id); psp_dtm_invoke(psp, dtm_cmd->cmd_id);
mutex_unlock(&psp->dtm_context.mutex); mutex_unlock(&psp->dtm_context.mutex);
......
...@@ -94,6 +94,15 @@ enum ta_dtm_encoder_type { ...@@ -94,6 +94,15 @@ enum ta_dtm_encoder_type {
TA_DTM_ENCODER_TYPE__DIG = 0x10 TA_DTM_ENCODER_TYPE__DIG = 0x10
}; };
/* @enum ta_dtm_dio_output_type
* This enum defines software value for dio_output_type
*/
typedef enum {
TA_DTM_DIO_OUTPUT_TYPE__INVALID,
TA_DTM_DIO_OUTPUT_TYPE__DIRECT,
TA_DTM_DIO_OUTPUT_TYPE__DPIA
} ta_dtm_dio_output_type;
struct ta_dtm_topology_update_input_v3 { struct ta_dtm_topology_update_input_v3 {
/* display handle is unique across the driver and is used to identify a display */ /* display handle is unique across the driver and is used to identify a display */
/* for all security interfaces which reference displays such as HDCP */ /* for all security interfaces which reference displays such as HDCP */
...@@ -111,6 +120,8 @@ struct ta_dtm_topology_update_input_v3 { ...@@ -111,6 +120,8 @@ struct ta_dtm_topology_update_input_v3 {
enum ta_dtm_encoder_type encoder_type; enum ta_dtm_encoder_type encoder_type;
uint32_t phy_id; uint32_t phy_id;
uint32_t link_hdcp_cap; uint32_t link_hdcp_cap;
ta_dtm_dio_output_type dio_output_type;
uint32_t dio_output_id;
}; };
struct ta_dtm_topology_assr_enable { struct ta_dtm_topology_assr_enable {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment