Commit 30865e4a authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Simplify intel_initial_plane_config() calling convention



There's no reason the caller of intel_initial_plane_config() should
have to loop over the CRTCs. Pull the loop into the function to
make life simpler for the caller.

v2: "fix" xe

Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
Tested-by: default avatarPaz Zcharya <pazz@chromium.org>
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240202224340.30647-13-ville.syrjala@linux.intel.com


Acked-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
parent 6bfdb06d
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -415,7 +415,6 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
{
	struct drm_device *dev = &i915->drm;
	enum pipe pipe;
	struct intel_crtc *crtc;
	int ret;

	if (!HAS_DISPLAY(i915))
@@ -465,11 +464,7 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
	intel_acpi_assign_connector_fwnodes(i915);
	drm_modeset_unlock_all(dev);

	for_each_intel_crtc(dev, crtc) {
		if (!to_intel_crtc_state(crtc->base.state)->uapi.active)
			continue;
		intel_crtc_initial_plane_config(crtc);
	}
	intel_initial_plane_config(i915);

	/*
	 * Make sure hardware watermarks really match the state we read out.
+23 −17
Original line number Diff line number Diff line
@@ -357,11 +357,16 @@ static void plane_config_fini(struct intel_initial_plane_config *plane_config)
		i915_vma_put(plane_config->vma);
}

void intel_crtc_initial_plane_config(struct intel_crtc *crtc)
void intel_initial_plane_config(struct drm_i915_private *i915)
{
	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
	struct intel_crtc *crtc;

	for_each_intel_crtc(&i915->drm, crtc) {
		struct intel_initial_plane_config plane_config = {};

		if (!to_intel_crtc_state(crtc->base.state)->uapi.active)
			continue;

		/*
		 * Note that reserving the BIOS fb up front prevents us
		 * from stuffing other stolen allocations like the ring
@@ -369,7 +374,7 @@ void intel_crtc_initial_plane_config(struct intel_crtc *crtc)
		 * can even allow for smooth boot transitions if the BIOS
		 * fb is large enough for the active pipe configuration.
		 */
	dev_priv->display.funcs.display->get_initial_plane_config(crtc, &plane_config);
		i915->display.funcs.display->get_initial_plane_config(crtc, &plane_config);

		/*
		 * If the fb is shared between multiple heads, we'll
@@ -379,3 +384,4 @@ void intel_crtc_initial_plane_config(struct intel_crtc *crtc)

		plane_config_fini(&plane_config);
	}
}
+2 −2
Original line number Diff line number Diff line
@@ -6,8 +6,8 @@
#ifndef __INTEL_PLANE_INITIAL_H__
#define __INTEL_PLANE_INITIAL_H__

struct intel_crtc;
struct drm_i915_private;

void intel_crtc_initial_plane_config(struct intel_crtc *crtc);
void intel_initial_plane_config(struct drm_i915_private *i915);

#endif
+23 −17
Original line number Diff line number Diff line
@@ -267,11 +267,16 @@ static void plane_config_fini(struct intel_initial_plane_config *plane_config)
	}
}

void intel_crtc_initial_plane_config(struct intel_crtc *crtc)
void intel_initial_plane_config(struct drm_i915_private *i915)
{
	struct xe_device *xe = to_xe_device(crtc->base.dev);
	struct intel_crtc *crtc;

	for_each_intel_crtc(&i915->drm, crtc) {
		struct intel_initial_plane_config plane_config = {};

		if (!to_intel_crtc_state(crtc->base.state)->uapi.active)
			continue;

		/*
		 * Note that reserving the BIOS fb up front prevents us
		 * from stuffing other stolen allocations like the ring
@@ -279,7 +284,7 @@ void intel_crtc_initial_plane_config(struct intel_crtc *crtc)
		 * can even allow for smooth boot transitions if the BIOS
		 * fb is large enough for the active pipe configuration.
		 */
	xe->display.funcs.display->get_initial_plane_config(crtc, &plane_config);
		i915->display.funcs.display->get_initial_plane_config(crtc, &plane_config);

		/*
		 * If the fb is shared between multiple heads, we'll
@@ -289,3 +294,4 @@ void intel_crtc_initial_plane_config(struct intel_crtc *crtc)

		plane_config_fini(&plane_config);
	}
}