lkml.org 
[lkml]   [2020]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 265/330] drm/amd/powerplay: try to do a graceful shutdown on SW CTF
    Date
    From: Evan Quan <evan.quan@amd.com>

    [ Upstream commit 9495220577416632675959caf122e968469ffd16 ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    .../gpu/drm/amd/powerplay/hwmgr/smu_helper.c | 21 +++++++++++++++----
    drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 7 +++++++
    2 files changed, 24 insertions(+), 4 deletions(-)

    diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c
    index d09690fca4520..414added3d02c 100644
    --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c
    +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c
    @@ -22,6 +22,7 @@
    */

    #include <linux/pci.h>
    +#include <linux/reboot.h>

    #include "hwmgr.h"
    #include "pp_debug.h"
    @@ -593,12 +594,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),
    @@ -609,12 +616,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),
    diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
    index c4d8c52c6b9ca..6c4405622c9bb 100644
    --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
    +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c
    @@ -23,6 +23,7 @@
    #include <linux/firmware.h>
    #include <linux/module.h>
    #include <linux/pci.h>
    +#include <linux/reboot.h>

    #include "pp_debug.h"
    #include "amdgpu.h"
    @@ -1538,6 +1539,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",
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-09-18 04:07    [W:4.054 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site