diff options
author | Fangzhi Zuo <Jerry.Zuo@amd.com> | 2025-04-08 22:11:43 +0300 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2025-09-06 00:38:41 +0300 |
commit | 12cdfb61b32a7be581ec5932e0b6a482cb098204 (patch) | |
tree | 5a456db78c71889dd22a1ecbca6b0f00341bdeed /drivers/platform/x86/intel/pmt/class.c | |
parent | 1bde5584e297921f45911ae874b0175dce5ed4b5 (diff) | |
download | linux-12cdfb61b32a7be581ec5932e0b6a482cb098204.tar.xz |
drm/amd/display: Fix pbn_div Calculation Error
[Why]
dm_mst_get_pbn_divider() returns value integer coming from
the cast from fixed point, but the casted integer will then be used
in dfixed_const to be multiplied by 4096. The cast from fixed point to integer
causes the calculation error becomes bigger when multiplied by 4096.
That makes the calculated pbn_div value becomes smaller than
it should be, which leads to the req_slot number becomes bigger.
Such error is getting reflected in 8k30 timing,
where the correct and incorrect calculated req_slot 62.9 Vs 63.1.
That makes the wrong calculation failed to light up 8k30
after a dock under HBR3 x 4.
[How]
Restore the accuracy by keeping the fraction part
calculated for the left shift operation.
Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Fangzhi Zuo <Jerry.Zuo@amd.com>
Signed-off-by: Wayne Lin <wayne.lin@amd.com>
Tested-by: Dan Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/platform/x86/intel/pmt/class.c')
0 files changed, 0 insertions, 0 deletions