On Fri, 22 May 2026, Ville Syrjala wrote:
From: Ville Syrjälä <[email protected]>

The TGL+ bw code has an off by one error on the num_planes
calculation, and tgl_max_bw_index() incorrectly bumps
the num_planes to 1 from 0.

That approach made sense on ICL where num_planes is more or
a less minimum number of planes to consider for the group,

Not entirely sure but sounds better to me when s/a less/less/.

Otherwise:
Reviewed-by: Michał Grzelak <[email protected]>

BR,
Michał

but on TGL+ num_planes really is a maximum number of planes,
so these adjustments no longer make any sense there.

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

diff --git a/drivers/gpu/drm/i915/display/intel_bw.c 
b/drivers/gpu/drm/i915/display/intel_bw.c
index d7b2bc80f8e3..d10eebec196e 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -636,8 +636,7 @@ static int tgl_get_bw_info(struct intel_display *display,
                        bi_next = &display->bw.max[i + 1];

                        if (clpchgroup < clperchgroup)
-                               bi_next->num_planes = (ipqdepth - clpchgroup) /
-                                                      clpchgroup + 1;
+                               bi_next->num_planes = (ipqdepth - clpchgroup) / 
clpchgroup;
                        else
                                bi_next->num_planes = 0;
                }
@@ -802,11 +801,6 @@ static unsigned int tgl_max_bw_index(struct intel_display 
*display,
{
        int i;

-       /*
-        * Let's return max bw for 0 planes
-        */
-       num_planes = max(1, num_planes);
-
        for (i = ARRAY_SIZE(display->bw.max) - 1; i >= 0; i--) {
                const struct intel_bw_info *bi =
                        &display->bw.max[i];
--
2.52.0

Reply via email to