*/
        uint32_t ctxid = entry->src_data[0];
        uint32_t data;
+       uint32_t high;
 
        if (client_id == SOC15_IH_CLIENTID_THM) {
                switch (src_id) {
                                        schedule_work(&smu->throttling_logging_work);
 
                                break;
+                       case 0x8:
+                               high = smu->thermal_range.software_shutdown_temp +
+                                       smu->thermal_range.software_shutdown_temp_offset;
+                               high = min(SMU_THERMAL_MAXIMUM_ALERT_TEMP, high);
+                               dev_emerg(adev->dev, "Reduce soft CTF limit to %d (by an offset %d)\n",
+                                                       high,
+                                                       smu->thermal_range.software_shutdown_temp_offset);
+
+                               data = RREG32_SOC15(THM, 0, regTHM_THERMAL_INT_CTRL);
+                               data = REG_SET_FIELD(data, THM_THERMAL_INT_CTRL,
+                                                       DIG_THERM_INTH,
+                                                       (high & 0xff));
+                               data = data & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
+                               WREG32_SOC15(THM, 0, regTHM_THERMAL_INT_CTRL, data);
+                               break;
+                       case 0x9:
+                               high = min(SMU_THERMAL_MAXIMUM_ALERT_TEMP,
+                                       smu->thermal_range.software_shutdown_temp);
+                               dev_emerg(adev->dev, "Recover soft CTF limit to %d\n", high);
+
+                               data = RREG32_SOC15(THM, 0, regTHM_THERMAL_INT_CTRL);
+                               data = REG_SET_FIELD(data, THM_THERMAL_INT_CTRL,
+                                                       DIG_THERM_INTH,
+                                                       (high & 0xff));
+                               data = data & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
+                               WREG32_SOC15(THM, 0, regTHM_THERMAL_INT_CTRL, data);
+                               break;
                        }
                }
        }