]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/amdgpu: update default voltage for boot od table for navi1x
authorAlex Deucher <alexander.deucher@amd.com>
Tue, 4 Feb 2020 14:07:19 +0000 (09:07 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 5 Feb 2020 04:30:38 +0000 (23:30 -0500)
It needed to be updated as well so it will show the proper values
if you reset to the defaults.

Bug: https://gitlab.freedesktop.org/drm/amd/issues/1020
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/navi10_ppt.c

index 2c8c4cbce5488627529bf84202e908d8851c2c3f..19a9846b730e1b5e05769b2d4b3a3283620c0189 100644 (file)
@@ -1977,7 +1977,7 @@ static int navi10_setup_od_limits(struct smu_context *smu) {
 }
 
 static int navi10_set_default_od_settings(struct smu_context *smu, bool initialize) {
-       OverDriveTable_t *od_table;
+       OverDriveTable_t *od_table, *boot_od_table;
        int ret = 0;
 
        ret = smu_v11_0_set_default_od_settings(smu, initialize, sizeof(OverDriveTable_t));
@@ -1985,6 +1985,7 @@ static int navi10_set_default_od_settings(struct smu_context *smu, bool initiali
                return ret;
 
        od_table = (OverDriveTable_t *)smu->smu_table.overdrive_table;
+       boot_od_table = (OverDriveTable_t *)smu->smu_table.boot_overdrive_table;
        if (initialize) {
                ret = navi10_setup_od_limits(smu);
                if (ret) {
@@ -1998,6 +1999,8 @@ static int navi10_set_default_od_settings(struct smu_context *smu, bool initiali
                                                                                od_table->GfxclkFreq1);
                                if (ret)
                                        od_table->GfxclkVolt1 = 0;
+                               if (boot_od_table)
+                                       boot_od_table->GfxclkVolt1 = od_table->GfxclkVolt1;
                        }
 
                        if (!od_table->GfxclkVolt2) {
@@ -2006,6 +2009,8 @@ static int navi10_set_default_od_settings(struct smu_context *smu, bool initiali
                                                                                od_table->GfxclkFreq2);
                                if (ret)
                                        od_table->GfxclkVolt2 = 0;
+                               if (boot_od_table)
+                                       boot_od_table->GfxclkVolt2 = od_table->GfxclkVolt2;
                        }
 
                        if (!od_table->GfxclkVolt3) {
@@ -2014,6 +2019,8 @@ static int navi10_set_default_od_settings(struct smu_context *smu, bool initiali
                                                                                od_table->GfxclkFreq3);
                                if (ret)
                                        od_table->GfxclkVolt3 = 0;
+                               if (boot_od_table)
+                                       boot_od_table->GfxclkVolt3 = od_table->GfxclkVolt3;
                        }
                }
        }