From: Ilya Bakoulin <ilya.bakou...@amd.com>

[ Upstream commit 94bbf802efd0a8f13147d6664af6e653637340a8 ]

Changing PBN calculation to be more in line with spec. We don't need to
inflate PBN_NATIVE value by the 1.006 margin, since that is already
taken care of in the get_pbn_per_slot function.

Tested-by: Daniel Wheeler <daniel.whee...@amd.com>
Reviewed-by: Wenjing Liu <wenjing....@amd.com>
Acked-by: Rodrigo Siqueira <rodrigo.sique...@amd.com>
Signed-off-by: Ilya Bakoulin <ilya.bakou...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/gpu/drm/amd/display/dc/link/link_dpms.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c 
b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
index f8e01ca09d96..a3b3aec05d6b 100644
--- a/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
+++ b/drivers/gpu/drm/amd/display/dc/link/link_dpms.c
@@ -1057,18 +1057,21 @@ static struct fixed31_32 
get_pbn_from_bw_in_kbps(uint64_t kbps)
        uint32_t denominator = 1;
 
        /*
-        * margin 5300ppm + 300ppm ~ 0.6% as per spec, factor is 1.006
+        * The 1.006 factor (margin 5300ppm + 300ppm ~ 0.6% as per spec) is not
+        * required when determining PBN/time slot utilization on the link 
between
+        * us and the branch, since that overhead is already accounted for in
+        * the get_pbn_per_slot function.
+        *
         * The unit of 54/64Mbytes/sec is an arbitrary unit chosen based on
         * common multiplier to render an integer PBN for all link rate/lane
         * counts combinations
         * calculate
-        * peak_kbps *= (1006/1000)
         * peak_kbps *= (64/54)
-        * peak_kbps *= 8    convert to bytes
+        * peak_kbps /= (8 * 1000) convert to bytes
         */
 
-       numerator = 64 * PEAK_FACTOR_X1000;
-       denominator = 54 * 8 * 1000 * 1000;
+       numerator = 64;
+       denominator = 54 * 8 * 1000;
        kbps *= numerator;
        peak_kbps = dc_fixpt_from_fraction(kbps, denominator);
 
-- 
2.43.0

Reply via email to