Commit 7570498e authored by Maarten Lankhorst's avatar Maarten Lankhorst
Browse files

drm/i915/gen9+: Use for_each_intel_plane_on_crtc in skl_print_wm_changes, v2.



Using for_each_intel_plane_on_crtc will allow us to find all allocations
that may have changed, not just the one added by the atomic state.

This will print changes to plane allocations for crtc's when some
planes are not added to the atomic state.

Changes since v1:
- Rephrase commit message. (Ville)
- Use plane->base.id and plane->name to kill off cursor special
  case. (Ville)
- Add intel_crtc to prevent a line wrap. (Paulo)
- Line wrap debug messages.

Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/c9f7dc1a-d23a-7c16-b2b7-1c23dd07ed35@linux.intel.com


Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
parent 220b0965
Loading
Loading
Loading
Loading
+9 −23
Original line number Diff line number Diff line
@@ -4090,48 +4090,34 @@ skl_print_wm_changes(const struct drm_atomic_state *state)
		to_intel_atomic_state(state);
	const struct drm_crtc *crtc;
	const struct drm_crtc_state *cstate;
	const struct drm_plane *plane;
	const struct intel_plane *intel_plane;
	const struct drm_plane_state *pstate;
	const struct skl_ddb_allocation *old_ddb = &dev_priv->wm.skl_hw.ddb;
	const struct skl_ddb_allocation *new_ddb = &intel_state->wm_results.ddb;
	enum pipe pipe;
	int id;
	int i, j;
	int i;

	for_each_crtc_in_state(state, crtc, cstate, i) {
		pipe = to_intel_crtc(crtc)->pipe;
		const struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
		enum pipe pipe = intel_crtc->pipe;

		for_each_plane_in_state(state, plane, pstate, j) {
		for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
			const struct skl_ddb_entry *old, *new;

			intel_plane = to_intel_plane(plane);
			id = skl_wm_plane_id(intel_plane);
			old = &old_ddb->plane[pipe][id];
			new = &new_ddb->plane[pipe][id];

			if (intel_plane->pipe != pipe)
				continue;

			if (skl_ddb_entry_equal(old, new))
				continue;

			if (id != PLANE_CURSOR) {
				DRM_DEBUG_ATOMIC("[PLANE:%d:plane %d%c] ddb (%d - %d) -> (%d - %d)\n",
						 plane->base.id, id + 1,
						 pipe_name(pipe),
						 old->start, old->end,
						 new->start, new->end);
			} else {
				DRM_DEBUG_ATOMIC("[PLANE:%d:cursor %c] ddb (%d - %d) -> (%d - %d)\n",
						 plane->base.id,
						 pipe_name(pipe),
			DRM_DEBUG_ATOMIC("[PLANE:%d:%s] ddb (%d - %d) -> (%d - %d)\n",
					 intel_plane->base.base.id,
					 intel_plane->base.name,
					 old->start, old->end,
					 new->start, new->end);
		}
	}
}
}

static int
skl_compute_wm(struct drm_atomic_state *state)