From: Ville Syrjälä Date: Fri, 19 Sep 2025 18:08:37 +0000 (+0300) Subject: drm/i915: Deobfuscate wm linetime calculation X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09f21bee91b2d47c57e8f3ee31632c51b1799806;p=thirdparty%2Fkernel%2Flinux.git drm/i915: Deobfuscate wm linetime calculation intel_get_linetime_us() is a mess. Rewrite it in a straightforward manner. Also the checks for the !active and pixel_rate==0 are completely pointless here since we know that the plane is visible. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20250919180838.10498-3-ville.syrjala@linux.intel.com Reviewed-by: Vinod Govindapillai --- diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c index f73d1d24a488b..93cad11e0b31a 100644 --- a/drivers/gpu/drm/i915/display/skl_watermark.c +++ b/drivers/gpu/drm/i915/display/skl_watermark.c @@ -1636,24 +1636,12 @@ skl_wm_method2(u32 pixel_rate, u32 pipe_htotal, u32 latency, return ret; } -static uint_fixed_16_16_t +static int intel_get_linetime_us(const struct intel_crtc_state *crtc_state, int pixel_rate) { - struct intel_display *display = to_intel_display(crtc_state); - u32 crtc_htotal; - uint_fixed_16_16_t linetime_us; - - if (!crtc_state->hw.active) - return u32_to_fixed16(0); - - if (drm_WARN_ON(display->drm, pixel_rate == 0)) - return u32_to_fixed16(0); - - crtc_htotal = crtc_state->hw.pipe_mode.crtc_htotal; - linetime_us = div_fixed16(crtc_htotal * 1000, pixel_rate); - - return linetime_us; + return DIV_ROUND_UP(crtc_state->hw.pipe_mode.crtc_htotal * 1000, + pixel_rate); } static int @@ -1741,8 +1729,7 @@ skl_compute_wm_params(const struct intel_crtc_state *crtc_state, wp->y_tile_minimum = mul_u32_fixed16(wp->y_min_scanlines, wp->plane_blocks_per_line); - wp->linetime_us = fixed16_to_u32_round_up(intel_get_linetime_us(crtc_state, - plane_pixel_rate)); + wp->linetime_us = intel_get_linetime_us(crtc_state, plane_pixel_rate); return 0; }