On Mon, Feb 07, 2022 at 03:26:59PM +0200, Ville Syrjala wrote:
From: Ville Syrjälä ville.syrjala@linux.intel.com
Apparently I totally fumbled the loop condition when I removed the ARRAY_SIZE() stuff from the dbuf slice config lookup. Comparing the loop index with the active_pipes bitmask is utter nonsense, what we want to do is check to see if the mask is zero or not.
Cc: stable@vger.kernel.org Fixes: 05e8155afe35 ("drm/i915: Use a sentinel to terminate the dbuf slice arrays") Signed-off-by: Ville Syrjälä ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/intel_pm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 02084652fe3d..da721aea70ff 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4848,7 +4848,7 @@ static u8 compute_dbuf_slices(enum pipe pipe, u8 active_pipes, bool join_mbus, { int i;
- for (i = 0; i < dbuf_slices[i].active_pipes; i++) {
- for (i = 0; dbuf_slices[i].active_pipes != 0; i++) {
Actually looks like the tables just happened to be ordered the right way that the code never did the wrong thing until commit eef173954432 ("drm/i915: Allow !join_mbus cases for adlp+ dbuf configuration"). So this just needs backporting alongside that commit (which I flagged for 5.14+), but no crucial need to backport further than that.