RE: [PATCH 08/14] drm/i915/sdvo: convert intel_sdvo.[ch] to struct intel_display

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Jani
> Nikula
> Sent: Wednesday, February 12, 2025 10:07 PM
> To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; intel-xe@xxxxxxxxxxxxxxxxxxxxx
> Cc: Nikula, Jani <jani.nikula@xxxxxxxxx>
> Subject: [PATCH 08/14] drm/i915/sdvo: convert intel_sdvo.[ch] to struct
> intel_display
> 
> Going forward, struct intel_display is the main display device data pointer.
> Convert as much as possible of intel_sdvo.[ch] to struct intel_display.
> 
> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/display/g4x_hdmi.c       |   3 +-
>  drivers/gpu/drm/i915/display/intel_display.c  |   6 +-
>  .../gpu/drm/i915/display/intel_pch_display.c  |   2 +-
>  drivers/gpu/drm/i915/display/intel_sdvo.c     | 281 +++++++++---------
>  drivers/gpu/drm/i915/display/intel_sdvo.h     |  10 +-
>  5 files changed, 150 insertions(+), 152 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> index 089f1a4d7720..5c5eb3d621c8 100644
> --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c
> @@ -67,7 +67,6 @@ static bool intel_hdmi_get_hw_state(struct
> intel_encoder *encoder,
>  				    enum pipe *pipe)
>  {
>  	struct intel_display *display = to_intel_display(encoder);
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>  	intel_wakeref_t wakeref;
>  	bool ret;
> @@ -77,7 +76,7 @@ static bool intel_hdmi_get_hw_state(struct
> intel_encoder *encoder,
>  	if (!wakeref)
>  		return false;
> 
> -	ret = intel_sdvo_port_enabled(dev_priv, intel_hdmi->hdmi_reg,
> pipe);
> +	ret = intel_sdvo_port_enabled(display, intel_hdmi->hdmi_reg, pipe);
> 
>  	intel_display_power_put(display, encoder->power_domain,
> wakeref);
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index 9bcbd52f23cf..e1186f46088d 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -8236,7 +8236,7 @@ void intel_setup_outputs(struct drm_i915_private
> *dev_priv)
> 
>  		if (intel_de_read(dev_priv, PCH_HDMIB) & SDVO_DETECTED)
> {
>  			/* PCH SDVOB multiplex with HDMIB */
> -			found = intel_sdvo_init(dev_priv, PCH_SDVOB,
> PORT_B);
> +			found = intel_sdvo_init(display, PCH_SDVOB,
> PORT_B);
>  			if (!found)
>  				g4x_hdmi_init(display, PCH_HDMIB,
> PORT_B);
>  			if (!found && (intel_de_read(dev_priv, PCH_DP_B) &
> DP_DETECTED)) @@ -8315,7 +8315,7 @@ void intel_setup_outputs(struct
> drm_i915_private *dev_priv)
> 
>  		if (intel_de_read(dev_priv, GEN3_SDVOB) &
> SDVO_DETECTED) {
>  			drm_dbg_kms(&dev_priv->drm, "probing SDVOB\n");
> -			found = intel_sdvo_init(dev_priv, GEN3_SDVOB,
> PORT_B);
> +			found = intel_sdvo_init(display, GEN3_SDVOB,
> PORT_B);
>  			if (!found && IS_G4X(dev_priv)) {
>  				drm_dbg_kms(&dev_priv->drm,
>  					    "probing HDMI on SDVOB\n");
> @@ -8330,7 +8330,7 @@ void intel_setup_outputs(struct drm_i915_private
> *dev_priv)
> 
>  		if (intel_de_read(dev_priv, GEN3_SDVOB) &
> SDVO_DETECTED) {
>  			drm_dbg_kms(&dev_priv->drm, "probing SDVOC\n");
> -			found = intel_sdvo_init(dev_priv, GEN3_SDVOC,
> PORT_C);
> +			found = intel_sdvo_init(display, GEN3_SDVOC,
> PORT_C);
>  		}
> 
>  		if (!found && (intel_de_read(dev_priv, GEN3_SDVOC) &
> SDVO_DETECTED)) { diff --git
> a/drivers/gpu/drm/i915/display/intel_pch_display.c
> b/drivers/gpu/drm/i915/display/intel_pch_display.c
> index 98a6b57ac956..1abe0a784570 100644
> --- a/drivers/gpu/drm/i915/display/intel_pch_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_pch_display.c
> @@ -65,7 +65,7 @@ static void assert_pch_hdmi_disabled(struct
> drm_i915_private *dev_priv,
>  	enum pipe port_pipe;
>  	bool state;
> 
> -	state = intel_sdvo_port_enabled(dev_priv, hdmi_reg, &port_pipe);
> +	state = intel_sdvo_port_enabled(display, hdmi_reg, &port_pipe);
> 
>  	INTEL_DISPLAY_STATE_WARN(display, state && port_pipe == pipe,
>  				 "PCH HDMI %c enabled on transcoder %c,
> should be disabled\n", diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c
> b/drivers/gpu/drm/i915/display/intel_sdvo.c
> index 46203d796fcc..1ae766212e8a 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> @@ -213,29 +213,29 @@ intel_sdvo_create_enhance_property(struct
> intel_sdvo *intel_sdvo,
>   */
>  static void intel_sdvo_write_sdvox(struct intel_sdvo *intel_sdvo, u32 val)  {
> -	struct drm_device *dev = intel_sdvo->base.base.dev;
> -	struct drm_i915_private *dev_priv = to_i915(dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
>  	u32 bval = val, cval = val;
>  	int i;
> 
>  	if (HAS_PCH_SPLIT(dev_priv)) {
> -		intel_de_write(dev_priv, intel_sdvo->sdvo_reg, val);
> -		intel_de_posting_read(dev_priv, intel_sdvo->sdvo_reg);
> +		intel_de_write(display, intel_sdvo->sdvo_reg, val);
> +		intel_de_posting_read(display, intel_sdvo->sdvo_reg);
>  		/*
>  		 * HW workaround, need to write this twice for issue
>  		 * that may result in first write getting masked.
>  		 */
>  		if (HAS_PCH_IBX(dev_priv)) {
> -			intel_de_write(dev_priv, intel_sdvo->sdvo_reg, val);
> -			intel_de_posting_read(dev_priv, intel_sdvo-
> >sdvo_reg);
> +			intel_de_write(display, intel_sdvo->sdvo_reg, val);
> +			intel_de_posting_read(display, intel_sdvo-
> >sdvo_reg);
>  		}
>  		return;
>  	}
> 
>  	if (intel_sdvo->base.port == PORT_B)
> -		cval = intel_de_read(dev_priv, GEN3_SDVOC);
> +		cval = intel_de_read(display, GEN3_SDVOC);
>  	else
> -		bval = intel_de_read(dev_priv, GEN3_SDVOB);
> +		bval = intel_de_read(display, GEN3_SDVOB);
> 
>  	/*
>  	 * Write the registers twice for luck. Sometimes, @@ -243,17 +243,17
> @@ static void intel_sdvo_write_sdvox(struct intel_sdvo *intel_sdvo, u32
> val)
>  	 * The BIOS does this too. Yay, magic
>  	 */
>  	for (i = 0; i < 2; i++) {
> -		intel_de_write(dev_priv, GEN3_SDVOB, bval);
> -		intel_de_posting_read(dev_priv, GEN3_SDVOB);
> +		intel_de_write(display, GEN3_SDVOB, bval);
> +		intel_de_posting_read(display, GEN3_SDVOB);
> 
> -		intel_de_write(dev_priv, GEN3_SDVOC, cval);
> -		intel_de_posting_read(dev_priv, GEN3_SDVOC);
> +		intel_de_write(display, GEN3_SDVOC, cval);
> +		intel_de_posting_read(display, GEN3_SDVOC);
>  	}
>  }
> 
>  static bool intel_sdvo_read_byte(struct intel_sdvo *intel_sdvo, u8 addr, u8
> *ch)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct i2c_msg msgs[] = {
>  		{
>  			.addr = intel_sdvo->target_addr,
> @@ -273,7 +273,7 @@ static bool intel_sdvo_read_byte(struct intel_sdvo
> *intel_sdvo, u8 addr, u8 *ch)
>  	if ((ret = i2c_transfer(intel_sdvo->i2c, msgs, 2)) == 2)
>  		return true;
> 
> -	drm_dbg_kms(&i915->drm, "i2c transfer returned %d\n", ret);
> +	drm_dbg_kms(display->drm, "i2c transfer returned %d\n", ret);
>  	return false;
>  }
> 
> @@ -415,7 +415,7 @@ static const char *sdvo_cmd_name(u8 cmd)  static
> void intel_sdvo_debug_write(struct intel_sdvo *intel_sdvo, u8 cmd,
>  				   const void *args, int args_len)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_sdvo-
> >base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	const char *cmd_name;
>  	int i, pos = 0;
>  	char buffer[64];
> @@ -436,10 +436,10 @@ static void intel_sdvo_debug_write(struct
> intel_sdvo *intel_sdvo, u8 cmd,
>  	else
>  		BUF_PRINT("(%02X)", cmd);
> 
> -	drm_WARN_ON(&dev_priv->drm, pos >= sizeof(buffer) - 1);
> +	drm_WARN_ON(display->drm, pos >= sizeof(buffer) - 1);
>  #undef BUF_PRINT
> 
> -	drm_dbg_kms(&dev_priv->drm, "%s: W: %02X %s\n",
> SDVO_NAME(intel_sdvo),
> +	drm_dbg_kms(display->drm, "%s: W: %02X %s\n",
> SDVO_NAME(intel_sdvo),
>  		    cmd, buffer);
>  }
> 
> @@ -465,7 +465,7 @@ static bool __intel_sdvo_write_cmd(struct intel_sdvo
> *intel_sdvo, u8 cmd,
>  				   const void *args, int args_len,
>  				   bool unlocked)
>  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	u8 *buf, status;
>  	struct i2c_msg *msgs;
>  	int i, ret = true;
> @@ -515,13 +515,13 @@ static bool __intel_sdvo_write_cmd(struct
> intel_sdvo *intel_sdvo, u8 cmd,
>  	else
>  		ret = __i2c_transfer(intel_sdvo->i2c, msgs, i+3);
>  	if (ret < 0) {
> -		drm_dbg_kms(&i915->drm, "I2c transfer returned %d\n",
> ret);
> +		drm_dbg_kms(display->drm, "I2c transfer returned %d\n",
> ret);
>  		ret = false;
>  		goto out;
>  	}
>  	if (ret != i+3) {
>  		/* failure in I2C transfer */
> -		drm_dbg_kms(&i915->drm, "I2c transfer returned
> %d/%d\n", ret, i+3);
> +		drm_dbg_kms(display->drm, "I2c transfer returned
> %d/%d\n", ret, i +
> +3);
>  		ret = false;
>  	}
> 
> @@ -540,7 +540,7 @@ static bool intel_sdvo_write_cmd(struct intel_sdvo
> *intel_sdvo, u8 cmd,  static bool intel_sdvo_read_response(struct intel_sdvo
> *intel_sdvo,
>  				     void *response, int response_len)  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_sdvo-
> >base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	const char *cmd_status;
>  	u8 retry = 15; /* 5 quick checks, followed by 10 long checks */
>  	u8 status;
> @@ -605,15 +605,15 @@ static bool intel_sdvo_read_response(struct
> intel_sdvo *intel_sdvo,
>  		BUF_PRINT(" %02X", ((u8 *)response)[i]);
>  	}
> 
> -	drm_WARN_ON(&dev_priv->drm, pos >= sizeof(buffer) - 1);
> +	drm_WARN_ON(display->drm, pos >= sizeof(buffer) - 1);
>  #undef BUF_PRINT
> 
> -	drm_dbg_kms(&dev_priv->drm, "%s: R: %s\n",
> +	drm_dbg_kms(display->drm, "%s: R: %s\n",
>  		    SDVO_NAME(intel_sdvo), buffer);
>  	return true;
> 
>  log_fail:
> -	drm_dbg_kms(&dev_priv->drm, "%s: R: ... failed %s\n",
> +	drm_dbg_kms(display->drm, "%s: R: ... failed %s\n",
>  		    SDVO_NAME(intel_sdvo), buffer);
>  	return false;
>  }
> @@ -1009,7 +1009,7 @@ static bool intel_sdvo_write_infoframe(struct
> intel_sdvo *intel_sdvo,
>  				       unsigned int if_index, u8 tx_rate,
>  				       const u8 *data, unsigned int length)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	u8 set_buf_index[2] = { if_index, 0 };
>  	u8 hbuf_size, tmp[8];
>  	int i;
> @@ -1022,7 +1022,7 @@ static bool intel_sdvo_write_infoframe(struct
> intel_sdvo *intel_sdvo,
>  	if (!intel_sdvo_get_hbuf_size(intel_sdvo, &hbuf_size))
>  		return false;
> 
> -	drm_dbg_kms(&i915->drm,
> +	drm_dbg_kms(display->drm,
>  		    "writing sdvo hbuf: %i, length %u, hbuf_size: %i\n",
>  		    if_index, length, hbuf_size);
> 
> @@ -1049,7 +1049,7 @@ static ssize_t intel_sdvo_read_infoframe(struct
> intel_sdvo *intel_sdvo,
>  					 unsigned int if_index,
>  					 u8 *data, unsigned int length)
>  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	u8 set_buf_index[2] = { if_index, 0 };
>  	u8 hbuf_size, tx_rate, av_split;
>  	int i;
> @@ -1079,7 +1079,7 @@ static ssize_t intel_sdvo_read_infoframe(struct
> intel_sdvo *intel_sdvo,
>  	if (!intel_sdvo_get_hbuf_size(intel_sdvo, &hbuf_size))
>  		return false;
> 
> -	drm_dbg_kms(&i915->drm,
> +	drm_dbg_kms(display->drm,
>  		    "reading sdvo hbuf: %i, length %u, hbuf_size: %i\n",
>  		    if_index, length, hbuf_size);
> 
> @@ -1100,7 +1100,7 @@ static bool
> intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  					     struct intel_crtc_state *crtc_state,
>  					     struct drm_connector_state
> *conn_state)  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_sdvo-
> >base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct hdmi_avi_infoframe *frame = &crtc_state->infoframes.avi.avi;
>  	const struct drm_display_mode *adjusted_mode =
>  		&crtc_state->hw.adjusted_mode;
> @@ -1126,7 +1126,7 @@ static bool
> intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,
> 
> HDMI_QUANTIZATION_RANGE_FULL);
> 
>  	ret = hdmi_avi_infoframe_check(frame);
> -	if (drm_WARN_ON(&dev_priv->drm, ret))
> +	if (drm_WARN_ON(display->drm, ret))
>  		return false;
> 
>  	return true;
> @@ -1135,7 +1135,7 @@ static bool
> intel_sdvo_compute_avi_infoframe(struct intel_sdvo *intel_sdvo,  static bool
> intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  					 const struct intel_crtc_state
> *crtc_state)  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_sdvo-
> >base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	u8 sdvo_data[HDMI_INFOFRAME_SIZE(AVI)];
>  	const union hdmi_infoframe *frame = &crtc_state->infoframes.avi;
>  	ssize_t len;
> @@ -1144,12 +1144,12 @@ static bool intel_sdvo_set_avi_infoframe(struct
> intel_sdvo *intel_sdvo,
>  	     intel_hdmi_infoframe_enable(HDMI_INFOFRAME_TYPE_AVI)) ==
> 0)
>  		return true;
> 
> -	if (drm_WARN_ON(&dev_priv->drm,
> +	if (drm_WARN_ON(display->drm,
>  			frame->any.type != HDMI_INFOFRAME_TYPE_AVI))
>  		return false;
> 
>  	len = hdmi_infoframe_pack_only(frame, sdvo_data,
> sizeof(sdvo_data));
> -	if (drm_WARN_ON(&dev_priv->drm, len < 0))
> +	if (drm_WARN_ON(display->drm, len < 0))
>  		return false;
> 
>  	return intel_sdvo_write_infoframe(intel_sdvo,
> SDVO_HBUF_INDEX_AVI_IF, @@ -1160,7 +1160,7 @@ static bool
> intel_sdvo_set_avi_infoframe(struct intel_sdvo *intel_sdvo,  static void
> intel_sdvo_get_avi_infoframe(struct intel_sdvo *intel_sdvo,
>  					 struct intel_crtc_state *crtc_state)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	u8 sdvo_data[HDMI_INFOFRAME_SIZE(AVI)];
>  	union hdmi_infoframe *frame = &crtc_state->infoframes.avi;
>  	ssize_t len;
> @@ -1172,7 +1172,7 @@ static void intel_sdvo_get_avi_infoframe(struct
> intel_sdvo *intel_sdvo,
>  	len = intel_sdvo_read_infoframe(intel_sdvo,
> SDVO_HBUF_INDEX_AVI_IF,
>  					sdvo_data, sizeof(sdvo_data));
>  	if (len < 0) {
> -		drm_dbg_kms(&i915->drm, "failed to read AVI
> infoframe\n");
> +		drm_dbg_kms(display->drm, "failed to read AVI
> infoframe\n");
>  		return;
>  	} else if (len == 0) {
>  		return;
> @@ -1183,12 +1183,12 @@ static void intel_sdvo_get_avi_infoframe(struct
> intel_sdvo *intel_sdvo,
> 
>  	ret = hdmi_infoframe_unpack(frame, sdvo_data, len);
>  	if (ret) {
> -		drm_dbg_kms(&i915->drm, "Failed to unpack AVI
> infoframe\n");
> +		drm_dbg_kms(display->drm, "Failed to unpack AVI
> infoframe\n");
>  		return;
>  	}
> 
>  	if (frame->any.type != HDMI_INFOFRAME_TYPE_AVI)
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Found the wrong infoframe type 0x%x (expected
> 0x%02x)\n",
>  			    frame->any.type, HDMI_INFOFRAME_TYPE_AVI);  }
> @@ -1196,7 +1196,7 @@ static void intel_sdvo_get_avi_infoframe(struct
> intel_sdvo *intel_sdvo,  static void intel_sdvo_get_eld(struct intel_sdvo
> *intel_sdvo,
>  			       struct intel_crtc_state *crtc_state)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	ssize_t len;
>  	u8 val;
> 
> @@ -1212,7 +1212,7 @@ static void intel_sdvo_get_eld(struct intel_sdvo
> *intel_sdvo,
>  	len = intel_sdvo_read_infoframe(intel_sdvo,
> SDVO_HBUF_INDEX_ELD,
>  					crtc_state->eld, sizeof(crtc_state-
> >eld));
>  	if (len < 0)
> -		drm_dbg_kms(&i915->drm, "failed to read ELD\n");
> +		drm_dbg_kms(display->drm, "failed to read ELD\n");
>  }
> 
>  static bool intel_sdvo_set_tv_format(struct intel_sdvo *intel_sdvo, @@ -
> 1282,7 +1282,7 @@ intel_sdvo_get_preferred_input_mode(struct
> intel_sdvo *intel_sdvo,
> 
>  static int i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)  {
> -	struct drm_i915_private *dev_priv = to_i915(pipe_config->uapi.crtc-
> >dev);
> +	struct intel_display *display = to_intel_display(pipe_config);
>  	unsigned int dotclock = pipe_config->hw.adjusted_mode.crtc_clock;
>  	struct dpll *clock = &pipe_config->dpll;
> 
> @@ -1303,7 +1303,7 @@ static int i9xx_adjust_sdvo_tv_clock(struct
> intel_crtc_state *pipe_config)
>  		clock->m1 = 12;
>  		clock->m2 = 8;
>  	} else {
> -		drm_dbg_kms(&dev_priv->drm,
> +		drm_dbg_kms(display->drm,
>  			    "SDVO TV clock out of range: %i\n", dotclock);
>  		return -EINVAL;
>  	}
> @@ -1359,6 +1359,7 @@ static int intel_sdvo_compute_config(struct
> intel_encoder *encoder,
>  				     struct intel_crtc_state *pipe_config,
>  				     struct drm_connector_state *conn_state)
> {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *i915 = to_i915(encoder->base.dev);
>  	struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
>  	struct intel_sdvo_connector *intel_sdvo_connector = @@ -1366,13
> +1367,13 @@ static int intel_sdvo_compute_config(struct intel_encoder
> *encoder,
>  	struct drm_display_mode *adjusted_mode = &pipe_config-
> >hw.adjusted_mode;
>  	struct drm_display_mode *mode = &pipe_config->hw.mode;
> 
> -	if (HAS_PCH_SPLIT(to_i915(encoder->base.dev))) {
> +	if (HAS_PCH_SPLIT(i915)) {
>  		pipe_config->has_pch_encoder = true;
>  		if (!intel_fdi_compute_pipe_bpp(pipe_config))
>  			return -EINVAL;
>  	}
> 
> -	drm_dbg_kms(&i915->drm, "forcing bpc to 8 for SDVO\n");
> +	drm_dbg_kms(display->drm, "forcing bpc to 8 for SDVO\n");
>  	/* FIXME: Don't increase pipe_bpp */
>  	pipe_config->pipe_bpp = 8*3;
>  	pipe_config->sink_format = INTEL_OUTPUT_FORMAT_RGB; @@ -
> 1451,7 +1452,7 @@ static int intel_sdvo_compute_config(struct
> intel_encoder *encoder,
> 
>  	if (!intel_sdvo_compute_avi_infoframe(intel_sdvo,
>  					      pipe_config, conn_state)) {
> -		drm_dbg_kms(&i915->drm, "bad AVI infoframe\n");
> +		drm_dbg_kms(display->drm, "bad AVI infoframe\n");
>  		return -EINVAL;
>  	}
> 
> @@ -1525,6 +1526,7 @@ static void intel_sdvo_pre_enable(struct
> intel_atomic_state *state,
>  				  const struct intel_crtc_state *crtc_state,
>  				  const struct drm_connector_state
> *conn_state)  {
> +	struct intel_display *display = to_intel_display(intel_encoder);
>  	struct drm_i915_private *dev_priv = to_i915(intel_encoder-
> >base.dev);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	const struct drm_display_mode *adjusted_mode = &crtc_state-
> >hw.adjusted_mode; @@ -1570,7 +1572,7 @@ static void
> intel_sdvo_pre_enable(struct intel_atomic_state *state,
>  		intel_sdvo_get_dtd_from_mode(&output_dtd, mode);
>  	}
>  	if (!intel_sdvo_set_output_timing(intel_sdvo, &output_dtd))
> -		drm_info(&dev_priv->drm,
> +		drm_info(display->drm,
>  			 "Setting output timings on %s failed\n",
>  			 SDVO_NAME(intel_sdvo));
> 
> @@ -1600,13 +1602,13 @@ static void intel_sdvo_pre_enable(struct
> intel_atomic_state *state,
>  	if (IS_TV(intel_sdvo_connector) || IS_LVDS(intel_sdvo_connector))
>  		input_dtd.part2.sdvo_flags = intel_sdvo->dtd_sdvo_flags;
>  	if (!intel_sdvo_set_input_timing(intel_sdvo, &input_dtd))
> -		drm_info(&dev_priv->drm,
> +		drm_info(display->drm,
>  			 "Setting input timings on %s failed\n",
>  			 SDVO_NAME(intel_sdvo));
> 
>  	switch (crtc_state->pixel_multiplier) {
>  	default:
> -		drm_WARN(&dev_priv->drm, 1,
> +		drm_WARN(display->drm, 1,
>  			 "unknown pixel multiplier specified\n");
>  		fallthrough;
>  	case 1: rate = SDVO_CLOCK_RATE_MULT_1X; break; @@ -1617,14
> +1619,14 @@ static void intel_sdvo_pre_enable(struct intel_atomic_state
> *state,
>  		return;
> 
>  	/* Set the SDVO control regs. */
> -	if (DISPLAY_VER(dev_priv) >= 4) {
> +	if (DISPLAY_VER(display) >= 4) {
>  		/* The real mode polarity is set by the SDVO commands,
> using
>  		 * struct intel_sdvo_dtd. */
>  		sdvox = SDVO_VSYNC_ACTIVE_HIGH |
> SDVO_HSYNC_ACTIVE_HIGH;
> -		if (DISPLAY_VER(dev_priv) < 5)
> +		if (DISPLAY_VER(display) < 5)
>  			sdvox |= SDVO_BORDER_ENABLE;
>  	} else {
> -		sdvox = intel_de_read(dev_priv, intel_sdvo->sdvo_reg);
> +		sdvox = intel_de_read(display, intel_sdvo->sdvo_reg);
>  		if (intel_sdvo->base.port == PORT_B)
>  			sdvox &= SDVOB_PRESERVE_MASK;
>  		else
> @@ -1637,10 +1639,10 @@ static void intel_sdvo_pre_enable(struct
> intel_atomic_state *state,
>  	else
>  		sdvox |= SDVO_PIPE_SEL(crtc->pipe);
> 
> -	if (DISPLAY_VER(dev_priv) >= 4) {
> +	if (DISPLAY_VER(display) >= 4) {
>  		/* done in crtc_mode_set as the dpll_md reg must be
> written early */
> -	} else if (IS_I945G(dev_priv) || IS_I945GM(dev_priv) ||
> -		   IS_G33(dev_priv) || IS_PINEVIEW(dev_priv)) {
> +	} else if (display->platform.i945g || display->platform.i945gm ||
> +		   display->platform.g33 || display->platform.pineview) {
>  		/* done in crtc_mode_set as it lives inside the dpll register
> */
>  	} else {
>  		sdvox |= (crtc_state->pixel_multiplier - 1) @@ -1648,7
> +1650,7 @@ static void intel_sdvo_pre_enable(struct intel_atomic_state
> *state,
>  	}
> 
>  	if (input_dtd.part2.sdvo_flags & SDVO_NEED_TO_STALL &&
> -	    DISPLAY_VER(dev_priv) < 5)
> +	    DISPLAY_VER(display) < 5)
>  		sdvox |= SDVO_STALL_SELECT;
>  	intel_sdvo_write_sdvox(intel_sdvo, sdvox);  } @@ -1665,17 +1667,18
> @@ static bool intel_sdvo_connector_get_hw_state(struct intel_connector
> *connector)
>  	return active_outputs & intel_sdvo_connector->output_flag;
>  }
> 
> -bool intel_sdvo_port_enabled(struct drm_i915_private *dev_priv,
> +bool intel_sdvo_port_enabled(struct intel_display *display,
>  			     i915_reg_t sdvo_reg, enum pipe *pipe)  {
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
>  	u32 val;
> 
> -	val = intel_de_read(dev_priv, sdvo_reg);
> +	val = intel_de_read(display, sdvo_reg);
> 
>  	/* asserts want to know the pipe even if the port is disabled */
>  	if (HAS_PCH_CPT(dev_priv))
>  		*pipe = (val & SDVO_PIPE_SEL_MASK_CPT) >>
> SDVO_PIPE_SEL_SHIFT_CPT;
> -	else if (IS_CHERRYVIEW(dev_priv))
> +	else if (display->platform.cherryview)
>  		*pipe = (val & SDVO_PIPE_SEL_MASK_CHV) >>
> SDVO_PIPE_SEL_SHIFT_CHV;
>  	else
>  		*pipe = (val & SDVO_PIPE_SEL_MASK) >>
> SDVO_PIPE_SEL_SHIFT; @@ -1686,14 +1689,14 @@ bool
> intel_sdvo_port_enabled(struct drm_i915_private *dev_priv,  static bool
> intel_sdvo_get_hw_state(struct intel_encoder *encoder,
>  				    enum pipe *pipe)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
>  	u16 active_outputs = 0;
>  	bool ret;
> 
>  	intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
> 
> -	ret = intel_sdvo_port_enabled(dev_priv, intel_sdvo->sdvo_reg,
> pipe);
> +	ret = intel_sdvo_port_enabled(display, intel_sdvo->sdvo_reg, pipe);
> 
>  	return ret || active_outputs;
>  }
> @@ -1701,8 +1704,7 @@ static bool intel_sdvo_get_hw_state(struct
> intel_encoder *encoder,  static void intel_sdvo_get_config(struct
> intel_encoder *encoder,
>  				  struct intel_crtc_state *pipe_config)  {
> -	struct drm_device *dev = encoder->base.dev;
> -	struct drm_i915_private *dev_priv = to_i915(dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
>  	struct intel_sdvo_dtd dtd;
>  	int encoder_pixel_multiplier = 0;
> @@ -1713,7 +1715,7 @@ static void intel_sdvo_get_config(struct
> intel_encoder *encoder,
> 
>  	pipe_config->output_types |= BIT(INTEL_OUTPUT_SDVO);
> 
> -	sdvox = intel_de_read(dev_priv, intel_sdvo->sdvo_reg);
> +	sdvox = intel_de_read(display, intel_sdvo->sdvo_reg);
> 
>  	ret = intel_sdvo_get_input_timing(intel_sdvo, &dtd);
>  	if (!ret) {
> @@ -1721,7 +1723,7 @@ static void intel_sdvo_get_config(struct
> intel_encoder *encoder,
>  		 * Some sdvo encoders are not spec compliant and don't
>  		 * implement the mandatory get_timings function.
>  		 */
> -		drm_dbg(&dev_priv->drm, "failed to retrieve SDVO DTD\n");
> +		drm_dbg_kms(display->drm, "failed to retrieve SDVO
> DTD\n");
>  		pipe_config->quirks |=
> PIPE_CONFIG_QUIRK_MODE_SYNC_FLAGS;
>  	} else {
>  		if (dtd.part2.dtd_flags & DTD_FLAG_HSYNC_POSITIVE) @@ -
> 1744,7 +1746,7 @@ static void intel_sdvo_get_config(struct intel_encoder
> *encoder,
>  	 * encoder->get_config we so already have a valid pixel multiplier on
> all
>  	 * other platforms.
>  	 */
> -	if (IS_I915G(dev_priv) || IS_I915GM(dev_priv)) {
> +	if (display->platform.i915g || display->platform.i915gm) {
>  		pipe_config->pixel_multiplier =
>  			((sdvox & SDVO_PORT_MULTIPLY_MASK)
>  			 >> SDVO_PORT_MULTIPLY_SHIFT) + 1;
> @@ -1773,7 +1775,7 @@ static void intel_sdvo_get_config(struct
> intel_encoder *encoder,
>  		}
>  	}
> 
> -	drm_WARN(dev,
> +	drm_WARN(display->drm,
>  		 encoder_pixel_multiplier != pipe_config->pixel_multiplier,
>  		 "SDVO pixel multiplier mismatch, port: %i, encoder: %i\n",
>  		 pipe_config->pixel_multiplier, encoder_pixel_multiplier);
> @@ -1849,7 +1851,7 @@ static void intel_disable_sdvo(struct
> intel_atomic_state *state,
>  		intel_sdvo_set_encoder_power_state(intel_sdvo,
>  						   DRM_MODE_DPMS_OFF);
> 
> -	temp = intel_de_read(dev_priv, intel_sdvo->sdvo_reg);
> +	temp = intel_de_read(display, intel_sdvo->sdvo_reg);
> 
>  	temp &= ~SDVO_ENABLE;
>  	intel_sdvo_write_sdvox(intel_sdvo, temp); @@ -1900,8 +1902,7 @@
> static void intel_enable_sdvo(struct intel_atomic_state *state,
>  			      const struct intel_crtc_state *pipe_config,
>  			      const struct drm_connector_state *conn_state)  {
> -	struct drm_device *dev = encoder->base.dev;
> -	struct drm_i915_private *dev_priv = to_i915(dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
>  	struct intel_sdvo_connector *intel_sdvo_connector =
>  		to_intel_sdvo_connector(conn_state->connector);
> @@ -1911,7 +1912,7 @@ static void intel_enable_sdvo(struct
> intel_atomic_state *state,
>  	int i;
>  	bool success;
> 
> -	temp = intel_de_read(dev_priv, intel_sdvo->sdvo_reg);
> +	temp = intel_de_read(display, intel_sdvo->sdvo_reg);
>  	temp |= SDVO_ENABLE;
>  	intel_sdvo_write_sdvox(intel_sdvo, temp);
> 
> @@ -1926,7 +1927,7 @@ static void intel_enable_sdvo(struct
> intel_atomic_state *state,
>  	 * a given it the status is a success, we succeeded.
>  	 */
>  	if (success && !input1) {
> -		drm_dbg_kms(&dev_priv->drm,
> +		drm_dbg_kms(display->drm,
>  			    "First %s output reported failure to sync\n",
>  			    SDVO_NAME(intel_sdvo));
>  	}
> @@ -1941,12 +1942,13 @@ static enum drm_mode_status
> intel_sdvo_mode_valid(struct drm_connector *connector,
>  		      const struct drm_display_mode *mode)  {
> +	struct intel_display *display = to_intel_display(connector->dev);

Why not &i915->display and declare this after i915 declaration

Otherwise LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@xxxxxxxxx>


>  	struct drm_i915_private *i915 = to_i915(connector->dev);
>  	struct intel_sdvo *intel_sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	struct intel_sdvo_connector *intel_sdvo_connector =
>  		to_intel_sdvo_connector(connector);
>  	bool has_hdmi_sink = intel_has_hdmi_sink(intel_sdvo_connector,
> connector->state);
> -	int max_dotclk = i915->display.cdclk.max_dotclk_freq;
> +	int max_dotclk = display->cdclk.max_dotclk_freq;
>  	enum drm_mode_status status;
>  	int clock = mode->clock;
> 
> @@ -1982,14 +1984,15 @@ intel_sdvo_mode_valid(struct drm_connector
> *connector,
> 
>  static bool intel_sdvo_get_capabilities(struct intel_sdvo *intel_sdvo, struct
> intel_sdvo_caps *caps)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
> +
>  	BUILD_BUG_ON(sizeof(*caps) != 8);
>  	if (!intel_sdvo_get_value(intel_sdvo,
>  				  SDVO_CMD_GET_DEVICE_CAPS,
>  				  caps, sizeof(*caps)))
>  		return false;
> 
> -	drm_dbg_kms(&i915->drm, "SDVO capabilities:\n"
> +	drm_dbg_kms(display->drm, "SDVO capabilities:\n"
>  		    "  vendor_id: %d\n"
>  		    "  device_id: %d\n"
>  		    "  device_rev_id: %d\n"
> @@ -2031,17 +2034,17 @@ static u8 intel_sdvo_get_colorimetry_cap(struct
> intel_sdvo *intel_sdvo)
> 
>  static u16 intel_sdvo_get_hotplug_support(struct intel_sdvo *intel_sdvo)  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_sdvo-
> >base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	u16 hotplug;
> 
> -	if (!I915_HAS_HOTPLUG(dev_priv))
> +	if (!I915_HAS_HOTPLUG(display))
>  		return 0;
> 
>  	/*
>  	 * HW Erratum: SDVO Hotplug is broken on all i945G chips, there's
> noise
>  	 * on the line.
>  	 */
> -	if (IS_I945G(dev_priv) || IS_I945GM(dev_priv))
> +	if (display->platform.i945g || display->platform.i945gm)
>  		return 0;
> 
>  	if (!intel_sdvo_get_value(intel_sdvo,
> SDVO_CMD_GET_HOT_PLUG_SUPPORT, @@ -2138,13 +2141,12 @@ static
> enum drm_connector_status  intel_sdvo_detect(struct drm_connector
> *connector, bool force)  {
>  	struct intel_display *display = to_intel_display(connector->dev);
> -	struct drm_i915_private *i915 = to_i915(connector->dev);
>  	struct intel_sdvo *intel_sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	struct intel_sdvo_connector *intel_sdvo_connector =
> to_intel_sdvo_connector(connector);
>  	enum drm_connector_status ret;
>  	u16 response;
> 
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s]\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n",
>  		    connector->base.id, connector->name);
> 
>  	if (!intel_display_device_enabled(display))
> @@ -2162,7 +2164,7 @@ intel_sdvo_detect(struct drm_connector
> *connector, bool force)
>  				  &response, 2))
>  		return connector_status_unknown;
> 
> -	drm_dbg_kms(&i915->drm, "SDVO response %d %d [%x]\n",
> +	drm_dbg_kms(display->drm, "SDVO response %d %d [%x]\n",
>  		    response & 0xff, response >> 8,
>  		    intel_sdvo_connector->output_flag);
> 
> @@ -2301,7 +2303,6 @@ static int intel_sdvo_get_tv_modes(struct
> drm_connector *connector)  {
>  	struct intel_display *display = to_intel_display(connector->dev);
>  	struct intel_sdvo *intel_sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
>  	struct intel_sdvo_connector *intel_sdvo_connector =
>  		to_intel_sdvo_connector(connector);
>  	const struct drm_connector_state *conn_state = connector->state;
> @@ -2310,7 +2311,7 @@ static int intel_sdvo_get_tv_modes(struct
> drm_connector *connector)
>  	int num_modes = 0;
>  	int i;
> 
> -	drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s]\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n",
>  		    connector->base.id, connector->name);
> 
>  	if (!intel_display_driver_check_access(display))
> @@ -2352,9 +2353,9 @@ static int intel_sdvo_get_tv_modes(struct
> drm_connector *connector)
> 
>  static int intel_sdvo_get_lvds_modes(struct drm_connector *connector)  {
> -	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> +	struct intel_display *display = to_intel_display(connector->dev);
> 
> -	drm_dbg_kms(&dev_priv->drm, "[CONNECTOR:%d:%s]\n",
> +	drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s]\n",
>  		    connector->base.id, connector->name);
> 
>  	return intel_panel_get_modes(to_intel_connector(connector));
> @@ -2618,14 +2619,14 @@ static struct intel_sdvo_ddc *
> intel_sdvo_select_ddc_bus(struct intel_sdvo *sdvo,
>  			  struct intel_sdvo_connector *connector)  {
> -	struct drm_i915_private *dev_priv = to_i915(sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&sdvo->base);
>  	const struct sdvo_device_mapping *mapping;
>  	int ddc_bus;
> 
>  	if (sdvo->base.port == PORT_B)
> -		mapping = &dev_priv->display.vbt.sdvo_mappings[0];
> +		mapping = &display->vbt.sdvo_mappings[0];
>  	else
> -		mapping = &dev_priv->display.vbt.sdvo_mappings[1];
> +		mapping = &display->vbt.sdvo_mappings[1];
> 
>  	if (mapping->initialized)
>  		ddc_bus = (mapping->ddc_pin & 0xf0) >> 4; @@ -2642,14
> +2643,13 @@ static void  intel_sdvo_select_i2c_bus(struct intel_sdvo *sdvo)
> {
>  	struct intel_display *display = to_intel_display(&sdvo->base);
> -	struct drm_i915_private *dev_priv = to_i915(sdvo->base.base.dev);
>  	const struct sdvo_device_mapping *mapping;
>  	u8 pin;
> 
>  	if (sdvo->base.port == PORT_B)
> -		mapping = &dev_priv->display.vbt.sdvo_mappings[0];
> +		mapping = &display->vbt.sdvo_mappings[0];
>  	else
> -		mapping = &dev_priv->display.vbt.sdvo_mappings[1];
> +		mapping = &display->vbt.sdvo_mappings[1];
> 
>  	if (mapping->initialized &&
>  	    intel_gmbus_is_valid_pin(display, mapping->i2c_pin)) @@ -2657,7
> +2657,7 @@ intel_sdvo_select_i2c_bus(struct intel_sdvo *sdvo)
>  	else
>  		pin = GMBUS_PIN_DPB;
> 
> -	drm_dbg_kms(&dev_priv->drm, "[ENCODER:%d:%s] I2C pin %d,
> target addr 0x%x\n",
> +	drm_dbg_kms(display->drm, "[ENCODER:%d:%s] I2C pin %d, target
> addr
> +0x%x\n",
>  		    sdvo->base.base.base.id, sdvo->base.base.name,
>  		    pin, sdvo->target_addr);
> 
> @@ -2687,15 +2687,15 @@ intel_sdvo_is_hdmi_connector(struct intel_sdvo
> *intel_sdvo)  static u8  intel_sdvo_get_target_addr(struct intel_sdvo *sdvo)
> {
> -	struct drm_i915_private *dev_priv = to_i915(sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&sdvo->base);
>  	const struct sdvo_device_mapping *my_mapping, *other_mapping;
> 
>  	if (sdvo->base.port == PORT_B) {
> -		my_mapping = &dev_priv->display.vbt.sdvo_mappings[0];
> -		other_mapping = &dev_priv->display.vbt.sdvo_mappings[1];
> +		my_mapping = &display->vbt.sdvo_mappings[0];
> +		other_mapping = &display->vbt.sdvo_mappings[1];
>  	} else {
> -		my_mapping = &dev_priv->display.vbt.sdvo_mappings[1];
> -		other_mapping = &dev_priv->display.vbt.sdvo_mappings[0];
> +		my_mapping = &display->vbt.sdvo_mappings[1];
> +		other_mapping = &display->vbt.sdvo_mappings[0];
>  	}
> 
>  	/* If the BIOS described our SDVO device, take advantage of it. */
> @@ -2731,7 +2731,7 @@ static int  intel_sdvo_connector_init(struct
> intel_sdvo_connector *connector,
>  			  struct intel_sdvo *encoder)
>  {
> -	struct drm_i915_private *i915 = to_i915(encoder->base.base.dev);
> +	struct intel_display *display = to_intel_display(&encoder->base);
>  	struct intel_sdvo_ddc *ddc = NULL;
>  	int ret;
> 
> @@ -2756,7 +2756,7 @@ intel_sdvo_connector_init(struct
> intel_sdvo_connector *connector,
>  	intel_connector_attach_encoder(&connector->base, &encoder-
> >base);
> 
>  	if (ddc)
> -		drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] using
> %s\n",
> +		drm_dbg_kms(display->drm, "[CONNECTOR:%d:%s] using
> %s\n",
>  			    connector->base.base.base.id, connector-
> >base.base.name,
>  			    ddc->ddc.name);
> 
> @@ -2799,14 +2799,14 @@ static struct intel_sdvo_connector
> *intel_sdvo_connector_alloc(void)  static bool  intel_sdvo_dvi_init(struct
> intel_sdvo *intel_sdvo, u16 type)  {
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_encoder *encoder = &intel_sdvo->base.base;
>  	struct drm_connector *connector;
>  	struct intel_encoder *intel_encoder = to_intel_encoder(encoder);
> -	struct drm_i915_private *i915 = to_i915(intel_encoder->base.dev);
>  	struct intel_connector *intel_connector;
>  	struct intel_sdvo_connector *intel_sdvo_connector;
> 
> -	drm_dbg_kms(&i915->drm, "initialising DVI type 0x%x\n", type);
> +	drm_dbg_kms(display->drm, "initialising DVI type 0x%x\n", type);
> 
>  	intel_sdvo_connector = intel_sdvo_connector_alloc();
>  	if (!intel_sdvo_connector)
> @@ -2852,13 +2852,13 @@ intel_sdvo_dvi_init(struct intel_sdvo
> *intel_sdvo, u16 type)  static bool  intel_sdvo_tv_init(struct intel_sdvo
> *intel_sdvo, u16 type)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_encoder *encoder = &intel_sdvo->base.base;
>  	struct drm_connector *connector;
>  	struct intel_connector *intel_connector;
>  	struct intel_sdvo_connector *intel_sdvo_connector;
> 
> -	drm_dbg_kms(&i915->drm, "initialising TV type 0x%x\n", type);
> +	drm_dbg_kms(display->drm, "initialising TV type 0x%x\n", type);
> 
>  	intel_sdvo_connector = intel_sdvo_connector_alloc();
>  	if (!intel_sdvo_connector)
> @@ -2892,13 +2892,13 @@ intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo,
> u16 type)  static bool  intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo,
> u16 type)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_encoder *encoder = &intel_sdvo->base.base;
>  	struct drm_connector *connector;
>  	struct intel_connector *intel_connector;
>  	struct intel_sdvo_connector *intel_sdvo_connector;
> 
> -	drm_dbg_kms(&i915->drm, "initialising analog type 0x%x\n", type);
> +	drm_dbg_kms(display->drm, "initialising analog type 0x%x\n", type);
> 
>  	intel_sdvo_connector = intel_sdvo_connector_alloc();
>  	if (!intel_sdvo_connector)
> @@ -2926,12 +2926,11 @@ intel_sdvo_lvds_init(struct intel_sdvo
> *intel_sdvo, u16 type)  {
>  	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_encoder *encoder = &intel_sdvo->base.base;
> -	struct drm_i915_private *i915 = to_i915(encoder->dev);
>  	struct drm_connector *connector;
>  	struct intel_connector *intel_connector;
>  	struct intel_sdvo_connector *intel_sdvo_connector;
> 
> -	drm_dbg_kms(&i915->drm, "initialising LVDS type 0x%x\n", type);
> +	drm_dbg_kms(display->drm, "initialising LVDS type 0x%x\n", type);
> 
>  	intel_sdvo_connector = intel_sdvo_connector_alloc();
>  	if (!intel_sdvo_connector)
> @@ -2961,12 +2960,12 @@ intel_sdvo_lvds_init(struct intel_sdvo
> *intel_sdvo, u16 type)
>  	intel_panel_add_vbt_sdvo_fixed_mode(intel_connector);
> 
>  	if (!intel_panel_preferred_fixed_mode(intel_connector)) {
> -		mutex_lock(&i915->drm.mode_config.mutex);
> +		mutex_lock(&display->drm->mode_config.mutex);
> 
>  		intel_ddc_get_modes(connector, connector->ddc);
>  		intel_panel_add_edid_fixed_modes(intel_connector, false);
> 
> -		mutex_unlock(&i915->drm.mode_config.mutex);
> +		mutex_unlock(&display->drm->mode_config.mutex);
>  	}
> 
>  	intel_panel_init(intel_connector, NULL); @@ -3015,7 +3014,7 @@
> static bool intel_sdvo_output_init(struct intel_sdvo *sdvo, u16 type)  static
> bool  intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	static const u16 probe_order[] = {
>  		SDVO_OUTPUT_TMDS0,
>  		SDVO_OUTPUT_TMDS1,
> @@ -3034,7 +3033,7 @@ intel_sdvo_output_setup(struct intel_sdvo
> *intel_sdvo)
>  	flags = intel_sdvo_filter_output_flags(intel_sdvo-
> >caps.output_flags);
> 
>  	if (flags == 0) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "%s: Unknown SDVO output type (0x%04x)\n",
>  			    SDVO_NAME(intel_sdvo), intel_sdvo-
> >caps.output_flags);
>  		return false;
> @@ -3057,11 +3056,11 @@ intel_sdvo_output_setup(struct intel_sdvo
> *intel_sdvo)
> 
>  static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo)  {
> -	struct drm_device *dev = intel_sdvo->base.base.dev;
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_connector *connector, *tmp;
> 
>  	list_for_each_entry_safe(connector, tmp,
> -				 &dev->mode_config.connector_list, head) {
> +				 &display->drm-
> >mode_config.connector_list, head) {
>  		if (intel_attached_encoder(to_intel_connector(connector))
> == &intel_sdvo->base) {
>  			drm_connector_unregister(connector);
>  			intel_connector_destroy(connector);
> @@ -3073,7 +3072,7 @@ static bool intel_sdvo_tv_create_property(struct
> intel_sdvo *intel_sdvo,
>  					  struct intel_sdvo_connector
> *intel_sdvo_connector,
>  					  int type)
>  {
> -	struct drm_device *dev = intel_sdvo->base.base.dev;
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct intel_sdvo_tv_format format;
>  	u32 format_map, i;
> 
> @@ -3098,7 +3097,7 @@ static bool intel_sdvo_tv_create_property(struct
> intel_sdvo *intel_sdvo,
> 
> 
>  	intel_sdvo_connector->tv_format =
> -		drm_property_create(dev, DRM_MODE_PROP_ENUM,
> +		drm_property_create(display->drm,
> DRM_MODE_PROP_ENUM,
>  				    "mode", intel_sdvo_connector-
> >format_supported_num);
>  	if (!intel_sdvo_connector->tv_format)
>  		return false;
> @@ -3120,12 +3119,12 @@ static bool intel_sdvo_tv_create_property(struct
> intel_sdvo *intel_sdvo,
>  		    !intel_sdvo_get_value(intel_sdvo,
> SDVO_CMD_GET_##NAME, &response, 2)) \
>  			return false; \
>  		intel_sdvo_connector->name = \
> -			drm_property_create_range(dev, 0, #name, 0,
> data_value[0]); \
> +			drm_property_create_range(display->drm, 0, #name,
> 0, data_value[0]);
> +\
>  		if (!intel_sdvo_connector->name) return false; \
>  		state_assignment = response; \
>  		drm_object_attach_property(&connector->base, \
>  					   intel_sdvo_connector->name, 0); \
> -		drm_dbg_kms(dev, #name ": max %d, default %d, current
> %d\n", \
> +		drm_dbg_kms(display->drm, #name ": max %d, default %d,
> current %d\n",
> +\
>  			    data_value[0], data_value[1], response); \
>  	} \
>  } while (0)
> @@ -3137,8 +3136,7 @@ intel_sdvo_create_enhance_property_tv(struct
> intel_sdvo *intel_sdvo,
>  				      struct intel_sdvo_connector
> *intel_sdvo_connector,
>  				      struct intel_sdvo_enhancements_reply
> enhancements)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> -	struct drm_device *dev = intel_sdvo->base.base.dev;
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_connector *connector = &intel_sdvo_connector-
> >base.base;
>  	struct drm_connector_state *conn_state = connector->state;
>  	struct intel_sdvo_connector_state *sdvo_state = @@ -3161,7
> +3159,7 @@ intel_sdvo_create_enhance_property_tv(struct intel_sdvo
> *intel_sdvo,
> 
>  		intel_sdvo_connector->max_hscan = data_value[0];
>  		intel_sdvo_connector->left =
> -			drm_property_create_range(dev, 0, "left_margin", 0,
> data_value[0]);
> +			drm_property_create_range(display->drm, 0,
> "left_margin", 0,
> +data_value[0]);
>  		if (!intel_sdvo_connector->left)
>  			return false;
> 
> @@ -3169,13 +3167,13 @@ intel_sdvo_create_enhance_property_tv(struct
> intel_sdvo *intel_sdvo,
>  					   intel_sdvo_connector->left, 0);
> 
>  		intel_sdvo_connector->right =
> -			drm_property_create_range(dev, 0, "right_margin",
> 0, data_value[0]);
> +			drm_property_create_range(display->drm, 0,
> "right_margin", 0,
> +data_value[0]);
>  		if (!intel_sdvo_connector->right)
>  			return false;
> 
>  		drm_object_attach_property(&connector->base,
>  					   intel_sdvo_connector->right, 0);
> -		drm_dbg_kms(&i915->drm, "h_overscan: max %d, default
> %d, current %d\n",
> +		drm_dbg_kms(display->drm, "h_overscan: max %d, default
> %d, current
> +%d\n",
>  			    data_value[0], data_value[1], response);
>  	}
> 
> @@ -3194,7 +3192,7 @@ intel_sdvo_create_enhance_property_tv(struct
> intel_sdvo *intel_sdvo,
> 
>  		intel_sdvo_connector->max_vscan = data_value[0];
>  		intel_sdvo_connector->top =
> -			drm_property_create_range(dev, 0,
> +			drm_property_create_range(display->drm, 0,
>  						  "top_margin", 0,
> data_value[0]);
>  		if (!intel_sdvo_connector->top)
>  			return false;
> @@ -3203,14 +3201,14 @@ intel_sdvo_create_enhance_property_tv(struct
> intel_sdvo *intel_sdvo,
>  					   intel_sdvo_connector->top, 0);
> 
>  		intel_sdvo_connector->bottom =
> -			drm_property_create_range(dev, 0,
> +			drm_property_create_range(display->drm, 0,
>  						  "bottom_margin", 0,
> data_value[0]);
>  		if (!intel_sdvo_connector->bottom)
>  			return false;
> 
>  		drm_object_attach_property(&connector->base,
>  					   intel_sdvo_connector->bottom, 0);
> -		drm_dbg_kms(&i915->drm, "v_overscan: max %d, default
> %d, current %d\n",
> +		drm_dbg_kms(display->drm, "v_overscan: max %d, default
> %d, current
> +%d\n",
>  			    data_value[0], data_value[1], response);
>  	}
> 
> @@ -3233,13 +3231,13 @@ intel_sdvo_create_enhance_property_tv(struct
> intel_sdvo *intel_sdvo,
> 
>  		sdvo_state->tv.dot_crawl = response & 0x1;
>  		intel_sdvo_connector->dot_crawl =
> -			drm_property_create_range(dev, 0, "dot_crawl", 0,
> 1);
> +			drm_property_create_range(display->drm, 0,
> "dot_crawl", 0, 1);
>  		if (!intel_sdvo_connector->dot_crawl)
>  			return false;
> 
>  		drm_object_attach_property(&connector->base,
>  					   intel_sdvo_connector->dot_crawl,
> 0);
> -		drm_dbg_kms(&i915->drm, "dot crawl: current %d\n",
> response);
> +		drm_dbg_kms(display->drm, "dot crawl: current %d\n",
> response);
>  	}
> 
>  	return true;
> @@ -3250,7 +3248,7 @@ intel_sdvo_create_enhance_property_lvds(struct
> intel_sdvo *intel_sdvo,
>  					struct intel_sdvo_connector
> *intel_sdvo_connector,
>  					struct
> intel_sdvo_enhancements_reply enhancements)  {
> -	struct drm_device *dev = intel_sdvo->base.base.dev;
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	struct drm_connector *connector = &intel_sdvo_connector-
> >base.base;
>  	u16 response, data_value[2];
> 
> @@ -3264,7 +3262,7 @@ intel_sdvo_create_enhance_property_lvds(struct
> intel_sdvo *intel_sdvo,  static bool
> intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
>  					       struct intel_sdvo_connector
> *intel_sdvo_connector)  {
> -	struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_sdvo->base);
>  	union {
>  		struct intel_sdvo_enhancements_reply reply;
>  		u16 response;
> @@ -3276,7 +3274,7 @@ static bool
> intel_sdvo_create_enhance_property(struct intel_sdvo *intel_sdvo,
> 
> SDVO_CMD_GET_SUPPORTED_ENHANCEMENTS,
>  				  &enhancements, sizeof(enhancements)) ||
>  	    enhancements.response == 0) {
> -		drm_dbg_kms(&i915->drm, "No enhancement is
> supported\n");
> +		drm_dbg_kms(display->drm, "No enhancement is
> supported\n");
>  		return true;
>  	}
> 
> @@ -3351,8 +3349,8 @@ static int
>  intel_sdvo_init_ddc_proxy(struct intel_sdvo_ddc *ddc,
>  			  struct intel_sdvo *sdvo, int ddc_bus)  {
> -	struct drm_i915_private *dev_priv = to_i915(sdvo->base.base.dev);
> -	struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
> +	struct intel_display *display = to_intel_display(&sdvo->base);
> +	struct pci_dev *pdev = to_pci_dev(display->drm->dev);
> 
>  	ddc->sdvo = sdvo;
>  	ddc->ddc_bus = ddc_bus;
> @@ -3368,25 +3366,26 @@ intel_sdvo_init_ddc_proxy(struct
> intel_sdvo_ddc *ddc,
>  	return i2c_add_adapter(&ddc->ddc);
>  }
> 
> -static bool is_sdvo_port_valid(struct drm_i915_private *dev_priv, enum
> port port)
> +static bool is_sdvo_port_valid(struct intel_display *display, enum port
> +port)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
> +
>  	if (HAS_PCH_SPLIT(dev_priv))
>  		return port == PORT_B;
>  	else
>  		return port == PORT_B || port == PORT_C;  }
> 
> -static bool assert_sdvo_port_valid(struct drm_i915_private *dev_priv,
> -				   enum port port)
> +static bool assert_sdvo_port_valid(struct intel_display *display, enum
> +port port)
>  {
> -	return !drm_WARN(&dev_priv->drm, !is_sdvo_port_valid(dev_priv,
> port),
> +	return !drm_WARN(display->drm, !is_sdvo_port_valid(display, port),
>  			 "Platform does not support SDVO %c\n",
> port_name(port));  }
> 
> -bool intel_sdvo_init(struct drm_i915_private *dev_priv,
> +bool intel_sdvo_init(struct intel_display *display,
>  		     i915_reg_t sdvo_reg, enum port port)  {
> -	struct intel_display *display = &dev_priv->display;
> +	struct drm_i915_private *dev_priv = to_i915(display->drm);
>  	struct intel_encoder *intel_encoder;
>  	struct intel_sdvo *intel_sdvo;
>  	int i;
> @@ -3394,7 +3393,7 @@ bool intel_sdvo_init(struct drm_i915_private
> *dev_priv,
>  	if (!assert_port_valid(display, port))
>  		return false;
> 
> -	if (!assert_sdvo_port_valid(dev_priv, port))
> +	if (!assert_sdvo_port_valid(display, port))
>  		return false;
> 
>  	intel_sdvo = kzalloc(sizeof(*intel_sdvo), GFP_KERNEL); @@ -3407,7
> +3406,7 @@ bool intel_sdvo_init(struct drm_i915_private *dev_priv,
>  	intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
>  	intel_encoder->port = port;
> 
> -	drm_encoder_init(&dev_priv->drm, &intel_encoder->base,
> +	drm_encoder_init(display->drm, &intel_encoder->base,
>  			 &intel_sdvo_enc_funcs, 0,
>  			 "SDVO %c", port_name(port));
> 
> @@ -3421,7 +3420,7 @@ bool intel_sdvo_init(struct drm_i915_private
> *dev_priv,
>  		u8 byte;
> 
>  		if (!intel_sdvo_read_byte(intel_sdvo, i, &byte)) {
> -			drm_dbg_kms(&dev_priv->drm,
> +			drm_dbg_kms(display->drm,
>  				    "No SDVO device found on %s\n",
>  				    SDVO_NAME(intel_sdvo));
>  			goto err;
> @@ -3459,7 +3458,7 @@ bool intel_sdvo_init(struct drm_i915_private
> *dev_priv,
>  	}
> 
>  	if (!intel_sdvo_output_setup(intel_sdvo)) {
> -		drm_dbg_kms(&dev_priv->drm,
> +		drm_dbg_kms(display->drm,
>  			    "SDVO output failed to setup on %s\n",
>  			    SDVO_NAME(intel_sdvo));
>  		/* Output_setup can leave behind connectors! */ @@ -
> 3496,7 +3495,7 @@ bool intel_sdvo_init(struct drm_i915_private *dev_priv,
>  						    &intel_sdvo-
> >pixel_clock_max))
>  		goto err_output;
> 
> -	drm_dbg_kms(&dev_priv->drm, "%s device VID/DID:
> %02X:%02X.%02X, "
> +	drm_dbg_kms(display->drm, "%s device VID/DID: %02X:%02X.%02X, "
>  		    "clock range %dMHz - %dMHz, "
>  		    "num inputs: %d, "
>  		    "output 1: %c, output 2: %c\n",
> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.h
> b/drivers/gpu/drm/i915/display/intel_sdvo.h
> index d1815b4103d4..1a9e40fdd8a8 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.h
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.h
> @@ -10,22 +10,22 @@
> 
>  #include "i915_reg_defs.h"
> 
> -struct drm_i915_private;
>  enum pipe;
>  enum port;
> +struct intel_display;
> 
>  #ifdef I915
> -bool intel_sdvo_port_enabled(struct drm_i915_private *dev_priv,
> +bool intel_sdvo_port_enabled(struct intel_display *display,
>  			     i915_reg_t sdvo_reg, enum pipe *pipe); -bool
> intel_sdvo_init(struct drm_i915_private *dev_priv,
> +bool intel_sdvo_init(struct intel_display *display,
>  		     i915_reg_t reg, enum port port);  #else -static inline bool
> intel_sdvo_port_enabled(struct drm_i915_private *dev_priv,
> +static inline bool intel_sdvo_port_enabled(struct intel_display
> +*display,
>  					   i915_reg_t sdvo_reg, enum pipe
> *pipe)  {
>  	return false;
>  }
> -static inline bool intel_sdvo_init(struct drm_i915_private *dev_priv,
> +static inline bool intel_sdvo_init(struct intel_display *display,
>  				   i915_reg_t reg, enum port port)
>  {
>  	return false;
> --
> 2.39.5





[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux