drm/amd/display: add missing ABM register offsets
authorJosip Pavic <Josip.Pavic@amd.com>
Mon, 9 Aug 2021 19:13:49 +0000 (15:13 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 1 Sep 2021 20:55:10 +0000 (16:55 -0400)
[Why]
Some ABM registers don't exist on DCN 3.01, so are
missing from its register offset list. However,
this list was copied to later versions of DCN that
do have these registers. As a result, they're
inaccessible from the driver on those DCN versions
even though they exist.

[How]
Add the missing ABM register offsets to DCN 3.02+

Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
Signed-off-by: Josip Pavic <Josip.Pavic@amd.com>
Tested-by: Daniel Wheeler <Daniel.Wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce/dce_abm.h
drivers/gpu/drm/amd/display/dc/dcn302/dcn302_resource.c
drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c
drivers/gpu/drm/amd/display/dc/dcn31/dcn31_resource.c

index 456fadb..b699d1b 100644 (file)
        SRI(DC_ABM1_HGLS_REG_READ_PROGRESS, ABM, id), \
        NBIO_SR(BIOS_SCRATCH_2)
 
+#define ABM_DCN302_REG_LIST(id)\
+       ABM_COMMON_REG_LIST_DCE_BASE(), \
+       SRI(DC_ABM1_HG_SAMPLE_RATE, ABM, id), \
+       SRI(DC_ABM1_LS_SAMPLE_RATE, ABM, id), \
+       SRI(BL1_PWM_BL_UPDATE_SAMPLE_RATE, ABM, id), \
+       SRI(DC_ABM1_HG_MISC_CTRL, ABM, id), \
+       SRI(DC_ABM1_IPCSC_COEFF_SEL, ABM, id), \
+       SRI(BL1_PWM_CURRENT_ABM_LEVEL, ABM, id), \
+       SRI(BL1_PWM_TARGET_ABM_LEVEL, ABM, id), \
+       SRI(BL1_PWM_USER_LEVEL, ABM, id), \
+       SRI(DC_ABM1_LS_MIN_MAX_PIXEL_VALUE_THRES, ABM, id), \
+       SRI(DC_ABM1_HGLS_REG_READ_PROGRESS, ABM, id), \
+       SRI(DC_ABM1_ACE_OFFSET_SLOPE_0, ABM, id), \
+       SRI(DC_ABM1_ACE_THRES_12, ABM, id), \
+       NBIO_SR(BIOS_SCRATCH_2)
+
 #define ABM_DCN30_REG_LIST(id)\
        ABM_COMMON_REG_LIST_DCE_BASE(), \
        SRI(DC_ABM1_HG_SAMPLE_RATE, ABM, id), \
index 7d3ff5d..5cd55e8 100644 (file)
@@ -1462,7 +1462,7 @@ static const struct dccg_mask dccg_mask = {
 };
 
 #define abm_regs(id)\
-               [id] = { ABM_DCN301_REG_LIST(id) }
+               [id] = { ABM_DCN302_REG_LIST(id) }
 
 static const struct dce_abm_registers abm_regs[] = {
                abm_regs(0),
index dd38796..2ce6eae 100644 (file)
@@ -1394,7 +1394,7 @@ static const struct dccg_mask dccg_mask = {
 };
 
 #define abm_regs(id)\
-               [id] = { ABM_DCN301_REG_LIST(id) }
+               [id] = { ABM_DCN302_REG_LIST(id) }
 
 static const struct dce_abm_registers abm_regs[] = {
                abm_regs(0),
index 463e96f..5a4d338 100644 (file)
@@ -366,7 +366,7 @@ static const struct dce110_clk_src_mask cs_mask = {
 
 #define abm_regs(id)\
 [id] = {\
-               ABM_DCN301_REG_LIST(id)\
+               ABM_DCN302_REG_LIST(id)\
 }
 
 static const struct dce_abm_registers abm_regs[] = {