On 2021-12-07 10:07, Nicholas Kazlauskas wrote:
> [Why]
> During dcn31_stream_encoder_create, if PHYC/D get remapped to F/G on B0
> then we'll index 5 or 6 into a array of length 5 - leading to an
> access violation on some configs during device creation.
> 
> [How]
> Software won't be touching PHYF/PHYG directly, so just extend the
> array to cover all possible engine IDs.
> 
> Even if it does by try to access one of these registers by accident
> the offset will be 0 and we'll get a warning during the access.
> 
> Fixes: 2fe9a0e1173f ("drm/amd/display: Fix DCN3 B0 DP Alt Mapping")
> Cc: Mario Limonciello <[email protected]>
> Cc: Harry Wentland <[email protected]>
> Signed-off-by: Nicholas Kazlauskas <[email protected]>

Reviewed-by: Harry Wentland <[email protected]>

Harry

> ---
>  drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c 
> b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
> index ec5b4cec0ef2..04b52c9d18da 100644
> --- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
> +++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c
> @@ -485,7 +485,8 @@ static const struct dcn31_apg_mask apg_mask = {
>       SE_DCN3_REG_LIST(id)\
>  }
>  
> -static const struct dcn10_stream_enc_registers stream_enc_regs[] = {
> +/* Some encoders won't be initialized here - but they're logical, not 
> physical. */
> +static const struct dcn10_stream_enc_registers 
> stream_enc_regs[ENGINE_ID_COUNT] = {
>       stream_enc_regs(0),
>       stream_enc_regs(1),
>       stream_enc_regs(2),
> 

Reply via email to