Watermarks were being multiplied by 1000 in amdgpu_dm
and divided by 1000 in powerplay.  Change watermarks
to units of mhz to stop doing that.

Signed-off-by: David Francis <david.fran...@amd.com>
---
 .../amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c  | 24 +++++---------
 .../drm/amd/display/dc/dm_services_types.h    | 16 +++++-----
 .../gpu/drm/amd/powerplay/hwmgr/smu_helper.c  | 32 +++++--------------
 3 files changed, 24 insertions(+), 48 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
index 9d2d6986b983..d9daa038fdb2 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c
@@ -517,14 +517,10 @@ void pp_rv_set_wm_ranges(struct pp_smu *pp,
                else
                        wm_dce_clocks[i].wm_set_id =
                                        ranges->reader_wm_sets[i].wm_inst;
-               wm_dce_clocks[i].wm_max_dcfclk_clk_in_khz =
-                               ranges->reader_wm_sets[i].max_drain_clk_mhz * 
1000;
-               wm_dce_clocks[i].wm_min_dcfclk_clk_in_khz =
-                               ranges->reader_wm_sets[i].min_drain_clk_mhz * 
1000;
-               wm_dce_clocks[i].wm_max_mem_clk_in_khz =
-                               ranges->reader_wm_sets[i].max_fill_clk_mhz * 
1000;
-               wm_dce_clocks[i].wm_min_mem_clk_in_khz =
-                               ranges->reader_wm_sets[i].min_fill_clk_mhz * 
1000;
+               wm_dce_clocks[i].wm_max_dcfclk_clk_in_mhz = 
ranges->reader_wm_sets[i].max_drain_clk_mhz;
+               wm_dce_clocks[i].wm_min_dcfclk_clk_in_mhz = 
ranges->reader_wm_sets[i].min_drain_clk_mhz;
+               wm_dce_clocks[i].wm_max_mem_clk_in_mhz = 
ranges->reader_wm_sets[i].max_fill_clk_mhz;
+               wm_dce_clocks[i].wm_min_mem_clk_in_mhz = 
ranges->reader_wm_sets[i].min_fill_clk_mhz;
        }
 
        for (i = 0; i < wm_with_clock_ranges.num_wm_mcif_sets; i++) {
@@ -533,14 +529,10 @@ void pp_rv_set_wm_ranges(struct pp_smu *pp,
                else
                        wm_soc_clocks[i].wm_set_id =
                                        ranges->writer_wm_sets[i].wm_inst;
-               wm_soc_clocks[i].wm_max_socclk_clk_in_khz =
-                               ranges->writer_wm_sets[i].max_fill_clk_mhz * 
1000;
-               wm_soc_clocks[i].wm_min_socclk_clk_in_khz =
-                               ranges->writer_wm_sets[i].min_fill_clk_mhz * 
1000;
-               wm_soc_clocks[i].wm_max_mem_clk_in_khz =
-                               ranges->writer_wm_sets[i].max_drain_clk_mhz * 
1000;
-               wm_soc_clocks[i].wm_min_mem_clk_in_khz =
-                               ranges->writer_wm_sets[i].min_drain_clk_mhz * 
1000;
+               wm_soc_clocks[i].wm_max_socclk_clk_in_mhz = 
ranges->writer_wm_sets[i].max_fill_clk_mhz;
+               wm_soc_clocks[i].wm_min_socclk_clk_in_mhz = 
ranges->writer_wm_sets[i].min_fill_clk_mhz;
+               wm_soc_clocks[i].wm_max_mem_clk_in_mhz = 
ranges->writer_wm_sets[i].max_drain_clk_mhz;
+               wm_soc_clocks[i].wm_min_mem_clk_in_mhz = 
ranges->writer_wm_sets[i].min_drain_clk_mhz;
        }
 
        pp_funcs->set_watermarks_for_clocks_ranges(pp_handle, 
&wm_with_clock_ranges);
diff --git a/drivers/gpu/drm/amd/display/dc/dm_services_types.h 
b/drivers/gpu/drm/amd/display/dc/dm_services_types.h
index 1af8c777b3ac..ce6fedd97df9 100644
--- a/drivers/gpu/drm/amd/display/dc/dm_services_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dm_services_types.h
@@ -148,18 +148,18 @@ struct dm_pp_wm_sets_with_clock_ranges {
 
 struct dm_pp_clock_range_for_dmif_wm_set_soc15 {
        enum dm_pp_wm_set_id wm_set_id;
-       uint32_t wm_min_dcfclk_clk_in_khz;
-       uint32_t wm_max_dcfclk_clk_in_khz;
-       uint32_t wm_min_mem_clk_in_khz;
-       uint32_t wm_max_mem_clk_in_khz;
+       uint32_t wm_min_dcfclk_clk_in_mhz;
+       uint32_t wm_max_dcfclk_clk_in_mhz;
+       uint32_t wm_min_mem_clk_in_mhz;
+       uint32_t wm_max_mem_clk_in_mhz;
 };
 
 struct dm_pp_clock_range_for_mcif_wm_set_soc15 {
        enum dm_pp_wm_set_id wm_set_id;
-       uint32_t wm_min_socclk_clk_in_khz;
-       uint32_t wm_max_socclk_clk_in_khz;
-       uint32_t wm_min_mem_clk_in_khz;
-       uint32_t wm_max_mem_clk_in_khz;
+       uint32_t wm_min_socclk_clk_in_mhz;
+       uint32_t wm_max_socclk_clk_in_mhz;
+       uint32_t wm_min_mem_clk_in_mhz;
+       uint32_t wm_max_mem_clk_in_mhz;
 };
 
 struct dm_pp_wm_sets_with_clock_ranges_soc15 {
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c 
b/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c
index 99a33c33a32c..0fae388220fe 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c
@@ -712,42 +712,26 @@ int smu_set_watermarks_for_clocks_ranges(void *wt_table,
 
        for (i = 0; i < wm_with_clock_ranges->num_wm_dmif_sets; i++) {
                table->WatermarkRow[1][i].MinClock =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_min_dcfclk_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_min_dcfclk_clk_in_mhz);
                table->WatermarkRow[1][i].MaxClock =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_max_dcfclk_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_max_dcfclk_clk_in_mhz);
                table->WatermarkRow[1][i].MinUclk =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_min_mem_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_min_mem_clk_in_mhz);
                table->WatermarkRow[1][i].MaxUclk =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_max_mem_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_max_mem_clk_in_mhz);
                table->WatermarkRow[1][i].WmSetting = (uint8_t)
                                
wm_with_clock_ranges->wm_dmif_clocks_ranges[i].wm_set_id;
        }
 
        for (i = 0; i < wm_with_clock_ranges->num_wm_mcif_sets; i++) {
                table->WatermarkRow[0][i].MinClock =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_min_socclk_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_min_socclk_clk_in_mhz);
                table->WatermarkRow[0][i].MaxClock =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_max_socclk_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_max_socclk_clk_in_mhz);
                table->WatermarkRow[0][i].MinUclk =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_min_mem_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_min_mem_clk_in_mhz);
                table->WatermarkRow[0][i].MaxUclk =
-                       cpu_to_le16((uint16_t)
-                       
(wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_max_mem_clk_in_khz) /
-                       1000);
+                       
cpu_to_le16((uint16_t)wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_max_mem_clk_in_mhz);
                table->WatermarkRow[0][i].WmSetting = (uint8_t)
                                
wm_with_clock_ranges->wm_mcif_clocks_ranges[i].wm_set_id;
        }
-- 
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to