> -----Original Message-----
> From: Intel-gfx <intel-gfx-boun...@lists.freedesktop.org> On Behalf Of Jani
> Nikula
> Sent: Wednesday, February 12, 2025 10:07 PM
> To: intel-gfx@lists.freedesktop.org; intel...@lists.freedesktop.org
> Cc: Nikula, Jani <jani.nik...@intel.com>
> 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.nik...@intel.com>
> ---
>  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.kand...@intel.com>


>       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

Reply via email to