Commit 138d2bda authored by Jani Nikula's avatar Jani Nikula
Browse files

drm/i915/display: pass display to intel_crtc_for_pipe()



Convert the intel_crtc_for_pipe() struct drm_i915_private parameter to
struct intel_display.

Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240904130633.3831492-1-jani.nikula@intel.com


Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent a37c68dd
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -724,10 +724,11 @@ static unsigned int g4x_tlb_miss_wa(int fifo_size, int width, int cpp)
static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
				const struct g4x_wm_values *wm)
{
	struct intel_display *display = &dev_priv->display;
	enum pipe pipe;

	for_each_pipe(dev_priv, pipe)
		trace_g4x_wm(intel_crtc_for_pipe(dev_priv, pipe), wm);
		trace_g4x_wm(intel_crtc_for_pipe(display, pipe), wm);

	intel_uncore_write(&dev_priv->uncore, DSPFW1(dev_priv),
			   FW_WM(wm->sr.plane, SR) |
@@ -756,10 +757,11 @@ static void g4x_write_wm_values(struct drm_i915_private *dev_priv,
static void vlv_write_wm_values(struct drm_i915_private *dev_priv,
				const struct vlv_wm_values *wm)
{
	struct intel_display *display = &dev_priv->display;
	enum pipe pipe;

	for_each_pipe(dev_priv, pipe) {
		trace_vlv_wm(intel_crtc_for_pipe(dev_priv, pipe), wm);
		trace_vlv_wm(intel_crtc_for_pipe(display, pipe), wm);

		intel_uncore_write(&dev_priv->uncore, VLV_DDL(pipe),
				   (wm->ddl[pipe].plane[PLANE_CURSOR] << DDL_CURSOR_SHIFT) |
@@ -2097,12 +2099,13 @@ static void i965_update_wm(struct drm_i915_private *dev_priv)
static struct intel_crtc *intel_crtc_for_plane(struct drm_i915_private *i915,
					       enum i9xx_plane_id i9xx_plane)
{
	struct intel_display *display = &i915->display;
	struct intel_plane *plane;

	for_each_intel_plane(&i915->drm, plane) {
		if (plane->id == PLANE_PRIMARY &&
		    plane->i9xx_plane == i9xx_plane)
			return intel_crtc_for_pipe(i915, plane->pipe);
			return intel_crtc_for_pipe(display, plane->pipe);
	}

	return NULL;
@@ -3725,6 +3728,7 @@ static void g4x_wm_get_hw_state(struct drm_i915_private *dev_priv)

static void g4x_wm_sanitize(struct drm_i915_private *dev_priv)
{
	struct intel_display *display = &dev_priv->display;
	struct intel_plane *plane;
	struct intel_crtc *crtc;

@@ -3732,7 +3736,7 @@ static void g4x_wm_sanitize(struct drm_i915_private *dev_priv)

	for_each_intel_plane(&dev_priv->drm, plane) {
		struct intel_crtc *crtc =
			intel_crtc_for_pipe(dev_priv, plane->pipe);
			intel_crtc_for_pipe(display, plane->pipe);
		struct intel_crtc_state *crtc_state =
			to_intel_crtc_state(crtc->base.state);
		struct intel_plane_state *plane_state =
@@ -3880,6 +3884,7 @@ static void vlv_wm_get_hw_state(struct drm_i915_private *dev_priv)

static void vlv_wm_sanitize(struct drm_i915_private *dev_priv)
{
	struct intel_display *display = &dev_priv->display;
	struct intel_plane *plane;
	struct intel_crtc *crtc;

@@ -3887,7 +3892,7 @@ static void vlv_wm_sanitize(struct drm_i915_private *dev_priv)

	for_each_intel_plane(&dev_priv->drm, plane) {
		struct intel_crtc *crtc =
			intel_crtc_for_pipe(dev_priv, plane->pipe);
			intel_crtc_for_pipe(display, plane->pipe);
		struct intel_crtc_state *crtc_state =
			to_intel_crtc_state(crtc->base.state);
		struct intel_plane_state *plane_state =
+2 −2
Original line number Diff line number Diff line
@@ -711,13 +711,13 @@ intel_crtc_get_plane(struct intel_crtc *crtc, enum plane_id plane_id)
int intel_plane_atomic_check(struct intel_atomic_state *state,
			     struct intel_plane *plane)
{
	struct drm_i915_private *i915 = to_i915(state->base.dev);
	struct intel_display *display = to_intel_display(state);
	struct intel_plane_state *new_plane_state =
		intel_atomic_get_new_plane_state(state, plane);
	const struct intel_plane_state *old_plane_state =
		intel_atomic_get_old_plane_state(state, plane);
	const struct intel_plane_state *new_primary_crtc_plane_state;
	struct intel_crtc *crtc = intel_crtc_for_pipe(i915, plane->pipe);
	struct intel_crtc *crtc = intel_crtc_for_pipe(display, plane->pipe);
	const struct intel_crtc_state *old_crtc_state =
		intel_atomic_get_old_crtc_state(state, crtc);
	struct intel_crtc_state *new_crtc_state =
+4 −2
Original line number Diff line number Diff line
@@ -2039,6 +2039,7 @@ static void _bxt_set_cdclk(struct drm_i915_private *dev_priv,
			   const struct intel_cdclk_config *cdclk_config,
			   enum pipe pipe)
{
	struct intel_display *display = &dev_priv->display;
	int cdclk = cdclk_config->cdclk;
	int vco = cdclk_config->vco;

@@ -2064,7 +2065,7 @@ static void _bxt_set_cdclk(struct drm_i915_private *dev_priv,
	intel_de_write(dev_priv, CDCLK_CTL, bxt_cdclk_ctl(dev_priv, cdclk_config, pipe));

	if (pipe != INVALID_PIPE)
		intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(dev_priv, pipe));
		intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(display, pipe));
}

static void bxt_set_cdclk(struct drm_i915_private *dev_priv,
@@ -3263,6 +3264,7 @@ static bool intel_cdclk_need_serialize(struct drm_i915_private *i915,

int intel_modeset_calc_cdclk(struct intel_atomic_state *state)
{
	struct intel_display *display = to_intel_display(state);
	struct drm_i915_private *dev_priv = to_i915(state->base.dev);
	const struct intel_cdclk_state *old_cdclk_state;
	struct intel_cdclk_state *new_cdclk_state;
@@ -3309,7 +3311,7 @@ int intel_modeset_calc_cdclk(struct intel_atomic_state *state)
		struct intel_crtc_state *crtc_state;

		pipe = ilog2(new_cdclk_state->active_pipes);
		crtc = intel_crtc_for_pipe(dev_priv, pipe);
		crtc = intel_crtc_for_pipe(display, pipe);

		crtc_state = intel_atomic_get_crtc_state(&state->base, crtc);
		if (IS_ERR(crtc_state))
+2 −1
Original line number Diff line number Diff line
@@ -694,6 +694,7 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector)
static enum drm_connector_status
intel_crt_load_detect(struct intel_crt *crt, enum pipe pipe)
{
	struct intel_display *display = to_intel_display(&crt->base);
	struct drm_device *dev = crt->base.base.dev;
	struct drm_i915_private *dev_priv = to_i915(dev);
	enum transcoder cpu_transcoder = (enum transcoder)pipe;
@@ -734,7 +735,7 @@ intel_crt_load_detect(struct intel_crt *crt, enum pipe pipe)
				      TRANSCONF(dev_priv, cpu_transcoder));
		/* Wait for next Vblank to substitue
		 * border color for Color info */
		intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(dev_priv, pipe));
		intel_crtc_wait_for_next_vblank(intel_crtc_for_pipe(display, pipe));
		st00 = intel_de_read8(dev_priv, _VGA_MSR_WRITE);
		status = ((st00 & (1 << 4)) != 0) ?
			connector_status_connected :
+4 −3
Original line number Diff line number Diff line
@@ -49,12 +49,12 @@ struct intel_crtc *intel_first_crtc(struct drm_i915_private *i915)
	return to_intel_crtc(drm_crtc_from_index(&i915->drm, 0));
}

struct intel_crtc *intel_crtc_for_pipe(struct drm_i915_private *i915,
struct intel_crtc *intel_crtc_for_pipe(struct intel_display *display,
				       enum pipe pipe)
{
	struct intel_crtc *crtc;

	for_each_intel_crtc(&i915->drm, crtc) {
	for_each_intel_crtc(display->drm, crtc) {
		if (crtc->pipe == pipe)
			return crtc;
	}
@@ -70,7 +70,8 @@ void intel_crtc_wait_for_next_vblank(struct intel_crtc *crtc)
void intel_wait_for_vblank_if_active(struct drm_i915_private *i915,
				     enum pipe pipe)
{
	struct intel_crtc *crtc = intel_crtc_for_pipe(i915, pipe);
	struct intel_display *display = &i915->display;
	struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);

	if (crtc->active)
		intel_crtc_wait_for_next_vblank(crtc);
Loading