drm/amd/pm: fulfill the missing enablement for vega12/vega20 L2H and H2L interrupts
authorEvan Quan <evan.quan@amd.com>
Tue, 20 Jun 2023 23:55:45 +0000 (07:55 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 30 Jun 2023 17:11:35 +0000 (13:11 -0400)
The feature mask bit was not correctly cleared. Without that, the L2H
and H2L interrupts cannot be enabled.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega12_thermal.c
drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_thermal.c

index ed3dff0..ae342c5 100644 (file)
@@ -192,7 +192,9 @@ static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
        val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
        val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
        val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
-       val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
+       val &= ~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK;
+       val &= ~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK;
+       val &= ~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK;
 
        WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
 
index f4f4efd..e9737ca 100644 (file)
@@ -263,7 +263,9 @@ static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
        val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
        val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
        val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
-       val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
+       val &= ~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK;
+       val &= ~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK;
+       val &= ~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK;
 
        WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);