drm/amd/pm: fix the crash after runtime pm resume
authorLikun Gao <Likun.Gao@amd.com>
Fri, 20 Nov 2020 07:44:36 +0000 (15:44 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 24 Nov 2020 17:03:45 +0000 (12:03 -0500)
Some features are still disabled after runtime pm resume. This can take
the hardware back.
Unlike other projects, this doesn't need pptable retransfer.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Kenneth Feng <kenneth.feng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c

index 8e3e7a5bbffec38617a23db23edf77eb3697142f..17a36a962e31659fc06a2df5abd0a59c001b812e 100644 (file)
@@ -918,11 +918,15 @@ static int smu_smc_hw_setup(struct smu_context *smu)
 {
        struct amdgpu_device *adev = smu->adev;
        uint32_t pcie_gen = 0, pcie_width = 0;
-       int ret;
+       int ret = 0;
 
        if (adev->in_suspend && smu_is_dpm_running(smu)) {
                dev_info(adev->dev, "dpm has been enabled\n");
-               return 0;
+               /* this is needed specifically */
+               if ((adev->asic_type >= CHIP_SIENNA_CICHLID) &&
+                   (adev->asic_type <= CHIP_DIMGREY_CAVEFISH))
+                       ret = smu_system_features_control(smu, true);
+               return ret;
        }
 
        ret = smu_init_display_count(smu, 0);