drm/i915: Check SAGV wm min_ddb_alloc rather than plane_res_b
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 5 Mar 2021 15:36:07 +0000 (17:36 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 12 Mar 2021 16:18:40 +0000 (18:18 +0200)
For non-transition watermarks we are supposed to check min_ddb_alloc
rather than plane_res_b when determining if we have enough DDB space
for it. A bit too much copy pasta made me check the wrong thing.

Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Fixes: df4a50a35e2c ("drm/i915: Zero out SAGV wm when we don't have enough DDB for it")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210305153610.12177-4-ville.syrjala@linux.intel.com
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
drivers/gpu/drm/i915/intel_pm.c

index bf33f73ed2adb327fa6843eb330a0e07e3b03474..986ef5eff3744bde8b7684cae97f87a8aa34f244 100644 (file)
@@ -4989,7 +4989,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state *state,
                if (wm->trans_wm.plane_res_b >= total[plane_id])
                        memset(&wm->trans_wm, 0, sizeof(wm->trans_wm));
 
-               if (wm->sagv.wm0.plane_res_b >= total[plane_id])
+               if (wm->sagv.wm0.min_ddb_alloc > total[plane_id])
                        memset(&wm->sagv.wm0, 0, sizeof(wm->sagv.wm0));
 
                if (wm->sagv.trans_wm.plane_res_b >= total[plane_id])