Commit 33efc634 authored by Ivan Lipski's avatar Ivan Lipski Committed by Alex Deucher
Browse files

drm/amd/display: Add missing DCCG register entries for DCN20-DCN316



Commit 4c595e75 ("drm/amd/display: Migrate DCCG registers access
from hwseq to dccg component.") moved register writes from hwseq to
dccg2_*() functions but did not add the registers to the DCCG register
list macros. The struct fields default to 0, so REG_WRITE() targets
MMIO offset 0, causing a GPU hang on resume (seen on DCN21/DCN30
during IGT kms_cursor_crc@cursor-suspend).

Add
- MICROSECOND_TIME_BASE_DIV
- MILLISECOND_TIME_BASE_DIV
- DCCG_GATE_DISABLE_CNTL
- DCCG_GATE_DISABLE_CNTL2
- DC_MEM_GLOBAL_PWR_REQ_CNTL
to macros in  dcn20_dccg.h, dcn301_dccg.h, dcn31_dccg.h, and dcn314_dccg.h.

Fixes: 4c595e75 ("drm/amd/display: Migrate DCCG registers access from hwseq to dccg component.")
Reported-by: default avatarRafael Passos <rafael@rcpassos.me>
Reviewed-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarIvan Lipski <ivan.lipski@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Tested-by: default avatarDan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
(cherry picked from commit e6e2b956)
parent 72ecb1da
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -38,7 +38,11 @@
	DCCG_SRII(PIXEL_RATE_CNTL, OTG, 0),\
	DCCG_SRII(PIXEL_RATE_CNTL, OTG, 1),\
	SR(DISPCLK_FREQ_CHANGE_CNTL),\
	SR(DC_MEM_GLOBAL_PWR_REQ_CNTL)
	SR(DC_MEM_GLOBAL_PWR_REQ_CNTL),\
	SR(MICROSECOND_TIME_BASE_DIV),\
	SR(MILLISECOND_TIME_BASE_DIV),\
	SR(DCCG_GATE_DISABLE_CNTL),\
	SR(DCCG_GATE_DISABLE_CNTL2)

#define DCCG_REG_LIST_DCN2() \
	DCCG_COMMON_REG_LIST_DCN_BASE(),\
+7 −1
Original line number Diff line number Diff line
@@ -34,7 +34,13 @@
	DCCG_SRII(DTO_PARAM, DPPCLK, 1),\
	DCCG_SRII(DTO_PARAM, DPPCLK, 2),\
	DCCG_SRII(DTO_PARAM, DPPCLK, 3),\
	SR(REFCLK_CNTL)
	SR(REFCLK_CNTL),\
	SR(DISPCLK_FREQ_CHANGE_CNTL),\
	SR(DC_MEM_GLOBAL_PWR_REQ_CNTL),\
	SR(MICROSECOND_TIME_BASE_DIV),\
	SR(MILLISECOND_TIME_BASE_DIV),\
	SR(DCCG_GATE_DISABLE_CNTL),\
	SR(DCCG_GATE_DISABLE_CNTL2)

#define DCCG_MASK_SH_LIST_DCN301(mask_sh) \
	DCCG_SFI(DPPCLK_DTO_CTRL, DTO_ENABLE, DPPCLK, 0, mask_sh),\
+4 −1
Original line number Diff line number Diff line
@@ -64,9 +64,12 @@
	SR(DSCCLK1_DTO_PARAM),\
	SR(DSCCLK2_DTO_PARAM),\
	SR(DSCCLK_DTO_CTRL),\
	SR(DCCG_GATE_DISABLE_CNTL),\
	SR(DCCG_GATE_DISABLE_CNTL2),\
	SR(DCCG_GATE_DISABLE_CNTL3),\
	SR(HDMISTREAMCLK0_DTO_PARAM)
	SR(HDMISTREAMCLK0_DTO_PARAM),\
	SR(DC_MEM_GLOBAL_PWR_REQ_CNTL),\
	SR(MICROSECOND_TIME_BASE_DIV)


#define DCCG_MASK_SH_LIST_DCN31(mask_sh) \
+4 −1
Original line number Diff line number Diff line
@@ -70,11 +70,14 @@
	SR(DSCCLK2_DTO_PARAM),\
	SR(DSCCLK3_DTO_PARAM),\
	SR(DSCCLK_DTO_CTRL),\
	SR(DCCG_GATE_DISABLE_CNTL),\
	SR(DCCG_GATE_DISABLE_CNTL2),\
	SR(DCCG_GATE_DISABLE_CNTL3),\
	SR(HDMISTREAMCLK0_DTO_PARAM),\
	SR(OTG_PIXEL_RATE_DIV),\
	SR(DTBCLK_P_CNTL)
	SR(DTBCLK_P_CNTL),\
	SR(DC_MEM_GLOBAL_PWR_REQ_CNTL),\
	SR(MICROSECOND_TIME_BASE_DIV)

#define DCCG_MASK_SH_LIST_DCN314_COMMON(mask_sh) \
	DCCG_SFI(DPPCLK_DTO_CTRL, DTO_DB_EN, DPPCLK, 0, mask_sh),\