From: Ville Syrjälä Date: Fri, 22 May 2026 20:03:42 +0000 (+0300) Subject: drm/i915/bw: Fix DEPROGBWPCLIMIT handling on BMG X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=7ceffa346ee993796cb207a60b8d33e9674c80e6;p=thirdparty%2Flinux.git drm/i915/bw: Fix DEPROGBWPCLIMIT handling on BMG DEPROGBWPCLIMIT is specified in %, so divide by 100 instead of 10. Fortunately the deprobbwlimit is much lower than the peak memory bandwidth on BMG, so whether we take 60% or 600% of the peak bandwidth doesn't matter as the min() will pick the lower deprobbwlimit anyway. Eg. on the BMG here I get (with or without the fix): QGV 0: deratedbw=33600 peakbw=48000 QGV 1: deratedbw=53000 peakbw=456000 Signed-off-by: Ville Syrjälä Link: https://patch.msgid.link/20260522200346.17377-7-ville.syrjala@linux.intel.com Reviewed-by: Michał Grzelak --- diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c index 53e83eb1a4253..6ebf33e6e343e 100644 --- a/drivers/gpu/drm/i915/display/intel_bw.c +++ b/drivers/gpu/drm/i915/display/intel_bw.c @@ -738,7 +738,7 @@ static int xe2_hpd_get_bw_info(struct intel_display *display, } peakbw = num_channels * qi.channel_width / 8 * icl_sagv_max_dclk(&qi); - maxdebw = min(soc_bw_params->deprogbwlimit * 1000, peakbw * DEPROGBWPCLIMIT / 10); + maxdebw = min(soc_bw_params->deprogbwlimit * 1000, peakbw * DEPROGBWPCLIMIT / 100); for (i = 0; i < qi.num_points; i++) { const struct intel_qgv_point *point = &qi.points[i];