Commit a154bf6e authored by Fangzhi Zuo's avatar Fangzhi Zuo Committed by Alex Deucher

drm/amd/display: Add Missing HPO Stream Encoder Function Hook

[Why]
configure_dp_hpo_throttled_vcp_size() was missing promotion before, but it was covered by
not calling the missing function hook in the old interface hpo_dp_link_encoder->funcs.

Recent refactor replaces with new caller link_hwss->set_throttled_vcp_size
which needs that hook, and that causes null ptr hang.
Signed-off-by: default avatarFangzhi Zuo <Jerry.Zuo@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6225bb3a
...@@ -710,6 +710,16 @@ static void dcn31_hpo_dp_stream_enc_read_state( ...@@ -710,6 +710,16 @@ static void dcn31_hpo_dp_stream_enc_read_state(
} }
} }
static void dcn31_set_hblank_min_symbol_width(
struct hpo_dp_stream_encoder *enc,
uint16_t width)
{
struct dcn31_hpo_dp_stream_encoder *enc3 = DCN3_1_HPO_DP_STREAM_ENC_FROM_HPO_STREAM_ENC(enc);
REG_SET(DP_SYM32_ENC_HBLANK_CONTROL, 0,
HBLANK_MINIMUM_SYMBOL_WIDTH, width);
}
static const struct hpo_dp_stream_encoder_funcs dcn30_str_enc_funcs = { static const struct hpo_dp_stream_encoder_funcs dcn30_str_enc_funcs = {
.enable_stream = dcn31_hpo_dp_stream_enc_enable_stream, .enable_stream = dcn31_hpo_dp_stream_enc_enable_stream,
.dp_unblank = dcn31_hpo_dp_stream_enc_dp_unblank, .dp_unblank = dcn31_hpo_dp_stream_enc_dp_unblank,
...@@ -725,6 +735,7 @@ static const struct hpo_dp_stream_encoder_funcs dcn30_str_enc_funcs = { ...@@ -725,6 +735,7 @@ static const struct hpo_dp_stream_encoder_funcs dcn30_str_enc_funcs = {
.dp_audio_enable = dcn31_hpo_dp_stream_enc_audio_enable, .dp_audio_enable = dcn31_hpo_dp_stream_enc_audio_enable,
.dp_audio_disable = dcn31_hpo_dp_stream_enc_audio_disable, .dp_audio_disable = dcn31_hpo_dp_stream_enc_audio_disable,
.read_state = dcn31_hpo_dp_stream_enc_read_state, .read_state = dcn31_hpo_dp_stream_enc_read_state,
.set_hblank_min_symbol_width = dcn31_set_hblank_min_symbol_width,
}; };
void dcn31_hpo_dp_stream_encoder_construct( void dcn31_hpo_dp_stream_encoder_construct(
......
...@@ -80,7 +80,8 @@ ...@@ -80,7 +80,8 @@
SRI(DP_SYM32_ENC_SDP_GSP_CONTROL11, DP_SYM32_ENC, id),\ SRI(DP_SYM32_ENC_SDP_GSP_CONTROL11, DP_SYM32_ENC, id),\
SRI(DP_SYM32_ENC_SDP_METADATA_PACKET_CONTROL, DP_SYM32_ENC, id),\ SRI(DP_SYM32_ENC_SDP_METADATA_PACKET_CONTROL, DP_SYM32_ENC, id),\
SRI(DP_SYM32_ENC_SDP_AUDIO_CONTROL0, DP_SYM32_ENC, id),\ SRI(DP_SYM32_ENC_SDP_AUDIO_CONTROL0, DP_SYM32_ENC, id),\
SRI(DP_SYM32_ENC_VID_CRC_CONTROL, DP_SYM32_ENC, id) SRI(DP_SYM32_ENC_VID_CRC_CONTROL, DP_SYM32_ENC, id), \
SRI(DP_SYM32_ENC_HBLANK_CONTROL, DP_SYM32_ENC, id)
#define DCN3_1_HPO_DP_STREAM_ENC_REGS \ #define DCN3_1_HPO_DP_STREAM_ENC_REGS \
uint32_t DP_STREAM_MAPPER_CONTROL0;\ uint32_t DP_STREAM_MAPPER_CONTROL0;\
...@@ -116,7 +117,8 @@ ...@@ -116,7 +117,8 @@
uint32_t DP_SYM32_ENC_SDP_GSP_CONTROL11;\ uint32_t DP_SYM32_ENC_SDP_GSP_CONTROL11;\
uint32_t DP_SYM32_ENC_SDP_METADATA_PACKET_CONTROL;\ uint32_t DP_SYM32_ENC_SDP_METADATA_PACKET_CONTROL;\
uint32_t DP_SYM32_ENC_SDP_AUDIO_CONTROL0;\ uint32_t DP_SYM32_ENC_SDP_AUDIO_CONTROL0;\
uint32_t DP_SYM32_ENC_VID_CRC_CONTROL uint32_t DP_SYM32_ENC_VID_CRC_CONTROL;\
uint32_t DP_SYM32_ENC_HBLANK_CONTROL
#define DCN3_1_HPO_DP_STREAM_ENC_MASK_SH_LIST(mask_sh)\ #define DCN3_1_HPO_DP_STREAM_ENC_MASK_SH_LIST(mask_sh)\
...@@ -202,7 +204,8 @@ ...@@ -202,7 +204,8 @@
type GSP_SOF_REFERENCE;\ type GSP_SOF_REFERENCE;\
type METADATA_PACKET_ENABLE;\ type METADATA_PACKET_ENABLE;\
type CRC_ENABLE;\ type CRC_ENABLE;\
type CRC_CONT_MODE_ENABLE type CRC_CONT_MODE_ENABLE;\
type HBLANK_MINIMUM_SYMBOL_WIDTH
struct dcn31_hpo_dp_stream_encoder_registers { struct dcn31_hpo_dp_stream_encoder_registers {
......
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