Commit 470679ef authored by Nicholas Kazlauskas's avatar Nicholas Kazlauskas Committed by Alex Deucher

drm/amd/display: Guard reading 3DLUT registers for dcn32/dcn35

[Why]
3DLUT is not part of the DPP on DCN32/DCN35 ASIC and these registers
now exist in MCM state.

[How]
Add guards when reading DPP state based on whether the register has a
valid offset.
Reviewed-by: default avatarSung joon Kim <sungjoon.kim@amd.com>
Acked-by: default avatarZaeem Mohamed <zaeem.mohamed@amd.com>
Signed-off-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 06cd6d8f
......@@ -64,23 +64,24 @@ void dpp30_read_state(struct dpp *dpp_base, struct dcn_dpp_state *s)
}
// Shaper LUT (RAM), 3D LUT (mode, bit-depth, size)
REG_GET(CM_SHAPER_CONTROL,
CM_SHAPER_LUT_MODE, &s->shaper_lut_mode);
REG_GET(CM_3DLUT_MODE,
CM_3DLUT_MODE_CURRENT, &s->lut3d_mode);
REG_GET(CM_3DLUT_READ_WRITE_CONTROL,
CM_3DLUT_30BIT_EN, &s->lut3d_bit_depth);
REG_GET(CM_3DLUT_MODE,
CM_3DLUT_SIZE, &s->lut3d_size);
if (REG(CM_SHAPER_CONTROL))
REG_GET(CM_SHAPER_CONTROL, CM_SHAPER_LUT_MODE, &s->shaper_lut_mode);
if (REG(CM_3DLUT_MODE))
REG_GET(CM_3DLUT_MODE, CM_3DLUT_MODE_CURRENT, &s->lut3d_mode);
if (REG(CM_3DLUT_READ_WRITE_CONTROL))
REG_GET(CM_3DLUT_READ_WRITE_CONTROL, CM_3DLUT_30BIT_EN, &s->lut3d_bit_depth);
if (REG(CM_3DLUT_MODE))
REG_GET(CM_3DLUT_MODE, CM_3DLUT_SIZE, &s->lut3d_size);
// Blend/Out Gamma (RAM)
REG_GET(CM_BLNDGAM_CONTROL,
CM_BLNDGAM_MODE_CURRENT, &s->rgam_lut_mode);
if (s->rgam_lut_mode){
if (REG(CM_BLNDGAM_CONTROL)) {
REG_GET(CM_BLNDGAM_CONTROL, CM_BLNDGAM_MODE_CURRENT, &s->rgam_lut_mode);
if (s->rgam_lut_mode) {
REG_GET(CM_BLNDGAM_CONTROL, CM_BLNDGAM_SELECT_CURRENT, &rgam_lut_mode);
if (!rgam_lut_mode)
s->rgam_lut_mode = LUT_RAM_A; // Otherwise, LUT_RAM_B
}
}
}
/*program post scaler scs block in dpp CM*/
......
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