From: Taimur Hassan <[email protected]>

[Why]
There are a number of instances where we convert HostVMMinPageSize or
GPUVMMinPageSize from bytes to KB by dividing (rather than multiplying) and
vice versa.
Additionally, in some cases, a parameter is passed through DML in KB but
later checked as if it were in bytes.

Cc: [email protected]
Reviewed-by: Nicholas Kazlauskas <[email protected]>
Acked-by: Hamza Mahfooz <[email protected]>
Signed-off-by: Taimur Hassan <[email protected]>
---
 .../amd/display/dc/dml2/display_mode_core.c    | 18 +++++++++---------
 .../display/dc/dml2/dml2_translation_helper.c  |  4 ++--
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c 
b/drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c
index fe1f97e03aa5..2e7fe46fc689 100644
--- a/drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c
+++ b/drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c
@@ -6277,7 +6277,7 @@ static void dml_prefetch_check(struct display_mode_lib_st 
*mode_lib)
                                mode_lib->ms.NoOfDPPThisState,
                                mode_lib->ms.dpte_group_bytes,
                                s->HostVMInefficiencyFactor,
-                               mode_lib->ms.soc.hostvm_min_page_size_kbytes,
+                               mode_lib->ms.soc.hostvm_min_page_size_kbytes * 
1024,
                                
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels);
 
                s->NextMaxVStartup = s->MaxVStartupAllPlanes[j];
@@ -6355,7 +6355,7 @@ static void dml_prefetch_check(struct display_mode_lib_st 
*mode_lib)
                                CalculatePrefetchSchedule_params->GPUVMEnable = 
mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
                                CalculatePrefetchSchedule_params->HostVMEnable 
= mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
                                
CalculatePrefetchSchedule_params->HostVMMaxNonCachedPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
-                               
CalculatePrefetchSchedule_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes;
+                               
CalculatePrefetchSchedule_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024;
                                
CalculatePrefetchSchedule_params->DynamicMetadataEnable = 
mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable[k];
                                
CalculatePrefetchSchedule_params->DynamicMetadataVMEnabled = 
mode_lib->ms.ip.dynamic_metadata_vm_enabled;
                                
CalculatePrefetchSchedule_params->DynamicMetadataLinesBeforeActiveRequired = 
mode_lib->ms.cache_display_cfg.plane.DynamicMetadataLinesBeforeActiveRequired[k];
@@ -6533,7 +6533,7 @@ static void dml_prefetch_check(struct display_mode_lib_st 
*mode_lib)
                                                
mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
                                                
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels,
                                                
mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
-                                               
mode_lib->ms.soc.hostvm_min_page_size_kbytes,
+                                               
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024,
                                                
mode_lib->ms.PDEAndMetaPTEBytesPerFrame[j][k],
                                                mode_lib->ms.MetaRowBytes[j][k],
                                                
mode_lib->ms.DPTEBytesPerRow[j][k],
@@ -7678,7 +7678,7 @@ dml_bool_t dml_core_mode_support(struct 
display_mode_lib_st *mode_lib)
                
CalculateVMRowAndSwath_params->HostVMMaxNonCachedPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
                CalculateVMRowAndSwath_params->GPUVMMaxPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
                CalculateVMRowAndSwath_params->GPUVMMinPageSizeKBytes = 
mode_lib->ms.cache_display_cfg.plane.GPUVMMinPageSizeKBytes;
-               CalculateVMRowAndSwath_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes;
+               CalculateVMRowAndSwath_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024;
                CalculateVMRowAndSwath_params->PTEBufferModeOverrideEn = 
mode_lib->ms.cache_display_cfg.plane.PTEBufferModeOverrideEn;
                CalculateVMRowAndSwath_params->PTEBufferModeOverrideVal = 
mode_lib->ms.cache_display_cfg.plane.PTEBufferMode;
                CalculateVMRowAndSwath_params->PTEBufferSizeNotExceeded = 
mode_lib->ms.PTEBufferSizeNotExceededPerState;
@@ -7948,7 +7948,7 @@ dml_bool_t dml_core_mode_support(struct 
display_mode_lib_st *mode_lib)
                UseMinimumDCFCLK_params->GPUVMMaxPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
                UseMinimumDCFCLK_params->HostVMEnable = 
mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
                UseMinimumDCFCLK_params->NumberOfActiveSurfaces = 
mode_lib->ms.num_active_planes;
-               UseMinimumDCFCLK_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes;
+               UseMinimumDCFCLK_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024;
                UseMinimumDCFCLK_params->HostVMMaxNonCachedPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
                UseMinimumDCFCLK_params->DynamicMetadataVMEnabled = 
mode_lib->ms.ip.dynamic_metadata_vm_enabled;
                UseMinimumDCFCLK_params->ImmediateFlipRequirement = 
s->ImmediateFlipRequiredFinal;
@@ -8690,7 +8690,7 @@ void dml_core_mode_programming(struct display_mode_lib_st 
*mode_lib, const struc
        CalculateVMRowAndSwath_params->HostVMMaxNonCachedPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
        CalculateVMRowAndSwath_params->GPUVMMaxPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.GPUVMMaxPageTableLevels;
        CalculateVMRowAndSwath_params->GPUVMMinPageSizeKBytes = 
mode_lib->ms.cache_display_cfg.plane.GPUVMMinPageSizeKBytes;
-       CalculateVMRowAndSwath_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes;
+       CalculateVMRowAndSwath_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024;
        CalculateVMRowAndSwath_params->PTEBufferModeOverrideEn = 
mode_lib->ms.cache_display_cfg.plane.PTEBufferModeOverrideEn;
        CalculateVMRowAndSwath_params->PTEBufferModeOverrideVal = 
mode_lib->ms.cache_display_cfg.plane.PTEBufferMode;
        CalculateVMRowAndSwath_params->PTEBufferSizeNotExceeded = 
s->dummy_boolean_array[0];
@@ -8796,7 +8796,7 @@ void dml_core_mode_programming(struct display_mode_lib_st 
*mode_lib, const struc
                        mode_lib->ms.cache_display_cfg.hw.DPPPerSurface,
                        locals->dpte_group_bytes,
                        s->HostVMInefficiencyFactor,
-                       mode_lib->ms.soc.hostvm_min_page_size_kbytes,
+                       mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024,
                        
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels);
 
        locals->TCalc = 24.0 / locals->DCFCLKDeepSleep;
@@ -8986,7 +8986,7 @@ void dml_core_mode_programming(struct display_mode_lib_st 
*mode_lib, const struc
                        CalculatePrefetchSchedule_params->GPUVMEnable = 
mode_lib->ms.cache_display_cfg.plane.GPUVMEnable;
                        CalculatePrefetchSchedule_params->HostVMEnable = 
mode_lib->ms.cache_display_cfg.plane.HostVMEnable;
                        
CalculatePrefetchSchedule_params->HostVMMaxNonCachedPageTableLevels = 
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels;
-                       CalculatePrefetchSchedule_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes;
+                       CalculatePrefetchSchedule_params->HostVMMinPageSize = 
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024;
                        CalculatePrefetchSchedule_params->DynamicMetadataEnable 
= mode_lib->ms.cache_display_cfg.plane.DynamicMetadataEnable[k];
                        
CalculatePrefetchSchedule_params->DynamicMetadataVMEnabled = 
mode_lib->ms.ip.dynamic_metadata_vm_enabled;
                        
CalculatePrefetchSchedule_params->DynamicMetadataLinesBeforeActiveRequired = 
mode_lib->ms.cache_display_cfg.plane.DynamicMetadataLinesBeforeActiveRequired[k];
@@ -9231,7 +9231,7 @@ void dml_core_mode_programming(struct display_mode_lib_st 
*mode_lib, const struc
                                                
mode_lib->ms.cache_display_cfg.plane.HostVMEnable,
                                                
mode_lib->ms.cache_display_cfg.plane.HostVMMaxPageTableLevels,
                                                
mode_lib->ms.cache_display_cfg.plane.GPUVMEnable,
-                                               
mode_lib->ms.soc.hostvm_min_page_size_kbytes,
+                                               
mode_lib->ms.soc.hostvm_min_page_size_kbytes * 1024,
                                                
locals->PDEAndMetaPTEBytesFrame[k],
                                                locals->MetaRowByte[k],
                                                locals->PixelPTEBytesPerRow[k],
diff --git a/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c 
b/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c
index 2b9638c6d9b0..48caa34a5ce7 100644
--- a/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c
+++ b/drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c
@@ -515,8 +515,8 @@ void dml2_translate_socbb_params(const struct dc *in, 
struct soc_bounding_box_st
        out->do_urgent_latency_adjustment = 
in_soc_params->do_urgent_latency_adjustment;
        out->dram_channel_width_bytes = 
(dml_uint_t)in_soc_params->dram_channel_width_bytes;
        out->fabric_datapath_to_dcn_data_return_bytes = 
(dml_uint_t)in_soc_params->fabric_datapath_to_dcn_data_return_bytes;
-       out->gpuvm_min_page_size_kbytes = 
in_soc_params->gpuvm_min_page_size_bytes * 1024;
-       out->hostvm_min_page_size_kbytes = 
in_soc_params->hostvm_min_page_size_bytes * 1024;
+       out->gpuvm_min_page_size_kbytes = 
in_soc_params->gpuvm_min_page_size_bytes / 1024;
+       out->hostvm_min_page_size_kbytes = 
in_soc_params->hostvm_min_page_size_bytes / 1024;
        out->mall_allocated_for_dcn_mbytes = 
(dml_uint_t)in_soc_params->mall_allocated_for_dcn_mbytes;
        out->max_avg_dram_bw_use_normal_percent = 
in_soc_params->max_avg_dram_bw_use_normal_percent;
        out->max_avg_fabric_bw_use_normal_percent = 
in_soc_params->max_avg_fabric_bw_use_normal_percent;
-- 
2.42.0

Reply via email to