]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/amd/pm: Fix DPM level count on aldebaran
authorLijo Lazar <lijo.lazar@amd.com>
Fri, 26 Mar 2021 05:43:14 +0000 (13:43 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 9 Apr 2021 20:46:54 +0000 (16:46 -0400)
Firmware returns zero-based max level, increment by one to get
total levels. This fixes the issue of not showing all levels and current
frequency when frequency is at max DPM level.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Feifei Xu <Feifei.Xu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c

index 1f860969ea1ceacd093c74f68c51607de4971bd3..30c9ac635105dba577ceefc97ceab8f60c945005 100644 (file)
@@ -1710,10 +1710,14 @@ int smu_v13_0_get_dpm_level_count(struct smu_context *smu,
                                  enum smu_clk_type clk_type,
                                  uint32_t *value)
 {
-       return smu_v13_0_get_dpm_freq_by_index(smu,
-                                              clk_type,
-                                              0xff,
-                                              value);
+       int ret;
+
+       ret = smu_v13_0_get_dpm_freq_by_index(smu, clk_type, 0xff, value);
+       /* FW returns 0 based max level, increment by one */
+       if (!ret && value)
+               ++(*value);
+
+       return ret;
 }
 
 int smu_v13_0_set_single_dpm_table(struct smu_context *smu,