OSDN Git Service

drm/i915: Use {active,scaled}_planes to compute ilk watermarks
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 11 Feb 2022 09:06:25 +0000 (11:06 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 16 Feb 2022 13:00:38 +0000 (15:00 +0200)
Use the {active,scaled}_planes bitmasks from the crtc state
rather than poking at the plane state directly. One step
towards eliminating the last use of the somewhat questionble
intel_atomic_crtc_state_for_each_plane_state() macro which
peeks into the plane state without actually holding the plane
mutex.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220211090629.15555-5-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_pm.c

index 1179bf3..191bb39 100644 (file)
@@ -3179,12 +3179,8 @@ static int ilk_compute_pipe_wm(struct intel_atomic_state *state,
        }
 
        pipe_wm->pipe_enabled = crtc_state->hw.active;
-       if (sprstate) {
-               pipe_wm->sprites_enabled = sprstate->uapi.visible;
-               pipe_wm->sprites_scaled = sprstate->uapi.visible &&
-                       (drm_rect_width(&sprstate->uapi.dst) != drm_rect_width(&sprstate->uapi.src) >> 16 ||
-                        drm_rect_height(&sprstate->uapi.dst) != drm_rect_height(&sprstate->uapi.src) >> 16);
-       }
+       pipe_wm->sprites_enabled = crtc_state->active_planes & BIT(PLANE_SPRITE0);
+       pipe_wm->sprites_scaled = crtc_state->scaled_planes & BIT(PLANE_SPRITE0);
 
        usable_level = max_level;