]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting
authorEvan Quan <evan.quan@amd.com>
Tue, 25 Aug 2020 05:51:29 +0000 (13:51 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 3 Sep 2020 04:35:09 +0000 (00:35 -0400)
Normally softwareshutdowntemp should be greater than Thotspotlimit.
However, on some VEGA10 ASIC, the softwareshutdowntemp is 91C while
Thotspotlimit is 105C. This seems not right and may trigger some
false alarms.

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>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c

index d572ba4ec9b16640da9ff899bbb7ebcd6adddd65..952cd3d7240e38905a05c4e5565b8a1c3e50b27c 100644 (file)
@@ -374,8 +374,18 @@ static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
        /* compare them in unit celsius degree */
        if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
                low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-       if (high > tdp_table->usSoftwareShutdownTemp)
-               high = tdp_table->usSoftwareShutdownTemp;
+
+       /*
+        * As a common sense, usSoftwareShutdownTemp should be bigger
+        * than ThotspotLimit. For any invalid usSoftwareShutdownTemp,
+        * we will just use the max possible setting VEGA10_THERMAL_MAXIMUM_ALERT_TEMP
+        * to avoid false alarms.
+        */
+       if ((tdp_table->usSoftwareShutdownTemp >
+            range->hotspot_crit_max / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)) {
+               if (high > tdp_table->usSoftwareShutdownTemp)
+                       high = tdp_table->usSoftwareShutdownTemp;
+       }
 
        if (low > high)
                return -EINVAL;