From: Gaghik Khachatrian <[email protected]>

[Why & How]
In dml2_translation_helper.c, rename the inner loop index inside
dml2_init_soc_states() for several project cases
to avoid shadowing the outer function-scope index variable.

In display_mode_core.c, replace shift-based power-of-two expressions
used to compute dpte_row_height and dpte_row_height_linear with an
equivalent floating-point power function, consistent with existing
usage elsewhere in the file.

Behavior for valid inputs is preserved in both cases.

Reviewed-by: Dillon Varone <[email protected]>
Signed-off-by: Gaghik Khachatrian <[email protected]>
Signed-off-by: James Lin <[email protected]>
---
 drivers/gpu/drm/amd/display/dc/dml2_0/display_mode_core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dml2_0/display_mode_core.c 
b/drivers/gpu/drm/amd/display/dc/dml2_0/display_mode_core.c
index 16514f1e4ed9..241406e9e85a 100644
--- a/drivers/gpu/drm/amd/display/dc/dml2_0/display_mode_core.c
+++ b/drivers/gpu/drm/amd/display/dc/dml2_0/display_mode_core.c
@@ -2626,18 +2626,18 @@ static dml_uint_t CalculateVMAndRowBytes(
        *PixelPTEBytesPerRow_one_row_per_frame = (dml_uint_t)((dml_float_t) 
*dpte_row_width_ub_one_row_per_frame / (dml_float_t) *PixelPTEReqWidth * 
*PTERequestSize);
 
        if (SurfaceTiling == dml_sw_linear) {
-               *dpte_row_height = (dml_uint_t)(dml_min(128, 1 << (dml_uint_t) 
dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1)));
+               *dpte_row_height = (dml_uint_t)(dml_min(128, 
(dml_uint_t)dml_pow(2.0, (int)dml_floor(dml_log2(PTEBufferSizeInRequests * 
*PixelPTEReqWidth / Pitch), 1))));
                dml_print("DML::%s: dpte_row_height term 1 = %u\n", __func__, 
PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch);
                dml_print("DML::%s: dpte_row_height term 2 = %f\n", __func__, 
dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch));
                dml_print("DML::%s: dpte_row_height term 3 = %f\n", __func__, 
dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth / Pitch), 1));
-               dml_print("DML::%s: dpte_row_height term 4 = %u\n", __func__, 1 
<< (dml_uint_t) dml_floor(dml_log2(PTEBufferSizeInRequests * *PixelPTEReqWidth 
/ Pitch), 1));
+               dml_print("DML::%s: dpte_row_height term 4 = %u\n", __func__, 
(dml_uint_t)dml_pow(2.0, (int)dml_floor(dml_log2(PTEBufferSizeInRequests * 
*PixelPTEReqWidth / Pitch), 1)));
                dml_print("DML::%s: dpte_row_height = %u\n", __func__, 
*dpte_row_height);
 
                *dpte_row_width_ub = (dml_uint_t)(dml_ceil(((dml_float_t) Pitch 
* (dml_float_t) *dpte_row_height - 1), (dml_float_t) *PixelPTEReqWidth) + 
*PixelPTEReqWidth);
                *PixelPTEBytesPerRow = (dml_uint_t)((dml_float_t) 
*dpte_row_width_ub / (dml_float_t) *PixelPTEReqWidth * *PTERequestSize);
 
                // VBA_DELTA, VBA doesn't have programming value for pte row 
height linear.
-               *dpte_row_height_linear = 1 << (dml_uint_t) 
dml_floor(dml_log2(PTEBufferSizeInRequests * PixelPTEReqWidth_linear / Pitch), 
1);
+               *dpte_row_height_linear = (dml_uint_t)dml_pow(2.0, 
(int)dml_floor(dml_log2(PTEBufferSizeInRequests * PixelPTEReqWidth_linear / 
Pitch), 1));
                if (*dpte_row_height_linear > 128)
                        *dpte_row_height_linear = 128;
 
-- 
2.43.0

Reply via email to