aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLikun Gao <Likun.Gao@amd.com>2020-11-20 15:44:36 +0800
committerAlex Deucher <alexander.deucher@amd.com>2020-11-24 12:03:45 -0500
commitddc3344f165d0e99d877747e73448c5b9fe0f57e (patch)
tree51d12ab3c9c87f7991eb80fb545394c07c60607b
parentdrm/amdgpu: fix a page fault (diff)
downloadwireguard-linux-ddc3344f165d0e99d877747e73448c5b9fe0f57e.tar.xz
wireguard-linux-ddc3344f165d0e99d877747e73448c5b9fe0f57e.zip
drm/amd/pm: fix the crash after runtime pm resume
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>
-rw-r--r--drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
index 8e3e7a5bbffe..17a36a962e31 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -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);