]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amd/display: Power on VPG memory unconditionally if off
authorDillon Varone <dillon.varone@amd.com>
Mon, 4 Mar 2024 19:38:04 +0000 (14:38 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 22 Mar 2024 19:47:41 +0000 (15:47 -0400)
[WHY&HOW]
Even if memory lower power feature policy states that it is disabled,
VPG memory should still be poweerd on if it is currently disabled when
requested.

Reviewed-by: Chris Park <chris.park@amd.com>
Acked-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Dillon Varone <dillon.varone@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/dcn31/dcn31_vpg.c

index f1deb1c3c3630e5e071012fc2bfd1ce5ce3c48e6..cfb923d856308c02445baecb946889b2f85b23f2 100644 (file)
@@ -63,7 +63,12 @@ void vpg31_poweron(struct vpg *vpg)
 {
        struct dcn31_vpg *vpg31 = DCN31_VPG_FROM_VPG(vpg);
 
-       if (vpg->ctx->dc->debug.enable_mem_low_power.bits.vpg == false)
+       uint32_t vpg_gsp_mem_pwr_state;
+
+       REG_GET(VPG_MEM_PWR, VPG_GSP_MEM_PWR_STATE, &vpg_gsp_mem_pwr_state);
+
+       if (vpg->ctx->dc->debug.enable_mem_low_power.bits.vpg == false &&
+                       vpg_gsp_mem_pwr_state == 0)
                return;
 
        REG_UPDATE_2(VPG_MEM_PWR, VPG_GSP_MEM_LIGHT_SLEEP_DIS, 1, VPG_GSP_LIGHT_SLEEP_FORCE, 0);