From: Ville Syrjälä <[email protected]>

For some reason we're rounding up when calcualting the deinterleave
value. But the spec says we should round down. Fix it.

But I suppose this doesn't actually matter since the deinterleave
values should always be power of two. The only exception is therefore
the deinterleave==1 case, which gets handled by the max(..., 1).

Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_bw.c 
b/drivers/gpu/drm/i915/display/intel_bw.c
index bbaafcc1b6be..da294c1722b1 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -607,7 +607,7 @@ static int tgl_get_bw_info(struct intel_display *display,
        qi.deinterleave = qi.deinterleave ? : DIV_ROUND_UP(num_channels, 
is_y_tile ? 4 : 2);
 
        if (num_channels < qi.max_numchannels && DISPLAY_VER(display) >= 12)
-               qi.deinterleave = max(DIV_ROUND_UP(qi.deinterleave, 2), 1);
+               qi.deinterleave = max(qi.deinterleave / 2, 1);
 
        if (DISPLAY_VER(display) >= 12 && num_channels > qi.max_numchannels)
                drm_warn(display->drm, "Number of channels exceeds max number 
of channels.");
-- 
2.52.0

Reply via email to