drm/amd/powerplay: try to do a graceful shutdown on SW CTF
Normally this(SW CTF) should not happen. And by doing graceful shutdown we can prevent further damage. Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
73339a7154
commit
9495220577
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/reboot.h>
|
||||
|
||||
#include "hwmgr.h"
|
||||
#include "pp_debug.h"
|
||||
@ -595,12 +596,18 @@ int phm_irq_process(struct amdgpu_device *adev,
|
||||
uint32_t src_id = entry->src_id;
|
||||
|
||||
if (client_id == AMDGPU_IRQ_CLIENTID_LEGACY) {
|
||||
if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_LOW_TO_HIGH)
|
||||
if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_LOW_TO_HIGH) {
|
||||
pr_warn("GPU over temperature range detected on PCIe %d:%d.%d!\n",
|
||||
PCI_BUS_NUM(adev->pdev->devfn),
|
||||
PCI_SLOT(adev->pdev->devfn),
|
||||
PCI_FUNC(adev->pdev->devfn));
|
||||
else if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_HIGH_TO_LOW)
|
||||
/*
|
||||
* SW CTF just occurred.
|
||||
* Try to do a graceful shutdown to prevent further damage.
|
||||
*/
|
||||
dev_emerg(adev->dev, "System is going to shutdown due to SW CTF!\n");
|
||||
orderly_poweroff(true);
|
||||
} else if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_HIGH_TO_LOW)
|
||||
pr_warn("GPU under temperature range detected on PCIe %d:%d.%d!\n",
|
||||
PCI_BUS_NUM(adev->pdev->devfn),
|
||||
PCI_SLOT(adev->pdev->devfn),
|
||||
@ -611,12 +618,18 @@ int phm_irq_process(struct amdgpu_device *adev,
|
||||
PCI_SLOT(adev->pdev->devfn),
|
||||
PCI_FUNC(adev->pdev->devfn));
|
||||
} else if (client_id == SOC15_IH_CLIENTID_THM) {
|
||||
if (src_id == 0)
|
||||
if (src_id == 0) {
|
||||
pr_warn("GPU over temperature range detected on PCIe %d:%d.%d!\n",
|
||||
PCI_BUS_NUM(adev->pdev->devfn),
|
||||
PCI_SLOT(adev->pdev->devfn),
|
||||
PCI_FUNC(adev->pdev->devfn));
|
||||
else
|
||||
/*
|
||||
* SW CTF just occurred.
|
||||
* Try to do a graceful shutdown to prevent further damage.
|
||||
*/
|
||||
dev_emerg(adev->dev, "System is going to shutdown due to SW CTF!\n");
|
||||
orderly_poweroff(true);
|
||||
} else
|
||||
pr_warn("GPU under temperature range detected on PCIe %d:%d.%d!\n",
|
||||
PCI_BUS_NUM(adev->pdev->devfn),
|
||||
PCI_SLOT(adev->pdev->devfn),
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <linux/firmware.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/reboot.h>
|
||||
|
||||
#define SMU_11_0_PARTIAL_PPTABLE
|
||||
|
||||
@ -1561,6 +1562,12 @@ static int smu_v11_0_irq_process(struct amdgpu_device *adev,
|
||||
PCI_BUS_NUM(adev->pdev->devfn),
|
||||
PCI_SLOT(adev->pdev->devfn),
|
||||
PCI_FUNC(adev->pdev->devfn));
|
||||
/*
|
||||
* SW CTF just occurred.
|
||||
* Try to do a graceful shutdown to prevent further damage.
|
||||
*/
|
||||
dev_emerg(adev->dev, "System is going to shutdown due to SW CTF!\n");
|
||||
orderly_poweroff(true);
|
||||
break;
|
||||
case THM_11_0__SRCID__THM_DIG_THERM_H2L:
|
||||
pr_warn("GPU under temperature range detected on PCIe %d:%d.%d!\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user