drm/amd/display: Get ceiling for v_total calc
Updating certain variable blanking calculations to use ceiling function. Reviewed-by: Chris Park <chris.park@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Acked-by: Agustin Gutierrez <agustin.gutierrez@amd.com> Signed-off-by: Bing Guo <Bing.Guo@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
bc39a69a2a
commit
33df94e181
|
@ -155,9 +155,18 @@ static unsigned int calc_v_total_from_duration(
|
|||
if (duration_in_us > vrr->max_duration_in_us)
|
||||
duration_in_us = vrr->max_duration_in_us;
|
||||
|
||||
v_total = div64_u64(div64_u64(((unsigned long long)(
|
||||
duration_in_us) * (stream->timing.pix_clk_100hz / 10)),
|
||||
stream->timing.h_total), 1000);
|
||||
if (dc_is_hdmi_signal(stream->signal)) {
|
||||
uint32_t h_total_up_scaled;
|
||||
|
||||
h_total_up_scaled = stream->timing.h_total * 10000;
|
||||
v_total = div_u64((unsigned long long)duration_in_us
|
||||
* stream->timing.pix_clk_100hz + (h_total_up_scaled - 1),
|
||||
h_total_up_scaled);
|
||||
} else {
|
||||
v_total = div64_u64(div64_u64(((unsigned long long)(
|
||||
duration_in_us) * (stream->timing.pix_clk_100hz / 10)),
|
||||
stream->timing.h_total), 1000);
|
||||
}
|
||||
|
||||
/* v_total cannot be less than nominal */
|
||||
if (v_total < stream->timing.v_total) {
|
||||
|
|
Loading…
Reference in New Issue