]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Fix DCN42B null registers & register masks
authorMatthew Stewart <Matthew.Stewart2@amd.com>
Thu, 4 Jun 2026 15:36:09 +0000 (11:36 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 17 Jul 2026 21:37:05 +0000 (17:37 -0400)
[why]

DCN42B is missing some register masks, which are causing errors in dmesg.

[how]

Make DCN42B reuse the DCN42 register lists, and add the missing defines manually.

Fixes: 64142f9d51af ("drm/amd/display: Fix DCN42 null registers & register masks")
Reviewed-by: Ovidiu (Ovi) Bunea <ovidiu.bunea@amd.com>
Signed-off-by: Matthew Stewart <Matthew.Stewart2@amd.com>
Signed-off-by: George Zhang <george.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit b7d69145907cdefcbd39a70a31eefd30919af9f1)

drivers/gpu/drm/amd/display/dc/resource/dcn42b/dcn42b_resource.c
drivers/gpu/drm/amd/display/dc/resource/dcn42b/dcn42b_resource.h

index 527d17f29f3ba757604e9cf6af5c01d8c42857e9..1a3b9e942caa4985288cfc36ebce7899d54e7084 100644 (file)
@@ -22,6 +22,7 @@
 #include "dcn35/dcn35_resource.h"
 #include "dcn321/dcn321_resource.h"
 #include "dcn401/dcn401_resource.h"
+#include "dcn42/dcn42_resource.h"
 #include "dcn42/dcn42_resource_fpu.h"
 
 #include "dcn10/dcn10_ipp.h"
 #define regAPG9_APG_DBG_GEN_CONTROL             0x38ae
 #define regAPG9_APG_DBG_GEN_CONTROL_BASE_IDX    2
 
+#define regHUBP0_HUBPREQ_DEBUG_DB             0x05f8
+#define regHUBP0_HUBPREQ_DEBUG_DB_BASE_IDX    2
+#define regHUBP0_HUBPREQ_DEBUG                0x05f9
+#define regHUBP0_HUBPREQ_DEBUG_BASE_IDX       2
+#define regHUBP1_HUBPREQ_DEBUG_DB             0x06d4
+#define regHUBP1_HUBPREQ_DEBUG_DB_BASE_IDX    2
+#define regHUBP1_HUBPREQ_DEBUG                0x06d5
+#define regHUBP1_HUBPREQ_DEBUG_BASE_IDX       2
+#define regHUBP2_HUBPREQ_DEBUG_DB             0x07b0
+#define regHUBP2_HUBPREQ_DEBUG_DB_BASE_IDX    2
+#define regHUBP2_HUBPREQ_DEBUG                0x07b1
+#define regHUBP2_HUBPREQ_DEBUG_BASE_IDX       2
+#define regHUBP3_HUBPREQ_DEBUG_DB             0x088c
+#define regHUBP3_HUBPREQ_DEBUG_DB_BASE_IDX    2
+#define regHUBP3_HUBPREQ_DEBUG                0x088d
+#define regHUBP3_HUBPREQ_DEBUG_BASE_IDX       2
+
 enum dcn401_clk_src_array_id {
        DCN401_CLK_SRC_PLL0,
        DCN401_CLK_SRC_PLL1,
@@ -461,7 +479,7 @@ static const struct dcn_optc_mask optc_mask = {
        OPTC_COMMON_MASK_SH_LIST_DCN42B(_MASK)};
 
 #define hubp_regs_init(id) \
-       HUBP_REG_LIST_DCN42B_RI(id)
+       HUBP_REG_LIST_DCN42_RI(id)
 
 static struct dcn_hubp2_registers hubp_regs[4];
 
index 2da3e3c8304a9076abc1422c47c82e0e805a597c..2824a0e1acc9f19c22eaa8b78404bd7d2ea1beb3 100644 (file)
  *  DCCG_SRII(PHASE, DP_DTO, 3),
  *  DCCG_SRII(MODULO, DP_DTO, 3),
  *     SR(DSCCLK3_DTO_PARAM),
- *     SR(HDMISTREAMCLK_CNTL),
  *  SR(SYMCLKD_CLOCK_ENABLE),
  *  SR(SYMCLKE_CLOCK_ENABLE)
  */
        SR(PHYBSYMCLK_CLOCK_CNTL), \
        SR(PHYCSYMCLK_CLOCK_CNTL), \
        SR(DPSTREAMCLK_CNTL), \
+       SR(HDMISTREAMCLK_CNTL), \
        SR(SYMCLK32_SE_CNTL), \
        SR(SYMCLK32_LE_CNTL), \
        DCCG_SRII(PIXEL_RATE_CNTL, OTG, 0), \
                SRI_ARR(DC_ABM1_ACE_OFFSET_SLOPE_DATA, ABM, id),        \
                SRI_ARR(DC_ABM1_ACE_PWL_CNTL, ABM, id)
 
-/* HUBP */
-/* Not in DCN42B: HUBPREQ_DEBUG_DB and HUBPREQ_DEBUG */
-#define HUBP_REG_LIST_DCN42B_RI(id)                                         \
-       SRI_ARR(DCN_DMDATA_VM_CNTL, HUBPREQ, id),                               \
-       SRI_ARR(FLIP_PARAMETERS_3, HUBPREQ, id),                               \
-       SRI_ARR(FLIP_PARAMETERS_4, HUBPREQ, id),                               \
-       SRI_ARR(FLIP_PARAMETERS_5, HUBPREQ, id),                               \
-       SRI_ARR(FLIP_PARAMETERS_6, HUBPREQ, id),                               \
-       SRI_ARR(VBLANK_PARAMETERS_5, HUBPREQ, id),                             \
-       SRI_ARR(VBLANK_PARAMETERS_6, HUBPREQ, id),                             \
-       HUBP_REG_LIST_DCN_VM_RI(id),                                            \
-       SRI_ARR(PREFETCH_SETTINGS, HUBPREQ, id),                               \
-       SRI_ARR(PREFETCH_SETTINGS_C, HUBPREQ, id),                             \
-       SRI_ARR(DCN_VM_SYSTEM_APERTURE_LOW_ADDR, HUBPREQ, id),                 \
-       SRI_ARR(DCN_VM_SYSTEM_APERTURE_HIGH_ADDR, HUBPREQ, id),                \
-       SRI_ARR(CURSOR_SETTINGS, HUBPREQ, id),                                 \
-       SRI_ARR(CURSOR_SURFACE_ADDRESS_HIGH, CURSOR0_, id),                    \
-       SRI_ARR(CURSOR_SURFACE_ADDRESS, CURSOR0_, id),                         \
-       SRI_ARR(CURSOR_SIZE, CURSOR0_, id),                                    \
-       SRI_ARR(CURSOR_CONTROL, CURSOR0_, id),                                 \
-       SRI_ARR(CURSOR_POSITION, CURSOR0_, id),                                \
-       SRI_ARR(CURSOR_HOT_SPOT, CURSOR0_, id),                                \
-       SRI_ARR(CURSOR_DST_OFFSET, CURSOR0_, id),                              \
-       SRI_ARR(DMDATA_ADDRESS_HIGH, CURSOR0_, id),                            \
-       SRI_ARR(DMDATA_ADDRESS_LOW, CURSOR0_, id),                             \
-       SRI_ARR(DMDATA_CNTL, CURSOR0_, id),                                    \
-       SRI_ARR(DMDATA_SW_CNTL, CURSOR0_, id),                                 \
-       SRI_ARR(DMDATA_QOS_CNTL, CURSOR0_, id),                                \
-       SRI_ARR(DMDATA_SW_DATA, CURSOR0_, id),                                 \
-       SRI_ARR(DMDATA_STATUS, CURSOR0_, id),                                  \
-       SRI_ARR(FLIP_PARAMETERS_0, HUBPREQ, id),                               \
-       SRI_ARR(FLIP_PARAMETERS_1, HUBPREQ, id),                               \
-       SRI_ARR(FLIP_PARAMETERS_2, HUBPREQ, id),                               \
-       SRI_ARR(DCN_CUR1_TTU_CNTL0, HUBPREQ, id),                              \
-       SRI_ARR(DCN_CUR1_TTU_CNTL1, HUBPREQ, id),                              \
-       SRI_ARR(DCSURF_FLIP_CONTROL2, HUBPREQ, id),                            \
-       SRI_ARR(VMID_SETTINGS_0, HUBPREQ, id),                                 \
-       SRI_ARR(DCHUBP_CNTL, HUBP, id),                                        \
-       SRI_ARR(DCSURF_ADDR_CONFIG, HUBP, id),                                 \
-       SRI_ARR(DCSURF_TILING_CONFIG, HUBP, id),                               \
-       SRI_ARR(DCSURF_SURFACE_PITCH, HUBPREQ, id),                            \
-       SRI_ARR(DCSURF_SURFACE_PITCH_C, HUBPREQ, id),                          \
-       SRI_ARR(DCSURF_SURFACE_CONFIG, HUBP, id),                              \
-       SRI_ARR(DCSURF_FLIP_CONTROL, HUBPREQ, id),                             \
-       SRI_ARR(DCSURF_PRI_VIEWPORT_DIMENSION, HUBP, id),                      \
-       SRI_ARR(DCSURF_PRI_VIEWPORT_START, HUBP, id),                          \
-       SRI_ARR(DCSURF_SEC_VIEWPORT_DIMENSION, HUBP, id),                      \
-       SRI_ARR(DCSURF_SEC_VIEWPORT_START, HUBP, id),                          \
-       SRI_ARR(DCSURF_PRI_VIEWPORT_DIMENSION_C, HUBP, id),                    \
-       SRI_ARR(DCSURF_PRI_VIEWPORT_START_C, HUBP, id),                        \
-       SRI_ARR(DCSURF_SEC_VIEWPORT_DIMENSION_C, HUBP, id),                    \
-       SRI_ARR(DCSURF_SEC_VIEWPORT_START_C, HUBP, id),                        \
-       SRI_ARR(DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH, HUBPREQ, id),             \
-       SRI_ARR(DCSURF_PRIMARY_SURFACE_ADDRESS, HUBPREQ, id),                  \
-       SRI_ARR(DCSURF_SECONDARY_SURFACE_ADDRESS_HIGH, HUBPREQ, id),           \
-       SRI_ARR(DCSURF_SECONDARY_SURFACE_ADDRESS, HUBPREQ, id),                \
-       SRI_ARR(DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH, HUBPREQ, id),        \
-       SRI_ARR(DCSURF_PRIMARY_META_SURFACE_ADDRESS, HUBPREQ, id),             \
-       SRI_ARR(DCSURF_SECONDARY_META_SURFACE_ADDRESS_HIGH, HUBPREQ, id),      \
-       SRI_ARR(DCSURF_SECONDARY_META_SURFACE_ADDRESS, HUBPREQ, id),           \
-       SRI_ARR(DCSURF_PRIMARY_SURFACE_ADDRESS_HIGH_C, HUBPREQ, id),           \
-       SRI_ARR(DCSURF_PRIMARY_SURFACE_ADDRESS_C, HUBPREQ, id),                \
-       SRI_ARR(DCSURF_SECONDARY_SURFACE_ADDRESS_HIGH_C, HUBPREQ, id),         \
-       SRI_ARR(DCSURF_SECONDARY_SURFACE_ADDRESS_C, HUBPREQ, id),              \
-       SRI_ARR(DCSURF_PRIMARY_META_SURFACE_ADDRESS_HIGH_C, HUBPREQ, id),      \
-       SRI_ARR(DCSURF_PRIMARY_META_SURFACE_ADDRESS_C, HUBPREQ, id),           \
-       SRI_ARR(DCSURF_SECONDARY_META_SURFACE_ADDRESS_HIGH_C, HUBPREQ, id),    \
-       SRI_ARR(DCSURF_SECONDARY_META_SURFACE_ADDRESS_C, HUBPREQ, id),         \
-       SRI_ARR(DCSURF_SURFACE_INUSE, HUBPREQ, id),                            \
-       SRI_ARR(DCSURF_SURFACE_INUSE_HIGH, HUBPREQ, id),                       \
-       SRI_ARR(DCSURF_SURFACE_INUSE_C, HUBPREQ, id),                          \
-       SRI_ARR(DCSURF_SURFACE_INUSE_HIGH_C, HUBPREQ, id),                     \
-       SRI_ARR(DCSURF_SURFACE_EARLIEST_INUSE, HUBPREQ, id),                   \
-       SRI_ARR(DCSURF_SURFACE_EARLIEST_INUSE_HIGH, HUBPREQ, id),              \
-       SRI_ARR(DCSURF_SURFACE_EARLIEST_INUSE_C, HUBPREQ, id),                 \
-       SRI_ARR(DCSURF_SURFACE_EARLIEST_INUSE_HIGH_C, HUBPREQ, id),            \
-       SRI_ARR(DCSURF_SURFACE_CONTROL, HUBPREQ, id),                          \
-       SRI_ARR(DCSURF_SURFACE_FLIP_INTERRUPT, HUBPREQ, id),                   \
-       SRI_ARR(HUBPRET_CONTROL, HUBPRET, id),                                 \
-       SRI_ARR(HUBPRET_READ_LINE_STATUS, HUBPRET, id),                        \
-       SRI_ARR(DCN_EXPANSION_MODE, HUBPREQ, id),                              \
-       SRI_ARR(DCHUBP_REQ_SIZE_CONFIG, HUBP, id),                             \
-       SRI_ARR(DCHUBP_REQ_SIZE_CONFIG_C, HUBP, id),                           \
-       SRI_ARR(BLANK_OFFSET_0, HUBPREQ, id),                                  \
-       SRI_ARR(BLANK_OFFSET_1, HUBPREQ, id),                                  \
-       SRI_ARR(DST_DIMENSIONS, HUBPREQ, id),                                  \
-       SRI_ARR(DST_AFTER_SCALER, HUBPREQ, id),                                \
-       SRI_ARR(VBLANK_PARAMETERS_0, HUBPREQ, id),                             \
-       SRI_ARR(REF_FREQ_TO_PIX_FREQ, HUBPREQ, id),                            \
-       SRI_ARR(VBLANK_PARAMETERS_1, HUBPREQ, id),                             \
-       SRI_ARR(VBLANK_PARAMETERS_3, HUBPREQ, id),                             \
-       SRI_ARR(NOM_PARAMETERS_4, HUBPREQ, id),                                \
-       SRI_ARR(NOM_PARAMETERS_5, HUBPREQ, id),                                \
-       SRI_ARR(PER_LINE_DELIVERY_PRE, HUBPREQ, id),                           \
-       SRI_ARR(PER_LINE_DELIVERY, HUBPREQ, id),                               \
-       SRI_ARR(VBLANK_PARAMETERS_2, HUBPREQ, id),                             \
-       SRI_ARR(VBLANK_PARAMETERS_4, HUBPREQ, id),                             \
-       SRI_ARR(NOM_PARAMETERS_6, HUBPREQ, id),                                \
-       SRI_ARR(NOM_PARAMETERS_7, HUBPREQ, id),                                \
-       SRI_ARR(DCN_TTU_QOS_WM, HUBPREQ, id),                                  \
-       SRI_ARR(DCN_GLOBAL_TTU_CNTL, HUBPREQ, id),                             \
-       SRI_ARR(DCN_SURF0_TTU_CNTL0, HUBPREQ, id),                             \
-       SRI_ARR(DCN_SURF0_TTU_CNTL1, HUBPREQ, id),                             \
-       SRI_ARR(DCN_SURF1_TTU_CNTL0, HUBPREQ, id),                             \
-       SRI_ARR(DCN_SURF1_TTU_CNTL1, HUBPREQ, id),                             \
-       SRI_ARR(DCN_CUR0_TTU_CNTL0, HUBPREQ, id),                              \
-       SRI_ARR(DCN_CUR0_TTU_CNTL1, HUBPREQ, id),                              \
-       SRI_ARR(HUBP_CLK_CNTL, HUBP, id),                                      \
-       SRI_ARR(HUBPRET_READ_LINE_VALUE, HUBPRET, id),                         \
-       SRI_ARR(DCHUBP_MALL_CONFIG, HUBP, id),                                 \
-       SRI_ARR(DCHUBP_VMPG_CONFIG, HUBP, id),                                 \
-       SRI_ARR(UCLK_PSTATE_FORCE, HUBPREQ, id),                               \
-       SRI_ARR(HUBP_3DLUT_DLG_PARAM, CURSOR0_, id),                           \
-       HUBP_3DLUT_FL_REG_LIST_DCN401(id)
 struct dcn42b_resource_pool {
        struct resource_pool base;
 };