All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co.
@ 2019-12-04 18:05 Ville Syrjala
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() Ville Syrjala
                   ` (13 more replies)
  0 siblings, 14 replies; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

A bunch of cleanup around intel_attached_encoder() and its cousins.
The main motivation is to make it easier to spot the remaining
legacy drm_connector->encoder uses from the attached encoder's
intel_connector->encoder. I'm working towards neutering the former
in favor of using proper atomic state(s).

Ville Syrjälä (9):
  drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()
  drm/i915: Pass intel_connector to intel_attached_*()
  drm/i915: Pass intel_encoder to enc_to_*()
  drm/i915: Use the passed in encoder
  drm/i915: Use intel_attached_encoder()
  drm/i915: Relocate intel_attached_dp()
  drm/i915: Use intel_attached_dp() instead of hand rolling it
  drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
  drm/i915/hdcp: Clean up local variables

 drivers/gpu/drm/i915/display/icl_dsi.c        |  58 +++++-----
 drivers/gpu/drm/i915/display/intel_audio.c    |   4 +-
 .../gpu/drm/i915/display/intel_connector.c    |   2 +-
 drivers/gpu/drm/i915/display/intel_crt.c      |  12 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      |  70 ++++++------
 drivers/gpu/drm/i915/display/intel_display.c  |  14 +--
 .../drm/i915/display/intel_display_power.c    |   6 +-
 .../drm/i915/display/intel_display_types.h    |  30 +++--
 drivers/gpu/drm/i915/display/intel_dp.c       |  74 ++++++------
 .../drm/i915/display/intel_dp_aux_backlight.c |  15 +--
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |  28 ++---
 drivers/gpu/drm/i915/display/intel_dpio_phy.c |  18 +--
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |   4 +-
 drivers/gpu/drm/i915/display/intel_dsi.h      |   6 +-
 .../i915/display/intel_dsi_dcs_backlight.c    |  12 +-
 drivers/gpu/drm/i915/display/intel_dvo.c      |   8 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     | 108 ++++++++----------
 drivers/gpu/drm/i915/display/intel_hdcp.h     |   5 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  70 ++++++------
 drivers/gpu/drm/i915/display/intel_hdmi.h     |   2 +-
 drivers/gpu/drm/i915/display/intel_hotplug.c  |  14 +--
 drivers/gpu/drm/i915/display/intel_lspcon.c   |   8 +-
 drivers/gpu/drm/i915/display/intel_pipe_crc.c |   2 +-
 drivers/gpu/drm/i915/display/intel_sdvo.c     |  22 ++--
 drivers/gpu/drm/i915/display/intel_tv.c       |   6 +-
 drivers/gpu/drm/i915/display/intel_vdsc.c     |   4 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c        |  38 +++---
 drivers/gpu/drm/i915/display/vlv_dsi_pll.c    |  12 +-
 drivers/gpu/drm/i915/i915_debugfs.c           |  40 +++----
 29 files changed, 339 insertions(+), 353 deletions(-)

-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2019-12-05  9:33   ` Ramalingam C
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 2/9] drm/i915: Pass intel_connector to intel_attached_*() Ville Syrjala
                   ` (12 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx; +Cc: Jani Nikula

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

intel_hdcp_transcoder_config() is clobbering some globally visible
state in .compute_config(). That is a big no no as .compute_config()
is supposed to have no visible side effects when either the commit
fails or it's just a TEST_ONLY commit.

Inline this stuff into intel_hdcp_enable() so that the state only
gets modified when we actually commit the state to the hardware.

Cc: Ramalingam C <ramalingam.c@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Fixes: 39e2df090c3c ("drm/i915/hdcp: update current transcoder into intel_hdcp")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c  |  5 ++++-
 drivers/gpu/drm/i915/display/intel_dp.c   |  3 ---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 26 +++++++----------------
 drivers/gpu/drm/i915/display/intel_hdcp.h |  5 ++---
 drivers/gpu/drm/i915/display/intel_hdmi.c |  3 ---
 5 files changed, 14 insertions(+), 28 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index ebcc7302706b..e692c0b28559 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -4026,6 +4026,7 @@ static void intel_enable_ddi(struct intel_encoder *encoder,
 	if (conn_state->content_protection ==
 	    DRM_MODE_CONTENT_PROTECTION_DESIRED)
 		intel_hdcp_enable(to_intel_connector(conn_state->connector),
+				  crtc_state->cpu_transcoder,
 				  (u8)conn_state->hdcp_content_type);
 }
 
@@ -4129,7 +4130,9 @@ static void intel_ddi_update_pipe(struct intel_encoder *encoder,
 	if (conn_state->content_protection ==
 	    DRM_MODE_CONTENT_PROTECTION_DESIRED ||
 	    content_protection_type_changed)
-		intel_hdcp_enable(connector, (u8)conn_state->hdcp_content_type);
+		intel_hdcp_enable(connector,
+				  crtc_state->cpu_transcoder,
+				  (u8)conn_state->hdcp_content_type);
 }
 
 static void
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 5c406a0fd045..0f496115c345 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2425,9 +2425,6 @@ intel_dp_compute_config(struct intel_encoder *encoder,
 
 	intel_psr_compute_config(intel_dp, pipe_config);
 
-	intel_hdcp_transcoder_config(intel_connector,
-				     pipe_config->cpu_transcoder);
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 001ce27d7029..0fdbd39f6641 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -1821,23 +1821,6 @@ enum mei_fw_tc intel_get_mei_fw_tc(enum transcoder cpu_transcoder)
 	}
 }
 
-void intel_hdcp_transcoder_config(struct intel_connector *connector,
-				  enum transcoder cpu_transcoder)
-{
-	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_hdcp *hdcp = &connector->hdcp;
-
-	if (!hdcp->shim)
-		return;
-
-	if (INTEL_GEN(dev_priv) >= 12) {
-		mutex_lock(&hdcp->mutex);
-		hdcp->cpu_transcoder = cpu_transcoder;
-		hdcp->port_data.fw_tc = intel_get_mei_fw_tc(cpu_transcoder);
-		mutex_unlock(&hdcp->mutex);
-	}
-}
-
 static inline int initialize_hdcp_port_data(struct intel_connector *connector,
 					    const struct intel_hdcp_shim *shim)
 {
@@ -1959,8 +1942,10 @@ int intel_hdcp_init(struct intel_connector *connector,
 	return 0;
 }
 
-int intel_hdcp_enable(struct intel_connector *connector, u8 content_type)
+int intel_hdcp_enable(struct intel_connector *connector,
+		      enum transcoder cpu_transcoder, u8 content_type)
 {
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
 	int ret = -EINVAL;
@@ -1972,6 +1957,11 @@ int intel_hdcp_enable(struct intel_connector *connector, u8 content_type)
 	WARN_ON(hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
 	hdcp->content_type = content_type;
 
+	if (INTEL_GEN(dev_priv) >= 12) {
+		hdcp->cpu_transcoder = cpu_transcoder;
+		hdcp->port_data.fw_tc = intel_get_mei_fw_tc(cpu_transcoder);
+	}
+
 	/*
 	 * Considering that HDCP2.2 is more secure than HDCP1.4, If the setup
 	 * is capable of HDCP2.2, it is preferred to use HDCP2.2.
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.h b/drivers/gpu/drm/i915/display/intel_hdcp.h
index 41c1053d9e38..f3c3272e712a 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.h
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.h
@@ -21,11 +21,10 @@ enum transcoder;
 void intel_hdcp_atomic_check(struct drm_connector *connector,
 			     struct drm_connector_state *old_state,
 			     struct drm_connector_state *new_state);
-void intel_hdcp_transcoder_config(struct intel_connector *connector,
-				  enum transcoder cpu_transcoder);
 int intel_hdcp_init(struct intel_connector *connector,
 		    const struct intel_hdcp_shim *hdcp_shim);
-int intel_hdcp_enable(struct intel_connector *connector, u8 content_type);
+int intel_hdcp_enable(struct intel_connector *connector,
+		      enum transcoder cpu_transcoder, u8 content_type);
 int intel_hdcp_disable(struct intel_connector *connector);
 bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port);
 bool intel_hdcp_capable(struct intel_connector *connector);
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 29a174af5314..a89a09b25260 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -2490,9 +2490,6 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 		return -EINVAL;
 	}
 
-	intel_hdcp_transcoder_config(intel_hdmi->attached_connector,
-				     pipe_config->cpu_transcoder);
-
 	return 0;
 }
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 2/9] drm/i915: Pass intel_connector to intel_attached_*()
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2020-01-09  7:28   ` Kahola, Mika
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*() Ville Syrjala
                   ` (11 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Life is usually easier when we pass around intel_ types instead
of drm_ types. In this case it might not be, but I think being
consistent is a good thing anyway. Also some of this might get
cleaned up a bit more later as we keep propagating the intel_
types further.

@find@
identifier F =~ "^intel_attached_.*";
identifier C;
@@
F(struct drm_connector *C)
{
...
}

@@
identifier find.F;
identifier find.C;
@@
F(
- struct drm_connector *C
+ struct intel_connector *connector
  )
{
<...
- C
+ &connector->base
...>
}

@@
identifier find.F;
expression C;
@@
- F(C)
+ F(to_intel_connector(C))

@@
expression C;
@@
- to_intel_connector(&C->base)
+ C

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_crt.c      | 12 +++++-----
 drivers/gpu/drm/i915/display/intel_display.c  |  8 +++----
 .../drm/i915/display/intel_display_types.h    |  6 ++---
 drivers/gpu/drm/i915/display/intel_dp.c       | 16 +++++++-------
 drivers/gpu/drm/i915/display/intel_dvo.c      |  8 +++----
 drivers/gpu/drm/i915/display/intel_hdmi.c     | 16 +++++++-------
 drivers/gpu/drm/i915/display/intel_sdvo.c     | 22 +++++++++----------
 drivers/gpu/drm/i915/display/intel_tv.c       |  6 ++---
 drivers/gpu/drm/i915/i915_debugfs.c           | 14 ++++++------
 9 files changed, 54 insertions(+), 54 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index 7a2d36905155..47fceecea9f8 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -65,7 +65,7 @@ static struct intel_crt *intel_encoder_to_crt(struct intel_encoder *encoder)
 	return container_of(encoder, struct intel_crt, base);
 }
 
-static struct intel_crt *intel_attached_crt(struct drm_connector *connector)
+static struct intel_crt *intel_attached_crt(struct intel_connector *connector)
 {
 	return intel_encoder_to_crt(intel_attached_encoder(connector));
 }
@@ -422,7 +422,7 @@ static int hsw_crt_compute_config(struct intel_encoder *encoder,
 static bool intel_ironlake_crt_detect_hotplug(struct drm_connector *connector)
 {
 	struct drm_device *dev = connector->dev;
-	struct intel_crt *crt = intel_attached_crt(connector);
+	struct intel_crt *crt = intel_attached_crt(to_intel_connector(connector));
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	u32 adpa;
 	bool ret;
@@ -469,7 +469,7 @@ static bool intel_ironlake_crt_detect_hotplug(struct drm_connector *connector)
 static bool valleyview_crt_detect_hotplug(struct drm_connector *connector)
 {
 	struct drm_device *dev = connector->dev;
-	struct intel_crt *crt = intel_attached_crt(connector);
+	struct intel_crt *crt = intel_attached_crt(to_intel_connector(connector));
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	bool reenable_hpd;
 	u32 adpa;
@@ -601,7 +601,7 @@ static int intel_crt_ddc_get_modes(struct drm_connector *connector,
 
 static bool intel_crt_detect_ddc(struct drm_connector *connector)
 {
-	struct intel_crt *crt = intel_attached_crt(connector);
+	struct intel_crt *crt = intel_attached_crt(to_intel_connector(connector));
 	struct drm_i915_private *dev_priv = to_i915(crt->base.base.dev);
 	struct edid *edid;
 	struct i2c_adapter *i2c;
@@ -787,7 +787,7 @@ intel_crt_detect(struct drm_connector *connector,
 		 bool force)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	struct intel_crt *crt = intel_attached_crt(connector);
+	struct intel_crt *crt = intel_attached_crt(to_intel_connector(connector));
 	struct intel_encoder *intel_encoder = &crt->base;
 	intel_wakeref_t wakeref;
 	int status, ret;
@@ -878,7 +878,7 @@ static int intel_crt_get_modes(struct drm_connector *connector)
 {
 	struct drm_device *dev = connector->dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_crt *crt = intel_attached_crt(connector);
+	struct intel_crt *crt = intel_attached_crt(to_intel_connector(connector));
 	struct intel_encoder *intel_encoder = &crt->base;
 	intel_wakeref_t wakeref;
 	struct i2c_adapter *i2c;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index eb0505a66ea8..99abc553a8ab 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -6197,7 +6197,7 @@ intel_connector_primary_encoder(struct intel_connector *connector)
 	if (connector->mst_port)
 		return &dp_to_dig_port(connector->mst_port)->base;
 
-	encoder = intel_attached_encoder(&connector->base);
+	encoder = intel_attached_encoder(connector);
 	WARN_ON(!encoder);
 
 	return encoder;
@@ -11376,7 +11376,7 @@ int intel_get_load_detect_pipe(struct drm_connector *connector,
 {
 	struct intel_crtc *intel_crtc;
 	struct intel_encoder *intel_encoder =
-		intel_attached_encoder(connector);
+		intel_attached_encoder(to_intel_connector(connector));
 	struct drm_crtc *possible_crtc;
 	struct drm_encoder *encoder = &intel_encoder->base;
 	struct drm_crtc *crtc = NULL;
@@ -11530,7 +11530,7 @@ void intel_release_load_detect_pipe(struct drm_connector *connector,
 				    struct drm_modeset_acquire_ctx *ctx)
 {
 	struct intel_encoder *intel_encoder =
-		intel_attached_encoder(connector);
+		intel_attached_encoder(to_intel_connector(connector));
 	struct drm_encoder *encoder = &intel_encoder->base;
 	struct drm_atomic_state *state = old->restore_state;
 	int ret;
@@ -14505,7 +14505,7 @@ static void intel_set_dp_tp_ctl_normal(struct intel_crtc *crtc,
 		if (conn_state->crtc == &crtc->base)
 			break;
 	}
-	intel_dp = enc_to_intel_dp(&intel_attached_encoder(conn)->base);
+	intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(conn))->base);
 	intel_dp_stop_link_train(intel_dp);
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 83ea04149b77..4d89de5a4964 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1435,9 +1435,9 @@ struct intel_load_detect_pipe {
 };
 
 static inline struct intel_encoder *
-intel_attached_encoder(struct drm_connector *connector)
+intel_attached_encoder(struct intel_connector *connector)
 {
-	return to_intel_connector(connector)->encoder;
+	return connector->encoder;
 }
 
 static inline bool intel_encoder_is_dig_port(struct intel_encoder *encoder)
@@ -1468,7 +1468,7 @@ enc_to_dig_port(struct drm_encoder *encoder)
 static inline struct intel_digital_port *
 conn_to_dig_port(struct intel_connector *connector)
 {
-	return enc_to_dig_port(&intel_attached_encoder(&connector->base)->base);
+	return enc_to_dig_port(&intel_attached_encoder(connector)->base);
 }
 
 static inline struct intel_dp_mst_encoder *
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 0f496115c345..668b636fcfaa 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -146,7 +146,7 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
 	return intel_dig_port->base.type == INTEL_OUTPUT_EDP;
 }
 
-static struct intel_dp *intel_attached_dp(struct drm_connector *connector)
+static struct intel_dp *intel_attached_dp(struct intel_connector *connector)
 {
 	return enc_to_intel_dp(&intel_attached_encoder(connector)->base);
 }
@@ -614,7 +614,7 @@ static enum drm_mode_status
 intel_dp_mode_valid(struct drm_connector *connector,
 		    struct drm_display_mode *mode)
 {
-	struct intel_dp *intel_dp = intel_attached_dp(connector);
+	struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector));
 	struct intel_connector *intel_connector = to_intel_connector(connector);
 	struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode;
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
@@ -2996,7 +2996,7 @@ void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state)
 static void intel_edp_backlight_power(struct intel_connector *connector,
 				      bool enable)
 {
-	struct intel_dp *intel_dp = intel_attached_dp(&connector->base);
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	intel_wakeref_t wakeref;
 	bool is_enabled;
 
@@ -5611,7 +5611,7 @@ intel_dp_detect(struct drm_connector *connector,
 		bool force)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	struct intel_dp *intel_dp = intel_attached_dp(connector);
+	struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector));
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct intel_encoder *encoder = &dig_port->base;
 	enum drm_connector_status status;
@@ -5715,7 +5715,7 @@ intel_dp_detect(struct drm_connector *connector,
 static void
 intel_dp_force(struct drm_connector *connector)
 {
-	struct intel_dp *intel_dp = intel_attached_dp(connector);
+	struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector));
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct intel_encoder *intel_encoder = &dig_port->base;
 	struct drm_i915_private *dev_priv = to_i915(intel_encoder->base.dev);
@@ -5750,7 +5750,7 @@ static int intel_dp_get_modes(struct drm_connector *connector)
 	}
 
 	/* if eDP has no EDID, fall back to fixed mode */
-	if (intel_dp_is_edp(intel_attached_dp(connector)) &&
+	if (intel_dp_is_edp(intel_attached_dp(to_intel_connector(connector))) &&
 	    intel_connector->panel.fixed_mode) {
 		struct drm_display_mode *mode;
 
@@ -5768,7 +5768,7 @@ static int intel_dp_get_modes(struct drm_connector *connector)
 static int
 intel_dp_connector_register(struct drm_connector *connector)
 {
-	struct intel_dp *intel_dp = intel_attached_dp(connector);
+	struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector));
 	int ret;
 
 	ret = intel_connector_register(connector);
@@ -5790,7 +5790,7 @@ intel_dp_connector_register(struct drm_connector *connector)
 static void
 intel_dp_connector_unregister(struct drm_connector *connector)
 {
-	struct intel_dp *intel_dp = intel_attached_dp(connector);
+	struct intel_dp *intel_dp = intel_attached_dp(to_intel_connector(connector));
 
 	drm_dp_cec_unregister_connector(&intel_dp->aux);
 	drm_dp_aux_unregister(&intel_dp->aux);
diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c b/drivers/gpu/drm/i915/display/intel_dvo.c
index a74dc5b915d1..86a337c9d85d 100644
--- a/drivers/gpu/drm/i915/display/intel_dvo.c
+++ b/drivers/gpu/drm/i915/display/intel_dvo.c
@@ -125,7 +125,7 @@ static struct intel_dvo *enc_to_dvo(struct intel_encoder *encoder)
 	return container_of(encoder, struct intel_dvo, base);
 }
 
-static struct intel_dvo *intel_attached_dvo(struct drm_connector *connector)
+static struct intel_dvo *intel_attached_dvo(struct intel_connector *connector)
 {
 	return enc_to_dvo(intel_attached_encoder(connector));
 }
@@ -134,7 +134,7 @@ static bool intel_dvo_connector_get_hw_state(struct intel_connector *connector)
 {
 	struct drm_device *dev = connector->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_dvo *intel_dvo = intel_attached_dvo(&connector->base);
+	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
 	u32 tmp;
 
 	tmp = I915_READ(intel_dvo->dev.dvo_reg);
@@ -220,7 +220,7 @@ static enum drm_mode_status
 intel_dvo_mode_valid(struct drm_connector *connector,
 		     struct drm_display_mode *mode)
 {
-	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
+	struct intel_dvo *intel_dvo = intel_attached_dvo(to_intel_connector(connector));
 	const struct drm_display_mode *fixed_mode =
 		to_intel_connector(connector)->panel.fixed_mode;
 	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
@@ -311,7 +311,7 @@ static void intel_dvo_pre_enable(struct intel_encoder *encoder,
 static enum drm_connector_status
 intel_dvo_detect(struct drm_connector *connector, bool force)
 {
-	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
+	struct intel_dvo *intel_dvo = intel_attached_dvo(to_intel_connector(connector));
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
 		      connector->base.id, connector->name);
 	return intel_dvo->dev.dev_ops->detect(&intel_dvo->dev);
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index a89a09b25260..a8deb4789f04 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -92,7 +92,7 @@ struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
 	return &intel_dig_port->hdmi;
 }
 
-static struct intel_hdmi *intel_attached_hdmi(struct drm_connector *connector)
+static struct intel_hdmi *intel_attached_hdmi(struct intel_connector *connector)
 {
 	return enc_to_intel_hdmi(&intel_attached_encoder(connector)->base);
 }
@@ -2160,7 +2160,7 @@ static enum drm_mode_status
 intel_hdmi_mode_valid(struct drm_connector *connector,
 		      struct drm_display_mode *mode)
 {
-	struct intel_hdmi *hdmi = intel_attached_hdmi(connector);
+	struct intel_hdmi *hdmi = intel_attached_hdmi(to_intel_connector(connector));
 	struct drm_device *dev = intel_hdmi_to_dev(hdmi);
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	enum drm_mode_status status;
@@ -2496,7 +2496,7 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 static void
 intel_hdmi_unset_edid(struct drm_connector *connector)
 {
-	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
+	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
 
 	intel_hdmi->has_hdmi_sink = false;
 	intel_hdmi->has_audio = false;
@@ -2512,7 +2512,7 @@ static void
 intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	struct intel_hdmi *hdmi = intel_attached_hdmi(connector);
+	struct intel_hdmi *hdmi = intel_attached_hdmi(to_intel_connector(connector));
 	enum port port = hdmi_to_dig_port(hdmi)->base.port;
 	struct i2c_adapter *adapter =
 		intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
@@ -2559,7 +2559,7 @@ static bool
 intel_hdmi_set_edid(struct drm_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
+	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
 	intel_wakeref_t wakeref;
 	struct edid *edid;
 	bool connected = false;
@@ -2600,7 +2600,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool force)
 {
 	enum drm_connector_status status = connector_status_disconnected;
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
+	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
 	struct intel_encoder *encoder = &hdmi_to_dig_port(intel_hdmi)->base;
 	intel_wakeref_t wakeref;
 
@@ -2772,7 +2772,7 @@ static struct i2c_adapter *
 intel_hdmi_get_i2c_adapter(struct drm_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
-	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
+	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(to_intel_connector(connector));
 
 	return intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
 }
@@ -2816,7 +2816,7 @@ intel_hdmi_connector_register(struct drm_connector *connector)
 
 static void intel_hdmi_destroy(struct drm_connector *connector)
 {
-	struct cec_notifier *n = intel_attached_hdmi(connector)->cec_notifier;
+	struct cec_notifier *n = intel_attached_hdmi(to_intel_connector(connector))->cec_notifier;
 
 	cec_notifier_conn_unregister(n);
 
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 8758ee2a4442..e8819fd21e03 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -180,7 +180,7 @@ static struct intel_sdvo *to_sdvo(struct intel_encoder *encoder)
 	return container_of(encoder, struct intel_sdvo, base);
 }
 
-static struct intel_sdvo *intel_attached_sdvo(struct drm_connector *connector)
+static struct intel_sdvo *intel_attached_sdvo(struct intel_connector *connector)
 {
 	return to_sdvo(intel_attached_encoder(connector));
 }
@@ -1551,7 +1551,7 @@ static bool intel_sdvo_connector_get_hw_state(struct intel_connector *connector)
 {
 	struct intel_sdvo_connector *intel_sdvo_connector =
 		to_intel_sdvo_connector(&connector->base);
-	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector->base);
+	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
 	u16 active_outputs = 0;
 
 	intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
@@ -1823,7 +1823,7 @@ static enum drm_mode_status
 intel_sdvo_mode_valid(struct drm_connector *connector,
 		      struct drm_display_mode *mode)
 {
-	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
+	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
 	struct intel_sdvo_connector *intel_sdvo_connector =
 		to_intel_sdvo_connector(connector);
 	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
@@ -1941,7 +1941,7 @@ intel_sdvo_multifunc_encoder(struct intel_sdvo *intel_sdvo)
 static struct edid *
 intel_sdvo_get_edid(struct drm_connector *connector)
 {
-	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
+	struct intel_sdvo *sdvo = intel_attached_sdvo(to_intel_connector(connector));
 	return drm_get_edid(connector, &sdvo->ddc);
 }
 
@@ -1959,7 +1959,7 @@ intel_sdvo_get_analog_edid(struct drm_connector *connector)
 static enum drm_connector_status
 intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
 {
-	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
+	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 status;
@@ -2028,7 +2028,7 @@ static enum drm_connector_status
 intel_sdvo_detect(struct drm_connector *connector, bool force)
 {
 	u16 response;
-	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
+	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;
 
@@ -2175,7 +2175,7 @@ static const struct drm_display_mode sdvo_tv_modes[] = {
 
 static void intel_sdvo_get_tv_modes(struct drm_connector *connector)
 {
-	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
+	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
 	const struct drm_connector_state *conn_state = connector->state;
 	struct intel_sdvo_sdtv_resolution_request tv_res;
 	u32 reply = 0, format_map = 0;
@@ -2215,7 +2215,7 @@ static void intel_sdvo_get_tv_modes(struct drm_connector *connector)
 
 static void intel_sdvo_get_lvds_modes(struct drm_connector *connector)
 {
-	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
+	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(to_intel_connector(connector));
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
 	struct drm_display_mode *newmode;
 
@@ -2379,7 +2379,7 @@ intel_sdvo_connector_atomic_set_property(struct drm_connector *connector,
 static int
 intel_sdvo_connector_register(struct drm_connector *connector)
 {
-	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
+	struct intel_sdvo *sdvo = intel_attached_sdvo(to_intel_connector(connector));
 	int ret;
 
 	ret = intel_connector_register(connector);
@@ -2394,7 +2394,7 @@ intel_sdvo_connector_register(struct drm_connector *connector)
 static void
 intel_sdvo_connector_unregister(struct drm_connector *connector)
 {
-	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
+	struct intel_sdvo *sdvo = intel_attached_sdvo(to_intel_connector(connector));
 
 	sysfs_remove_link(&connector->kdev->kobj,
 			  sdvo->ddc.dev.kobj.name);
@@ -2932,7 +2932,7 @@ static void intel_sdvo_output_cleanup(struct intel_sdvo *intel_sdvo)
 
 	list_for_each_entry_safe(connector, tmp,
 				 &dev->mode_config.connector_list, head) {
-		if (intel_attached_encoder(connector) == &intel_sdvo->base) {
+		if (intel_attached_encoder(to_intel_connector(connector)) == &intel_sdvo->base) {
 			drm_connector_unregister(connector);
 			intel_connector_destroy(connector);
 		}
diff --git a/drivers/gpu/drm/i915/display/intel_tv.c b/drivers/gpu/drm/i915/display/intel_tv.c
index 50703536436c..5cd0719758d9 100644
--- a/drivers/gpu/drm/i915/display/intel_tv.c
+++ b/drivers/gpu/drm/i915/display/intel_tv.c
@@ -898,7 +898,7 @@ static struct intel_tv *enc_to_tv(struct intel_encoder *encoder)
 	return container_of(encoder, struct intel_tv, base);
 }
 
-static struct intel_tv *intel_attached_tv(struct drm_connector *connector)
+static struct intel_tv *intel_attached_tv(struct intel_connector *connector)
 {
 	return enc_to_tv(intel_attached_encoder(connector));
 }
@@ -1662,7 +1662,7 @@ intel_tv_detect_type(struct intel_tv *intel_tv,
  */
 static void intel_tv_find_better_format(struct drm_connector *connector)
 {
-	struct intel_tv *intel_tv = intel_attached_tv(connector);
+	struct intel_tv *intel_tv = intel_attached_tv(to_intel_connector(connector));
 	const struct tv_mode *tv_mode = intel_tv_mode_find(connector->state);
 	int i;
 
@@ -1689,7 +1689,7 @@ intel_tv_detect(struct drm_connector *connector,
 		struct drm_modeset_acquire_ctx *ctx,
 		bool force)
 {
-	struct intel_tv *intel_tv = intel_attached_tv(connector);
+	struct intel_tv *intel_tv = intel_attached_tv(to_intel_connector(connector));
 	enum drm_connector_status status;
 	int type;
 
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index eb80a2c4b55b..4f543ccec15d 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2020,7 +2020,7 @@ static int i915_psr_sink_status_show(struct seq_file *m, void *data)
 	struct drm_connector *connector = m->private;
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(&intel_attached_encoder(connector)->base);
+		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
 	int ret;
 
 	if (!CAN_PSR(dev_priv)) {
@@ -3055,7 +3055,7 @@ static int i915_dp_mst_info(struct seq_file *m, void *unused)
 		if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort)
 			continue;
 
-		intel_encoder = intel_attached_encoder(connector);
+		intel_encoder = intel_attached_encoder(to_intel_connector(connector));
 		if (!intel_encoder || intel_encoder->type == INTEL_OUTPUT_DP_MST)
 			continue;
 
@@ -4185,7 +4185,7 @@ static int i915_drrs_ctl_set(void *data, u64 val)
 			      drm_connector_mask(connector)))
 				continue;
 
-			encoder = intel_attached_encoder(connector);
+			encoder = intel_attached_encoder(to_intel_connector(connector));
 			if (encoder->type != INTEL_OUTPUT_EDP)
 				continue;
 
@@ -4396,7 +4396,7 @@ static int i915_dpcd_show(struct seq_file *m, void *data)
 {
 	struct drm_connector *connector = m->private;
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(&intel_attached_encoder(connector)->base);
+		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
 	u8 buf[16];
 	ssize_t err;
 	int i;
@@ -4431,7 +4431,7 @@ static int i915_panel_show(struct seq_file *m, void *data)
 {
 	struct drm_connector *connector = m->private;
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(&intel_attached_encoder(connector)->base);
+		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
 
 	if (connector->status != connector_status_connected)
 		return -ENODEV;
@@ -4509,7 +4509,7 @@ static int i915_dsc_fec_support_show(struct seq_file *m, void *data)
 		} else if (ret) {
 			break;
 		}
-		intel_dp = enc_to_intel_dp(&intel_attached_encoder(connector)->base);
+		intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
 		crtc_state = to_intel_crtc_state(crtc->state);
 		seq_printf(m, "DSC_Enabled: %s\n",
 			   yesno(crtc_state->dsc.compression_enable));
@@ -4536,7 +4536,7 @@ static ssize_t i915_dsc_fec_support_write(struct file *file,
 	int ret;
 	struct drm_connector *connector =
 		((struct seq_file *)file->private_data)->private;
-	struct intel_encoder *encoder = intel_attached_encoder(connector);
+	struct intel_encoder *encoder = intel_attached_encoder(to_intel_connector(connector));
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 
 	if (len == 0)
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*()
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() Ville Syrjala
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 2/9] drm/i915: Pass intel_connector to intel_attached_*() Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2019-12-18 20:41   ` Juha-Pekka Heikkila
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 4/9] drm/i915: Use the passed in encoder Ville Syrjala
                   ` (10 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Lots of enc_to_foo(&encoder->base) around. Simplify by passing
in the intel_encoder instead.

@find@
identifier F =~ "^enc_to_.*";
identifier E;
@@
F(struct drm_encoder *E)
{
...
}

@@
identifier find.F;
identifier find.E;
@@
F(
- struct drm_encoder *E
+ struct intel_encoder *encoder
  )
{
<...
- E
+ &encoder->base
...>
}

@@
identifier find.F;
expression E;
@@
- F(E)
+ F(to_intel_encoder(E))

@@
expression E;
@@
- to_intel_encoder(&E->base)
+ E

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c        | 58 ++++++++---------
 drivers/gpu/drm/i915/display/intel_ddi.c      | 63 ++++++++++---------
 drivers/gpu/drm/i915/display/intel_display.c  |  4 +-
 .../drm/i915/display/intel_display_power.c    |  6 +-
 .../drm/i915/display/intel_display_types.h    | 19 +++---
 drivers/gpu/drm/i915/display/intel_dp.c       | 54 ++++++++--------
 .../drm/i915/display/intel_dp_aux_backlight.c | 15 ++---
 drivers/gpu/drm/i915/display/intel_dp_mst.c   | 24 +++----
 drivers/gpu/drm/i915/display/intel_dpio_phy.c | 18 +++---
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  4 +-
 drivers/gpu/drm/i915/display/intel_dsi.h      |  6 +-
 .../i915/display/intel_dsi_dcs_backlight.c    |  8 +--
 drivers/gpu/drm/i915/display/intel_hdmi.c     | 49 ++++++++-------
 drivers/gpu/drm/i915/display/intel_hdmi.h     |  2 +-
 drivers/gpu/drm/i915/display/intel_hotplug.c  |  4 +-
 drivers/gpu/drm/i915/display/intel_lspcon.c   |  8 +--
 drivers/gpu/drm/i915/display/intel_pipe_crc.c |  2 +-
 drivers/gpu/drm/i915/display/intel_vdsc.c     |  4 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c        | 36 +++++------
 drivers/gpu/drm/i915/display/vlv_dsi_pll.c    | 12 ++--
 drivers/gpu/drm/i915/i915_debugfs.c           | 28 ++++-----
 21 files changed, 214 insertions(+), 210 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index f688207932e0..7e774cd4a56c 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -76,7 +76,7 @@ static enum transcoder dsi_port_to_transcoder(enum port port)
 static void wait_for_cmds_dispatched_to_panel(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct mipi_dsi_device *dsi;
 	enum port port;
 	enum transcoder dsi_trans;
@@ -201,7 +201,7 @@ static int dsi_send_pkt_payld(struct intel_dsi_host *host,
 static void dsi_program_swing_and_deemphasis(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum phy phy;
 	u32 tmp;
 	int lane;
@@ -266,7 +266,7 @@ static void configure_dual_link_mode(struct intel_encoder *encoder,
 				     const struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 dss_ctl1;
 
 	dss_ctl1 = I915_READ(DSS_CTL1);
@@ -304,7 +304,7 @@ static void configure_dual_link_mode(struct intel_encoder *encoder,
 static void gen11_dsi_program_esc_clk_div(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
 	u32 afe_clk_khz; /* 8X Clock */
@@ -346,7 +346,7 @@ static void get_dsi_io_power_domains(struct drm_i915_private *dev_priv,
 static void gen11_dsi_enable_io_power(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 tmp;
 
@@ -362,7 +362,7 @@ static void gen11_dsi_enable_io_power(struct intel_encoder *encoder)
 static void gen11_dsi_power_up_lanes(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum phy phy;
 
 	for_each_dsi_phy(phy, intel_dsi->phys)
@@ -373,7 +373,7 @@ static void gen11_dsi_power_up_lanes(struct intel_encoder *encoder)
 static void gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum phy phy;
 	u32 tmp;
 	int lane;
@@ -422,7 +422,7 @@ static void gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder)
 static void gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 tmp;
 	enum phy phy;
 
@@ -474,7 +474,7 @@ static void gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder)
 static void gen11_dsi_enable_ddi_buffer(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 tmp;
 	enum port port;
 
@@ -493,7 +493,7 @@ static void gen11_dsi_enable_ddi_buffer(struct intel_encoder *encoder)
 static void gen11_dsi_setup_dphy_timings(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 tmp;
 	enum port port;
 	enum phy phy;
@@ -559,7 +559,7 @@ static void gen11_dsi_setup_dphy_timings(struct intel_encoder *encoder)
 static void gen11_dsi_gate_clocks(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 tmp;
 	enum phy phy;
 
@@ -575,7 +575,7 @@ static void gen11_dsi_gate_clocks(struct intel_encoder *encoder)
 static void gen11_dsi_ungate_clocks(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 tmp;
 	enum phy phy;
 
@@ -592,7 +592,7 @@ static void gen11_dsi_map_pll(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 	enum phy phy;
 	u32 val;
@@ -624,7 +624,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
 			       const struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	enum pipe pipe = intel_crtc->pipe;
 	u32 tmp;
@@ -769,7 +769,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	const struct drm_display_mode *adjusted_mode =
 					&pipe_config->hw.adjusted_mode;
 	enum port port;
@@ -889,7 +889,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
 static void gen11_dsi_enable_transcoder(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	enum transcoder dsi_trans;
 	u32 tmp;
@@ -910,7 +910,7 @@ static void gen11_dsi_enable_transcoder(struct intel_encoder *encoder)
 static void gen11_dsi_setup_timeouts(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	enum transcoder dsi_trans;
 	u32 tmp, hs_tx_timeout, lp_rx_timeout, ta_timeout, divisor, mul;
@@ -991,7 +991,7 @@ gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
 static void gen11_dsi_powerup_panel(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct mipi_dsi_device *dsi;
 	enum port port;
 	enum transcoder dsi_trans;
@@ -1042,7 +1042,7 @@ static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *pipe_config,
 				 const struct drm_connector_state *conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
 	/* step3b */
 	gen11_dsi_map_pll(encoder, pipe_config);
@@ -1067,7 +1067,7 @@ static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
 static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	enum transcoder dsi_trans;
 	u32 tmp;
@@ -1089,7 +1089,7 @@ static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder)
 
 static void gen11_dsi_powerdown_panel(struct intel_encoder *encoder)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
 	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
 	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_ASSERT_RESET);
@@ -1102,7 +1102,7 @@ static void gen11_dsi_powerdown_panel(struct intel_encoder *encoder)
 static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	enum transcoder dsi_trans;
 	u32 tmp;
@@ -1143,7 +1143,7 @@ static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
 static void gen11_dsi_disable_port(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u32 tmp;
 	enum port port;
 
@@ -1165,7 +1165,7 @@ static void gen11_dsi_disable_port(struct intel_encoder *encoder)
 static void gen11_dsi_disable_io_power(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 tmp;
 
@@ -1192,7 +1192,7 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *old_crtc_state,
 			      const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
 	/* step1: turn off backlight */
 	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_OFF);
@@ -1217,7 +1217,7 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
 static void gen11_dsi_get_timings(struct intel_encoder *encoder,
 				  struct intel_crtc_state *pipe_config)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct drm_display_mode *adjusted_mode =
 					&pipe_config->hw.adjusted_mode;
 
@@ -1246,7 +1246,7 @@ static void gen11_dsi_get_config(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
 	/* FIXME: adapt icl_ddi_clock_get() for DSI and use that? */
 	pipe_config->port_clock =
@@ -1296,14 +1296,14 @@ static void gen11_dsi_get_power_domains(struct intel_encoder *encoder,
 					struct intel_crtc_state *crtc_state)
 {
 	get_dsi_io_power_domains(to_i915(encoder->base.dev),
-				 enc_to_intel_dsi(&encoder->base));
+				 enc_to_intel_dsi(encoder));
 }
 
 static bool gen11_dsi_get_hw_state(struct intel_encoder *encoder,
 				   enum pipe *pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum transcoder dsi_trans;
 	intel_wakeref_t wakeref;
 	enum port port;
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index e692c0b28559..52d187db320f 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -1241,9 +1241,9 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
 
 static void intel_ddi_init_dp_buf_reg(struct intel_encoder *encoder)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_digital_port *intel_dig_port =
-		enc_to_dig_port(&encoder->base);
+		enc_to_dig_port(encoder);
 
 	intel_dp->DP = intel_dig_port->saved_port_bits |
 		DDI_BUF_CTL_ENABLE | DDI_BUF_TRANS_SELECT(0);
@@ -2221,7 +2221,7 @@ static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
 	if (WARN_ON(intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)))
 		return;
 
-	dig_port = enc_to_dig_port(&encoder->base);
+	dig_port = enc_to_dig_port(encoder);
 	intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
 
 	/*
@@ -2291,7 +2291,7 @@ static void _skl_ddi_set_iboost(struct drm_i915_private *dev_priv,
 static void skl_ddi_set_iboost(struct intel_encoder *encoder,
 			       int level, enum intel_output_type type)
 {
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	enum port port = encoder->port;
 	u8 iboost;
@@ -2362,7 +2362,7 @@ static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
 u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	enum port port = encoder->port;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 	int n_entries;
@@ -2501,7 +2501,7 @@ static void cnl_ddi_vswing_sequence(struct intel_encoder *encoder,
 		width = 4;
 		rate = 0; /* Rate is always < than 6GHz for HDMI */
 	} else {
-		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 		width = intel_dp->lane_count;
 		rate = intel_dp->link_rate;
@@ -2627,7 +2627,7 @@ static void icl_combo_phy_ddi_vswing_sequence(struct intel_encoder *encoder,
 		width = 4;
 		/* Rate is always < than 6GHz for HDMI */
 	} else {
-		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 		width = intel_dp->lane_count;
 		rate = intel_dp->link_rate;
@@ -3316,7 +3316,7 @@ static void intel_ddi_enable_fec(struct intel_encoder *encoder,
 	if (!crtc_state->fec_enable)
 		return;
 
-	intel_dp = enc_to_intel_dp(&encoder->base);
+	intel_dp = enc_to_intel_dp(encoder);
 	val = I915_READ(intel_dp->regs.dp_tp_ctl);
 	val |= DP_TP_CTL_FEC_ENABLE;
 	I915_WRITE(intel_dp->regs.dp_tp_ctl, val);
@@ -3336,7 +3336,7 @@ static void intel_ddi_disable_fec_state(struct intel_encoder *encoder,
 	if (!crtc_state->fec_enable)
 		return;
 
-	intel_dp = enc_to_intel_dp(&encoder->base);
+	intel_dp = enc_to_intel_dp(encoder);
 	val = I915_READ(intel_dp->regs.dp_tp_ctl);
 	val &= ~DP_TP_CTL_FEC_ENABLE;
 	I915_WRITE(intel_dp->regs.dp_tp_ctl, val);
@@ -3427,10 +3427,10 @@ static void tgl_ddi_pre_enable_dp(struct intel_encoder *encoder,
 				  const struct intel_crtc_state *crtc_state,
 				  const struct drm_connector_state *conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
 	int level = intel_ddi_dp_level(intel_dp);
 	enum transcoder transcoder = crtc_state->cpu_transcoder;
@@ -3583,11 +3583,11 @@ static void hsw_ddi_pre_enable_dp(struct intel_encoder *encoder,
 				  const struct intel_crtc_state *crtc_state,
 				  const struct drm_connector_state *conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	enum port port = encoder->port;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
 	int level = intel_ddi_dp_level(intel_dp);
 
@@ -3673,12 +3673,12 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
 				      const struct intel_crtc_state *crtc_state,
 				      const struct drm_connector_state *conn_state)
 {
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	enum port port = encoder->port;
 	int level = intel_ddi_hdmi_level(dev_priv, port);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 
 	intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
 	intel_ddi_clk_select(encoder, crtc_state);
@@ -3745,12 +3745,12 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
 		intel_ddi_pre_enable_hdmi(encoder, crtc_state, conn_state);
 	} else {
 		struct intel_lspcon *lspcon =
-				enc_to_intel_lspcon(&encoder->base);
+				enc_to_intel_lspcon(encoder);
 
 		intel_ddi_pre_enable_dp(encoder, crtc_state, conn_state);
 		if (lspcon->active) {
 			struct intel_digital_port *dig_port =
-					enc_to_dig_port(&encoder->base);
+					enc_to_dig_port(encoder);
 
 			dig_port->set_infoframes(encoder,
 						 crtc_state->has_infoframe,
@@ -3775,7 +3775,7 @@ static void intel_disable_ddi_buf(struct intel_encoder *encoder,
 	}
 
 	if (intel_crtc_has_dp_encoder(crtc_state)) {
-		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 		val = I915_READ(intel_dp->regs.dp_tp_ctl);
 		val &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK);
@@ -3795,7 +3795,7 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
 				      const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	struct intel_dp *intel_dp = &dig_port->dp;
 	bool is_mst = intel_crtc_has_type(old_crtc_state,
 					  INTEL_OUTPUT_DP_MST);
@@ -3829,7 +3829,7 @@ static void intel_ddi_post_disable_hdmi(struct intel_encoder *encoder,
 					const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	struct intel_hdmi *intel_hdmi = &dig_port->hdmi;
 
 	dig_port->set_infoframes(encoder, false,
@@ -3916,7 +3916,7 @@ static void intel_enable_ddi_dp(struct intel_encoder *encoder,
 				const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	enum port port = encoder->port;
 
 	if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
@@ -3957,7 +3957,7 @@ static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
 				  const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	struct drm_connector *connector = conn_state->connector;
 	enum port port = encoder->port;
 
@@ -4034,7 +4034,7 @@ static void intel_disable_ddi_dp(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *old_crtc_state,
 				 const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 	intel_dp->link_trained = false;
 
@@ -4082,7 +4082,7 @@ static void intel_ddi_update_pipe_dp(struct intel_encoder *encoder,
 				     const struct intel_crtc_state *crtc_state,
 				     const struct drm_connector_state *conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 	intel_ddi_set_dp_msa(crtc_state, conn_state);
 
@@ -4146,7 +4146,8 @@ intel_ddi_update_prepare(struct intel_atomic_state *state,
 
 	WARN_ON(crtc && crtc->active);
 
-	intel_tc_port_get_link(enc_to_dig_port(&encoder->base), required_lanes);
+	intel_tc_port_get_link(enc_to_dig_port(encoder),
+		               required_lanes);
 	if (crtc_state && crtc_state->hw.active)
 		intel_update_active_dpll(state, crtc, encoder);
 }
@@ -4156,7 +4157,7 @@ intel_ddi_update_complete(struct intel_atomic_state *state,
 			  struct intel_encoder *encoder,
 			  struct intel_crtc *crtc)
 {
-	intel_tc_port_put_link(enc_to_dig_port(&encoder->base));
+	intel_tc_port_put_link(enc_to_dig_port(encoder));
 }
 
 static void
@@ -4165,7 +4166,7 @@ intel_ddi_pre_pll_enable(struct intel_encoder *encoder,
 			 const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
 
@@ -4193,7 +4194,7 @@ intel_ddi_post_pll_disable(struct intel_encoder *encoder,
 			   const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
 
@@ -4480,7 +4481,7 @@ static int intel_ddi_compute_config(struct intel_encoder *encoder,
 
 static void intel_ddi_encoder_destroy(struct drm_encoder *encoder)
 {
-	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
+	struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder));
 
 	intel_dp_encoder_flush_work(encoder);
 
@@ -4547,7 +4548,7 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
 				 struct drm_modeset_acquire_ctx *ctx)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_hdmi *hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *hdmi = enc_to_intel_hdmi(encoder);
 	struct intel_connector *connector = hdmi->attached_connector;
 	struct i2c_adapter *adapter =
 		intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
@@ -4619,7 +4620,7 @@ intel_ddi_hotplug(struct intel_encoder *encoder,
 		  struct intel_connector *connector,
 		  bool irq_received)
 {
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	struct drm_modeset_acquire_ctx ctx;
 	enum intel_hotplug_state state;
 	int ret;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 99abc553a8ab..45568a7c6579 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14505,7 +14505,7 @@ static void intel_set_dp_tp_ctl_normal(struct intel_crtc *crtc,
 		if (conn_state->crtc == &crtc->base)
 			break;
 	}
-	intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(conn))->base);
+	intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(conn)));
 	intel_dp_stop_link_train(intel_dp);
 }
 
@@ -17763,7 +17763,7 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
 		/* We need to sanitize only the MST primary port. */
 		if (encoder->type != INTEL_OUTPUT_DP_MST &&
 		    intel_phy_is_tc(dev_priv, phy))
-			intel_tc_port_sanitize(enc_to_dig_port(&encoder->base));
+			intel_tc_port_sanitize(enc_to_dig_port(encoder));
 	}
 
 	get_encoder_power_domains(dev_priv);
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index ce1b64f4dd44..7395cb0111a3 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -519,7 +519,7 @@ static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
 		if (encoder->type == INTEL_OUTPUT_DP_MST)
 			continue;
 
-		dig_port = enc_to_dig_port(&encoder->base);
+		dig_port = enc_to_dig_port(encoder);
 		if (WARN_ON(!dig_port))
 			continue;
 
@@ -1669,8 +1669,8 @@ void chv_phy_powergate_lanes(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct i915_power_domains *power_domains = &dev_priv->power_domains;
-	enum dpio_phy phy = vlv_dport_to_phy(enc_to_dig_port(&encoder->base));
-	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(&encoder->base));
+	enum dpio_phy phy = vlv_dport_to_phy(enc_to_dig_port(encoder));
+	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(encoder));
 
 	mutex_lock(&power_domains->lock);
 
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 4d89de5a4964..79c7454ff510 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1454,12 +1454,12 @@ static inline bool intel_encoder_is_dig_port(struct intel_encoder *encoder)
 }
 
 static inline struct intel_digital_port *
-enc_to_dig_port(struct drm_encoder *encoder)
+enc_to_dig_port(struct intel_encoder *encoder)
 {
-	struct intel_encoder *intel_encoder = to_intel_encoder(encoder);
+	struct intel_encoder *intel_encoder = encoder;
 
 	if (intel_encoder_is_dig_port(intel_encoder))
-		return container_of(encoder, struct intel_digital_port,
+		return container_of(&encoder->base, struct intel_digital_port,
 				    base.base);
 	else
 		return NULL;
@@ -1468,16 +1468,17 @@ enc_to_dig_port(struct drm_encoder *encoder)
 static inline struct intel_digital_port *
 conn_to_dig_port(struct intel_connector *connector)
 {
-	return enc_to_dig_port(&intel_attached_encoder(connector)->base);
+	return enc_to_dig_port(intel_attached_encoder(connector));
 }
 
 static inline struct intel_dp_mst_encoder *
-enc_to_mst(struct drm_encoder *encoder)
+enc_to_mst(struct intel_encoder *encoder)
 {
-	return container_of(encoder, struct intel_dp_mst_encoder, base.base);
+	return container_of(&encoder->base, struct intel_dp_mst_encoder,
+			    base.base);
 }
 
-static inline struct intel_dp *enc_to_intel_dp(struct drm_encoder *encoder)
+static inline struct intel_dp *enc_to_intel_dp(struct intel_encoder *encoder)
 {
 	return &enc_to_dig_port(encoder)->dp;
 }
@@ -1490,14 +1491,14 @@ static inline bool intel_encoder_is_dp(struct intel_encoder *encoder)
 		return true;
 	case INTEL_OUTPUT_DDI:
 		/* Skip pure HDMI/DVI DDI encoders */
-		return i915_mmio_reg_valid(enc_to_intel_dp(&encoder->base)->output_reg);
+		return i915_mmio_reg_valid(enc_to_intel_dp(encoder)->output_reg);
 	default:
 		return false;
 	}
 }
 
 static inline struct intel_lspcon *
-enc_to_intel_lspcon(struct drm_encoder *encoder)
+enc_to_intel_lspcon(struct intel_encoder *encoder)
 {
 	return &enc_to_dig_port(encoder)->lspcon;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 668b636fcfaa..93f3d232fcb5 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -148,7 +148,7 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
 
 static struct intel_dp *intel_attached_dp(struct intel_connector *connector)
 {
-	return enc_to_intel_dp(&intel_attached_encoder(connector)->base);
+	return enc_to_intel_dp(intel_attached_encoder(connector));
 }
 
 static void intel_dp_link_down(struct intel_encoder *encoder,
@@ -834,7 +834,7 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
 	 * Pick one that's not used by other ports.
 	 */
 	for_each_intel_dp(&dev_priv->drm, encoder) {
-		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 		if (encoder->type == INTEL_OUTPUT_EDP) {
 			WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
@@ -1031,7 +1031,7 @@ void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
 	 */
 
 	for_each_intel_dp(&dev_priv->drm, encoder) {
-		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 		WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
 
@@ -2165,7 +2165,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
 			     struct drm_connector_state *conn_state)
 {
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct link_config_limits limits;
 	int common_len;
 	int ret;
@@ -2326,8 +2326,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
-	struct intel_lspcon *lspcon = enc_to_intel_lspcon(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
+	struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder);
 	enum port port = encoder->port;
 	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	struct intel_connector *intel_connector = intel_dp->attached_connector;
@@ -2442,7 +2442,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
 			     const struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	enum port port = encoder->port;
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
@@ -2940,7 +2940,7 @@ static void _intel_edp_backlight_on(struct intel_dp *intel_dp)
 void intel_edp_backlight_on(const struct intel_crtc_state *crtc_state,
 			    const struct drm_connector_state *conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(conn_state->best_encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(conn_state->best_encoder));
 
 	if (!intel_dp_is_edp(intel_dp))
 		return;
@@ -2978,7 +2978,7 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp)
 /* Disable backlight PP control and backlight PWM. */
 void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(old_conn_state->best_encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder));
 
 	if (!intel_dp_is_edp(intel_dp))
 		return;
@@ -3218,7 +3218,7 @@ static bool intel_dp_get_hw_state(struct intel_encoder *encoder,
 				  enum pipe *pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	intel_wakeref_t wakeref;
 	bool ret;
 
@@ -3239,7 +3239,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
 				struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	u32 tmp, flags = 0;
 	enum port port = encoder->port;
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
@@ -3323,7 +3323,7 @@ static void intel_disable_dp(struct intel_encoder *encoder,
 			     const struct intel_crtc_state *old_crtc_state,
 			     const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 	intel_dp->link_trained = false;
 
@@ -3357,7 +3357,7 @@ static void g4x_post_disable_dp(struct intel_encoder *encoder,
 				const struct intel_crtc_state *old_crtc_state,
 				const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	enum port port = encoder->port;
 
 	/*
@@ -3508,7 +3508,7 @@ static void intel_enable_dp(struct intel_encoder *encoder,
 			    const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	u32 dp_reg = I915_READ(intel_dp->output_reg);
 	enum pipe pipe = crtc->pipe;
@@ -3568,7 +3568,7 @@ static void g4x_pre_enable_dp(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config,
 			      const struct drm_connector_state *conn_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	enum port port = encoder->port;
 
 	intel_dp_prepare(encoder, pipe_config);
@@ -3618,7 +3618,7 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
 	lockdep_assert_held(&dev_priv->pps_mutex);
 
 	for_each_intel_dp(&dev_priv->drm, encoder) {
-		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 		WARN(intel_dp->active_pipe == pipe,
 		     "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
@@ -3641,7 +3641,7 @@ static void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
 					   const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
@@ -4163,7 +4163,7 @@ intel_dp_link_down(struct intel_encoder *encoder,
 		   const struct intel_crtc_state *old_crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	enum port port = encoder->port;
 	u32 DP = intel_dp->DP;
@@ -5056,7 +5056,7 @@ int intel_dp_retrain_link(struct intel_encoder *encoder,
 			  struct drm_modeset_acquire_ctx *ctx)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_connector *connector = intel_dp->attached_connector;
 	struct drm_connector_state *conn_state;
 	struct intel_crtc_state *crtc_state;
@@ -5496,7 +5496,7 @@ static bool intel_combo_phy_connected(struct drm_i915_private *dev_priv,
 static bool icp_digital_port_connected(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
 	if (intel_phy_is_combo(dev_priv, phy))
@@ -5799,7 +5799,7 @@ intel_dp_connector_unregister(struct drm_connector *connector)
 
 void intel_dp_encoder_flush_work(struct drm_encoder *encoder)
 {
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(to_intel_encoder(encoder));
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 
 	intel_dp_mst_encoder_cleanup(intel_dig_port);
@@ -5828,12 +5828,12 @@ static void intel_dp_encoder_destroy(struct drm_encoder *encoder)
 	intel_dp_encoder_flush_work(encoder);
 
 	drm_encoder_cleanup(encoder);
-	kfree(enc_to_dig_port(encoder));
+	kfree(enc_to_dig_port(to_intel_encoder(encoder)));
 }
 
 void intel_dp_encoder_suspend(struct intel_encoder *intel_encoder)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
 	intel_wakeref_t wakeref;
 
 	if (!intel_dp_is_edp(intel_dp))
@@ -5864,7 +5864,7 @@ static
 int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 				u8 *an)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_dig_port->base.base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(&intel_dig_port->base.base));
 	static const struct drm_dp_aux_msg msg = {
 		.request = DP_AUX_NATIVE_WRITE,
 		.address = DP_AUX_HDCP_AKSV,
@@ -6474,7 +6474,7 @@ static enum pipe vlv_active_pipe(struct intel_dp *intel_dp)
 void intel_dp_encoder_reset(struct drm_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(encoder));
 	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
 	intel_wakeref_t wakeref;
 
@@ -7620,7 +7620,7 @@ void intel_dp_mst_suspend(struct drm_i915_private *dev_priv)
 		if (encoder->type != INTEL_OUTPUT_DDI)
 			continue;
 
-		intel_dp = enc_to_intel_dp(&encoder->base);
+		intel_dp = enc_to_intel_dp(encoder);
 
 		if (!intel_dp->can_mst)
 			continue;
@@ -7641,7 +7641,7 @@ void intel_dp_mst_resume(struct drm_i915_private *dev_priv)
 		if (encoder->type != INTEL_OUTPUT_DDI)
 			continue;
 
-		intel_dp = enc_to_intel_dp(&encoder->base);
+		intel_dp = enc_to_intel_dp(encoder);
 
 		if (!intel_dp->can_mst)
 			continue;
diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
index 020422da2ae2..7c653f8c307f 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
@@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
  */
 static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
 	u8 read_val[2] = { 0x0 };
 	u16 level = 0;
 
@@ -82,7 +82,7 @@ static void
 intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
 	u8 vals[2] = { 0x0 };
 
 	vals[0] = level;
@@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
 static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
 	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
 	u8 pn, pn_min, pn_max;
 
@@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
 					  const struct drm_connector_state *conn_state)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
 	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
 
 	if (drm_dp_dpcd_readb(&intel_dp->aux,
@@ -222,13 +222,14 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
 
 static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)
 {
-	set_aux_backlight_enable(enc_to_intel_dp(old_conn_state->best_encoder), false);
+	set_aux_backlight_enable(enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder)),
+				 false);
 }
 
 static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 					enum pipe pipe)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
 	struct intel_panel *panel = &connector->panel;
 
 	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
@@ -247,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 static bool
 intel_dp_aux_display_control_capable(struct intel_connector *connector)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
 
 	/* Check the eDP Display control capabilities registers to determine if
 	 * the panel can support backlight control over the aux channel
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index a1e4f4197a67..af7f6d670e07 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -43,7 +43,7 @@ static int intel_dp_mst_compute_link_config(struct intel_encoder *encoder,
 					    struct link_config_limits *limits)
 {
 	struct drm_atomic_state *state = crtc_state->uapi.state;
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_dp *intel_dp = &intel_mst->primary->dp;
 	struct intel_connector *connector =
 		to_intel_connector(conn_state->connector);
@@ -92,7 +92,7 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder,
 				       struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_dp *intel_dp = &intel_mst->primary->dp;
 	struct intel_connector *connector =
 		to_intel_connector(conn_state->connector);
@@ -195,7 +195,7 @@ intel_dp_mst_atomic_check(struct drm_connector *connector,
 			return 0;
 	}
 
-	mgr = &enc_to_mst(old_conn_state->best_encoder)->primary->dp.mst_mgr;
+	mgr = &enc_to_mst(to_intel_encoder(old_conn_state->best_encoder))->primary->dp.mst_mgr;
 	ret = drm_dp_atomic_release_vcpi_slots(state, mgr,
 					       intel_connector->port);
 
@@ -206,7 +206,7 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *old_crtc_state,
 				 const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct intel_connector *connector =
@@ -230,7 +230,7 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
 				      const struct intel_crtc_state *old_crtc_state,
 				      const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct intel_connector *connector =
@@ -267,7 +267,7 @@ static void intel_mst_pre_pll_enable_dp(struct intel_encoder *encoder,
 					const struct intel_crtc_state *pipe_config,
 					const struct drm_connector_state *conn_state)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 
@@ -280,7 +280,7 @@ static void intel_mst_post_pll_disable_dp(struct intel_encoder *encoder,
 					  const struct intel_crtc_state *old_crtc_state,
 					  const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 
@@ -294,7 +294,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
 				    const struct intel_crtc_state *pipe_config,
 				    const struct drm_connector_state *conn_state)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
@@ -352,7 +352,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
 				const struct intel_crtc_state *pipe_config,
 				const struct drm_connector_state *conn_state)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
@@ -373,7 +373,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
 static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
 				      enum pipe *pipe)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	*pipe = intel_mst->pipe;
 	if (intel_mst->connector)
 		return true;
@@ -383,7 +383,7 @@ static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
 static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
 					struct intel_crtc_state *pipe_config)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 
 	intel_ddi_get_config(&intel_dig_port->base, pipe_config);
@@ -491,7 +491,7 @@ static const struct drm_connector_helper_funcs intel_dp_mst_connector_helper_fun
 
 static void intel_dp_mst_encoder_destroy(struct drm_encoder *encoder)
 {
-	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
+	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(to_intel_encoder(encoder));
 
 	drm_encoder_cleanup(encoder);
 	kfree(intel_mst);
diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
index 704f38681c4b..6fb1f7a7364e 100644
--- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
@@ -642,7 +642,7 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder,
 			      bool uniq_trans_scale)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc);
 	enum dpio_channel ch = vlv_dport_to_channel(dport);
 	enum pipe pipe = intel_crtc->pipe;
@@ -738,7 +738,7 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder,
 			      bool reset)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(&encoder->base));
+	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(encoder));
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	enum pipe pipe = crtc->pipe;
 	u32 val;
@@ -781,7 +781,7 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder,
 void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state)
 {
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	enum dpio_channel ch = vlv_dport_to_channel(dport);
@@ -861,7 +861,7 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
 void chv_phy_pre_encoder_enable(struct intel_encoder *encoder,
 				const struct intel_crtc_state *crtc_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -940,7 +940,7 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder,
 
 void chv_phy_release_cl2_override(struct intel_encoder *encoder)
 {
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
 	if (dport->release_cl2_override) {
@@ -989,7 +989,7 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc);
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	enum dpio_channel port = vlv_dport_to_channel(dport);
 	enum pipe pipe = intel_crtc->pipe;
 
@@ -1014,7 +1014,7 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder,
 void vlv_phy_pre_pll_enable(struct intel_encoder *encoder,
 			    const struct intel_crtc_state *crtc_state)
 {
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	enum dpio_channel port = vlv_dport_to_channel(dport);
@@ -1043,7 +1043,7 @@ void vlv_phy_pre_pll_enable(struct intel_encoder *encoder,
 void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder,
 				const struct intel_crtc_state *crtc_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
@@ -1073,7 +1073,7 @@ void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder,
 void vlv_phy_reset_lanes(struct intel_encoder *encoder,
 			 const struct intel_crtc_state *old_crtc_state)
 {
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	enum dpio_channel port = vlv_dport_to_channel(dport);
diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 728a4b045de7..c75e34d87111 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -2972,8 +2972,8 @@ static void icl_update_active_dpll(struct intel_atomic_state *state,
 	enum icl_port_dpll_id port_dpll_id = ICL_PORT_DPLL_DEFAULT;
 
 	primary_port = encoder->type == INTEL_OUTPUT_DP_MST ?
-		enc_to_mst(&encoder->base)->primary :
-		enc_to_dig_port(&encoder->base);
+		enc_to_mst(encoder)->primary :
+		enc_to_dig_port(encoder);
 
 	if (primary_port &&
 	    (primary_port->tc_mode == TC_PORT_DP_ALT ||
diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
index b15be5814599..97b18ab69370 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi.h
+++ b/drivers/gpu/drm/i915/display/intel_dsi.h
@@ -141,9 +141,9 @@ static inline struct intel_dsi_host *to_intel_dsi_host(struct mipi_dsi_host *h)
 #define for_each_dsi_phy(__phy, __phys_mask) \
 	for_each_phy_masked(__phy, __phys_mask)
 
-static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder *encoder)
+static inline struct intel_dsi *enc_to_intel_dsi(struct intel_encoder *encoder)
 {
-	return container_of(encoder, struct intel_dsi, base.base);
+	return container_of(&encoder->base, struct intel_dsi, base.base);
 }
 
 static inline bool is_vid_mode(struct intel_dsi *intel_dsi)
@@ -158,7 +158,7 @@ static inline bool is_cmd_mode(struct intel_dsi *intel_dsi)
 
 static inline u16 intel_dsi_encoder_ports(struct intel_encoder *encoder)
 {
-	return enc_to_intel_dsi(&encoder->base)->ports;
+	return enc_to_intel_dsi(encoder)->ports;
 }
 
 /* icl_dsi.c */
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
index bb3fd8b786a2..c87838843d0b 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
@@ -46,7 +46,7 @@
 static u32 dcs_get_backlight(struct intel_connector *connector)
 {
 	struct intel_encoder *encoder = connector->encoder;
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct mipi_dsi_device *dsi_device;
 	u8 data = 0;
 	enum port port;
@@ -64,7 +64,7 @@ static u32 dcs_get_backlight(struct intel_connector *connector)
 
 static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32 level)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(conn_state->best_encoder);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder));
 	struct mipi_dsi_device *dsi_device;
 	u8 data = level;
 	enum port port;
@@ -79,7 +79,7 @@ static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32
 
 static void dcs_disable_backlight(const struct drm_connector_state *conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(conn_state->best_encoder);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder));
 	struct mipi_dsi_device *dsi_device;
 	enum port port;
 
@@ -113,7 +113,7 @@ static void dcs_disable_backlight(const struct drm_connector_state *conn_state)
 static void dcs_enable_backlight(const struct intel_crtc_state *crtc_state,
 				 const struct drm_connector_state *conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(conn_state->best_encoder);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder));
 	struct intel_panel *panel = &to_intel_connector(conn_state->connector)->panel;
 	struct mipi_dsi_device *dsi_device;
 	enum port port;
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index a8deb4789f04..e179ee046687 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -85,16 +85,17 @@ assert_hdmi_transcoder_func_disabled(struct drm_i915_private *dev_priv,
 	     "HDMI transcoder function enabled, expecting disabled\n");
 }
 
-struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
+struct intel_hdmi *enc_to_intel_hdmi(struct intel_encoder *encoder)
 {
 	struct intel_digital_port *intel_dig_port =
-		container_of(encoder, struct intel_digital_port, base.base);
+		container_of(&encoder->base, struct intel_digital_port,
+			     base.base);
 	return &intel_dig_port->hdmi;
 }
 
 static struct intel_hdmi *intel_attached_hdmi(struct intel_connector *connector)
 {
-	return enc_to_intel_hdmi(&intel_attached_encoder(connector)->base);
+	return enc_to_intel_hdmi(intel_attached_encoder(connector));
 }
 
 static u32 g4x_infoframe_index(unsigned int type)
@@ -602,7 +603,7 @@ u32 intel_hdmi_infoframes_enabled(struct intel_encoder *encoder,
 				  const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	u32 val, ret = 0;
 	int i;
 
@@ -646,7 +647,7 @@ static void intel_write_infoframe(struct intel_encoder *encoder,
 				  enum hdmi_infoframe_type type,
 				  const union hdmi_infoframe *frame)
 {
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	u8 buffer[VIDEO_DIP_DATA_SIZE];
 	ssize_t len;
 
@@ -675,7 +676,7 @@ void intel_read_infoframe(struct intel_encoder *encoder,
 			  enum hdmi_infoframe_type type,
 			  union hdmi_infoframe *frame)
 {
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	u8 buffer[VIDEO_DIP_DATA_SIZE];
 	int ret;
 
@@ -855,7 +856,7 @@ static void g4x_set_infoframes(struct intel_encoder *encoder,
 			       const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
 	i915_reg_t reg = VIDEO_DIP_CTL;
 	u32 val = I915_READ(reg);
@@ -1038,7 +1039,7 @@ static void ibx_set_infoframes(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
-	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
 	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
 	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
 	u32 val = I915_READ(reg);
@@ -1097,7 +1098,7 @@ static void cpt_set_infoframes(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
 	u32 val = I915_READ(reg);
 
@@ -1146,7 +1147,7 @@ static void vlv_set_infoframes(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
 	u32 val = I915_READ(reg);
 	u32 port = VIDEO_DIP_PORT(encoder->port);
@@ -1737,7 +1738,7 @@ static void intel_hdmi_prepare(struct intel_encoder *encoder,
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
 	u32 hdmi_val;
 
@@ -1774,7 +1775,7 @@ static bool intel_hdmi_get_hw_state(struct intel_encoder *encoder,
 				    enum pipe *pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	intel_wakeref_t wakeref;
 	bool ret;
 
@@ -1793,7 +1794,7 @@ static bool intel_hdmi_get_hw_state(struct intel_encoder *encoder,
 static void intel_hdmi_get_config(struct intel_encoder *encoder,
 				  struct intel_crtc_state *pipe_config)
 {
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	u32 tmp, flags = 0;
@@ -1874,7 +1875,7 @@ static void g4x_enable_hdmi(struct intel_encoder *encoder,
 {
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	u32 temp;
 
 	temp = I915_READ(intel_hdmi->hdmi_reg);
@@ -1896,7 +1897,7 @@ static void ibx_enable_hdmi(struct intel_encoder *encoder,
 {
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	u32 temp;
 
 	temp = I915_READ(intel_hdmi->hdmi_reg);
@@ -1947,7 +1948,7 @@ static void cpt_enable_hdmi(struct intel_encoder *encoder,
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	enum pipe pipe = crtc->pipe;
 	u32 temp;
 
@@ -2007,7 +2008,7 @@ static void intel_disable_hdmi(struct intel_encoder *encoder,
 {
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	struct intel_digital_port *intel_dig_port =
 		hdmi_to_dig_port(intel_hdmi);
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
@@ -2316,7 +2317,7 @@ static int intel_hdmi_compute_bpc(struct intel_encoder *encoder,
 				  struct intel_crtc_state *crtc_state,
 				  int clock, bool force_dvi)
 {
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	int bpc;
 
 	for (bpc = 12; bpc >= 10; bpc -= 2) {
@@ -2334,7 +2335,7 @@ static int intel_hdmi_compute_clock(struct intel_encoder *encoder,
 				    struct intel_crtc_state *crtc_state,
 				    bool force_dvi)
 {
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->hw.adjusted_mode;
 	int bpc, clock = adjusted_mode->crtc_clock;
@@ -2404,7 +2405,7 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
 			      struct intel_crtc_state *pipe_config,
 			      struct drm_connector_state *conn_state)
 {
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
 	struct drm_connector *connector = conn_state->connector;
@@ -2663,7 +2664,7 @@ static void intel_hdmi_pre_enable(struct intel_encoder *encoder,
 				  const struct drm_connector_state *conn_state)
 {
 	struct intel_digital_port *intel_dig_port =
-		enc_to_dig_port(&encoder->base);
+		enc_to_dig_port(encoder);
 
 	intel_hdmi_prepare(encoder, pipe_config);
 
@@ -2676,7 +2677,7 @@ static void vlv_hdmi_pre_enable(struct intel_encoder *encoder,
 				const struct intel_crtc_state *pipe_config,
 				const struct drm_connector_state *conn_state)
 {
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
 	vlv_phy_pre_encoder_enable(encoder, pipe_config);
@@ -2746,7 +2747,7 @@ static void chv_hdmi_pre_enable(struct intel_encoder *encoder,
 				const struct intel_crtc_state *pipe_config,
 				const struct drm_connector_state *conn_state)
 {
-	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dport = enc_to_dig_port(encoder);
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
 
@@ -2906,7 +2907,7 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
 				       bool scrambling)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
 	struct drm_scrambling *sink_scrambling =
 		&connector->display_info.hdmi.scdc.scrambling;
 	struct i2c_adapter *adapter =
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.h b/drivers/gpu/drm/i915/display/intel_hdmi.h
index cf1ea5427639..d3659d0b408b 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.h
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.h
@@ -29,7 +29,7 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv, i915_reg_t hdmi_reg,
 		     enum port port);
 void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
 			       struct intel_connector *intel_connector);
-struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder);
+struct intel_hdmi *enc_to_intel_hdmi(struct intel_encoder *encoder);
 int intel_hdmi_compute_config(struct intel_encoder *encoder,
 			      struct intel_crtc_state *pipe_config,
 			      struct drm_connector_state *conn_state);
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
index fc29046d48ea..99d3a3c7989e 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -302,7 +302,7 @@ intel_encoder_hotplug(struct intel_encoder *encoder,
 static bool intel_encoder_has_hpd_pulse(struct intel_encoder *encoder)
 {
 	return intel_encoder_is_dig_port(encoder) &&
-		enc_to_dig_port(&encoder->base)->hpd_pulse != NULL;
+		enc_to_dig_port(encoder)->hpd_pulse != NULL;
 }
 
 static void i915_digport_work_func(struct work_struct *work)
@@ -335,7 +335,7 @@ static void i915_digport_work_func(struct work_struct *work)
 		if (!long_hpd && !short_hpd)
 			continue;
 
-		dig_port = enc_to_dig_port(&encoder->base);
+		dig_port = enc_to_dig_port(encoder);
 
 		ret = dig_port->hpd_pulse(dig_port, long_hpd);
 		if (ret == IRQ_NONE) {
diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
index 5145ff8b962b..d807c5648c87 100644
--- a/drivers/gpu/drm/i915/display/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
@@ -434,8 +434,8 @@ void lspcon_write_infoframe(struct intel_encoder *encoder,
 			    const void *frame, ssize_t len)
 {
 	bool ret;
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
-	struct intel_lspcon *lspcon = enc_to_intel_lspcon(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
+	struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder);
 
 	/* LSPCON only needs AVI IF */
 	if (type != HDMI_INFOFRAME_TYPE_AVI)
@@ -472,7 +472,7 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
 	ssize_t ret;
 	union hdmi_infoframe frame;
 	u8 buf[VIDEO_DIP_DATA_SIZE];
-	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
+	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
 	struct intel_lspcon *lspcon = &dig_port->lspcon;
 	const struct drm_display_mode *adjusted_mode =
 		&crtc_state->hw.adjusted_mode;
@@ -522,7 +522,7 @@ u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)
 {
 	/* FIXME actually read this from the hw */
-	return enc_to_intel_lspcon(&encoder->base)->active;
+	return enc_to_intel_lspcon(encoder)->active;
 }
 
 void lspcon_resume(struct intel_lspcon *lspcon)
diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
index 2746512f4466..520408e83681 100644
--- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
+++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
@@ -98,7 +98,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
 			break;
 		case INTEL_OUTPUT_DP:
 		case INTEL_OUTPUT_EDP:
-			dig_port = enc_to_dig_port(&encoder->base);
+			dig_port = enc_to_dig_port(encoder);
 			switch (dig_port->base.port) {
 			case PORT_B:
 				*source = INTEL_PIPE_CRC_SOURCE_DP_B;
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index b23ba8d108db..075b6e4f66c6 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -339,7 +339,7 @@ static const struct rc_parameters *get_rc_params(u16 compressed_bpp,
 static int intel_dsc_dp_compute_params(struct intel_encoder *encoder,
 				       struct intel_crtc_state *pipe_config)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct drm_dsc_config *vdsc_cfg = &pipe_config->dsc.config;
 	u8 line_buf_depth;
 
@@ -904,7 +904,7 @@ static void intel_dsc_pps_configure(struct intel_encoder *encoder,
 static void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
 				   const struct intel_crtc_state *crtc_state)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 	const struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
 	struct drm_dsc_pps_infoframe dp_dsc_pps_sdp;
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 8398a265b6a3..0c19064e42e0 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -319,7 +319,7 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder,
 static bool glk_dsi_enable_io(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 tmp;
 	bool cold_boot = false;
@@ -367,7 +367,7 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
 static void glk_dsi_device_ready(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
@@ -438,7 +438,7 @@ static void glk_dsi_device_ready(struct intel_encoder *encoder)
 static void bxt_dsi_device_ready(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
@@ -465,7 +465,7 @@ static void bxt_dsi_device_ready(struct intel_encoder *encoder)
 static void vlv_dsi_device_ready(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
@@ -516,7 +516,7 @@ static void intel_dsi_device_ready(struct intel_encoder *encoder)
 static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
@@ -546,7 +546,7 @@ static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
 static void glk_dsi_disable_mipi_io(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 tmp;
 
@@ -579,7 +579,7 @@ static void glk_dsi_clear_device_ready(struct intel_encoder *encoder)
 static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	DRM_DEBUG_KMS("\n");
@@ -625,7 +625,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) {
@@ -681,7 +681,7 @@ static void intel_dsi_port_disable(struct intel_encoder *encoder)
 {
 	struct drm_device *dev = encoder->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	for_each_dsi_port(port, intel_dsi->ports) {
@@ -745,7 +745,7 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *pipe_config,
 				 const struct drm_connector_state *conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct drm_crtc *crtc = pipe_config->uapi.crtc;
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -850,7 +850,7 @@ static void intel_dsi_disable(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *old_crtc_state,
 			      const struct drm_connector_state *old_conn_state)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	DRM_DEBUG_KMS("\n");
@@ -886,7 +886,7 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
 				   const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
@@ -956,7 +956,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 				   enum pipe *pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	intel_wakeref_t wakeref;
 	enum port port;
 	bool active = false;
@@ -1035,7 +1035,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
 					&pipe_config->hw.adjusted_mode;
 	struct drm_display_mode *adjusted_mode_sw;
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	unsigned int lane_count = intel_dsi->lane_count;
 	unsigned int bpp, fmt;
 	enum port port;
@@ -1228,7 +1228,7 @@ static void set_dsi_timings(struct drm_encoder *encoder,
 {
 	struct drm_device *dev = encoder->dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder));
 	enum port port;
 	unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
 	unsigned int lane_count = intel_dsi->lane_count;
@@ -1316,7 +1316,7 @@ static void intel_dsi_prepare(struct intel_encoder *intel_encoder,
 	struct drm_device *dev = encoder->dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder));
 	const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
 	enum port port;
 	unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
@@ -1506,7 +1506,7 @@ static void intel_dsi_prepare(struct intel_encoder *intel_encoder,
 static void intel_dsi_unprepare(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
@@ -1533,7 +1533,7 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
 
 static void intel_dsi_encoder_destroy(struct drm_encoder *encoder)
 {
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder));
 
 	/* dispose of the gpios */
 	if (intel_dsi->gpio_panel)
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
index 95f39cd0ce02..6b89e67b120f 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
@@ -117,7 +117,7 @@ int vlv_dsi_pll_compute(struct intel_encoder *encoder,
 			struct intel_crtc_state *config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	int ret;
 	u32 dsi_clk;
 
@@ -255,7 +255,7 @@ u32 vlv_dsi_get_pclk(struct intel_encoder *encoder,
 		     struct intel_crtc_state *config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
 	u32 dsi_clock, pclk;
 	u32 pll_ctl, pll_div;
@@ -321,7 +321,7 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
 	u32 pclk;
 	u32 dsi_clk;
 	u32 dsi_ratio;
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
 
@@ -341,7 +341,7 @@ void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
 {
 	u32 temp;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 
 	temp = I915_READ(MIPI_CTRL(port));
 	temp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
@@ -455,7 +455,7 @@ int bxt_dsi_pll_compute(struct intel_encoder *encoder,
 			struct intel_crtc_state *config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	u8 dsi_ratio, dsi_ratio_min, dsi_ratio_max;
 	u32 dsi_clk;
 
@@ -503,7 +503,7 @@ void bxt_dsi_pll_enable(struct intel_encoder *encoder,
 			const struct intel_crtc_state *config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
-	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
+	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 4f543ccec15d..3bc8d5c0e88a 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2020,7 +2020,7 @@ static int i915_psr_sink_status_show(struct seq_file *m, void *data)
 	struct drm_connector *connector = m->private;
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
+		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
 	int ret;
 
 	if (!CAN_PSR(dev_priv)) {
@@ -2432,7 +2432,7 @@ static void intel_dp_info(struct seq_file *m,
 			  struct intel_connector *intel_connector)
 {
 	struct intel_encoder *intel_encoder = intel_connector->encoder;
-	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
 
 	seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]);
 	seq_printf(m, "\taudio support: %s\n", yesno(intel_dp->has_audio));
@@ -2452,7 +2452,7 @@ static void intel_dp_mst_info(struct seq_file *m,
 {
 	struct intel_encoder *intel_encoder = intel_connector->encoder;
 	struct intel_dp_mst_encoder *intel_mst =
-		enc_to_mst(&intel_encoder->base);
+		enc_to_mst(intel_encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
@@ -2465,7 +2465,7 @@ static void intel_hdmi_info(struct seq_file *m,
 			    struct intel_connector *intel_connector)
 {
 	struct intel_encoder *intel_encoder = intel_connector->encoder;
-	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&intel_encoder->base);
+	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
 
 	seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
 	if (intel_connector->hdcp.shim) {
@@ -3059,7 +3059,7 @@ static int i915_dp_mst_info(struct seq_file *m, void *unused)
 		if (!intel_encoder || intel_encoder->type == INTEL_OUTPUT_DP_MST)
 			continue;
 
-		intel_dig_port = enc_to_dig_port(&intel_encoder->base);
+		intel_dig_port = enc_to_dig_port(intel_encoder);
 		if (!intel_dig_port->dp.can_mst)
 			continue;
 
@@ -3109,7 +3109,7 @@ static ssize_t i915_displayport_test_active_write(struct file *file,
 			continue;
 
 		if (encoder && connector->status == connector_status_connected) {
-			intel_dp = enc_to_intel_dp(&encoder->base);
+			intel_dp = enc_to_intel_dp(encoder);
 			status = kstrtoint(input_buffer, 10, &val);
 			if (status < 0)
 				break;
@@ -3153,7 +3153,7 @@ static int i915_displayport_test_active_show(struct seq_file *m, void *data)
 			continue;
 
 		if (encoder && connector->status == connector_status_connected) {
-			intel_dp = enc_to_intel_dp(&encoder->base);
+			intel_dp = enc_to_intel_dp(encoder);
 			if (intel_dp->compliance.test_active)
 				seq_puts(m, "1");
 			else
@@ -3203,7 +3203,7 @@ static int i915_displayport_test_data_show(struct seq_file *m, void *data)
 			continue;
 
 		if (encoder && connector->status == connector_status_connected) {
-			intel_dp = enc_to_intel_dp(&encoder->base);
+			intel_dp = enc_to_intel_dp(encoder);
 			if (intel_dp->compliance.test_type ==
 			    DP_TEST_LINK_EDID_READ)
 				seq_printf(m, "%lx",
@@ -3247,7 +3247,7 @@ static int i915_displayport_test_type_show(struct seq_file *m, void *data)
 			continue;
 
 		if (encoder && connector->status == connector_status_connected) {
-			intel_dp = enc_to_intel_dp(&encoder->base);
+			intel_dp = enc_to_intel_dp(encoder);
 			seq_printf(m, "%02lx", intel_dp->compliance.test_type);
 		} else
 			seq_puts(m, "0");
@@ -4192,7 +4192,7 @@ static int i915_drrs_ctl_set(void *data, u64 val)
 			DRM_DEBUG_DRIVER("Manually %sabling DRRS. %llu\n",
 						val ? "en" : "dis", val);
 
-			intel_dp = enc_to_intel_dp(&encoder->base);
+			intel_dp = enc_to_intel_dp(encoder);
 			if (val)
 				intel_edp_drrs_enable(intel_dp,
 						      crtc_state);
@@ -4396,7 +4396,7 @@ static int i915_dpcd_show(struct seq_file *m, void *data)
 {
 	struct drm_connector *connector = m->private;
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
+		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
 	u8 buf[16];
 	ssize_t err;
 	int i;
@@ -4431,7 +4431,7 @@ static int i915_panel_show(struct seq_file *m, void *data)
 {
 	struct drm_connector *connector = m->private;
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
+		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
 
 	if (connector->status != connector_status_connected)
 		return -ENODEV;
@@ -4509,7 +4509,7 @@ static int i915_dsc_fec_support_show(struct seq_file *m, void *data)
 		} else if (ret) {
 			break;
 		}
-		intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
+		intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
 		crtc_state = to_intel_crtc_state(crtc->state);
 		seq_printf(m, "DSC_Enabled: %s\n",
 			   yesno(crtc_state->dsc.compression_enable));
@@ -4537,7 +4537,7 @@ static ssize_t i915_dsc_fec_support_write(struct file *file,
 	struct drm_connector *connector =
 		((struct seq_file *)file->private_data)->private;
 	struct intel_encoder *encoder = intel_attached_encoder(to_intel_connector(connector));
-	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
 
 	if (len == 0)
 		return 0;
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 4/9] drm/i915: Use the passed in encoder
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (2 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*() Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2019-12-05 10:24   ` Ramalingam C
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder() Ville Syrjala
                   ` (9 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Just use the passed in encoder instead of digging it out via
the legacy drm_connector->encoder pointer (which we'll want to
stop using).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_audio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
index 27710098d056..f9d7a77fbdbe 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -707,8 +707,8 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
 	DRM_DEBUG_DRIVER("ELD on [CONNECTOR:%d:%s], [ENCODER:%d:%s]\n",
 			 connector->base.id,
 			 connector->name,
-			 connector->encoder->base.id,
-			 connector->encoder->name);
+			 encoder->base.base.id,
+			 encoder->base.name);
 
 	connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder()
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (3 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 4/9] drm/i915: Use the passed in encoder Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2019-12-05 10:59   ` Ramalingam C
  2020-01-21 15:49   ` Juha-Pekka Heikkila
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 6/9] drm/i915: Relocate intel_attached_dp() Ville Syrjala
                   ` (8 subsequent siblings)
  13 siblings, 2 replies; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

It's easy to confuse the drm_connector->encoder (legacy state
adjusted during modeset) and intel_connector->encoder (the statically
(sans. MST) attached encoder of the connector). For the latter
let's use intel_attached_encoder() consistently.

@@
identifier F !~ "^intel_attached_encoder$";
struct intel_connector *C;
expression E;
@@
F(...)
{
<...
(
  C->encoder = E
|
- C->encoder
+ intel_attached_encoder(C)
)
...>
}

@@
identifier F !~ "^intel_attached_encoder$";
struct drm_connector *C;
expression E;
@@
F(...)
{
<...
(
  to_intel_connector(C)->encoder = E
|
- to_intel_connector(C)->encoder
+ intel_attached_encoder(to_intel_connector(C))
)
...>
}

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_connector.c       |  2 +-
 drivers/gpu/drm/i915/display/intel_ddi.c             |  2 +-
 drivers/gpu/drm/i915/display/intel_display.c         |  4 ++--
 .../gpu/drm/i915/display/intel_dp_aux_backlight.c    | 12 ++++++------
 drivers/gpu/drm/i915/display/intel_dp_mst.c          |  4 ++--
 .../gpu/drm/i915/display/intel_dsi_dcs_backlight.c   |  4 ++--
 drivers/gpu/drm/i915/display/intel_hdcp.c            |  8 ++++----
 drivers/gpu/drm/i915/display/intel_hotplug.c         | 10 +++++-----
 drivers/gpu/drm/i915/display/vlv_dsi.c               |  2 +-
 drivers/gpu/drm/i915/i915_debugfs.c                  |  6 +++---
 10 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
index 1133c4e97bb4..54891a4ed2f3 100644
--- a/drivers/gpu/drm/i915/display/intel_connector.c
+++ b/drivers/gpu/drm/i915/display/intel_connector.c
@@ -153,7 +153,7 @@ void intel_connector_attach_encoder(struct intel_connector *connector,
 bool intel_connector_get_hw_state(struct intel_connector *connector)
 {
 	enum pipe pipe = 0;
-	struct intel_encoder *encoder = connector->encoder;
+	struct intel_encoder *encoder = intel_attached_encoder(connector);
 
 	return encoder->get_hw_state(encoder, &pipe);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 52d187db320f..3e46017150b4 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -2003,7 +2003,7 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
 {
 	struct drm_device *dev = intel_connector->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_encoder *encoder = intel_connector->encoder;
+	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
 	int type = intel_connector->base.connector_type;
 	enum port port = encoder->port;
 	enum transcoder cpu_transcoder;
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 45568a7c6579..df1b80387106 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7279,7 +7279,7 @@ static void intel_connector_verify_state(struct intel_crtc_state *crtc_state,
 		      connector->base.name);
 
 	if (connector->get_hw_state(connector)) {
-		struct intel_encoder *encoder = connector->encoder;
+		struct intel_encoder *encoder = intel_attached_encoder(connector);
 
 		I915_STATE_WARN(!crtc_state,
 			 "connector enabled without attached crtc\n");
@@ -17529,7 +17529,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
 
 			connector->base.dpms = DRM_MODE_DPMS_ON;
 
-			encoder = connector->encoder;
+			encoder = intel_attached_encoder(connector);
 			connector->base.encoder = &encoder->base;
 
 			crtc = to_intel_crtc(encoder->base.crtc);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
index 7c653f8c307f..771e22a0b2a4 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
@@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
  */
 static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
 	u8 read_val[2] = { 0x0 };
 	u16 level = 0;
 
@@ -82,7 +82,7 @@ static void
 intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
-	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
 	u8 vals[2] = { 0x0 };
 
 	vals[0] = level;
@@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
 static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
 	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
 	u8 pn, pn_min, pn_max;
 
@@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
 					  const struct drm_connector_state *conn_state)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
-	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
 	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
 
 	if (drm_dp_dpcd_readb(&intel_dp->aux,
@@ -229,7 +229,7 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old
 static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 					enum pipe pipe)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
 	struct intel_panel *panel = &connector->panel;
 
 	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
@@ -248,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 static bool
 intel_dp_aux_display_control_capable(struct intel_connector *connector)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
+	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
 
 	/* Check the eDP Display control capabilities registers to determine if
 	 * the panel can support backlight control over the aux channel
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index af7f6d670e07..1a7d69843c12 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -503,9 +503,9 @@ static const struct drm_encoder_funcs intel_dp_mst_enc_funcs = {
 
 static bool intel_dp_mst_get_hw_state(struct intel_connector *connector)
 {
-	if (connector->encoder && connector->base.state->crtc) {
+	if (intel_attached_encoder(connector) && connector->base.state->crtc) {
 		enum pipe pipe;
-		if (!connector->encoder->get_hw_state(connector->encoder, &pipe))
+		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))
 			return false;
 		return true;
 	}
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
index c87838843d0b..ac3eff26df12 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
@@ -45,7 +45,7 @@
 
 static u32 dcs_get_backlight(struct intel_connector *connector)
 {
-	struct intel_encoder *encoder = connector->encoder;
+	struct intel_encoder *encoder = intel_attached_encoder(connector);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct mipi_dsi_device *dsi_device;
 	u8 data = 0;
@@ -160,7 +160,7 @@ int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector)
 {
 	struct drm_device *dev = intel_connector->base.dev;
 	struct drm_i915_private *dev_priv = to_i915(dev);
-	struct intel_encoder *encoder = intel_connector->encoder;
+	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
 	struct intel_panel *panel = &intel_connector->panel;
 
 	if (dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_DSI_DCS)
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 0fdbd39f6641..2859230671ae 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -1527,7 +1527,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	enum port port = connector->encoder->port;
+	enum port port = intel_attached_encoder(connector)->port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
@@ -1565,7 +1565,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	enum port port = connector->encoder->port;
+	enum port port = intel_attached_encoder(connector)->port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
@@ -1676,7 +1676,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	enum port port = connector->encoder->port;
+	enum port port = intel_attached_encoder(connector)->port;
 	enum transcoder cpu_transcoder;
 	int ret = 0;
 
@@ -1830,7 +1830,7 @@ static inline int initialize_hdcp_port_data(struct intel_connector *connector,
 
 	if (INTEL_GEN(dev_priv) < 12)
 		data->fw_ddi =
-			intel_get_mei_fw_ddi_index(connector->encoder->port);
+			intel_get_mei_fw_ddi_index(intel_attached_encoder(connector)->port);
 	else
 		/*
 		 * As per ME FW API expectation, for GEN 12+, fw_ddi is filled
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
index 99d3a3c7989e..c3a48af35997 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -200,7 +200,7 @@ intel_hpd_irq_storm_switch_to_polling(struct drm_i915_private *dev_priv)
 			continue;
 
 		intel_connector = to_intel_connector(connector);
-		intel_encoder = intel_connector->encoder;
+		intel_encoder = intel_attached_encoder(intel_connector);
 		if (!intel_encoder)
 			continue;
 
@@ -255,7 +255,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
 
 			/* Don't check MST ports, they don't have pins */
 			if (!intel_connector->mst_port &&
-			    intel_connector->encoder->hpd_pin == pin) {
+			    intel_attached_encoder(intel_connector)->hpd_pin == pin) {
 				if (connector->polled != intel_connector->polled)
 					DRM_DEBUG_DRIVER("Reenabling HPD on connector %s\n",
 							 connector->name);
@@ -389,9 +389,9 @@ static void i915_hotplug_work_func(struct work_struct *work)
 		u32 hpd_bit;
 
 		intel_connector = to_intel_connector(connector);
-		if (!intel_connector->encoder)
+		if (!intel_attached_encoder(intel_connector))
 			continue;
-		intel_encoder = intel_connector->encoder;
+		intel_encoder = intel_attached_encoder(intel_connector);
 		hpd_bit = BIT(intel_encoder->hpd_pin);
 		if ((hpd_event_bits | hpd_retry_bits) & hpd_bit) {
 			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
@@ -621,7 +621,7 @@ static void i915_hpd_poll_init_work(struct work_struct *work)
 			continue;
 
 		if (!connector->polled && I915_HAS_HOTPLUG(dev_priv) &&
-		    intel_connector->encoder->hpd_pin > HPD_NONE) {
+		    intel_attached_encoder(intel_connector)->hpd_pin > HPD_NONE) {
 			connector->polled = enabled ?
 				DRM_CONNECTOR_POLL_CONNECT |
 				DRM_CONNECTOR_POLL_DISCONNECT :
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 0c19064e42e0..535b332b067d 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -1567,7 +1567,7 @@ static enum drm_panel_orientation
 vlv_dsi_get_hw_panel_orientation(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_encoder *encoder = connector->encoder;
+	struct intel_encoder *encoder = intel_attached_encoder(connector);
 	enum intel_display_power_domain power_domain;
 	enum drm_panel_orientation orientation;
 	struct intel_plane *plane;
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3bc8d5c0e88a..d8c2fa2672b5 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2431,7 +2431,7 @@ static void intel_hdcp_info(struct seq_file *m,
 static void intel_dp_info(struct seq_file *m,
 			  struct intel_connector *intel_connector)
 {
-	struct intel_encoder *intel_encoder = intel_connector->encoder;
+	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
 	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
 
 	seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]);
@@ -2450,7 +2450,7 @@ static void intel_dp_info(struct seq_file *m,
 static void intel_dp_mst_info(struct seq_file *m,
 			  struct intel_connector *intel_connector)
 {
-	struct intel_encoder *intel_encoder = intel_connector->encoder;
+	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
 	struct intel_dp_mst_encoder *intel_mst =
 		enc_to_mst(intel_encoder);
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
@@ -2464,7 +2464,7 @@ static void intel_dp_mst_info(struct seq_file *m,
 static void intel_hdmi_info(struct seq_file *m,
 			    struct intel_connector *intel_connector)
 {
-	struct intel_encoder *intel_encoder = intel_connector->encoder;
+	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
 	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
 
 	seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 6/9] drm/i915: Relocate intel_attached_dp()
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (4 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder() Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2020-01-13 13:53   ` Kahola, Mika
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 7/9] drm/i915: Use intel_attached_dp() instead of hand rolling it Ville Syrjala
                   ` (7 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

We have uses for intel_attached_dp() outside of intel_dp.c. Move
it to a header.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_types.h | 5 +++++
 drivers/gpu/drm/i915/display/intel_dp.c            | 5 -----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 79c7454ff510..92bd3d04ad80 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1483,6 +1483,11 @@ static inline struct intel_dp *enc_to_intel_dp(struct intel_encoder *encoder)
 	return &enc_to_dig_port(encoder)->dp;
 }
 
+static inline struct intel_dp *intel_attached_dp(struct intel_connector *connector)
+{
+	return enc_to_intel_dp(intel_attached_encoder(connector));
+}
+
 static inline bool intel_encoder_is_dp(struct intel_encoder *encoder)
 {
 	switch (encoder->type) {
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 93f3d232fcb5..50b9b81d37db 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -146,11 +146,6 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
 	return intel_dig_port->base.type == INTEL_OUTPUT_EDP;
 }
 
-static struct intel_dp *intel_attached_dp(struct intel_connector *connector)
-{
-	return enc_to_intel_dp(intel_attached_encoder(connector));
-}
-
 static void intel_dp_link_down(struct intel_encoder *encoder,
 			       const struct intel_crtc_state *old_crtc_state);
 static bool edp_panel_vdd_on(struct intel_dp *intel_dp);
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 7/9] drm/i915: Use intel_attached_dp() instead of hand rolling it
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (5 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 6/9] drm/i915: Relocate intel_attached_dp() Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2020-01-21 14:46   ` Juha-Pekka Heikkila
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 8/9] drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port() Ville Syrjala
                   ` (6 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Replace the hand rolled intel_attached_dp() with the real thing.

@@
identifier F !~ "^intel_attached_dp$";
expression C;
@@
F(...)
{
<...
- enc_to_intel_dp(intel_attached_encoder(C))
+ intel_attached_dp(C)
...>
}

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c         |  2 +-
 .../gpu/drm/i915/display/intel_dp_aux_backlight.c    | 12 ++++++------
 drivers/gpu/drm/i915/i915_debugfs.c                  |  8 ++++----
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index df1b80387106..ec292ccb6eaf 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -14505,7 +14505,7 @@ static void intel_set_dp_tp_ctl_normal(struct intel_crtc *crtc,
 		if (conn_state->crtc == &crtc->base)
 			break;
 	}
-	intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(conn)));
+	intel_dp = intel_attached_dp(to_intel_connector(conn));
 	intel_dp_stop_link_train(intel_dp);
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
index 771e22a0b2a4..1e69c5bbe65b 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
@@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
  */
 static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	u8 read_val[2] = { 0x0 };
 	u16 level = 0;
 
@@ -82,7 +82,7 @@ static void
 intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
-	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	u8 vals[2] = { 0x0 };
 
 	vals[0] = level;
@@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
 static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
 	u8 pn, pn_min, pn_max;
 
@@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
 					  const struct drm_connector_state *conn_state)
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
-	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
 
 	if (drm_dp_dpcd_readb(&intel_dp->aux,
@@ -229,7 +229,7 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old
 static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 					enum pipe pipe)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	struct intel_panel *panel = &connector->panel;
 
 	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
@@ -248,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
 static bool
 intel_dp_aux_display_control_capable(struct intel_connector *connector)
 {
-	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
+	struct intel_dp *intel_dp = intel_attached_dp(connector);
 
 	/* Check the eDP Display control capabilities registers to determine if
 	 * the panel can support backlight control over the aux channel
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index d8c2fa2672b5..5de5dacef394 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -2020,7 +2020,7 @@ static int i915_psr_sink_status_show(struct seq_file *m, void *data)
 	struct drm_connector *connector = m->private;
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
+		intel_attached_dp(to_intel_connector(connector));
 	int ret;
 
 	if (!CAN_PSR(dev_priv)) {
@@ -4396,7 +4396,7 @@ static int i915_dpcd_show(struct seq_file *m, void *data)
 {
 	struct drm_connector *connector = m->private;
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
+		intel_attached_dp(to_intel_connector(connector));
 	u8 buf[16];
 	ssize_t err;
 	int i;
@@ -4431,7 +4431,7 @@ static int i915_panel_show(struct seq_file *m, void *data)
 {
 	struct drm_connector *connector = m->private;
 	struct intel_dp *intel_dp =
-		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
+		intel_attached_dp(to_intel_connector(connector));
 
 	if (connector->status != connector_status_connected)
 		return -ENODEV;
@@ -4509,7 +4509,7 @@ static int i915_dsc_fec_support_show(struct seq_file *m, void *data)
 		} else if (ret) {
 			break;
 		}
-		intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
+		intel_dp = intel_attached_dp(to_intel_connector(connector));
 		crtc_state = to_intel_crtc_state(crtc->state);
 		seq_printf(m, "DSC_Enabled: %s\n",
 			   yesno(crtc_state->dsc.compression_enable));
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 8/9] drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (6 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 7/9] drm/i915: Use intel_attached_dp() instead of hand rolling it Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2020-01-21 14:46   ` Juha-Pekka Heikkila
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 9/9] drm/i915/hdcp: Clean up local variables Ville Syrjala
                   ` (5 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use the standard naming convention and rename conn_to_dig_port()
to intel_attached_dig_port().

@@
@@
- conn_to_dig_port
+ intel_attached_dig_port
	(...)
{
...
}

@@
expression C;
@@
- conn_to_dig_port(C)
+ intel_attached_dig_port(C)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 .../drm/i915/display/intel_display_types.h    |  2 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     | 32 +++++++++----------
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  2 +-
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 92bd3d04ad80..1f8f47c69502 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1466,7 +1466,7 @@ enc_to_dig_port(struct intel_encoder *encoder)
 }
 
 static inline struct intel_digital_port *
-conn_to_dig_port(struct intel_connector *connector)
+intel_attached_dig_port(struct intel_connector *connector)
 {
 	return enc_to_dig_port(intel_attached_encoder(connector));
 }
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 2859230671ae..4b73227644f0 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -64,7 +64,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
 /* Is HDCP1.4 capable on Platform and Sink */
 bool intel_hdcp_capable(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
 	bool capable = false;
 	u8 bksv[5];
@@ -86,7 +86,7 @@ bool intel_hdcp_capable(struct intel_connector *connector)
 bool intel_hdcp2_capable(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	bool capable = false;
 
@@ -297,7 +297,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 				const struct intel_hdcp_shim *shim,
 				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv;
 	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
 	enum port port = intel_dig_port->base.port;
@@ -513,7 +513,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 static
 int intel_hdcp_auth_downstream(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
 	struct drm_device *dev = connector->base.dev;
 	u8 bstatus[2], num_downstream, *ksv_fifo;
@@ -592,7 +592,7 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 /* Implements Part 1 of the HDCP authorization procedure */
 static int intel_hdcp_auth(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct drm_device *dev = connector->base.dev;
 	const struct intel_hdcp_shim *shim = hdcp->shim;
@@ -757,7 +757,7 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
 {
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
@@ -838,7 +838,7 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
 {
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder;
 	int ret = 0;
@@ -1209,7 +1209,7 @@ static int hdcp2_deauthenticate_port(struct intel_connector *connector)
 /* Authentication flow starts from here */
 static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct drm_device *dev = connector->base.dev;
 	union {
@@ -1297,7 +1297,7 @@ static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
 
 static int hdcp2_locality_check(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	union {
 		struct hdcp2_lc_init lc_init;
@@ -1333,7 +1333,7 @@ static int hdcp2_locality_check(struct intel_connector *connector)
 
 static int hdcp2_session_key_exchange(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct hdcp2_ske_send_eks send_eks;
 	int ret;
@@ -1353,7 +1353,7 @@ static int hdcp2_session_key_exchange(struct intel_connector *connector)
 static
 int hdcp2_propagate_stream_management_info(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	union {
 		struct hdcp2_rep_stream_manage stream_manage;
@@ -1404,7 +1404,7 @@ int hdcp2_propagate_stream_management_info(struct intel_connector *connector)
 static
 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct drm_device *dev = connector->base.dev;
 	union {
@@ -1475,7 +1475,7 @@ static int hdcp2_authenticate_repeater(struct intel_connector *connector)
 
 static int hdcp2_authenticate_sink(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	const struct intel_hdcp_shim *shim = hdcp->shim;
 	int ret;
@@ -1524,7 +1524,7 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector)
 
 static int hdcp2_enable_encryption(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = intel_attached_encoder(connector)->port;
@@ -1562,7 +1562,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
 
 static int hdcp2_disable_encryption(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = intel_attached_encoder(connector)->port;
@@ -1673,7 +1673,7 @@ static int _intel_hdcp2_disable(struct intel_connector *connector)
 /* Implements the Link Integrity Check for HDCP2.2 */
 static int intel_hdcp2_check_link(struct intel_connector *connector)
 {
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = intel_attached_encoder(connector)->port;
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index e179ee046687..53a32165c5ff 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -1447,7 +1447,7 @@ int intel_hdmi_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
 static int kbl_repositioning_enc_en_signal(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
-	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_crtc *crtc = connector->base.state->crtc;
 	struct intel_crtc *intel_crtc = container_of(crtc,
 						     struct intel_crtc, base);
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] [PATCH 9/9] drm/i915/hdcp: Clean up local variables
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (7 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 8/9] drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port() Ville Syrjala
@ 2019-12-04 18:05 ` Ville Syrjala
  2019-12-05 10:22   ` Ramalingam C
  2019-12-04 23:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co Patchwork
                   ` (4 subsequent siblings)
  13 siblings, 1 reply; 27+ messages in thread
From: Ville Syrjala @ 2019-12-04 18:05 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Eliminate the inconsistencies in the hdcp code local variables:
- use dev_priv over dev
- use to_i915() instead of dev->dev_private
- initialize variables when declaring them
- a bit of declaration suffling to make appease ocd

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_hdcp.c | 54 +++++++++++------------
 1 file changed, 25 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 4b73227644f0..3454a913dca8 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -85,8 +85,8 @@ bool intel_hdcp_capable(struct intel_connector *connector)
 /* Is HDCP2.2 capable on Platform and Sink */
 bool intel_hdcp2_capable(struct intel_connector *connector)
 {
-	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	bool capable = false;
 
@@ -298,14 +298,12 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
 				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
 {
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
-	struct drm_i915_private *dev_priv;
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
 	enum port port = intel_dig_port->base.port;
 	u32 vprime, sha_text, sha_leftovers, rep_ctl;
 	int ret, i, j, sha_idx;
 
-	dev_priv = intel_dig_port->base.base.dev->dev_private;
-
 	/* Process V' values from the receiver */
 	for (i = 0; i < DRM_HDCP_V_PRIME_NUM_PARTS; i++) {
 		ret = shim->read_v_prime_part(intel_dig_port, i, &vprime);
@@ -514,8 +512,8 @@ static
 int intel_hdcp_auth_downstream(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
-	struct drm_device *dev = connector->base.dev;
 	u8 bstatus[2], num_downstream, *ksv_fifo;
 	int ret, i, tries = 3;
 
@@ -558,7 +556,8 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 	if (ret)
 		goto err;
 
-	if (drm_hdcp_check_ksvs_revoked(dev, ksv_fifo, num_downstream)) {
+	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm, ksv_fifo,
+					num_downstream)) {
 		DRM_ERROR("Revoked Ksv(s) in ksv_fifo\n");
 		ret = -EPERM;
 		goto err;
@@ -593,12 +592,11 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
 static int intel_hdcp_auth(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_device *dev = connector->base.dev;
 	const struct intel_hdcp_shim *shim = hdcp->shim;
-	struct drm_i915_private *dev_priv;
 	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
-	enum port port;
+	enum port port = intel_dig_port->base.port;
 	unsigned long r0_prime_gen_start;
 	int ret, i, tries = 2;
 	union {
@@ -615,10 +613,6 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 	} ri;
 	bool repeater_present, hdcp_capable;
 
-	dev_priv = intel_dig_port->base.base.dev->dev_private;
-
-	port = intel_dig_port->base.port;
-
 	/*
 	 * Detects whether the display is HDCP capable. Although we check for
 	 * valid Bksv below, the HDCP over DP spec requires that we check
@@ -664,7 +658,7 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 	if (ret < 0)
 		return ret;
 
-	if (drm_hdcp_check_ksvs_revoked(dev, bksv.shim, 1)) {
+	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm, bksv.shim, 1)) {
 		DRM_ERROR("BKSV is revoked\n");
 		return -EPERM;
 	}
@@ -755,9 +749,9 @@ static int intel_hdcp_auth(struct intel_connector *connector)
 
 static int _intel_hdcp_disable(struct intel_connector *connector)
 {
-	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
@@ -786,8 +780,8 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
 
 static int _intel_hdcp_enable(struct intel_connector *connector)
 {
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
 	int i, ret, tries = 3;
 
 	DRM_DEBUG_KMS("[%s:%d] HDCP is being enabled...\n",
@@ -836,9 +830,9 @@ struct intel_connector *intel_hdcp_to_connector(struct intel_hdcp *hdcp)
 /* Implements Part 3 of the HDCP authorization procedure */
 static int intel_hdcp_check_link(struct intel_connector *connector)
 {
-	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder;
 	int ret = 0;
@@ -901,9 +895,9 @@ static void intel_hdcp_prop_work(struct work_struct *work)
 	struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
 					       prop_work);
 	struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
-	struct drm_device *dev = connector->base.dev;
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 
-	drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
+	drm_modeset_lock(&dev_priv->drm.mode_config.connection_mutex, NULL);
 	mutex_lock(&hdcp->mutex);
 
 	/*
@@ -916,7 +910,7 @@ static void intel_hdcp_prop_work(struct work_struct *work)
 						   hdcp->value);
 
 	mutex_unlock(&hdcp->mutex);
-	drm_modeset_unlock(&dev->mode_config.connection_mutex);
+	drm_modeset_unlock(&dev_priv->drm.mode_config.connection_mutex);
 }
 
 bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port)
@@ -1210,8 +1204,8 @@ static int hdcp2_deauthenticate_port(struct intel_connector *connector)
 static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_device *dev = connector->base.dev;
 	union {
 		struct hdcp2_ake_init ake_init;
 		struct hdcp2_ake_send_cert send_cert;
@@ -1248,7 +1242,8 @@ static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
 
 	hdcp->is_repeater = HDCP_2_2_RX_REPEATER(msgs.send_cert.rx_caps[2]);
 
-	if (drm_hdcp_check_ksvs_revoked(dev, msgs.send_cert.cert_rx.receiver_id,
+	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm,
+					msgs.send_cert.cert_rx.receiver_id,
 					1)) {
 		DRM_ERROR("Receiver ID is revoked\n");
 		return -EPERM;
@@ -1405,8 +1400,8 @@ static
 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
+	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	struct drm_device *dev = connector->base.dev;
 	union {
 		struct hdcp2_rep_send_receiverid_list recvid_list;
 		struct hdcp2_rep_send_ack rep_ack;
@@ -1441,7 +1436,8 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
 
 	device_cnt = (HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 |
 		      HDCP_2_2_DEV_COUNT_LO(rx_info[1]));
-	if (drm_hdcp_check_ksvs_revoked(dev, msgs.recvid_list.receiver_ids,
+	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm,
+					msgs.recvid_list.receiver_ids,
 					device_cnt)) {
 		DRM_ERROR("Revoked receiver ID(s) is in list\n");
 		return -EPERM;
@@ -1527,7 +1523,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	enum port port = intel_attached_encoder(connector)->port;
+	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
@@ -1565,7 +1561,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	enum port port = intel_attached_encoder(connector)->port;
+	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
@@ -1676,7 +1672,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
 	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
 	struct intel_hdcp *hdcp = &connector->hdcp;
-	enum port port = intel_attached_encoder(connector)->port;
+	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder;
 	int ret = 0;
 
-- 
2.23.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co.
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (8 preceding siblings ...)
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 9/9] drm/i915/hdcp: Clean up local variables Ville Syrjala
@ 2019-12-04 23:48 ` Patchwork
  2019-12-05  0:15 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-12-04 23:48 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Cleanups around intel_attached_encoder() & co.
URL   : https://patchwork.freedesktop.org/series/70456/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
199f293c61f6 drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()
6802b68a8c89 drm/i915: Pass intel_connector to intel_attached_*()
-:557: WARNING:LONG_LINE: line over 100 characters
#557: FILE: drivers/gpu/drm/i915/i915_debugfs.c:4512:
+		intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);

total: 0 errors, 1 warnings, 0 checks, 427 lines checked
de846135dcb9 drm/i915: Pass intel_encoder to enc_to_*()
-:520: ERROR:CODE_INDENT: code indent should use tabs where possible
#520: FILE: drivers/gpu/drm/i915/display/intel_ddi.c:4150:
+^I^I               required_lanes);$

-:520: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#520: FILE: drivers/gpu/drm/i915/display/intel_ddi.c:4150:
+	intel_tc_port_get_link(enc_to_dig_port(encoder),
+		               required_lanes);

-:1499: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "hpd_pulse"
#1499: FILE: drivers/gpu/drm/i915/display/intel_hotplug.c:305:
+		enc_to_dig_port(encoder)->hpd_pulse != NULL;

total: 1 errors, 0 warnings, 2 checks, 1610 lines checked
a6e6f85fd268 drm/i915: Use the passed in encoder
2912aa8e32ae drm/i915: Use intel_attached_encoder()
-:168: WARNING:LONG_LINE: line over 100 characters
#168: FILE: drivers/gpu/drm/i915/display/intel_dp_mst.c:508:
+		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))

total: 0 errors, 1 warnings, 0 checks, 206 lines checked
77f44059fe5c drm/i915: Relocate intel_attached_dp()
d36a4708c97f drm/i915: Use intel_attached_dp() instead of hand rolling it
994f883b2e7b drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
7cc295fc9aa0 drm/i915/hdcp: Clean up local variables

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Cleanups around intel_attached_encoder() & co.
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (9 preceding siblings ...)
  2019-12-04 23:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co Patchwork
@ 2019-12-05  0:15 ` Patchwork
  2019-12-05 11:58 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co. (rev2) Patchwork
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-12-05  0:15 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Cleanups around intel_attached_encoder() & co.
URL   : https://patchwork.freedesktop.org/series/70456/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7485 -> Patchwork_15587
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15587 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15587, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15587:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_selftest@live_gem_contexts:
    - fi-byt-j1900:       [PASS][1] -> [DMESG-FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-byt-j1900/igt@i915_selftest@live_gem_contexts.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-byt-j1900/igt@i915_selftest@live_gem_contexts.html

  
Known issues
------------

  Here are the changes found in Patchwork_15587 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_blt:
    - fi-ivb-3770:        [PASS][3] -> [DMESG-FAIL][4] ([i915#563])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-ivb-3770/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-ivb-3770/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-skl-lmem:        [PASS][5] -> [INCOMPLETE][6] ([i915#424])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-skl-lmem/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-icl-u2:          [PASS][7] -> [DMESG-WARN][8] ([IGT#4] / [i915#263])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-icl-u2/igt@kms_chamelium@common-hpd-after-suspend.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [DMESG-WARN][9] ([i915#592]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-byt-n2820:       [DMESG-FAIL][11] -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-byt-n2820/igt@i915_selftest@live_blt.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-byt-n2820/igt@i915_selftest@live_blt.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          [FAIL][13] ([i915#49]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
    - fi-icl-u2:          [FAIL][15] ([i915#49]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][17] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][18] ([i915#62] / [i915#92]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [DMESG-FAIL][19] ([i915#563]) -> [DMESG-FAIL][20] ([i915#683])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_flip@basic-flip-vs-modeset:
    - fi-kbl-x1275:       [DMESG-WARN][21] ([i915#62] / [i915#92]) -> [DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) +7 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7485/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-modeset.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-modeset.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#4]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/4
  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#263]: https://gitlab.freedesktop.org/drm/intel/issues/263
  [i915#424]: https://gitlab.freedesktop.org/drm/intel/issues/424
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#563]: https://gitlab.freedesktop.org/drm/intel/issues/563
  [i915#592]: https://gitlab.freedesktop.org/drm/intel/issues/592
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#683]: https://gitlab.freedesktop.org/drm/intel/issues/683
  [i915#710]: https://gitlab.freedesktop.org/drm/intel/issues/710
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (54 -> 47)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7485 -> Patchwork_15587

  CI-20190529: 20190529
  CI_DRM_7485: e0c1226aa69dcd3c47a7bb2bc0ae2be417f9e14e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5330: 2be94c2fba1cf9b6a3c1df093fa7289b1635b6fb @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15587: 7cc295fc9aa0964a750efb734ff59eb12d7a1a19 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

7cc295fc9aa0 drm/i915/hdcp: Clean up local variables
994f883b2e7b drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
d36a4708c97f drm/i915: Use intel_attached_dp() instead of hand rolling it
77f44059fe5c drm/i915: Relocate intel_attached_dp()
2912aa8e32ae drm/i915: Use intel_attached_encoder()
a6e6f85fd268 drm/i915: Use the passed in encoder
de846135dcb9 drm/i915: Pass intel_encoder to enc_to_*()
6802b68a8c89 drm/i915: Pass intel_connector to intel_attached_*()
199f293c61f6 drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15587/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() Ville Syrjala
@ 2019-12-05  9:33   ` Ramalingam C
  0 siblings, 0 replies; 27+ messages in thread
From: Ramalingam C @ 2019-12-05  9:33 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: Jani Nikula, intel-gfx

On 2019-12-04 at 20:05:41 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> intel_hdcp_transcoder_config() is clobbering some globally visible
> state in .compute_config(). That is a big no no as .compute_config()
> is supposed to have no visible side effects when either the commit
> fails or it's just a TEST_ONLY commit.
> 
> Inline this stuff into intel_hdcp_enable() so that the state only
> gets modified when we actually commit the state to the hardware.
> 
> Cc: Ramalingam C <ramalingam.c@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Fixes: 39e2df090c3c ("drm/i915/hdcp: update current transcoder into intel_hdcp")
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_ddi.c  |  5 ++++-
>  drivers/gpu/drm/i915/display/intel_dp.c   |  3 ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c | 26 +++++++----------------
>  drivers/gpu/drm/i915/display/intel_hdcp.h |  5 ++---
>  drivers/gpu/drm/i915/display/intel_hdmi.c |  3 ---
>  5 files changed, 14 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index ebcc7302706b..e692c0b28559 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -4026,6 +4026,7 @@ static void intel_enable_ddi(struct intel_encoder *encoder,
>  	if (conn_state->content_protection ==
>  	    DRM_MODE_CONTENT_PROTECTION_DESIRED)
>  		intel_hdcp_enable(to_intel_connector(conn_state->connector),
> +				  crtc_state->cpu_transcoder,
>  				  (u8)conn_state->hdcp_content_type);
>  }
>  
> @@ -4129,7 +4130,9 @@ static void intel_ddi_update_pipe(struct intel_encoder *encoder,
>  	if (conn_state->content_protection ==
>  	    DRM_MODE_CONTENT_PROTECTION_DESIRED ||
>  	    content_protection_type_changed)
> -		intel_hdcp_enable(connector, (u8)conn_state->hdcp_content_type);
> +		intel_hdcp_enable(connector,
> +				  crtc_state->cpu_transcoder,
> +				  (u8)conn_state->hdcp_content_type);
>  }
>  
>  static void
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 5c406a0fd045..0f496115c345 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -2425,9 +2425,6 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>  
>  	intel_psr_compute_config(intel_dp, pipe_config);
>  
> -	intel_hdcp_transcoder_config(intel_connector,
> -				     pipe_config->cpu_transcoder);
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 001ce27d7029..0fdbd39f6641 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -1821,23 +1821,6 @@ enum mei_fw_tc intel_get_mei_fw_tc(enum transcoder cpu_transcoder)
>  	}
>  }
>  
> -void intel_hdcp_transcoder_config(struct intel_connector *connector,
> -				  enum transcoder cpu_transcoder)
> -{
> -	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_hdcp *hdcp = &connector->hdcp;
> -
> -	if (!hdcp->shim)
> -		return;
> -
> -	if (INTEL_GEN(dev_priv) >= 12) {
> -		mutex_lock(&hdcp->mutex);
> -		hdcp->cpu_transcoder = cpu_transcoder;
> -		hdcp->port_data.fw_tc = intel_get_mei_fw_tc(cpu_transcoder);
> -		mutex_unlock(&hdcp->mutex);
> -	}
> -}
> -
>  static inline int initialize_hdcp_port_data(struct intel_connector *connector,
>  					    const struct intel_hdcp_shim *shim)
>  {
> @@ -1959,8 +1942,10 @@ int intel_hdcp_init(struct intel_connector *connector,
>  	return 0;
>  }
>  
> -int intel_hdcp_enable(struct intel_connector *connector, u8 content_type)
> +int intel_hdcp_enable(struct intel_connector *connector,
> +		      enum transcoder cpu_transcoder, u8 content_type)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
>  	int ret = -EINVAL;
> @@ -1972,6 +1957,11 @@ int intel_hdcp_enable(struct intel_connector *connector, u8 content_type)
>  	WARN_ON(hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
>  	hdcp->content_type = content_type;
>  
> +	if (INTEL_GEN(dev_priv) >= 12) {
> +		hdcp->cpu_transcoder = cpu_transcoder;
> +		hdcp->port_data.fw_tc = intel_get_mei_fw_tc(cpu_transcoder);
> +	}
> +
>  	/*
>  	 * Considering that HDCP2.2 is more secure than HDCP1.4, If the setup
>  	 * is capable of HDCP2.2, it is preferred to use HDCP2.2.
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.h b/drivers/gpu/drm/i915/display/intel_hdcp.h
> index 41c1053d9e38..f3c3272e712a 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.h
> @@ -21,11 +21,10 @@ enum transcoder;
>  void intel_hdcp_atomic_check(struct drm_connector *connector,
>  			     struct drm_connector_state *old_state,
>  			     struct drm_connector_state *new_state);
> -void intel_hdcp_transcoder_config(struct intel_connector *connector,
> -				  enum transcoder cpu_transcoder);
>  int intel_hdcp_init(struct intel_connector *connector,
>  		    const struct intel_hdcp_shim *hdcp_shim);
> -int intel_hdcp_enable(struct intel_connector *connector, u8 content_type);
> +int intel_hdcp_enable(struct intel_connector *connector,
> +		      enum transcoder cpu_transcoder, u8 content_type);
>  int intel_hdcp_disable(struct intel_connector *connector);
>  bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port);
>  bool intel_hdcp_capable(struct intel_connector *connector);
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 29a174af5314..a89a09b25260 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -2490,9 +2490,6 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
>  		return -EINVAL;
>  	}
>  
> -	intel_hdcp_transcoder_config(intel_hdmi->attached_connector,
> -				     pipe_config->cpu_transcoder);
> -
>  	return 0;
>  }
>  
> -- 
> 2.23.0
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 9/9] drm/i915/hdcp: Clean up local variables
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 9/9] drm/i915/hdcp: Clean up local variables Ville Syrjala
@ 2019-12-05 10:22   ` Ramalingam C
  0 siblings, 0 replies; 27+ messages in thread
From: Ramalingam C @ 2019-12-05 10:22 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-12-04 at 20:05:49 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Eliminate the inconsistencies in the hdcp code local variables:
> - use dev_priv over dev
> - use to_i915() instead of dev->dev_private
> - initialize variables when declaring them
> - a bit of declaration suffling to make appease ocd
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_hdcp.c | 54 +++++++++++------------
>  1 file changed, 25 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 4b73227644f0..3454a913dca8 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -85,8 +85,8 @@ bool intel_hdcp_capable(struct intel_connector *connector)
>  /* Is HDCP2.2 capable on Platform and Sink */
>  bool intel_hdcp2_capable(struct intel_connector *connector)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	bool capable = false;
>  
> @@ -298,14 +298,12 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>  				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
>  {
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> -	struct drm_i915_private *dev_priv;
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
>  	enum port port = intel_dig_port->base.port;
>  	u32 vprime, sha_text, sha_leftovers, rep_ctl;
>  	int ret, i, j, sha_idx;
>  
> -	dev_priv = intel_dig_port->base.base.dev->dev_private;
> -
>  	/* Process V' values from the receiver */
>  	for (i = 0; i < DRM_HDCP_V_PRIME_NUM_PARTS; i++) {
>  		ret = shim->read_v_prime_part(intel_dig_port, i, &vprime);
> @@ -514,8 +512,8 @@ static
>  int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
> -	struct drm_device *dev = connector->base.dev;
>  	u8 bstatus[2], num_downstream, *ksv_fifo;
>  	int ret, i, tries = 3;
>  
> @@ -558,7 +556,8 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  	if (ret)
>  		goto err;
>  
> -	if (drm_hdcp_check_ksvs_revoked(dev, ksv_fifo, num_downstream)) {
> +	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm, ksv_fifo,
> +					num_downstream)) {
>  		DRM_ERROR("Revoked Ksv(s) in ksv_fifo\n");
>  		ret = -EPERM;
>  		goto err;
> @@ -593,12 +592,11 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>  static int intel_hdcp_auth(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_device *dev = connector->base.dev;
>  	const struct intel_hdcp_shim *shim = hdcp->shim;
> -	struct drm_i915_private *dev_priv;
>  	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
> -	enum port port;
> +	enum port port = intel_dig_port->base.port;
>  	unsigned long r0_prime_gen_start;
>  	int ret, i, tries = 2;
>  	union {
> @@ -615,10 +613,6 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  	} ri;
>  	bool repeater_present, hdcp_capable;
>  
> -	dev_priv = intel_dig_port->base.base.dev->dev_private;
> -
> -	port = intel_dig_port->base.port;
> -
>  	/*
>  	 * Detects whether the display is HDCP capable. Although we check for
>  	 * valid Bksv below, the HDCP over DP spec requires that we check
> @@ -664,7 +658,7 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  	if (ret < 0)
>  		return ret;
>  
> -	if (drm_hdcp_check_ksvs_revoked(dev, bksv.shim, 1)) {
> +	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm, bksv.shim, 1)) {
>  		DRM_ERROR("BKSV is revoked\n");
>  		return -EPERM;
>  	}
> @@ -755,9 +749,9 @@ static int intel_hdcp_auth(struct intel_connector *connector)
>  
>  static int _intel_hdcp_disable(struct intel_connector *connector)
>  {
> -	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = intel_dig_port->base.port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
> @@ -786,8 +780,8 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
>  
>  static int _intel_hdcp_enable(struct intel_connector *connector)
>  {
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
>  	int i, ret, tries = 3;
>  
>  	DRM_DEBUG_KMS("[%s:%d] HDCP is being enabled...\n",
> @@ -836,9 +830,9 @@ struct intel_connector *intel_hdcp_to_connector(struct intel_hdcp *hdcp)
>  /* Implements Part 3 of the HDCP authorization procedure */
>  static int intel_hdcp_check_link(struct intel_connector *connector)
>  {
> -	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = intel_dig_port->base.port;
>  	enum transcoder cpu_transcoder;
>  	int ret = 0;
> @@ -901,9 +895,9 @@ static void intel_hdcp_prop_work(struct work_struct *work)
>  	struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
>  					       prop_work);
>  	struct intel_connector *connector = intel_hdcp_to_connector(hdcp);
> -	struct drm_device *dev = connector->base.dev;
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  
> -	drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
> +	drm_modeset_lock(&dev_priv->drm.mode_config.connection_mutex, NULL);
>  	mutex_lock(&hdcp->mutex);
>  
>  	/*
> @@ -916,7 +910,7 @@ static void intel_hdcp_prop_work(struct work_struct *work)
>  						   hdcp->value);
>  
>  	mutex_unlock(&hdcp->mutex);
> -	drm_modeset_unlock(&dev->mode_config.connection_mutex);
> +	drm_modeset_unlock(&dev_priv->drm.mode_config.connection_mutex);
>  }
>  
>  bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port)
> @@ -1210,8 +1204,8 @@ static int hdcp2_deauthenticate_port(struct intel_connector *connector)
>  static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_device *dev = connector->base.dev;
>  	union {
>  		struct hdcp2_ake_init ake_init;
>  		struct hdcp2_ake_send_cert send_cert;
> @@ -1248,7 +1242,8 @@ static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
>  
>  	hdcp->is_repeater = HDCP_2_2_RX_REPEATER(msgs.send_cert.rx_caps[2]);
>  
> -	if (drm_hdcp_check_ksvs_revoked(dev, msgs.send_cert.cert_rx.receiver_id,
> +	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm,
> +					msgs.send_cert.cert_rx.receiver_id,
>  					1)) {
>  		DRM_ERROR("Receiver ID is revoked\n");
>  		return -EPERM;
> @@ -1405,8 +1400,8 @@ static
>  int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
> +	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	struct drm_device *dev = connector->base.dev;
>  	union {
>  		struct hdcp2_rep_send_receiverid_list recvid_list;
>  		struct hdcp2_rep_send_ack rep_ack;
> @@ -1441,7 +1436,8 @@ int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>  
>  	device_cnt = (HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 |
>  		      HDCP_2_2_DEV_COUNT_LO(rx_info[1]));
> -	if (drm_hdcp_check_ksvs_revoked(dev, msgs.recvid_list.receiver_ids,
> +	if (drm_hdcp_check_ksvs_revoked(&dev_priv->drm,
> +					msgs.recvid_list.receiver_ids,
>  					device_cnt)) {
>  		DRM_ERROR("Revoked receiver ID(s) is in list\n");
>  		return -EPERM;
> @@ -1527,7 +1523,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = intel_attached_encoder(connector)->port;
> +	enum port port = intel_dig_port->base.port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> @@ -1565,7 +1561,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = intel_attached_encoder(connector)->port;
> +	enum port port = intel_dig_port->base.port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> @@ -1676,7 +1672,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>  	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = intel_attached_encoder(connector)->port;
> +	enum port port = intel_dig_port->base.port;
>  	enum transcoder cpu_transcoder;
>  	int ret = 0;
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 4/9] drm/i915: Use the passed in encoder
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 4/9] drm/i915: Use the passed in encoder Ville Syrjala
@ 2019-12-05 10:24   ` Ramalingam C
  0 siblings, 0 replies; 27+ messages in thread
From: Ramalingam C @ 2019-12-05 10:24 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-12-04 at 20:05:44 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Just use the passed in encoder instead of digging it out via
> the legacy drm_connector->encoder pointer (which we'll want to
> stop using).
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
LGTM

Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_audio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
> index 27710098d056..f9d7a77fbdbe 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -707,8 +707,8 @@ void intel_audio_codec_enable(struct intel_encoder *encoder,
>  	DRM_DEBUG_DRIVER("ELD on [CONNECTOR:%d:%s], [ENCODER:%d:%s]\n",
>  			 connector->base.id,
>  			 connector->name,
> -			 connector->encoder->base.id,
> -			 connector->encoder->name);
> +			 encoder->base.base.id,
> +			 encoder->base.name);
>  
>  	connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
>  
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder() Ville Syrjala
@ 2019-12-05 10:59   ` Ramalingam C
  2019-12-05 11:04     ` Ramalingam C
  2019-12-09 15:52     ` Ville Syrjälä
  2020-01-21 15:49   ` Juha-Pekka Heikkila
  1 sibling, 2 replies; 27+ messages in thread
From: Ramalingam C @ 2019-12-05 10:59 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-12-04 at 20:05:45 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> It's easy to confuse the drm_connector->encoder (legacy state
> adjusted during modeset) and intel_connector->encoder (the statically
> (sans. MST) attached encoder of the connector). For the latter
> let's use intel_attached_encoder() consistently.
> 
> @@
> identifier F !~ "^intel_attached_encoder$";
> struct intel_connector *C;
> expression E;
> @@
> F(...)
> {
> <...
> (
>   C->encoder = E
> |
> - C->encoder
> + intel_attached_encoder(C)

You mean intel_attached_encoder(&C->base)
Need to pass the drm_connector *

So this is for readability!? This adds the line length beyond 80char
or to reduce that a extra local variable. I leave that to you.
> )
> ...>
> }
> 
> @@
> identifier F !~ "^intel_attached_encoder$";
> struct drm_connector *C;
> expression E;
> @@
> F(...)
> {
> <...
> (
>   to_intel_connector(C)->encoder = E
> |
> - to_intel_connector(C)->encoder
> + intel_attached_encoder(to_intel_connector(C))
> )
> ...>
> }
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_connector.c       |  2 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c             |  2 +-
>  drivers/gpu/drm/i915/display/intel_display.c         |  4 ++--
>  .../gpu/drm/i915/display/intel_dp_aux_backlight.c    | 12 ++++++------
>  drivers/gpu/drm/i915/display/intel_dp_mst.c          |  4 ++--
>  .../gpu/drm/i915/display/intel_dsi_dcs_backlight.c   |  4 ++--
>  drivers/gpu/drm/i915/display/intel_hdcp.c            |  8 ++++----
>  drivers/gpu/drm/i915/display/intel_hotplug.c         | 10 +++++-----
>  drivers/gpu/drm/i915/display/vlv_dsi.c               |  2 +-
>  drivers/gpu/drm/i915/i915_debugfs.c                  |  6 +++---
>  10 files changed, 27 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
> index 1133c4e97bb4..54891a4ed2f3 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.c
> +++ b/drivers/gpu/drm/i915/display/intel_connector.c
> @@ -153,7 +153,7 @@ void intel_connector_attach_encoder(struct intel_connector *connector,
>  bool intel_connector_get_hw_state(struct intel_connector *connector)
>  {
>  	enum pipe pipe = 0;
> -	struct intel_encoder *encoder = connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(connector);
intel_attached_encoder takes drm_connector * instead of intel_connector.
Everywhere we need to change this.
>  
>  	return encoder->get_hw_state(encoder, &pipe);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 52d187db320f..3e46017150b4 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -2003,7 +2003,7 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
>  {
>  	struct drm_device *dev = intel_connector->base.dev;
>  	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_encoder *encoder = intel_connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
As you have done in previous series, could we rename this intel_connector
as connector
>  	int type = intel_connector->base.connector_type;
>  	enum port port = encoder->port;
>  	enum transcoder cpu_transcoder;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 45568a7c6579..df1b80387106 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -7279,7 +7279,7 @@ static void intel_connector_verify_state(struct intel_crtc_state *crtc_state,
>  		      connector->base.name);
>  
>  	if (connector->get_hw_state(connector)) {
> -		struct intel_encoder *encoder = connector->encoder;
> +		struct intel_encoder *encoder = intel_attached_encoder(connector);
>  
>  		I915_STATE_WARN(!crtc_state,
>  			 "connector enabled without attached crtc\n");
> @@ -17529,7 +17529,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
>  
>  			connector->base.dpms = DRM_MODE_DPMS_ON;
>  
> -			encoder = connector->encoder;
> +			encoder = intel_attached_encoder(connector);
>  			connector->base.encoder = &encoder->base;
>  
>  			crtc = to_intel_crtc(encoder->base.crtc);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 7c653f8c307f..771e22a0b2a4 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
>   */
>  static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
>  {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>  	u8 read_val[2] = { 0x0 };
>  	u16 level = 0;
>  
> @@ -82,7 +82,7 @@ static void
>  intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
>  {
>  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>  	u8 vals[2] = { 0x0 };
>  
>  	vals[0] = level;
> @@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
>  static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>  	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
>  	u8 pn, pn_min, pn_max;
>  
> @@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>  					  const struct drm_connector_state *conn_state)
>  {
>  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>  	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
>  
>  	if (drm_dp_dpcd_readb(&intel_dp->aux,
> @@ -229,7 +229,7 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old
>  static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>  					enum pipe pipe)
>  {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>  	struct intel_panel *panel = &connector->panel;
>  
>  	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
> @@ -248,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>  static bool
>  intel_dp_aux_display_control_capable(struct intel_connector *connector)
>  {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>  
>  	/* Check the eDP Display control capabilities registers to determine if
>  	 * the panel can support backlight control over the aux channel
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index af7f6d670e07..1a7d69843c12 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -503,9 +503,9 @@ static const struct drm_encoder_funcs intel_dp_mst_enc_funcs = {
>  
>  static bool intel_dp_mst_get_hw_state(struct intel_connector *connector)
>  {
> -	if (connector->encoder && connector->base.state->crtc) {
> +	if (intel_attached_encoder(connector) && connector->base.state->crtc) {
>  		enum pipe pipe;
> -		if (!connector->encoder->get_hw_state(connector->encoder, &pipe))
> +		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))
Do we prefer this way or with local var for attached encoder restricting
line to 80char?
>  			return false;
>  		return true;
>  	}
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> index c87838843d0b..ac3eff26df12 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> @@ -45,7 +45,7 @@
>  
>  static u32 dcs_get_backlight(struct intel_connector *connector)
>  {
> -	struct intel_encoder *encoder = connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(connector);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	struct mipi_dsi_device *dsi_device;
>  	u8 data = 0;
> @@ -160,7 +160,7 @@ int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector)
>  {
>  	struct drm_device *dev = intel_connector->base.dev;
>  	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_encoder *encoder = intel_connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
s/intel_connector/connector ?
>  	struct intel_panel *panel = &intel_connector->panel;
>  
>  	if (dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_DSI_DCS)
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 0fdbd39f6641..2859230671ae 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -1527,7 +1527,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = connector->encoder->port;
> +	enum port port = intel_attached_encoder(connector)->port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> @@ -1565,7 +1565,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = connector->encoder->port;
> +	enum port port = intel_attached_encoder(connector)->port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> @@ -1676,7 +1676,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = connector->encoder->port;
> +	enum port port = intel_attached_encoder(connector)->port;
>  	enum transcoder cpu_transcoder;
>  	int ret = 0;
>  
> @@ -1830,7 +1830,7 @@ static inline int initialize_hdcp_port_data(struct intel_connector *connector,
>  
>  	if (INTEL_GEN(dev_priv) < 12)
>  		data->fw_ddi =
> -			intel_get_mei_fw_ddi_index(connector->encoder->port);
> +			intel_get_mei_fw_ddi_index(intel_attached_encoder(connector)->port);
could we wrap at 80char with var encoder?
>  	else
>  		/*
>  		 * As per ME FW API expectation, for GEN 12+, fw_ddi is filled
> diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
> index 99d3a3c7989e..c3a48af35997 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> @@ -200,7 +200,7 @@ intel_hpd_irq_storm_switch_to_polling(struct drm_i915_private *dev_priv)
>  			continue;
>  
>  		intel_connector = to_intel_connector(connector);
> -		intel_encoder = intel_connector->encoder;
> +		intel_encoder = intel_attached_encoder(intel_connector);
>  		if (!intel_encoder)
>  			continue;
>  
> @@ -255,7 +255,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
>  
>  			/* Don't check MST ports, they don't have pins */
>  			if (!intel_connector->mst_port &&
> -			    intel_connector->encoder->hpd_pin == pin) {
> +			    intel_attached_encoder(intel_connector)->hpd_pin == pin) {
>  				if (connector->polled != intel_connector->polled)
>  					DRM_DEBUG_DRIVER("Reenabling HPD on connector %s\n",
>  							 connector->name);
> @@ -389,9 +389,9 @@ static void i915_hotplug_work_func(struct work_struct *work)
>  		u32 hpd_bit;
>  
>  		intel_connector = to_intel_connector(connector);
> -		if (!intel_connector->encoder)
> +		if (!intel_attached_encoder(intel_connector))
>  			continue;
> -		intel_encoder = intel_connector->encoder;
> +		intel_encoder = intel_attached_encoder(intel_connector);
>  		hpd_bit = BIT(intel_encoder->hpd_pin);
>  		if ((hpd_event_bits | hpd_retry_bits) & hpd_bit) {
>  			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> @@ -621,7 +621,7 @@ static void i915_hpd_poll_init_work(struct work_struct *work)
>  			continue;
>  
>  		if (!connector->polled && I915_HAS_HOTPLUG(dev_priv) &&
> -		    intel_connector->encoder->hpd_pin > HPD_NONE) {
> +		    intel_attached_encoder(intel_connector)->hpd_pin > HPD_NONE) {
>  			connector->polled = enabled ?
>  				DRM_CONNECTOR_POLL_CONNECT |
>  				DRM_CONNECTOR_POLL_DISCONNECT :
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 0c19064e42e0..535b332b067d 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -1567,7 +1567,7 @@ static enum drm_panel_orientation
>  vlv_dsi_get_hw_panel_orientation(struct intel_connector *connector)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_encoder *encoder = connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(connector);
>  	enum intel_display_power_domain power_domain;
>  	enum drm_panel_orientation orientation;
>  	struct intel_plane *plane;
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3bc8d5c0e88a..d8c2fa2672b5 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2431,7 +2431,7 @@ static void intel_hdcp_info(struct seq_file *m,
>  static void intel_dp_info(struct seq_file *m,
>  			  struct intel_connector *intel_connector)
>  {
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
>  	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
>  
>  	seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]);
> @@ -2450,7 +2450,7 @@ static void intel_dp_info(struct seq_file *m,
>  static void intel_dp_mst_info(struct seq_file *m,
>  			  struct intel_connector *intel_connector)
>  {
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
s/intel_connector/connector ?
>  	struct intel_dp_mst_encoder *intel_mst =
>  		enc_to_mst(intel_encoder);
>  	struct intel_digital_port *intel_dig_port = intel_mst->primary;
> @@ -2464,7 +2464,7 @@ static void intel_dp_mst_info(struct seq_file *m,
>  static void intel_hdmi_info(struct seq_file *m,
>  			    struct intel_connector *intel_connector)
>  {
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
s/intel_connector/connector ?

-Ram
>  	struct intel_dp_mst_encoder *intel_mst =
>  	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
>  
>  	seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder()
  2019-12-05 10:59   ` Ramalingam C
@ 2019-12-05 11:04     ` Ramalingam C
  2019-12-09 15:52     ` Ville Syrjälä
  1 sibling, 0 replies; 27+ messages in thread
From: Ramalingam C @ 2019-12-05 11:04 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx

On 2019-12-05 at 16:29:37 +0530, Ramalingam C wrote:
> On 2019-12-04 at 20:05:45 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > It's easy to confuse the drm_connector->encoder (legacy state
> > adjusted during modeset) and intel_connector->encoder (the statically
> > (sans. MST) attached encoder of the connector). For the latter
> > let's use intel_attached_encoder() consistently.
> > 
> > @@
> > identifier F !~ "^intel_attached_encoder$";
> > struct intel_connector *C;
> > expression E;
> > @@
> > F(...)
> > {
> > <...
> > (
> >   C->encoder = E
> > |
> > - C->encoder
> > + intel_attached_encoder(C)
> 
> You mean intel_attached_encoder(&C->base)
> Need to pass the drm_connector *
My bad! Seen the 2nd patch after 5th :) Ignore this comment.

-Ram
> 
> So this is for readability!? This adds the line length beyond 80char
> or to reduce that a extra local variable. I leave that to you.
> > )
> > ...>
> > }
> > 
> > @@
> > identifier F !~ "^intel_attached_encoder$";
> > struct drm_connector *C;
> > expression E;
> > @@
> > F(...)
> > {
> > <...
> > (
> >   to_intel_connector(C)->encoder = E
> > |
> > - to_intel_connector(C)->encoder
> > + intel_attached_encoder(to_intel_connector(C))
> > )
> > ...>
> > }
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_connector.c       |  2 +-
> >  drivers/gpu/drm/i915/display/intel_ddi.c             |  2 +-
> >  drivers/gpu/drm/i915/display/intel_display.c         |  4 ++--
> >  .../gpu/drm/i915/display/intel_dp_aux_backlight.c    | 12 ++++++------
> >  drivers/gpu/drm/i915/display/intel_dp_mst.c          |  4 ++--
> >  .../gpu/drm/i915/display/intel_dsi_dcs_backlight.c   |  4 ++--
> >  drivers/gpu/drm/i915/display/intel_hdcp.c            |  8 ++++----
> >  drivers/gpu/drm/i915/display/intel_hotplug.c         | 10 +++++-----
> >  drivers/gpu/drm/i915/display/vlv_dsi.c               |  2 +-
> >  drivers/gpu/drm/i915/i915_debugfs.c                  |  6 +++---
> >  10 files changed, 27 insertions(+), 27 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
> > index 1133c4e97bb4..54891a4ed2f3 100644
> > --- a/drivers/gpu/drm/i915/display/intel_connector.c
> > +++ b/drivers/gpu/drm/i915/display/intel_connector.c
> > @@ -153,7 +153,7 @@ void intel_connector_attach_encoder(struct intel_connector *connector,
> >  bool intel_connector_get_hw_state(struct intel_connector *connector)
> >  {
> >  	enum pipe pipe = 0;
> > -	struct intel_encoder *encoder = connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(connector);
> intel_attached_encoder takes drm_connector * instead of intel_connector.
> Everywhere we need to change this.
> >  
> >  	return encoder->get_hw_state(encoder, &pipe);
> >  }
> > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> > index 52d187db320f..3e46017150b4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> > @@ -2003,7 +2003,7 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
> >  {
> >  	struct drm_device *dev = intel_connector->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	struct intel_encoder *encoder = intel_connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
> As you have done in previous series, could we rename this intel_connector
> as connector
> >  	int type = intel_connector->base.connector_type;
> >  	enum port port = encoder->port;
> >  	enum transcoder cpu_transcoder;
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> > index 45568a7c6579..df1b80387106 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -7279,7 +7279,7 @@ static void intel_connector_verify_state(struct intel_crtc_state *crtc_state,
> >  		      connector->base.name);
> >  
> >  	if (connector->get_hw_state(connector)) {
> > -		struct intel_encoder *encoder = connector->encoder;
> > +		struct intel_encoder *encoder = intel_attached_encoder(connector);
> >  
> >  		I915_STATE_WARN(!crtc_state,
> >  			 "connector enabled without attached crtc\n");
> > @@ -17529,7 +17529,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
> >  
> >  			connector->base.dpms = DRM_MODE_DPMS_ON;
> >  
> > -			encoder = connector->encoder;
> > +			encoder = intel_attached_encoder(connector);
> >  			connector->base.encoder = &encoder->base;
> >  
> >  			crtc = to_intel_crtc(encoder->base.crtc);
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > index 7c653f8c307f..771e22a0b2a4 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> > @@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
> >   */
> >  static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
> >  {
> > -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> > +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> >  	u8 read_val[2] = { 0x0 };
> >  	u16 level = 0;
> >  
> > @@ -82,7 +82,7 @@ static void
> >  intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
> >  {
> >  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> > -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> > +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> >  	u8 vals[2] = { 0x0 };
> >  
> >  	vals[0] = level;
> > @@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
> >  static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> > +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> >  	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
> >  	u8 pn, pn_min, pn_max;
> >  
> > @@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
> >  					  const struct drm_connector_state *conn_state)
> >  {
> >  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> > -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> > +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> >  	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
> >  
> >  	if (drm_dp_dpcd_readb(&intel_dp->aux,
> > @@ -229,7 +229,7 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old
> >  static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
> >  					enum pipe pipe)
> >  {
> > -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> > +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> >  	struct intel_panel *panel = &connector->panel;
> >  
> >  	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
> > @@ -248,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
> >  static bool
> >  intel_dp_aux_display_control_capable(struct intel_connector *connector)
> >  {
> > -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> > +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> >  
> >  	/* Check the eDP Display control capabilities registers to determine if
> >  	 * the panel can support backlight control over the aux channel
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index af7f6d670e07..1a7d69843c12 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -503,9 +503,9 @@ static const struct drm_encoder_funcs intel_dp_mst_enc_funcs = {
> >  
> >  static bool intel_dp_mst_get_hw_state(struct intel_connector *connector)
> >  {
> > -	if (connector->encoder && connector->base.state->crtc) {
> > +	if (intel_attached_encoder(connector) && connector->base.state->crtc) {
> >  		enum pipe pipe;
> > -		if (!connector->encoder->get_hw_state(connector->encoder, &pipe))
> > +		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))
> Do we prefer this way or with local var for attached encoder restricting
> line to 80char?
> >  			return false;
> >  		return true;
> >  	}
> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> > index c87838843d0b..ac3eff26df12 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> > @@ -45,7 +45,7 @@
> >  
> >  static u32 dcs_get_backlight(struct intel_connector *connector)
> >  {
> > -	struct intel_encoder *encoder = connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(connector);
> >  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >  	struct mipi_dsi_device *dsi_device;
> >  	u8 data = 0;
> > @@ -160,7 +160,7 @@ int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector)
> >  {
> >  	struct drm_device *dev = intel_connector->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	struct intel_encoder *encoder = intel_connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
> s/intel_connector/connector ?
> >  	struct intel_panel *panel = &intel_connector->panel;
> >  
> >  	if (dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_DSI_DCS)
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index 0fdbd39f6641..2859230671ae 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -1527,7 +1527,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
> >  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	enum port port = connector->encoder->port;
> > +	enum port port = intel_attached_encoder(connector)->port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	int ret;
> >  
> > @@ -1565,7 +1565,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
> >  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	enum port port = connector->encoder->port;
> > +	enum port port = intel_attached_encoder(connector)->port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	int ret;
> >  
> > @@ -1676,7 +1676,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
> >  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	enum port port = connector->encoder->port;
> > +	enum port port = intel_attached_encoder(connector)->port;
> >  	enum transcoder cpu_transcoder;
> >  	int ret = 0;
> >  
> > @@ -1830,7 +1830,7 @@ static inline int initialize_hdcp_port_data(struct intel_connector *connector,
> >  
> >  	if (INTEL_GEN(dev_priv) < 12)
> >  		data->fw_ddi =
> > -			intel_get_mei_fw_ddi_index(connector->encoder->port);
> > +			intel_get_mei_fw_ddi_index(intel_attached_encoder(connector)->port);
> could we wrap at 80char with var encoder?
> >  	else
> >  		/*
> >  		 * As per ME FW API expectation, for GEN 12+, fw_ddi is filled
> > diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
> > index 99d3a3c7989e..c3a48af35997 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> > @@ -200,7 +200,7 @@ intel_hpd_irq_storm_switch_to_polling(struct drm_i915_private *dev_priv)
> >  			continue;
> >  
> >  		intel_connector = to_intel_connector(connector);
> > -		intel_encoder = intel_connector->encoder;
> > +		intel_encoder = intel_attached_encoder(intel_connector);
> >  		if (!intel_encoder)
> >  			continue;
> >  
> > @@ -255,7 +255,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
> >  
> >  			/* Don't check MST ports, they don't have pins */
> >  			if (!intel_connector->mst_port &&
> > -			    intel_connector->encoder->hpd_pin == pin) {
> > +			    intel_attached_encoder(intel_connector)->hpd_pin == pin) {
> >  				if (connector->polled != intel_connector->polled)
> >  					DRM_DEBUG_DRIVER("Reenabling HPD on connector %s\n",
> >  							 connector->name);
> > @@ -389,9 +389,9 @@ static void i915_hotplug_work_func(struct work_struct *work)
> >  		u32 hpd_bit;
> >  
> >  		intel_connector = to_intel_connector(connector);
> > -		if (!intel_connector->encoder)
> > +		if (!intel_attached_encoder(intel_connector))
> >  			continue;
> > -		intel_encoder = intel_connector->encoder;
> > +		intel_encoder = intel_attached_encoder(intel_connector);
> >  		hpd_bit = BIT(intel_encoder->hpd_pin);
> >  		if ((hpd_event_bits | hpd_retry_bits) & hpd_bit) {
> >  			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> > @@ -621,7 +621,7 @@ static void i915_hpd_poll_init_work(struct work_struct *work)
> >  			continue;
> >  
> >  		if (!connector->polled && I915_HAS_HOTPLUG(dev_priv) &&
> > -		    intel_connector->encoder->hpd_pin > HPD_NONE) {
> > +		    intel_attached_encoder(intel_connector)->hpd_pin > HPD_NONE) {
> >  			connector->polled = enabled ?
> >  				DRM_CONNECTOR_POLL_CONNECT |
> >  				DRM_CONNECTOR_POLL_DISCONNECT :
> > diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> > index 0c19064e42e0..535b332b067d 100644
> > --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> > +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> > @@ -1567,7 +1567,7 @@ static enum drm_panel_orientation
> >  vlv_dsi_get_hw_panel_orientation(struct intel_connector *connector)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> > -	struct intel_encoder *encoder = connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(connector);
> >  	enum intel_display_power_domain power_domain;
> >  	enum drm_panel_orientation orientation;
> >  	struct intel_plane *plane;
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 3bc8d5c0e88a..d8c2fa2672b5 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -2431,7 +2431,7 @@ static void intel_hdcp_info(struct seq_file *m,
> >  static void intel_dp_info(struct seq_file *m,
> >  			  struct intel_connector *intel_connector)
> >  {
> > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
> >  	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
> >  
> >  	seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]);
> > @@ -2450,7 +2450,7 @@ static void intel_dp_info(struct seq_file *m,
> >  static void intel_dp_mst_info(struct seq_file *m,
> >  			  struct intel_connector *intel_connector)
> >  {
> > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
> s/intel_connector/connector ?
> >  	struct intel_dp_mst_encoder *intel_mst =
> >  		enc_to_mst(intel_encoder);
> >  	struct intel_digital_port *intel_dig_port = intel_mst->primary;
> > @@ -2464,7 +2464,7 @@ static void intel_dp_mst_info(struct seq_file *m,
> >  static void intel_hdmi_info(struct seq_file *m,
> >  			    struct intel_connector *intel_connector)
> >  {
> > -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> > +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
> s/intel_connector/connector ?
> 
> -Ram
> >  	struct intel_dp_mst_encoder *intel_mst =
> >  	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
> >  
> >  	seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
> > -- 
> > 2.23.0
> > 
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co. (rev2)
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (10 preceding siblings ...)
  2019-12-05  0:15 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
@ 2019-12-05 11:58 ` Patchwork
  2019-12-05 12:19 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  2019-12-05 15:06 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  13 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-12-05 11:58 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Cleanups around intel_attached_encoder() & co. (rev2)
URL   : https://patchwork.freedesktop.org/series/70456/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
832a1c55fe76 drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()
170ec3b713ff drm/i915: Pass intel_connector to intel_attached_*()
-:557: WARNING:LONG_LINE: line over 100 characters
#557: FILE: drivers/gpu/drm/i915/i915_debugfs.c:4512:
+		intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);

total: 0 errors, 1 warnings, 0 checks, 427 lines checked
38feb26c23df drm/i915: Pass intel_encoder to enc_to_*()
-:520: ERROR:CODE_INDENT: code indent should use tabs where possible
#520: FILE: drivers/gpu/drm/i915/display/intel_ddi.c:4150:
+^I^I               required_lanes);$

-:520: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#520: FILE: drivers/gpu/drm/i915/display/intel_ddi.c:4150:
+	intel_tc_port_get_link(enc_to_dig_port(encoder),
+		               required_lanes);

-:1499: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written "hpd_pulse"
#1499: FILE: drivers/gpu/drm/i915/display/intel_hotplug.c:305:
+		enc_to_dig_port(encoder)->hpd_pulse != NULL;

total: 1 errors, 0 warnings, 2 checks, 1610 lines checked
767c5765e403 drm/i915: Use the passed in encoder
424e6ca96e88 drm/i915: Use intel_attached_encoder()
-:168: WARNING:LONG_LINE: line over 100 characters
#168: FILE: drivers/gpu/drm/i915/display/intel_dp_mst.c:508:
+		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))

total: 0 errors, 1 warnings, 0 checks, 206 lines checked
27e677f40641 drm/i915: Relocate intel_attached_dp()
4e0931881e22 drm/i915: Use intel_attached_dp() instead of hand rolling it
420c21998dbc drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
838d626c5ada drm/i915/hdcp: Clean up local variables

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Cleanups around intel_attached_encoder() & co. (rev2)
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (11 preceding siblings ...)
  2019-12-05 11:58 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co. (rev2) Patchwork
@ 2019-12-05 12:19 ` Patchwork
  2019-12-05 15:06 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
  13 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-12-05 12:19 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Cleanups around intel_attached_encoder() & co. (rev2)
URL   : https://patchwork.freedesktop.org/series/70456/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7489 -> Patchwork_15600
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/index.html

Known issues
------------

  Here are the changes found in Patchwork_15600 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-skl-6700k2:      [PASS][1] -> [FAIL][2] ([fdo#103375])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-skl-6700k2/igt@gem_exec_suspend@basic-s0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-skl-6700k2/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_selftest@live_blt:
    - fi-bsw-n3050:       [PASS][3] -> [DMESG-FAIL][4] ([i915#723])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-bsw-n3050/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-bsw-n3050/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-hsw-4770:        [PASS][5] -> [DMESG-FAIL][6] ([i915#722])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-hsw-4770/igt@i915_selftest@live_gem_contexts.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-hsw-4770/igt@i915_selftest@live_gem_contexts.html

  
#### Possible fixes ####

  * igt@gem_exec_gttfill@basic:
    - {fi-tgl-guc}:       [INCOMPLETE][7] ([fdo#111593]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-tgl-guc/igt@gem_exec_gttfill@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-tgl-guc/igt@gem_exec_gttfill@basic.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6770hq:      [DMESG-WARN][9] ([i915#592]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-skl-6770hq/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live_blt:
    - fi-byt-n2820:       [DMESG-FAIL][11] ([i915#725]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-byt-n2820/igt@i915_selftest@live_blt.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-byt-n2820/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][13] ([fdo#111096] / [i915#323]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Warnings ####

  * igt@kms_flip@basic-flip-vs-modeset:
    - fi-kbl-x1275:       [DMESG-WARN][15] ([i915#62] / [i915#92]) -> [DMESG-WARN][16] ([i915#62] / [i915#92] / [i915#95]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-modeset.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-kbl-x1275/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - fi-kbl-x1275:       [DMESG-WARN][17] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][18] ([i915#62] / [i915#92]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111593]: https://bugs.freedesktop.org/show_bug.cgi?id=111593
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#592]: https://gitlab.freedesktop.org/drm/intel/issues/592
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#710]: https://gitlab.freedesktop.org/drm/intel/issues/710
  [i915#722]: https://gitlab.freedesktop.org/drm/intel/issues/722
  [i915#723]: https://gitlab.freedesktop.org/drm/intel/issues/723
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (53 -> 47)
------------------------------

  Additional (1): fi-hsw-4770r 
  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7489 -> Patchwork_15600

  CI-20190529: 20190529
  CI_DRM_7489: 969b4daff0be9ed5dcefda656621bad5f9a06906 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5332: 59be90b3c76113d03a1bb095c4d4585e51058f4a @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15600: 838d626c5adaaa4f964dbe24f6e26afc3e6e2f3a @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

838d626c5ada drm/i915/hdcp: Clean up local variables
420c21998dbc drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
4e0931881e22 drm/i915: Use intel_attached_dp() instead of hand rolling it
27e677f40641 drm/i915: Relocate intel_attached_dp()
424e6ca96e88 drm/i915: Use intel_attached_encoder()
767c5765e403 drm/i915: Use the passed in encoder
38feb26c23df drm/i915: Pass intel_encoder to enc_to_*()
170ec3b713ff drm/i915: Pass intel_connector to intel_attached_*()
832a1c55fe76 drm/i915/hdcp: Nuke intel_hdcp_transcoder_config()

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Cleanups around intel_attached_encoder() & co. (rev2)
  2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
                   ` (12 preceding siblings ...)
  2019-12-05 12:19 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2019-12-05 15:06 ` Patchwork
  13 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-12-05 15:06 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Cleanups around intel_attached_encoder() & co. (rev2)
URL   : https://patchwork.freedesktop.org/series/70456/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7489_full -> Patchwork_15600_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15600_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15600_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15600_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_parse_blt@allowed-all:
    - shard-kbl:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl2/igt@gem_exec_parse_blt@allowed-all.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl1/igt@gem_exec_parse_blt@allowed-all.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-pgflip-blt:
    - shard-skl:          NOTRUN -> [DMESG-WARN][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-shrfb-pgflip-blt.html

  
Known issues
------------

  Here are the changes found in Patchwork_15600_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_busy@extended-parallel-vcs1:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#112080]) +6 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb1/igt@gem_busy@extended-parallel-vcs1.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb6/igt@gem_busy@extended-parallel-vcs1.html

  * igt@gem_ctx_persistence@vcs1-queued:
    - shard-iclb:         [PASS][7] -> [SKIP][8] ([fdo#109276] / [fdo#112080]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb2/igt@gem_ctx_persistence@vcs1-queued.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@gem_ctx_persistence@vcs1-queued.html

  * igt@gem_eio@kms:
    - shard-snb:          [PASS][9] -> [INCOMPLETE][10] ([i915#82])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-snb1/igt@gem_eio@kms.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-snb6/igt@gem_eio@kms.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][11] -> [SKIP][12] ([fdo#110854])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb2/igt@gem_exec_balancer@smoke.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@fifo-bsd1:
    - shard-iclb:         [PASS][13] -> [SKIP][14] ([fdo#109276]) +9 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb1/igt@gem_exec_schedule@fifo-bsd1.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb6/igt@gem_exec_schedule@fifo-bsd1.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][15] -> [SKIP][16] ([fdo#112146]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb8/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_exec_suspend@basic-s3-devices:
    - shard-tglb:         [PASS][17] -> [INCOMPLETE][18] ([i915#456] / [i915#460])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb9/igt@gem_exec_suspend@basic-s3-devices.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb2/igt@gem_exec_suspend@basic-s3-devices.html

  * igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
    - shard-snb:          [PASS][19] -> [TIMEOUT][20] ([i915#530])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-snb7/igt@gem_persistent_relocs@forked-interruptible-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-snb:          [PASS][21] -> [INCOMPLETE][22] ([i915#530] / [i915#82])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-snb2/igt@gem_persistent_relocs@forked-thrashing.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-snb2/igt@gem_persistent_relocs@forked-thrashing.html
    - shard-iclb:         [PASS][23] -> [TIMEOUT][24] ([i915#530])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb4/igt@gem_persistent_relocs@forked-thrashing.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb3/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-skl:          [PASS][25] -> [FAIL][26] ([i915#644])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl3/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl10/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-snb:          [PASS][27] -> [DMESG-WARN][28] ([fdo#111870]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@i915_pm_rpm@system-suspend:
    - shard-tglb:         [PASS][29] -> [INCOMPLETE][30] ([i915#435] / [i915#460])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb6/igt@i915_pm_rpm@system-suspend.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb8/igt@i915_pm_rpm@system-suspend.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-90:
    - shard-skl:          [PASS][31] -> [INCOMPLETE][32] ([fdo#112347])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl6/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl8/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
    - shard-kbl:          [PASS][33] -> [INCOMPLETE][34] ([fdo#103665])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl4/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl3/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html

  * igt@kms_ccs@pipe-a-crc-primary-basic:
    - shard-iclb:         [PASS][35] -> [INCOMPLETE][36] ([i915#140])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb1/igt@kms_ccs@pipe-a-crc-primary-basic.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb6/igt@kms_ccs@pipe-a-crc-primary-basic.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-skl:          [PASS][37] -> [DMESG-WARN][38] ([i915#728]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl3/igt@kms_ccs@pipe-a-crc-sprite-planes-basic.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl10/igt@kms_ccs@pipe-a-crc-sprite-planes-basic.html

  * igt@kms_color@pipe-b-ctm-blue-to-red:
    - shard-skl:          [PASS][39] -> [FAIL][40] ([i915#129])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl3/igt@kms_color@pipe-b-ctm-blue-to-red.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl10/igt@kms_color@pipe-b-ctm-blue-to-red.html

  * igt@kms_cursor_crc@pipe-b-cursor-128x42-offscreen:
    - shard-hsw:          [PASS][41] -> [DMESG-WARN][42] ([IGT#6])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-128x42-offscreen.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-128x42-offscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-256x85-onscreen:
    - shard-skl:          [PASS][43] -> [FAIL][44] ([i915#54]) +2 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl6/igt@kms_cursor_crc@pipe-b-cursor-256x85-onscreen.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl8/igt@kms_cursor_crc@pipe-b-cursor-256x85-onscreen.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-skl:          [PASS][45] -> [FAIL][46] ([IGT#5])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-tglb:         [PASS][47] -> [INCOMPLETE][48] ([i915#435] / [i915#456] / [i915#460])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb7/igt@kms_fbcon_fbt@fbc-suspend.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb3/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-skl:          [PASS][49] -> [INCOMPLETE][50] ([i915#69]) +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl8/igt@kms_fbcon_fbt@psr-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl3/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-skl:          [PASS][51] -> [FAIL][52] ([i915#79])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl8/igt@kms_flip@flip-vs-expired-vblank.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl1/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          [PASS][53] -> [FAIL][54] ([i915#79])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-glk6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-glk4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-apl:          [PASS][55] -> [DMESG-WARN][56] ([i915#180])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-apl4/igt@kms_flip@flip-vs-suspend.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-apl1/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-tglb:         [PASS][57] -> [INCOMPLETE][58] ([i915#456] / [i915#460] / [i915#516])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb9/igt@kms_flip@flip-vs-suspend-interruptible.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb8/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-kbl:          [PASS][59] -> [DMESG-WARN][60] ([i915#728]) +3 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-badstride:
    - shard-tglb:         [PASS][61] -> [FAIL][62] ([i915#49]) +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb6/igt@kms_frontbuffer_tracking@fbc-badstride.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb8/igt@kms_frontbuffer_tracking@fbc-badstride.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][63] -> [DMESG-WARN][64] ([i915#180]) +6 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite:
    - shard-iclb:         [PASS][65] -> [INCOMPLETE][66] ([i915#123] / [i915#140])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
    - shard-tglb:         [PASS][67] -> [DMESG-WARN][68] ([i915#728]) +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
    - shard-skl:          [PASS][69] -> [FAIL][70] ([i915#53])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl3/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl10/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:
    - shard-skl:          [PASS][71] -> [FAIL][72] ([fdo#108145])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl3/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl10/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [PASS][73] -> [FAIL][74] ([fdo#108145] / [i915#265])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl4/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl2/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_cursor_render:
    - shard-iclb:         [PASS][75] -> [SKIP][76] ([fdo#109441])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@kms_psr@psr2_cursor_render.html

  * igt@kms_vblank@pipe-d-ts-continuation-suspend:
    - shard-tglb:         [PASS][77] -> [INCOMPLETE][78] ([i915#460]) +2 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb6/igt@kms_vblank@pipe-d-ts-continuation-suspend.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb3/igt@kms_vblank@pipe-d-ts-continuation-suspend.html

  * igt@perf_pmu@busy-no-semaphores-rcs0:
    - shard-iclb:         [PASS][79] -> [DMESG-WARN][80] ([i915#728]) +4 similar issues
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb7/igt@perf_pmu@busy-no-semaphores-rcs0.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@perf_pmu@busy-no-semaphores-rcs0.html

  
#### Possible fixes ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [SKIP][81] ([fdo#112080]) -> [PASS][82] +8 similar issues
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb3/igt@gem_busy@busy-vcs1.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb4/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_persistence@vcs1-hostile-preempt:
    - shard-iclb:         [SKIP][83] ([fdo#109276] / [fdo#112080]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb3/igt@gem_ctx_persistence@vcs1-hostile-preempt.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb4/igt@gem_ctx_persistence@vcs1-hostile-preempt.html

  * igt@gem_exec_create@forked:
    - shard-tglb:         [INCOMPLETE][85] ([fdo#108838] / [i915#435]) -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb4/igt@gem_exec_create@forked.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb3/igt@gem_exec_create@forked.html

  * igt@gem_exec_parallel@vcs0-contexts:
    - shard-hsw:          [FAIL][87] ([i915#676]) -> [PASS][88]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-hsw7/igt@gem_exec_parallel@vcs0-contexts.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-hsw6/igt@gem_exec_parallel@vcs0-contexts.html

  * igt@gem_exec_schedule@in-order-bsd:
    - shard-iclb:         [SKIP][89] ([fdo#112146]) -> [PASS][90] +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb2/igt@gem_exec_schedule@in-order-bsd.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@gem_exec_schedule@in-order-bsd.html

  * igt@gem_exec_schedule@preempt-queue-contexts-bsd2:
    - shard-tglb:         [INCOMPLETE][91] ([fdo#111606] / [fdo#111677]) -> [PASS][92]
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb6/igt@gem_exec_schedule@preempt-queue-contexts-bsd2.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb5/igt@gem_exec_schedule@preempt-queue-contexts-bsd2.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive:
    - shard-hsw:          [TIMEOUT][93] ([i915#530]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-hsw5/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-hsw1/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-iclb:         [FAIL][95] ([i915#644]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb5/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb1/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_sync@basic-each:
    - shard-tglb:         [INCOMPLETE][97] ([i915#472] / [i915#707]) -> [PASS][98]
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb7/igt@gem_sync@basic-each.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb8/igt@gem_sync@basic-each.html

  * igt@gem_userptr_blits@sync-unmap:
    - shard-snb:          [DMESG-WARN][99] ([fdo#111870]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-snb6/igt@gem_userptr_blits@sync-unmap.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-snb4/igt@gem_userptr_blits@sync-unmap.html

  * igt@i915_pm_backlight@fade_with_suspend:
    - shard-tglb:         [INCOMPLETE][101] ([i915#456] / [i915#460]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb1/igt@i915_pm_backlight@fade_with_suspend.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb1/igt@i915_pm_backlight@fade_with_suspend.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-iclb:         [FAIL][103] ([i915#454]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb5/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_suspend@sysfs-reader:
    - shard-kbl:          [DMESG-WARN][105] ([i915#180]) -> [PASS][106] +3 similar issues
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl3/igt@i915_suspend@sysfs-reader.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl2/igt@i915_suspend@sysfs-reader.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-0:
    - shard-skl:          [INCOMPLETE][107] ([fdo#112347]) -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl5/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl1/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
    - shard-kbl:          [INCOMPLETE][109] ([fdo#103665]) -> [PASS][110] +1 similar issue
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl6/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl2/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen:
    - shard-kbl:          [DMESG-WARN][111] ([IGT#6]) -> [PASS][112]
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl3/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl2/igt@kms_cursor_crc@pipe-b-cursor-64x21-onscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x64-sliding:
    - shard-skl:          [FAIL][113] ([i915#54]) -> [PASS][114]
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl4/igt@kms_cursor_crc@pipe-b-cursor-64x64-sliding.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl2/igt@kms_cursor_crc@pipe-b-cursor-64x64-sliding.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-glk:          [FAIL][115] ([i915#79]) -> [PASS][116]
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-glk2/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-skl:          [INCOMPLETE][117] ([i915#221]) -> [PASS][118]
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl7/igt@kms_flip@flip-vs-suspend-interruptible.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl9/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip_tiling@flip-x-tiled:
    - shard-tglb:         [FAIL][119] ([i915#699]) -> [PASS][120]
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb5/igt@kms_flip_tiling@flip-x-tiled.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb9/igt@kms_flip_tiling@flip-x-tiled.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - shard-iclb:         [FAIL][121] ([i915#49]) -> [PASS][122] +1 similar issue
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - shard-tglb:         [DMESG-WARN][123] ([i915#728]) -> [PASS][124] +1 similar issue
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt:
    - shard-tglb:         [FAIL][125] ([i915#49]) -> [PASS][126] +3 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-iclb:         [DMESG-WARN][127] ([i915#728]) -> [PASS][128] +3 similar issues
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt:
    - shard-skl:          [DMESG-WARN][129] ([i915#728]) -> [PASS][130] +5 similar issues
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl9/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-msflip-blt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-apl:          [DMESG-WARN][131] ([i915#180]) -> [PASS][132] +2 similar issues
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-apl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-apl3/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [SKIP][133] ([fdo#109441]) -> [PASS][134] +1 similar issue
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb8/igt@kms_psr@psr2_no_drrs.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb2/igt@kms_psr@psr2_no_drrs.html

  * igt@perf_pmu@busy-check-all-bcs0:
    - shard-kbl:          [DMESG-WARN][135] -> [PASS][136]
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl3/igt@perf_pmu@busy-check-all-bcs0.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl3/igt@perf_pmu@busy-check-all-bcs0.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [SKIP][137] ([fdo#109276]) -> [PASS][138] +15 similar issues
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb3/igt@prime_busy@hang-bsd2.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb4/igt@prime_busy@hang-bsd2.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - shard-iclb:         [FAIL][139] ([IGT#28]) -> [SKIP][140] ([fdo#109276] / [fdo#112080]) +1 similar issue
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-iclb2/igt@gem_ctx_isolation@vcs1-nonpriv.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-iclb8/igt@gem_ctx_isolation@vcs1-nonpriv.html

  * igt@gem_ctx_isolation@vcs2-dirty-create:
    - shard-tglb:         [SKIP][141] ([fdo#111912] / [fdo#112080]) -> [SKIP][142] ([fdo#112080])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-tglb5/igt@gem_ctx_isolation@vcs2-dirty-create.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-tglb9/igt@gem_ctx_isolation@vcs2-dirty-create.html

  * igt@gem_exec_parallel@contexts:
    - shard-hsw:          [FAIL][143] ([i915#676]) -> [TIMEOUT][144] ([i915#676])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-hsw5/igt@gem_exec_parallel@contexts.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-hsw1/igt@gem_exec_parallel@contexts.html

  * igt@kms_flip@flip-vs-suspend:
    - shard-kbl:          [INCOMPLETE][145] ([fdo#103665] / [i915#600]) -> [DMESG-WARN][146] ([i915#180] / [i915#391])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl7/igt@kms_flip@flip-vs-suspend.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl1/igt@kms_flip@flip-vs-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-kbl:          [DMESG-WARN][147] ([i915#180] / [i915#391]) -> [DMESG-WARN][148] ([i915#180])
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl3/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-kbl:          [INCOMPLETE][149] ([fdo#103665]) -> [DMESG-WARN][150] ([i915#728])
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-kbl1/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-kbl7/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane@pixel-format-pipe-b-planes:
    - shard-skl:          [INCOMPLETE][151] ([fdo#112347] / [fdo#112391] / [i915#648]) -> [INCOMPLETE][152] ([i915#648])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl7/igt@kms_plane@pixel-format-pipe-b-planes.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl2/igt@kms_plane@pixel-format-pipe-b-planes.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][153] ([fdo#112391] / [i915#648]) -> [INCOMPLETE][154] ([i915#648])
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7489/shard-skl8/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/shard-skl6/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#28]: https://git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15600/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder()
  2019-12-05 10:59   ` Ramalingam C
  2019-12-05 11:04     ` Ramalingam C
@ 2019-12-09 15:52     ` Ville Syrjälä
  1 sibling, 0 replies; 27+ messages in thread
From: Ville Syrjälä @ 2019-12-09 15:52 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

On Thu, Dec 05, 2019 at 04:29:37PM +0530, Ramalingam C wrote:
> On 2019-12-04 at 20:05:45 +0200, Ville Syrjala wrote:
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index af7f6d670e07..1a7d69843c12 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -503,9 +503,9 @@ static const struct drm_encoder_funcs intel_dp_mst_enc_funcs = {
> >  
> >  static bool intel_dp_mst_get_hw_state(struct intel_connector *connector)
> >  {
> > -	if (connector->encoder && connector->base.state->crtc) {
> > +	if (intel_attached_encoder(connector) && connector->base.state->crtc) {
> >  		enum pipe pipe;
> > -		if (!connector->encoder->get_hw_state(connector->encoder, &pipe))
> > +		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))
> Do we prefer this way or with local var for attached encoder restricting
> line to 80char?

Can't be bothered too much about this half baked code. One day we
need to write a proper implementation of this.

> >  			return false;
> >  		return true;
> >  	}
> > diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> > index c87838843d0b..ac3eff26df12 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> > @@ -45,7 +45,7 @@
> >  
> >  static u32 dcs_get_backlight(struct intel_connector *connector)
> >  {
> > -	struct intel_encoder *encoder = connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(connector);
> >  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >  	struct mipi_dsi_device *dsi_device;
> >  	u8 data = 0;
> > @@ -160,7 +160,7 @@ int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector)
> >  {
> >  	struct drm_device *dev = intel_connector->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	struct intel_encoder *encoder = intel_connector->encoder;
> > +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
> s/intel_connector/connector ?
> >  	struct intel_panel *panel = &intel_connector->panel;
> >  
> >  	if (dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_DSI_DCS)
> > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > index 0fdbd39f6641..2859230671ae 100644
> > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> > @@ -1527,7 +1527,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
> >  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	enum port port = connector->encoder->port;
> > +	enum port port = intel_attached_encoder(connector)->port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	int ret;
> >  
> > @@ -1565,7 +1565,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
> >  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	enum port port = connector->encoder->port;
> > +	enum port port = intel_attached_encoder(connector)->port;
> >  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
> >  	int ret;
> >  
> > @@ -1676,7 +1676,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
> >  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> >  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> >  	struct intel_hdcp *hdcp = &connector->hdcp;
> > -	enum port port = connector->encoder->port;
> > +	enum port port = intel_attached_encoder(connector)->port;
> >  	enum transcoder cpu_transcoder;
> >  	int ret = 0;
> >  
> > @@ -1830,7 +1830,7 @@ static inline int initialize_hdcp_port_data(struct intel_connector *connector,
> >  
> >  	if (INTEL_GEN(dev_priv) < 12)
> >  		data->fw_ddi =
> > -			intel_get_mei_fw_ddi_index(connector->encoder->port);
> > +			intel_get_mei_fw_ddi_index(intel_attached_encoder(connector)->port);
> could we wrap at 80char with var encoder?

Not in a cocci patch.

-- 
Ville Syrjälä
Intel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*() Ville Syrjala
@ 2019-12-18 20:41   ` Juha-Pekka Heikkila
  0 siblings, 0 replies; 27+ messages in thread
From: Juha-Pekka Heikkila @ 2019-12-18 20:41 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Look ok to me.

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 4.12.2019 20.05, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Lots of enc_to_foo(&encoder->base) around. Simplify by passing
> in the intel_encoder instead.
> 
> @find@
> identifier F =~ "^enc_to_.*";
> identifier E;
> @@
> F(struct drm_encoder *E)
> {
> ...
> }
> 
> @@
> identifier find.F;
> identifier find.E;
> @@
> F(
> - struct drm_encoder *E
> + struct intel_encoder *encoder
>    )
> {
> <...
> - E
> + &encoder->base
> ...>
> }
> 
> @@
> identifier find.F;
> expression E;
> @@
> - F(E)
> + F(to_intel_encoder(E))
> 
> @@
> expression E;
> @@
> - to_intel_encoder(&E->base)
> + E
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/icl_dsi.c        | 58 ++++++++---------
>   drivers/gpu/drm/i915/display/intel_ddi.c      | 63 ++++++++++---------
>   drivers/gpu/drm/i915/display/intel_display.c  |  4 +-
>   .../drm/i915/display/intel_display_power.c    |  6 +-
>   .../drm/i915/display/intel_display_types.h    | 19 +++---
>   drivers/gpu/drm/i915/display/intel_dp.c       | 54 ++++++++--------
>   .../drm/i915/display/intel_dp_aux_backlight.c | 15 ++---
>   drivers/gpu/drm/i915/display/intel_dp_mst.c   | 24 +++----
>   drivers/gpu/drm/i915/display/intel_dpio_phy.c | 18 +++---
>   drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  4 +-
>   drivers/gpu/drm/i915/display/intel_dsi.h      |  6 +-
>   .../i915/display/intel_dsi_dcs_backlight.c    |  8 +--
>   drivers/gpu/drm/i915/display/intel_hdmi.c     | 49 ++++++++-------
>   drivers/gpu/drm/i915/display/intel_hdmi.h     |  2 +-
>   drivers/gpu/drm/i915/display/intel_hotplug.c  |  4 +-
>   drivers/gpu/drm/i915/display/intel_lspcon.c   |  8 +--
>   drivers/gpu/drm/i915/display/intel_pipe_crc.c |  2 +-
>   drivers/gpu/drm/i915/display/intel_vdsc.c     |  4 +-
>   drivers/gpu/drm/i915/display/vlv_dsi.c        | 36 +++++------
>   drivers/gpu/drm/i915/display/vlv_dsi_pll.c    | 12 ++--
>   drivers/gpu/drm/i915/i915_debugfs.c           | 28 ++++-----
>   21 files changed, 214 insertions(+), 210 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index f688207932e0..7e774cd4a56c 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -76,7 +76,7 @@ static enum transcoder dsi_port_to_transcoder(enum port port)
>   static void wait_for_cmds_dispatched_to_panel(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct mipi_dsi_device *dsi;
>   	enum port port;
>   	enum transcoder dsi_trans;
> @@ -201,7 +201,7 @@ static int dsi_send_pkt_payld(struct intel_dsi_host *host,
>   static void dsi_program_swing_and_deemphasis(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum phy phy;
>   	u32 tmp;
>   	int lane;
> @@ -266,7 +266,7 @@ static void configure_dual_link_mode(struct intel_encoder *encoder,
>   				     const struct intel_crtc_state *pipe_config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 dss_ctl1;
>   
>   	dss_ctl1 = I915_READ(DSS_CTL1);
> @@ -304,7 +304,7 @@ static void configure_dual_link_mode(struct intel_encoder *encoder,
>   static void gen11_dsi_program_esc_clk_div(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
>   	u32 afe_clk_khz; /* 8X Clock */
> @@ -346,7 +346,7 @@ static void get_dsi_io_power_domains(struct drm_i915_private *dev_priv,
>   static void gen11_dsi_enable_io_power(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 tmp;
>   
> @@ -362,7 +362,7 @@ static void gen11_dsi_enable_io_power(struct intel_encoder *encoder)
>   static void gen11_dsi_power_up_lanes(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum phy phy;
>   
>   	for_each_dsi_phy(phy, intel_dsi->phys)
> @@ -373,7 +373,7 @@ static void gen11_dsi_power_up_lanes(struct intel_encoder *encoder)
>   static void gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum phy phy;
>   	u32 tmp;
>   	int lane;
> @@ -422,7 +422,7 @@ static void gen11_dsi_config_phy_lanes_sequence(struct intel_encoder *encoder)
>   static void gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 tmp;
>   	enum phy phy;
>   
> @@ -474,7 +474,7 @@ static void gen11_dsi_voltage_swing_program_seq(struct intel_encoder *encoder)
>   static void gen11_dsi_enable_ddi_buffer(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 tmp;
>   	enum port port;
>   
> @@ -493,7 +493,7 @@ static void gen11_dsi_enable_ddi_buffer(struct intel_encoder *encoder)
>   static void gen11_dsi_setup_dphy_timings(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 tmp;
>   	enum port port;
>   	enum phy phy;
> @@ -559,7 +559,7 @@ static void gen11_dsi_setup_dphy_timings(struct intel_encoder *encoder)
>   static void gen11_dsi_gate_clocks(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 tmp;
>   	enum phy phy;
>   
> @@ -575,7 +575,7 @@ static void gen11_dsi_gate_clocks(struct intel_encoder *encoder)
>   static void gen11_dsi_ungate_clocks(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 tmp;
>   	enum phy phy;
>   
> @@ -592,7 +592,7 @@ static void gen11_dsi_map_pll(struct intel_encoder *encoder,
>   			      const struct intel_crtc_state *crtc_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
>   	enum phy phy;
>   	u32 val;
> @@ -624,7 +624,7 @@ gen11_dsi_configure_transcoder(struct intel_encoder *encoder,
>   			       const struct intel_crtc_state *pipe_config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
>   	enum pipe pipe = intel_crtc->pipe;
>   	u32 tmp;
> @@ -769,7 +769,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
>   				 const struct intel_crtc_state *pipe_config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	const struct drm_display_mode *adjusted_mode =
>   					&pipe_config->hw.adjusted_mode;
>   	enum port port;
> @@ -889,7 +889,7 @@ gen11_dsi_set_transcoder_timings(struct intel_encoder *encoder,
>   static void gen11_dsi_enable_transcoder(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	enum transcoder dsi_trans;
>   	u32 tmp;
> @@ -910,7 +910,7 @@ static void gen11_dsi_enable_transcoder(struct intel_encoder *encoder)
>   static void gen11_dsi_setup_timeouts(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	enum transcoder dsi_trans;
>   	u32 tmp, hs_tx_timeout, lp_rx_timeout, ta_timeout, divisor, mul;
> @@ -991,7 +991,7 @@ gen11_dsi_enable_port_and_phy(struct intel_encoder *encoder,
>   static void gen11_dsi_powerup_panel(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct mipi_dsi_device *dsi;
>   	enum port port;
>   	enum transcoder dsi_trans;
> @@ -1042,7 +1042,7 @@ static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
>   				 const struct intel_crtc_state *pipe_config,
>   				 const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   
>   	/* step3b */
>   	gen11_dsi_map_pll(encoder, pipe_config);
> @@ -1067,7 +1067,7 @@ static void gen11_dsi_pre_enable(struct intel_encoder *encoder,
>   static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	enum transcoder dsi_trans;
>   	u32 tmp;
> @@ -1089,7 +1089,7 @@ static void gen11_dsi_disable_transcoder(struct intel_encoder *encoder)
>   
>   static void gen11_dsi_powerdown_panel(struct intel_encoder *encoder)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   
>   	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_OFF);
>   	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_ASSERT_RESET);
> @@ -1102,7 +1102,7 @@ static void gen11_dsi_powerdown_panel(struct intel_encoder *encoder)
>   static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	enum transcoder dsi_trans;
>   	u32 tmp;
> @@ -1143,7 +1143,7 @@ static void gen11_dsi_deconfigure_trancoder(struct intel_encoder *encoder)
>   static void gen11_dsi_disable_port(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u32 tmp;
>   	enum port port;
>   
> @@ -1165,7 +1165,7 @@ static void gen11_dsi_disable_port(struct intel_encoder *encoder)
>   static void gen11_dsi_disable_io_power(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 tmp;
>   
> @@ -1192,7 +1192,7 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
>   			      const struct intel_crtc_state *old_crtc_state,
>   			      const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   
>   	/* step1: turn off backlight */
>   	intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_BACKLIGHT_OFF);
> @@ -1217,7 +1217,7 @@ static void gen11_dsi_disable(struct intel_encoder *encoder,
>   static void gen11_dsi_get_timings(struct intel_encoder *encoder,
>   				  struct intel_crtc_state *pipe_config)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct drm_display_mode *adjusted_mode =
>   					&pipe_config->hw.adjusted_mode;
>   
> @@ -1246,7 +1246,7 @@ static void gen11_dsi_get_config(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   
>   	/* FIXME: adapt icl_ddi_clock_get() for DSI and use that? */
>   	pipe_config->port_clock =
> @@ -1296,14 +1296,14 @@ static void gen11_dsi_get_power_domains(struct intel_encoder *encoder,
>   					struct intel_crtc_state *crtc_state)
>   {
>   	get_dsi_io_power_domains(to_i915(encoder->base.dev),
> -				 enc_to_intel_dsi(&encoder->base));
> +				 enc_to_intel_dsi(encoder));
>   }
>   
>   static bool gen11_dsi_get_hw_state(struct intel_encoder *encoder,
>   				   enum pipe *pipe)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum transcoder dsi_trans;
>   	intel_wakeref_t wakeref;
>   	enum port port;
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index e692c0b28559..52d187db320f 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -1241,9 +1241,9 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
>   
>   static void intel_ddi_init_dp_buf_reg(struct intel_encoder *encoder)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_digital_port *intel_dig_port =
> -		enc_to_dig_port(&encoder->base);
> +		enc_to_dig_port(encoder);
>   
>   	intel_dp->DP = intel_dig_port->saved_port_bits |
>   		DDI_BUF_CTL_ENABLE | DDI_BUF_TRANS_SELECT(0);
> @@ -2221,7 +2221,7 @@ static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
>   	if (WARN_ON(intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)))
>   		return;
>   
> -	dig_port = enc_to_dig_port(&encoder->base);
> +	dig_port = enc_to_dig_port(encoder);
>   	intel_display_power_get(dev_priv, dig_port->ddi_io_power_domain);
>   
>   	/*
> @@ -2291,7 +2291,7 @@ static void _skl_ddi_set_iboost(struct drm_i915_private *dev_priv,
>   static void skl_ddi_set_iboost(struct intel_encoder *encoder,
>   			       int level, enum intel_output_type type)
>   {
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	enum port port = encoder->port;
>   	u8 iboost;
> @@ -2362,7 +2362,7 @@ static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
>   u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	enum port port = encoder->port;
>   	enum phy phy = intel_port_to_phy(dev_priv, port);
>   	int n_entries;
> @@ -2501,7 +2501,7 @@ static void cnl_ddi_vswing_sequence(struct intel_encoder *encoder,
>   		width = 4;
>   		rate = 0; /* Rate is always < than 6GHz for HDMI */
>   	} else {
> -		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   		width = intel_dp->lane_count;
>   		rate = intel_dp->link_rate;
> @@ -2627,7 +2627,7 @@ static void icl_combo_phy_ddi_vswing_sequence(struct intel_encoder *encoder,
>   		width = 4;
>   		/* Rate is always < than 6GHz for HDMI */
>   	} else {
> -		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   		width = intel_dp->lane_count;
>   		rate = intel_dp->link_rate;
> @@ -3316,7 +3316,7 @@ static void intel_ddi_enable_fec(struct intel_encoder *encoder,
>   	if (!crtc_state->fec_enable)
>   		return;
>   
> -	intel_dp = enc_to_intel_dp(&encoder->base);
> +	intel_dp = enc_to_intel_dp(encoder);
>   	val = I915_READ(intel_dp->regs.dp_tp_ctl);
>   	val |= DP_TP_CTL_FEC_ENABLE;
>   	I915_WRITE(intel_dp->regs.dp_tp_ctl, val);
> @@ -3336,7 +3336,7 @@ static void intel_ddi_disable_fec_state(struct intel_encoder *encoder,
>   	if (!crtc_state->fec_enable)
>   		return;
>   
> -	intel_dp = enc_to_intel_dp(&encoder->base);
> +	intel_dp = enc_to_intel_dp(encoder);
>   	val = I915_READ(intel_dp->regs.dp_tp_ctl);
>   	val &= ~DP_TP_CTL_FEC_ENABLE;
>   	I915_WRITE(intel_dp->regs.dp_tp_ctl, val);
> @@ -3427,10 +3427,10 @@ static void tgl_ddi_pre_enable_dp(struct intel_encoder *encoder,
>   				  const struct intel_crtc_state *crtc_state,
>   				  const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
>   	int level = intel_ddi_dp_level(intel_dp);
>   	enum transcoder transcoder = crtc_state->cpu_transcoder;
> @@ -3583,11 +3583,11 @@ static void hsw_ddi_pre_enable_dp(struct intel_encoder *encoder,
>   				  const struct intel_crtc_state *crtc_state,
>   				  const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	enum port port = encoder->port;
>   	enum phy phy = intel_port_to_phy(dev_priv, port);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
>   	int level = intel_ddi_dp_level(intel_dp);
>   
> @@ -3673,12 +3673,12 @@ static void intel_ddi_pre_enable_hdmi(struct intel_encoder *encoder,
>   				      const struct intel_crtc_state *crtc_state,
>   				      const struct drm_connector_state *conn_state)
>   {
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
>   	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	enum port port = encoder->port;
>   	int level = intel_ddi_hdmi_level(dev_priv, port);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   
>   	intel_dp_dual_mode_set_tmds_output(intel_hdmi, true);
>   	intel_ddi_clk_select(encoder, crtc_state);
> @@ -3745,12 +3745,12 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
>   		intel_ddi_pre_enable_hdmi(encoder, crtc_state, conn_state);
>   	} else {
>   		struct intel_lspcon *lspcon =
> -				enc_to_intel_lspcon(&encoder->base);
> +				enc_to_intel_lspcon(encoder);
>   
>   		intel_ddi_pre_enable_dp(encoder, crtc_state, conn_state);
>   		if (lspcon->active) {
>   			struct intel_digital_port *dig_port =
> -					enc_to_dig_port(&encoder->base);
> +					enc_to_dig_port(encoder);
>   
>   			dig_port->set_infoframes(encoder,
>   						 crtc_state->has_infoframe,
> @@ -3775,7 +3775,7 @@ static void intel_disable_ddi_buf(struct intel_encoder *encoder,
>   	}
>   
>   	if (intel_crtc_has_dp_encoder(crtc_state)) {
> -		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   		val = I915_READ(intel_dp->regs.dp_tp_ctl);
>   		val &= ~(DP_TP_CTL_ENABLE | DP_TP_CTL_LINK_TRAIN_MASK);
> @@ -3795,7 +3795,7 @@ static void intel_ddi_post_disable_dp(struct intel_encoder *encoder,
>   				      const struct drm_connector_state *old_conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	struct intel_dp *intel_dp = &dig_port->dp;
>   	bool is_mst = intel_crtc_has_type(old_crtc_state,
>   					  INTEL_OUTPUT_DP_MST);
> @@ -3829,7 +3829,7 @@ static void intel_ddi_post_disable_hdmi(struct intel_encoder *encoder,
>   					const struct drm_connector_state *old_conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	struct intel_hdmi *intel_hdmi = &dig_port->hdmi;
>   
>   	dig_port->set_infoframes(encoder, false,
> @@ -3916,7 +3916,7 @@ static void intel_enable_ddi_dp(struct intel_encoder *encoder,
>   				const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	enum port port = encoder->port;
>   
>   	if (port == PORT_A && INTEL_GEN(dev_priv) < 9)
> @@ -3957,7 +3957,7 @@ static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
>   				  const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	struct drm_connector *connector = conn_state->connector;
>   	enum port port = encoder->port;
>   
> @@ -4034,7 +4034,7 @@ static void intel_disable_ddi_dp(struct intel_encoder *encoder,
>   				 const struct intel_crtc_state *old_crtc_state,
>   				 const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   	intel_dp->link_trained = false;
>   
> @@ -4082,7 +4082,7 @@ static void intel_ddi_update_pipe_dp(struct intel_encoder *encoder,
>   				     const struct intel_crtc_state *crtc_state,
>   				     const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   	intel_ddi_set_dp_msa(crtc_state, conn_state);
>   
> @@ -4146,7 +4146,8 @@ intel_ddi_update_prepare(struct intel_atomic_state *state,
>   
>   	WARN_ON(crtc && crtc->active);
>   
> -	intel_tc_port_get_link(enc_to_dig_port(&encoder->base), required_lanes);
> +	intel_tc_port_get_link(enc_to_dig_port(encoder),
> +		               required_lanes);
>   	if (crtc_state && crtc_state->hw.active)
>   		intel_update_active_dpll(state, crtc, encoder);
>   }
> @@ -4156,7 +4157,7 @@ intel_ddi_update_complete(struct intel_atomic_state *state,
>   			  struct intel_encoder *encoder,
>   			  struct intel_crtc *crtc)
>   {
> -	intel_tc_port_put_link(enc_to_dig_port(&encoder->base));
> +	intel_tc_port_put_link(enc_to_dig_port(encoder));
>   }
>   
>   static void
> @@ -4165,7 +4166,7 @@ intel_ddi_pre_pll_enable(struct intel_encoder *encoder,
>   			 const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>   	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
>   
> @@ -4193,7 +4194,7 @@ intel_ddi_post_pll_disable(struct intel_encoder *encoder,
>   			   const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>   	bool is_tc_port = intel_phy_is_tc(dev_priv, phy);
>   
> @@ -4480,7 +4481,7 @@ static int intel_ddi_compute_config(struct intel_encoder *encoder,
>   
>   static void intel_ddi_encoder_destroy(struct drm_encoder *encoder)
>   {
> -	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder));
>   
>   	intel_dp_encoder_flush_work(encoder);
>   
> @@ -4547,7 +4548,7 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
>   				 struct drm_modeset_acquire_ctx *ctx)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_hdmi *hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *hdmi = enc_to_intel_hdmi(encoder);
>   	struct intel_connector *connector = hdmi->attached_connector;
>   	struct i2c_adapter *adapter =
>   		intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
> @@ -4619,7 +4620,7 @@ intel_ddi_hotplug(struct intel_encoder *encoder,
>   		  struct intel_connector *connector,
>   		  bool irq_received)
>   {
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	struct drm_modeset_acquire_ctx ctx;
>   	enum intel_hotplug_state state;
>   	int ret;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 99abc553a8ab..45568a7c6579 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14505,7 +14505,7 @@ static void intel_set_dp_tp_ctl_normal(struct intel_crtc *crtc,
>   		if (conn_state->crtc == &crtc->base)
>   			break;
>   	}
> -	intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(conn))->base);
> +	intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(conn)));
>   	intel_dp_stop_link_train(intel_dp);
>   }
>   
> @@ -17763,7 +17763,7 @@ intel_modeset_setup_hw_state(struct drm_device *dev,
>   		/* We need to sanitize only the MST primary port. */
>   		if (encoder->type != INTEL_OUTPUT_DP_MST &&
>   		    intel_phy_is_tc(dev_priv, phy))
> -			intel_tc_port_sanitize(enc_to_dig_port(&encoder->base));
> +			intel_tc_port_sanitize(enc_to_dig_port(encoder));
>   	}
>   
>   	get_encoder_power_domains(dev_priv);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index ce1b64f4dd44..7395cb0111a3 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -519,7 +519,7 @@ static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
>   		if (encoder->type == INTEL_OUTPUT_DP_MST)
>   			continue;
>   
> -		dig_port = enc_to_dig_port(&encoder->base);
> +		dig_port = enc_to_dig_port(encoder);
>   		if (WARN_ON(!dig_port))
>   			continue;
>   
> @@ -1669,8 +1669,8 @@ void chv_phy_powergate_lanes(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct i915_power_domains *power_domains = &dev_priv->power_domains;
> -	enum dpio_phy phy = vlv_dport_to_phy(enc_to_dig_port(&encoder->base));
> -	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(&encoder->base));
> +	enum dpio_phy phy = vlv_dport_to_phy(enc_to_dig_port(encoder));
> +	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(encoder));
>   
>   	mutex_lock(&power_domains->lock);
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 4d89de5a4964..79c7454ff510 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1454,12 +1454,12 @@ static inline bool intel_encoder_is_dig_port(struct intel_encoder *encoder)
>   }
>   
>   static inline struct intel_digital_port *
> -enc_to_dig_port(struct drm_encoder *encoder)
> +enc_to_dig_port(struct intel_encoder *encoder)
>   {
> -	struct intel_encoder *intel_encoder = to_intel_encoder(encoder);
> +	struct intel_encoder *intel_encoder = encoder;
>   
>   	if (intel_encoder_is_dig_port(intel_encoder))
> -		return container_of(encoder, struct intel_digital_port,
> +		return container_of(&encoder->base, struct intel_digital_port,
>   				    base.base);
>   	else
>   		return NULL;
> @@ -1468,16 +1468,17 @@ enc_to_dig_port(struct drm_encoder *encoder)
>   static inline struct intel_digital_port *
>   conn_to_dig_port(struct intel_connector *connector)
>   {
> -	return enc_to_dig_port(&intel_attached_encoder(connector)->base);
> +	return enc_to_dig_port(intel_attached_encoder(connector));
>   }
>   
>   static inline struct intel_dp_mst_encoder *
> -enc_to_mst(struct drm_encoder *encoder)
> +enc_to_mst(struct intel_encoder *encoder)
>   {
> -	return container_of(encoder, struct intel_dp_mst_encoder, base.base);
> +	return container_of(&encoder->base, struct intel_dp_mst_encoder,
> +			    base.base);
>   }
>   
> -static inline struct intel_dp *enc_to_intel_dp(struct drm_encoder *encoder)
> +static inline struct intel_dp *enc_to_intel_dp(struct intel_encoder *encoder)
>   {
>   	return &enc_to_dig_port(encoder)->dp;
>   }
> @@ -1490,14 +1491,14 @@ static inline bool intel_encoder_is_dp(struct intel_encoder *encoder)
>   		return true;
>   	case INTEL_OUTPUT_DDI:
>   		/* Skip pure HDMI/DVI DDI encoders */
> -		return i915_mmio_reg_valid(enc_to_intel_dp(&encoder->base)->output_reg);
> +		return i915_mmio_reg_valid(enc_to_intel_dp(encoder)->output_reg);
>   	default:
>   		return false;
>   	}
>   }
>   
>   static inline struct intel_lspcon *
> -enc_to_intel_lspcon(struct drm_encoder *encoder)
> +enc_to_intel_lspcon(struct intel_encoder *encoder)
>   {
>   	return &enc_to_dig_port(encoder)->lspcon;
>   }
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 668b636fcfaa..93f3d232fcb5 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -148,7 +148,7 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
>   
>   static struct intel_dp *intel_attached_dp(struct intel_connector *connector)
>   {
> -	return enc_to_intel_dp(&intel_attached_encoder(connector)->base);
> +	return enc_to_intel_dp(intel_attached_encoder(connector));
>   }
>   
>   static void intel_dp_link_down(struct intel_encoder *encoder,
> @@ -834,7 +834,7 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
>   	 * Pick one that's not used by other ports.
>   	 */
>   	for_each_intel_dp(&dev_priv->drm, encoder) {
> -		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   		if (encoder->type == INTEL_OUTPUT_EDP) {
>   			WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
> @@ -1031,7 +1031,7 @@ void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
>   	 */
>   
>   	for_each_intel_dp(&dev_priv->drm, encoder) {
> -		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   		WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
>   
> @@ -2165,7 +2165,7 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
>   			     struct drm_connector_state *conn_state)
>   {
>   	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct link_config_limits limits;
>   	int common_len;
>   	int ret;
> @@ -2326,8 +2326,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> -	struct intel_lspcon *lspcon = enc_to_intel_lspcon(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> +	struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder);
>   	enum port port = encoder->port;
>   	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
>   	struct intel_connector *intel_connector = intel_dp->attached_connector;
> @@ -2442,7 +2442,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
>   			     const struct intel_crtc_state *pipe_config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	enum port port = encoder->port;
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>   	const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
> @@ -2940,7 +2940,7 @@ static void _intel_edp_backlight_on(struct intel_dp *intel_dp)
>   void intel_edp_backlight_on(const struct intel_crtc_state *crtc_state,
>   			    const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(conn_state->best_encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(conn_state->best_encoder));
>   
>   	if (!intel_dp_is_edp(intel_dp))
>   		return;
> @@ -2978,7 +2978,7 @@ static void _intel_edp_backlight_off(struct intel_dp *intel_dp)
>   /* Disable backlight PP control and backlight PWM. */
>   void intel_edp_backlight_off(const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(old_conn_state->best_encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder));
>   
>   	if (!intel_dp_is_edp(intel_dp))
>   		return;
> @@ -3218,7 +3218,7 @@ static bool intel_dp_get_hw_state(struct intel_encoder *encoder,
>   				  enum pipe *pipe)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	intel_wakeref_t wakeref;
>   	bool ret;
>   
> @@ -3239,7 +3239,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
>   				struct intel_crtc_state *pipe_config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	u32 tmp, flags = 0;
>   	enum port port = encoder->port;
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
> @@ -3323,7 +3323,7 @@ static void intel_disable_dp(struct intel_encoder *encoder,
>   			     const struct intel_crtc_state *old_crtc_state,
>   			     const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   	intel_dp->link_trained = false;
>   
> @@ -3357,7 +3357,7 @@ static void g4x_post_disable_dp(struct intel_encoder *encoder,
>   				const struct intel_crtc_state *old_crtc_state,
>   				const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	enum port port = encoder->port;
>   
>   	/*
> @@ -3508,7 +3508,7 @@ static void intel_enable_dp(struct intel_encoder *encoder,
>   			    const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>   	u32 dp_reg = I915_READ(intel_dp->output_reg);
>   	enum pipe pipe = crtc->pipe;
> @@ -3568,7 +3568,7 @@ static void g4x_pre_enable_dp(struct intel_encoder *encoder,
>   			      const struct intel_crtc_state *pipe_config,
>   			      const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	enum port port = encoder->port;
>   
>   	intel_dp_prepare(encoder, pipe_config);
> @@ -3618,7 +3618,7 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
>   	lockdep_assert_held(&dev_priv->pps_mutex);
>   
>   	for_each_intel_dp(&dev_priv->drm, encoder) {
> -		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +		struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   		WARN(intel_dp->active_pipe == pipe,
>   		     "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
> @@ -3641,7 +3641,7 @@ static void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
>   					   const struct intel_crtc_state *crtc_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>   
>   	lockdep_assert_held(&dev_priv->pps_mutex);
> @@ -4163,7 +4163,7 @@ intel_dp_link_down(struct intel_encoder *encoder,
>   		   const struct intel_crtc_state *old_crtc_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>   	enum port port = encoder->port;
>   	u32 DP = intel_dp->DP;
> @@ -5056,7 +5056,7 @@ int intel_dp_retrain_link(struct intel_encoder *encoder,
>   			  struct drm_modeset_acquire_ctx *ctx)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_connector *connector = intel_dp->attached_connector;
>   	struct drm_connector_state *conn_state;
>   	struct intel_crtc_state *crtc_state;
> @@ -5496,7 +5496,7 @@ static bool intel_combo_phy_connected(struct drm_i915_private *dev_priv,
>   static bool icp_digital_port_connected(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>   
>   	if (intel_phy_is_combo(dev_priv, phy))
> @@ -5799,7 +5799,7 @@ intel_dp_connector_unregister(struct drm_connector *connector)
>   
>   void intel_dp_encoder_flush_work(struct drm_encoder *encoder)
>   {
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(to_intel_encoder(encoder));
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   
>   	intel_dp_mst_encoder_cleanup(intel_dig_port);
> @@ -5828,12 +5828,12 @@ static void intel_dp_encoder_destroy(struct drm_encoder *encoder)
>   	intel_dp_encoder_flush_work(encoder);
>   
>   	drm_encoder_cleanup(encoder);
> -	kfree(enc_to_dig_port(encoder));
> +	kfree(enc_to_dig_port(to_intel_encoder(encoder)));
>   }
>   
>   void intel_dp_encoder_suspend(struct intel_encoder *intel_encoder)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
>   	intel_wakeref_t wakeref;
>   
>   	if (!intel_dp_is_edp(intel_dp))
> @@ -5864,7 +5864,7 @@ static
>   int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
>   				u8 *an)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_dig_port->base.base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(&intel_dig_port->base.base));
>   	static const struct drm_dp_aux_msg msg = {
>   		.request = DP_AUX_NATIVE_WRITE,
>   		.address = DP_AUX_HDCP_AKSV,
> @@ -6474,7 +6474,7 @@ static enum pipe vlv_active_pipe(struct intel_dp *intel_dp)
>   void intel_dp_encoder_reset(struct drm_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(encoder));
>   	struct intel_lspcon *lspcon = dp_to_lspcon(intel_dp);
>   	intel_wakeref_t wakeref;
>   
> @@ -7620,7 +7620,7 @@ void intel_dp_mst_suspend(struct drm_i915_private *dev_priv)
>   		if (encoder->type != INTEL_OUTPUT_DDI)
>   			continue;
>   
> -		intel_dp = enc_to_intel_dp(&encoder->base);
> +		intel_dp = enc_to_intel_dp(encoder);
>   
>   		if (!intel_dp->can_mst)
>   			continue;
> @@ -7641,7 +7641,7 @@ void intel_dp_mst_resume(struct drm_i915_private *dev_priv)
>   		if (encoder->type != INTEL_OUTPUT_DDI)
>   			continue;
>   
> -		intel_dp = enc_to_intel_dp(&encoder->base);
> +		intel_dp = enc_to_intel_dp(encoder);
>   
>   		if (!intel_dp->can_mst)
>   			continue;
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 020422da2ae2..7c653f8c307f 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
>    */
>   static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
>   	u8 read_val[2] = { 0x0 };
>   	u16 level = 0;
>   
> @@ -82,7 +82,7 @@ static void
>   intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
>   {
>   	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
>   	u8 vals[2] = { 0x0 };
>   
>   	vals[0] = level;
> @@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
>   static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
>   	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
>   	u8 pn, pn_min, pn_max;
>   
> @@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>   					  const struct drm_connector_state *conn_state)
>   {
>   	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
>   	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
>   
>   	if (drm_dp_dpcd_readb(&intel_dp->aux,
> @@ -222,13 +222,14 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>   
>   static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old_conn_state)
>   {
> -	set_aux_backlight_enable(enc_to_intel_dp(old_conn_state->best_encoder), false);
> +	set_aux_backlight_enable(enc_to_intel_dp(to_intel_encoder(old_conn_state->best_encoder)),
> +				 false);
>   }
>   
>   static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>   					enum pipe pipe)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
>   	struct intel_panel *panel = &connector->panel;
>   
>   	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
> @@ -247,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>   static bool
>   intel_dp_aux_display_control_capable(struct intel_connector *connector)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&connector->encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
>   
>   	/* Check the eDP Display control capabilities registers to determine if
>   	 * the panel can support backlight control over the aux channel
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index a1e4f4197a67..af7f6d670e07 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -43,7 +43,7 @@ static int intel_dp_mst_compute_link_config(struct intel_encoder *encoder,
>   					    struct link_config_limits *limits)
>   {
>   	struct drm_atomic_state *state = crtc_state->uapi.state;
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_dp *intel_dp = &intel_mst->primary->dp;
>   	struct intel_connector *connector =
>   		to_intel_connector(conn_state->connector);
> @@ -92,7 +92,7 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder,
>   				       struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_dp *intel_dp = &intel_mst->primary->dp;
>   	struct intel_connector *connector =
>   		to_intel_connector(conn_state->connector);
> @@ -195,7 +195,7 @@ intel_dp_mst_atomic_check(struct drm_connector *connector,
>   			return 0;
>   	}
>   
> -	mgr = &enc_to_mst(old_conn_state->best_encoder)->primary->dp.mst_mgr;
> +	mgr = &enc_to_mst(to_intel_encoder(old_conn_state->best_encoder))->primary->dp.mst_mgr;
>   	ret = drm_dp_atomic_release_vcpi_slots(state, mgr,
>   					       intel_connector->port);
>   
> @@ -206,7 +206,7 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
>   				 const struct intel_crtc_state *old_crtc_state,
>   				 const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   	struct intel_connector *connector =
> @@ -230,7 +230,7 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
>   				      const struct intel_crtc_state *old_crtc_state,
>   				      const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   	struct intel_connector *connector =
> @@ -267,7 +267,7 @@ static void intel_mst_pre_pll_enable_dp(struct intel_encoder *encoder,
>   					const struct intel_crtc_state *pipe_config,
>   					const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   
> @@ -280,7 +280,7 @@ static void intel_mst_post_pll_disable_dp(struct intel_encoder *encoder,
>   					  const struct intel_crtc_state *old_crtc_state,
>   					  const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   
> @@ -294,7 +294,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
>   				    const struct intel_crtc_state *pipe_config,
>   				    const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> @@ -352,7 +352,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
>   				const struct intel_crtc_state *pipe_config,
>   				const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> @@ -373,7 +373,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
>   static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
>   				      enum pipe *pipe)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	*pipe = intel_mst->pipe;
>   	if (intel_mst->connector)
>   		return true;
> @@ -383,7 +383,7 @@ static bool intel_dp_mst_enc_get_hw_state(struct intel_encoder *encoder,
>   static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
>   					struct intel_crtc_state *pipe_config)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   
>   	intel_ddi_get_config(&intel_dig_port->base, pipe_config);
> @@ -491,7 +491,7 @@ static const struct drm_connector_helper_funcs intel_dp_mst_connector_helper_fun
>   
>   static void intel_dp_mst_encoder_destroy(struct drm_encoder *encoder)
>   {
> -	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(encoder);
> +	struct intel_dp_mst_encoder *intel_mst = enc_to_mst(to_intel_encoder(encoder));
>   
>   	drm_encoder_cleanup(encoder);
>   	kfree(intel_mst);
> diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> index 704f38681c4b..6fb1f7a7364e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> @@ -642,7 +642,7 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder,
>   			      bool uniq_trans_scale)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc);
>   	enum dpio_channel ch = vlv_dport_to_channel(dport);
>   	enum pipe pipe = intel_crtc->pipe;
> @@ -738,7 +738,7 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder,
>   			      bool reset)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(&encoder->base));
> +	enum dpio_channel ch = vlv_dport_to_channel(enc_to_dig_port(encoder));
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>   	enum pipe pipe = crtc->pipe;
>   	u32 val;
> @@ -781,7 +781,7 @@ void chv_data_lane_soft_reset(struct intel_encoder *encoder,
>   void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
>   			    const struct intel_crtc_state *crtc_state)
>   {
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>   	enum dpio_channel ch = vlv_dport_to_channel(dport);
> @@ -861,7 +861,7 @@ void chv_phy_pre_pll_enable(struct intel_encoder *encoder,
>   void chv_phy_pre_encoder_enable(struct intel_encoder *encoder,
>   				const struct intel_crtc_state *crtc_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> @@ -940,7 +940,7 @@ void chv_phy_pre_encoder_enable(struct intel_encoder *encoder,
>   
>   void chv_phy_release_cl2_override(struct intel_encoder *encoder)
>   {
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   
>   	if (dport->release_cl2_override) {
> @@ -989,7 +989,7 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc);
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	enum dpio_channel port = vlv_dport_to_channel(dport);
>   	enum pipe pipe = intel_crtc->pipe;
>   
> @@ -1014,7 +1014,7 @@ void vlv_set_phy_signal_level(struct intel_encoder *encoder,
>   void vlv_phy_pre_pll_enable(struct intel_encoder *encoder,
>   			    const struct intel_crtc_state *crtc_state)
>   {
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>   	enum dpio_channel port = vlv_dport_to_channel(dport);
> @@ -1043,7 +1043,7 @@ void vlv_phy_pre_pll_enable(struct intel_encoder *encoder,
>   void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder,
>   				const struct intel_crtc_state *crtc_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> @@ -1073,7 +1073,7 @@ void vlv_phy_pre_encoder_enable(struct intel_encoder *encoder,
>   void vlv_phy_reset_lanes(struct intel_encoder *encoder,
>   			 const struct intel_crtc_state *old_crtc_state)
>   {
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>   	enum dpio_channel port = vlv_dport_to_channel(dport);
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> index 728a4b045de7..c75e34d87111 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> @@ -2972,8 +2972,8 @@ static void icl_update_active_dpll(struct intel_atomic_state *state,
>   	enum icl_port_dpll_id port_dpll_id = ICL_PORT_DPLL_DEFAULT;
>   
>   	primary_port = encoder->type == INTEL_OUTPUT_DP_MST ?
> -		enc_to_mst(&encoder->base)->primary :
> -		enc_to_dig_port(&encoder->base);
> +		enc_to_mst(encoder)->primary :
> +		enc_to_dig_port(encoder);
>   
>   	if (primary_port &&
>   	    (primary_port->tc_mode == TC_PORT_DP_ALT ||
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi.h b/drivers/gpu/drm/i915/display/intel_dsi.h
> index b15be5814599..97b18ab69370 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi.h
> +++ b/drivers/gpu/drm/i915/display/intel_dsi.h
> @@ -141,9 +141,9 @@ static inline struct intel_dsi_host *to_intel_dsi_host(struct mipi_dsi_host *h)
>   #define for_each_dsi_phy(__phy, __phys_mask) \
>   	for_each_phy_masked(__phy, __phys_mask)
>   
> -static inline struct intel_dsi *enc_to_intel_dsi(struct drm_encoder *encoder)
> +static inline struct intel_dsi *enc_to_intel_dsi(struct intel_encoder *encoder)
>   {
> -	return container_of(encoder, struct intel_dsi, base.base);
> +	return container_of(&encoder->base, struct intel_dsi, base.base);
>   }
>   
>   static inline bool is_vid_mode(struct intel_dsi *intel_dsi)
> @@ -158,7 +158,7 @@ static inline bool is_cmd_mode(struct intel_dsi *intel_dsi)
>   
>   static inline u16 intel_dsi_encoder_ports(struct intel_encoder *encoder)
>   {
> -	return enc_to_intel_dsi(&encoder->base)->ports;
> +	return enc_to_intel_dsi(encoder)->ports;
>   }
>   
>   /* icl_dsi.c */
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> index bb3fd8b786a2..c87838843d0b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> @@ -46,7 +46,7 @@
>   static u32 dcs_get_backlight(struct intel_connector *connector)
>   {
>   	struct intel_encoder *encoder = connector->encoder;
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct mipi_dsi_device *dsi_device;
>   	u8 data = 0;
>   	enum port port;
> @@ -64,7 +64,7 @@ static u32 dcs_get_backlight(struct intel_connector *connector)
>   
>   static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32 level)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(conn_state->best_encoder);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder));
>   	struct mipi_dsi_device *dsi_device;
>   	u8 data = level;
>   	enum port port;
> @@ -79,7 +79,7 @@ static void dcs_set_backlight(const struct drm_connector_state *conn_state, u32
>   
>   static void dcs_disable_backlight(const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(conn_state->best_encoder);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder));
>   	struct mipi_dsi_device *dsi_device;
>   	enum port port;
>   
> @@ -113,7 +113,7 @@ static void dcs_disable_backlight(const struct drm_connector_state *conn_state)
>   static void dcs_enable_backlight(const struct intel_crtc_state *crtc_state,
>   				 const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(conn_state->best_encoder);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(conn_state->best_encoder));
>   	struct intel_panel *panel = &to_intel_connector(conn_state->connector)->panel;
>   	struct mipi_dsi_device *dsi_device;
>   	enum port port;
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index a8deb4789f04..e179ee046687 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -85,16 +85,17 @@ assert_hdmi_transcoder_func_disabled(struct drm_i915_private *dev_priv,
>   	     "HDMI transcoder function enabled, expecting disabled\n");
>   }
>   
> -struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
> +struct intel_hdmi *enc_to_intel_hdmi(struct intel_encoder *encoder)
>   {
>   	struct intel_digital_port *intel_dig_port =
> -		container_of(encoder, struct intel_digital_port, base.base);
> +		container_of(&encoder->base, struct intel_digital_port,
> +			     base.base);
>   	return &intel_dig_port->hdmi;
>   }
>   
>   static struct intel_hdmi *intel_attached_hdmi(struct intel_connector *connector)
>   {
> -	return enc_to_intel_hdmi(&intel_attached_encoder(connector)->base);
> +	return enc_to_intel_hdmi(intel_attached_encoder(connector));
>   }
>   
>   static u32 g4x_infoframe_index(unsigned int type)
> @@ -602,7 +603,7 @@ u32 intel_hdmi_infoframes_enabled(struct intel_encoder *encoder,
>   				  const struct intel_crtc_state *crtc_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	u32 val, ret = 0;
>   	int i;
>   
> @@ -646,7 +647,7 @@ static void intel_write_infoframe(struct intel_encoder *encoder,
>   				  enum hdmi_infoframe_type type,
>   				  const union hdmi_infoframe *frame)
>   {
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
>   	u8 buffer[VIDEO_DIP_DATA_SIZE];
>   	ssize_t len;
>   
> @@ -675,7 +676,7 @@ void intel_read_infoframe(struct intel_encoder *encoder,
>   			  enum hdmi_infoframe_type type,
>   			  union hdmi_infoframe *frame)
>   {
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
>   	u8 buffer[VIDEO_DIP_DATA_SIZE];
>   	int ret;
>   
> @@ -855,7 +856,7 @@ static void g4x_set_infoframes(struct intel_encoder *encoder,
>   			       const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
>   	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
>   	i915_reg_t reg = VIDEO_DIP_CTL;
>   	u32 val = I915_READ(reg);
> @@ -1038,7 +1039,7 @@ static void ibx_set_infoframes(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
> -	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *intel_dig_port = enc_to_dig_port(encoder);
>   	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
>   	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
>   	u32 val = I915_READ(reg);
> @@ -1097,7 +1098,7 @@ static void cpt_set_infoframes(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
>   	u32 val = I915_READ(reg);
>   
> @@ -1146,7 +1147,7 @@ static void vlv_set_infoframes(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
>   	u32 val = I915_READ(reg);
>   	u32 port = VIDEO_DIP_PORT(encoder->port);
> @@ -1737,7 +1738,7 @@ static void intel_hdmi_prepare(struct intel_encoder *encoder,
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
>   	u32 hdmi_val;
>   
> @@ -1774,7 +1775,7 @@ static bool intel_hdmi_get_hw_state(struct intel_encoder *encoder,
>   				    enum pipe *pipe)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	intel_wakeref_t wakeref;
>   	bool ret;
>   
> @@ -1793,7 +1794,7 @@ static bool intel_hdmi_get_hw_state(struct intel_encoder *encoder,
>   static void intel_hdmi_get_config(struct intel_encoder *encoder,
>   				  struct intel_crtc_state *pipe_config)
>   {
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   	u32 tmp, flags = 0;
> @@ -1874,7 +1875,7 @@ static void g4x_enable_hdmi(struct intel_encoder *encoder,
>   {
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	u32 temp;
>   
>   	temp = I915_READ(intel_hdmi->hdmi_reg);
> @@ -1896,7 +1897,7 @@ static void ibx_enable_hdmi(struct intel_encoder *encoder,
>   {
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	u32 temp;
>   
>   	temp = I915_READ(intel_hdmi->hdmi_reg);
> @@ -1947,7 +1948,7 @@ static void cpt_enable_hdmi(struct intel_encoder *encoder,
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	enum pipe pipe = crtc->pipe;
>   	u32 temp;
>   
> @@ -2007,7 +2008,7 @@ static void intel_disable_hdmi(struct intel_encoder *encoder,
>   {
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	struct intel_digital_port *intel_dig_port =
>   		hdmi_to_dig_port(intel_hdmi);
>   	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
> @@ -2316,7 +2317,7 @@ static int intel_hdmi_compute_bpc(struct intel_encoder *encoder,
>   				  struct intel_crtc_state *crtc_state,
>   				  int clock, bool force_dvi)
>   {
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	int bpc;
>   
>   	for (bpc = 12; bpc >= 10; bpc -= 2) {
> @@ -2334,7 +2335,7 @@ static int intel_hdmi_compute_clock(struct intel_encoder *encoder,
>   				    struct intel_crtc_state *crtc_state,
>   				    bool force_dvi)
>   {
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	const struct drm_display_mode *adjusted_mode =
>   		&crtc_state->hw.adjusted_mode;
>   	int bpc, clock = adjusted_mode->crtc_clock;
> @@ -2404,7 +2405,7 @@ int intel_hdmi_compute_config(struct intel_encoder *encoder,
>   			      struct intel_crtc_state *pipe_config,
>   			      struct drm_connector_state *conn_state)
>   {
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
>   	struct drm_connector *connector = conn_state->connector;
> @@ -2663,7 +2664,7 @@ static void intel_hdmi_pre_enable(struct intel_encoder *encoder,
>   				  const struct drm_connector_state *conn_state)
>   {
>   	struct intel_digital_port *intel_dig_port =
> -		enc_to_dig_port(&encoder->base);
> +		enc_to_dig_port(encoder);
>   
>   	intel_hdmi_prepare(encoder, pipe_config);
>   
> @@ -2676,7 +2677,7 @@ static void vlv_hdmi_pre_enable(struct intel_encoder *encoder,
>   				const struct intel_crtc_state *pipe_config,
>   				const struct drm_connector_state *conn_state)
>   {
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   
>   	vlv_phy_pre_encoder_enable(encoder, pipe_config);
> @@ -2746,7 +2747,7 @@ static void chv_hdmi_pre_enable(struct intel_encoder *encoder,
>   				const struct intel_crtc_state *pipe_config,
>   				const struct drm_connector_state *conn_state)
>   {
> -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dport = enc_to_dig_port(encoder);
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   
> @@ -2906,7 +2907,7 @@ bool intel_hdmi_handle_sink_scrambling(struct intel_encoder *encoder,
>   				       bool scrambling)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
>   	struct drm_scrambling *sink_scrambling =
>   		&connector->display_info.hdmi.scdc.scrambling;
>   	struct i2c_adapter *adapter =
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.h b/drivers/gpu/drm/i915/display/intel_hdmi.h
> index cf1ea5427639..d3659d0b408b 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.h
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.h
> @@ -29,7 +29,7 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv, i915_reg_t hdmi_reg,
>   		     enum port port);
>   void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
>   			       struct intel_connector *intel_connector);
> -struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder);
> +struct intel_hdmi *enc_to_intel_hdmi(struct intel_encoder *encoder);
>   int intel_hdmi_compute_config(struct intel_encoder *encoder,
>   			      struct intel_crtc_state *pipe_config,
>   			      struct drm_connector_state *conn_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
> index fc29046d48ea..99d3a3c7989e 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> @@ -302,7 +302,7 @@ intel_encoder_hotplug(struct intel_encoder *encoder,
>   static bool intel_encoder_has_hpd_pulse(struct intel_encoder *encoder)
>   {
>   	return intel_encoder_is_dig_port(encoder) &&
> -		enc_to_dig_port(&encoder->base)->hpd_pulse != NULL;
> +		enc_to_dig_port(encoder)->hpd_pulse != NULL;
>   }
>   
>   static void i915_digport_work_func(struct work_struct *work)
> @@ -335,7 +335,7 @@ static void i915_digport_work_func(struct work_struct *work)
>   		if (!long_hpd && !short_hpd)
>   			continue;
>   
> -		dig_port = enc_to_dig_port(&encoder->base);
> +		dig_port = enc_to_dig_port(encoder);
>   
>   		ret = dig_port->hpd_pulse(dig_port, long_hpd);
>   		if (ret == IRQ_NONE) {
> diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c
> index 5145ff8b962b..d807c5648c87 100644
> --- a/drivers/gpu/drm/i915/display/intel_lspcon.c
> +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c
> @@ -434,8 +434,8 @@ void lspcon_write_infoframe(struct intel_encoder *encoder,
>   			    const void *frame, ssize_t len)
>   {
>   	bool ret;
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> -	struct intel_lspcon *lspcon = enc_to_intel_lspcon(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
> +	struct intel_lspcon *lspcon = enc_to_intel_lspcon(encoder);
>   
>   	/* LSPCON only needs AVI IF */
>   	if (type != HDMI_INFOFRAME_TYPE_AVI)
> @@ -472,7 +472,7 @@ void lspcon_set_infoframes(struct intel_encoder *encoder,
>   	ssize_t ret;
>   	union hdmi_infoframe frame;
>   	u8 buf[VIDEO_DIP_DATA_SIZE];
> -	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> +	struct intel_digital_port *dig_port = enc_to_dig_port(encoder);
>   	struct intel_lspcon *lspcon = &dig_port->lspcon;
>   	const struct drm_display_mode *adjusted_mode =
>   		&crtc_state->hw.adjusted_mode;
> @@ -522,7 +522,7 @@ u32 lspcon_infoframes_enabled(struct intel_encoder *encoder,
>   			      const struct intel_crtc_state *pipe_config)
>   {
>   	/* FIXME actually read this from the hw */
> -	return enc_to_intel_lspcon(&encoder->base)->active;
> +	return enc_to_intel_lspcon(encoder)->active;
>   }
>   
>   void lspcon_resume(struct intel_lspcon *lspcon)
> diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> index 2746512f4466..520408e83681 100644
> --- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> +++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> @@ -98,7 +98,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
>   			break;
>   		case INTEL_OUTPUT_DP:
>   		case INTEL_OUTPUT_EDP:
> -			dig_port = enc_to_dig_port(&encoder->base);
> +			dig_port = enc_to_dig_port(encoder);
>   			switch (dig_port->base.port) {
>   			case PORT_B:
>   				*source = INTEL_PIPE_CRC_SOURCE_DP_B;
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index b23ba8d108db..075b6e4f66c6 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -339,7 +339,7 @@ static const struct rc_parameters *get_rc_params(u16 compressed_bpp,
>   static int intel_dsc_dp_compute_params(struct intel_encoder *encoder,
>   				       struct intel_crtc_state *pipe_config)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct drm_dsc_config *vdsc_cfg = &pipe_config->dsc.config;
>   	u8 line_buf_depth;
>   
> @@ -904,7 +904,7 @@ static void intel_dsc_pps_configure(struct intel_encoder *encoder,
>   static void intel_dsc_dp_pps_write(struct intel_encoder *encoder,
>   				   const struct intel_crtc_state *crtc_state)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>   	const struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>   	struct drm_dsc_pps_infoframe dp_dsc_pps_sdp;
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 8398a265b6a3..0c19064e42e0 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -319,7 +319,7 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder,
>   static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 tmp;
>   	bool cold_boot = false;
> @@ -367,7 +367,7 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>   static void glk_dsi_device_ready(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> @@ -438,7 +438,7 @@ static void glk_dsi_device_ready(struct intel_encoder *encoder)
>   static void bxt_dsi_device_ready(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> @@ -465,7 +465,7 @@ static void bxt_dsi_device_ready(struct intel_encoder *encoder)
>   static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> @@ -516,7 +516,7 @@ static void intel_dsi_device_ready(struct intel_encoder *encoder)
>   static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> @@ -546,7 +546,7 @@ static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
>   static void glk_dsi_disable_mipi_io(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 tmp;
>   
> @@ -579,7 +579,7 @@ static void glk_dsi_clear_device_ready(struct intel_encoder *encoder)
>   static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   
>   	DRM_DEBUG_KMS("\n");
> @@ -625,7 +625,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   
>   	if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) {
> @@ -681,7 +681,7 @@ static void intel_dsi_port_disable(struct intel_encoder *encoder)
>   {
>   	struct drm_device *dev = encoder->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   
>   	for_each_dsi_port(port, intel_dsi->ports) {
> @@ -745,7 +745,7 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder,
>   				 const struct intel_crtc_state *pipe_config,
>   				 const struct drm_connector_state *conn_state)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct drm_crtc *crtc = pipe_config->uapi.crtc;
>   	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
> @@ -850,7 +850,7 @@ static void intel_dsi_disable(struct intel_encoder *encoder,
>   			      const struct intel_crtc_state *old_crtc_state,
>   			      const struct drm_connector_state *old_conn_state)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   
>   	DRM_DEBUG_KMS("\n");
> @@ -886,7 +886,7 @@ static void intel_dsi_post_disable(struct intel_encoder *encoder,
>   				   const struct drm_connector_state *conn_state)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> @@ -956,7 +956,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>   				   enum pipe *pipe)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	intel_wakeref_t wakeref;
>   	enum port port;
>   	bool active = false;
> @@ -1035,7 +1035,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>   					&pipe_config->hw.adjusted_mode;
>   	struct drm_display_mode *adjusted_mode_sw;
>   	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	unsigned int lane_count = intel_dsi->lane_count;
>   	unsigned int bpp, fmt;
>   	enum port port;
> @@ -1228,7 +1228,7 @@ static void set_dsi_timings(struct drm_encoder *encoder,
>   {
>   	struct drm_device *dev = encoder->dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder));
>   	enum port port;
>   	unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
>   	unsigned int lane_count = intel_dsi->lane_count;
> @@ -1316,7 +1316,7 @@ static void intel_dsi_prepare(struct intel_encoder *intel_encoder,
>   	struct drm_device *dev = encoder->dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
>   	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder));
>   	const struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
>   	enum port port;
>   	unsigned int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
> @@ -1506,7 +1506,7 @@ static void intel_dsi_prepare(struct intel_encoder *intel_encoder,
>   static void intel_dsi_unprepare(struct intel_encoder *encoder)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> @@ -1533,7 +1533,7 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
>   
>   static void intel_dsi_encoder_destroy(struct drm_encoder *encoder)
>   {
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(to_intel_encoder(encoder));
>   
>   	/* dispose of the gpios */
>   	if (intel_dsi->gpio_panel)
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> index 95f39cd0ce02..6b89e67b120f 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> @@ -117,7 +117,7 @@ int vlv_dsi_pll_compute(struct intel_encoder *encoder,
>   			struct intel_crtc_state *config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	int ret;
>   	u32 dsi_clk;
>   
> @@ -255,7 +255,7 @@ u32 vlv_dsi_get_pclk(struct intel_encoder *encoder,
>   		     struct intel_crtc_state *config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
>   	u32 dsi_clock, pclk;
>   	u32 pll_ctl, pll_div;
> @@ -321,7 +321,7 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
>   	u32 pclk;
>   	u32 dsi_clk;
>   	u32 dsi_ratio;
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>   	int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format);
>   
> @@ -341,7 +341,7 @@ void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
>   {
>   	u32 temp;
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   
>   	temp = I915_READ(MIPI_CTRL(port));
>   	temp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
> @@ -455,7 +455,7 @@ int bxt_dsi_pll_compute(struct intel_encoder *encoder,
>   			struct intel_crtc_state *config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	u8 dsi_ratio, dsi_ratio_min, dsi_ratio_max;
>   	u32 dsi_clk;
>   
> @@ -503,7 +503,7 @@ void bxt_dsi_pll_enable(struct intel_encoder *encoder,
>   			const struct intel_crtc_state *config)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> -	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
> +	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	enum port port;
>   	u32 val;
>   
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 4f543ccec15d..3bc8d5c0e88a 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2020,7 +2020,7 @@ static int i915_psr_sink_status_show(struct seq_file *m, void *data)
>   	struct drm_connector *connector = m->private;
>   	struct drm_i915_private *dev_priv = to_i915(connector->dev);
>   	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
> +		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
>   	int ret;
>   
>   	if (!CAN_PSR(dev_priv)) {
> @@ -2432,7 +2432,7 @@ static void intel_dp_info(struct seq_file *m,
>   			  struct intel_connector *intel_connector)
>   {
>   	struct intel_encoder *intel_encoder = intel_connector->encoder;
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
>   
>   	seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]);
>   	seq_printf(m, "\taudio support: %s\n", yesno(intel_dp->has_audio));
> @@ -2452,7 +2452,7 @@ static void intel_dp_mst_info(struct seq_file *m,
>   {
>   	struct intel_encoder *intel_encoder = intel_connector->encoder;
>   	struct intel_dp_mst_encoder *intel_mst =
> -		enc_to_mst(&intel_encoder->base);
> +		enc_to_mst(intel_encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>   	struct intel_dp *intel_dp = &intel_dig_port->dp;
>   	bool has_audio = drm_dp_mst_port_has_audio(&intel_dp->mst_mgr,
> @@ -2465,7 +2465,7 @@ static void intel_hdmi_info(struct seq_file *m,
>   			    struct intel_connector *intel_connector)
>   {
>   	struct intel_encoder *intel_encoder = intel_connector->encoder;
> -	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&intel_encoder->base);
> +	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
>   
>   	seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
>   	if (intel_connector->hdcp.shim) {
> @@ -3059,7 +3059,7 @@ static int i915_dp_mst_info(struct seq_file *m, void *unused)
>   		if (!intel_encoder || intel_encoder->type == INTEL_OUTPUT_DP_MST)
>   			continue;
>   
> -		intel_dig_port = enc_to_dig_port(&intel_encoder->base);
> +		intel_dig_port = enc_to_dig_port(intel_encoder);
>   		if (!intel_dig_port->dp.can_mst)
>   			continue;
>   
> @@ -3109,7 +3109,7 @@ static ssize_t i915_displayport_test_active_write(struct file *file,
>   			continue;
>   
>   		if (encoder && connector->status == connector_status_connected) {
> -			intel_dp = enc_to_intel_dp(&encoder->base);
> +			intel_dp = enc_to_intel_dp(encoder);
>   			status = kstrtoint(input_buffer, 10, &val);
>   			if (status < 0)
>   				break;
> @@ -3153,7 +3153,7 @@ static int i915_displayport_test_active_show(struct seq_file *m, void *data)
>   			continue;
>   
>   		if (encoder && connector->status == connector_status_connected) {
> -			intel_dp = enc_to_intel_dp(&encoder->base);
> +			intel_dp = enc_to_intel_dp(encoder);
>   			if (intel_dp->compliance.test_active)
>   				seq_puts(m, "1");
>   			else
> @@ -3203,7 +3203,7 @@ static int i915_displayport_test_data_show(struct seq_file *m, void *data)
>   			continue;
>   
>   		if (encoder && connector->status == connector_status_connected) {
> -			intel_dp = enc_to_intel_dp(&encoder->base);
> +			intel_dp = enc_to_intel_dp(encoder);
>   			if (intel_dp->compliance.test_type ==
>   			    DP_TEST_LINK_EDID_READ)
>   				seq_printf(m, "%lx",
> @@ -3247,7 +3247,7 @@ static int i915_displayport_test_type_show(struct seq_file *m, void *data)
>   			continue;
>   
>   		if (encoder && connector->status == connector_status_connected) {
> -			intel_dp = enc_to_intel_dp(&encoder->base);
> +			intel_dp = enc_to_intel_dp(encoder);
>   			seq_printf(m, "%02lx", intel_dp->compliance.test_type);
>   		} else
>   			seq_puts(m, "0");
> @@ -4192,7 +4192,7 @@ static int i915_drrs_ctl_set(void *data, u64 val)
>   			DRM_DEBUG_DRIVER("Manually %sabling DRRS. %llu\n",
>   						val ? "en" : "dis", val);
>   
> -			intel_dp = enc_to_intel_dp(&encoder->base);
> +			intel_dp = enc_to_intel_dp(encoder);
>   			if (val)
>   				intel_edp_drrs_enable(intel_dp,
>   						      crtc_state);
> @@ -4396,7 +4396,7 @@ static int i915_dpcd_show(struct seq_file *m, void *data)
>   {
>   	struct drm_connector *connector = m->private;
>   	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
> +		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
>   	u8 buf[16];
>   	ssize_t err;
>   	int i;
> @@ -4431,7 +4431,7 @@ static int i915_panel_show(struct seq_file *m, void *data)
>   {
>   	struct drm_connector *connector = m->private;
>   	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
> +		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
>   
>   	if (connector->status != connector_status_connected)
>   		return -ENODEV;
> @@ -4509,7 +4509,7 @@ static int i915_dsc_fec_support_show(struct seq_file *m, void *data)
>   		} else if (ret) {
>   			break;
>   		}
> -		intel_dp = enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector))->base);
> +		intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
>   		crtc_state = to_intel_crtc_state(crtc->state);
>   		seq_printf(m, "DSC_Enabled: %s\n",
>   			   yesno(crtc_state->dsc.compression_enable));
> @@ -4537,7 +4537,7 @@ static ssize_t i915_dsc_fec_support_write(struct file *file,
>   	struct drm_connector *connector =
>   		((struct seq_file *)file->private_data)->private;
>   	struct intel_encoder *encoder = intel_attached_encoder(to_intel_connector(connector));
> -	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
>   
>   	if (len == 0)
>   		return 0;
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 2/9] drm/i915: Pass intel_connector to intel_attached_*()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 2/9] drm/i915: Pass intel_connector to intel_attached_*() Ville Syrjala
@ 2020-01-09  7:28   ` Kahola, Mika
  0 siblings, 0 replies; 27+ messages in thread
From: Kahola, Mika @ 2020-01-09  7:28 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Wed, 2019-12-04 at 20:05 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Life is usually easier when we pass around intel_ types instead
> of drm_ types. In this case it might not be, but I think being
> consistent is a good thing anyway. Also some of this might get
> cleaned up a bit more later as we keep propagating the intel_
> types further.
> 
> @find@
> identifier F =~ "^intel_attached_.*";
> identifier C;
> @@
> F(struct drm_connector *C)
> {
> ...
> }
> 
> @@
> identifier find.F;
> identifier find.C;
> @@
> F(
> - struct drm_connector *C
> + struct intel_connector *connector
>   )
> {
> <...
> - C
> + &connector->base
> ...>
> }
> 
> @@
> identifier find.F;
> expression C;
> @@
> - F(C)
> + F(to_intel_connector(C))
> 
> @@
> expression C;
> @@
> - to_intel_connector(&C->base)
> + C
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_crt.c      | 12 +++++-----
>  drivers/gpu/drm/i915/display/intel_display.c  |  8 +++----
>  .../drm/i915/display/intel_display_types.h    |  6 ++---
>  drivers/gpu/drm/i915/display/intel_dp.c       | 16 +++++++-------
>  drivers/gpu/drm/i915/display/intel_dvo.c      |  8 +++----
>  drivers/gpu/drm/i915/display/intel_hdmi.c     | 16 +++++++-------
>  drivers/gpu/drm/i915/display/intel_sdvo.c     | 22 +++++++++------
> ----
>  drivers/gpu/drm/i915/display/intel_tv.c       |  6 ++---
>  drivers/gpu/drm/i915/i915_debugfs.c           | 14 ++++++------
>  9 files changed, 54 insertions(+), 54 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c
> b/drivers/gpu/drm/i915/display/intel_crt.c
> index 7a2d36905155..47fceecea9f8 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -65,7 +65,7 @@ static struct intel_crt
> *intel_encoder_to_crt(struct intel_encoder *encoder)
>  	return container_of(encoder, struct intel_crt, base);
>  }
>  
> -static struct intel_crt *intel_attached_crt(struct drm_connector
> *connector)
> +static struct intel_crt *intel_attached_crt(struct intel_connector
> *connector)
>  {
>  	return intel_encoder_to_crt(intel_attached_encoder(connector));
>  }
> @@ -422,7 +422,7 @@ static int hsw_crt_compute_config(struct
> intel_encoder *encoder,
>  static bool intel_ironlake_crt_detect_hotplug(struct drm_connector
> *connector)
>  {
>  	struct drm_device *dev = connector->dev;
> -	struct intel_crt *crt = intel_attached_crt(connector);
> +	struct intel_crt *crt =
> intel_attached_crt(to_intel_connector(connector));
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	u32 adpa;
>  	bool ret;
> @@ -469,7 +469,7 @@ static bool
> intel_ironlake_crt_detect_hotplug(struct drm_connector *connector)
>  static bool valleyview_crt_detect_hotplug(struct drm_connector
> *connector)
>  {
>  	struct drm_device *dev = connector->dev;
> -	struct intel_crt *crt = intel_attached_crt(connector);
> +	struct intel_crt *crt =
> intel_attached_crt(to_intel_connector(connector));
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	bool reenable_hpd;
>  	u32 adpa;
> @@ -601,7 +601,7 @@ static int intel_crt_ddc_get_modes(struct
> drm_connector *connector,
>  
>  static bool intel_crt_detect_ddc(struct drm_connector *connector)
>  {
> -	struct intel_crt *crt = intel_attached_crt(connector);
> +	struct intel_crt *crt =
> intel_attached_crt(to_intel_connector(connector));
>  	struct drm_i915_private *dev_priv = to_i915(crt-
> >base.base.dev);
>  	struct edid *edid;
>  	struct i2c_adapter *i2c;
> @@ -787,7 +787,7 @@ intel_crt_detect(struct drm_connector *connector,
>  		 bool force)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> -	struct intel_crt *crt = intel_attached_crt(connector);
> +	struct intel_crt *crt =
> intel_attached_crt(to_intel_connector(connector));
>  	struct intel_encoder *intel_encoder = &crt->base;
>  	intel_wakeref_t wakeref;
>  	int status, ret;
> @@ -878,7 +878,7 @@ static int intel_crt_get_modes(struct
> drm_connector *connector)
>  {
>  	struct drm_device *dev = connector->dev;
>  	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_crt *crt = intel_attached_crt(connector);
> +	struct intel_crt *crt =
> intel_attached_crt(to_intel_connector(connector));
>  	struct intel_encoder *intel_encoder = &crt->base;
>  	intel_wakeref_t wakeref;
>  	struct i2c_adapter *i2c;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index eb0505a66ea8..99abc553a8ab 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -6197,7 +6197,7 @@ intel_connector_primary_encoder(struct
> intel_connector *connector)
>  	if (connector->mst_port)
>  		return &dp_to_dig_port(connector->mst_port)->base;
>  
> -	encoder = intel_attached_encoder(&connector->base);
> +	encoder = intel_attached_encoder(connector);
>  	WARN_ON(!encoder);
>  
>  	return encoder;
> @@ -11376,7 +11376,7 @@ int intel_get_load_detect_pipe(struct
> drm_connector *connector,
>  {
>  	struct intel_crtc *intel_crtc;
>  	struct intel_encoder *intel_encoder =
> -		intel_attached_encoder(connector);
> +		intel_attached_encoder(to_intel_connector(connector));
>  	struct drm_crtc *possible_crtc;
>  	struct drm_encoder *encoder = &intel_encoder->base;
>  	struct drm_crtc *crtc = NULL;
> @@ -11530,7 +11530,7 @@ void intel_release_load_detect_pipe(struct
> drm_connector *connector,
>  				    struct drm_modeset_acquire_ctx
> *ctx)
>  {
>  	struct intel_encoder *intel_encoder =
> -		intel_attached_encoder(connector);
> +		intel_attached_encoder(to_intel_connector(connector));
>  	struct drm_encoder *encoder = &intel_encoder->base;
>  	struct drm_atomic_state *state = old->restore_state;
>  	int ret;
> @@ -14505,7 +14505,7 @@ static void intel_set_dp_tp_ctl_normal(struct
> intel_crtc *crtc,
>  		if (conn_state->crtc == &crtc->base)
>  			break;
>  	}
> -	intel_dp = enc_to_intel_dp(&intel_attached_encoder(conn)-
> >base);
> +	intel_dp =
> enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(conn))-
> >base);
>  	intel_dp_stop_link_train(intel_dp);
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 83ea04149b77..4d89de5a4964 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1435,9 +1435,9 @@ struct intel_load_detect_pipe {
>  };
>  
>  static inline struct intel_encoder *
> -intel_attached_encoder(struct drm_connector *connector)
> +intel_attached_encoder(struct intel_connector *connector)
>  {
> -	return to_intel_connector(connector)->encoder;
> +	return connector->encoder;
>  }
>  
>  static inline bool intel_encoder_is_dig_port(struct intel_encoder
> *encoder)
> @@ -1468,7 +1468,7 @@ enc_to_dig_port(struct drm_encoder *encoder)
>  static inline struct intel_digital_port *
>  conn_to_dig_port(struct intel_connector *connector)
>  {
> -	return enc_to_dig_port(&intel_attached_encoder(&connector-
> >base)->base);
> +	return enc_to_dig_port(&intel_attached_encoder(connector)-
> >base);
>  }
>  
>  static inline struct intel_dp_mst_encoder *
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 0f496115c345..668b636fcfaa 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -146,7 +146,7 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
>  	return intel_dig_port->base.type == INTEL_OUTPUT_EDP;
>  }
>  
> -static struct intel_dp *intel_attached_dp(struct drm_connector
> *connector)
> +static struct intel_dp *intel_attached_dp(struct intel_connector
> *connector)
>  {
>  	return enc_to_intel_dp(&intel_attached_encoder(connector)-
> >base);
>  }
> @@ -614,7 +614,7 @@ static enum drm_mode_status
>  intel_dp_mode_valid(struct drm_connector *connector,
>  		    struct drm_display_mode *mode)
>  {
> -	struct intel_dp *intel_dp = intel_attached_dp(connector);
> +	struct intel_dp *intel_dp =
> intel_attached_dp(to_intel_connector(connector));
>  	struct intel_connector *intel_connector =
> to_intel_connector(connector);
>  	struct drm_display_mode *fixed_mode = intel_connector-
> >panel.fixed_mode;
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> @@ -2996,7 +2996,7 @@ void intel_edp_backlight_off(const struct
> drm_connector_state *old_conn_state)
>  static void intel_edp_backlight_power(struct intel_connector
> *connector,
>  				      bool enable)
>  {
> -	struct intel_dp *intel_dp = intel_attached_dp(&connector-
> >base);
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>  	intel_wakeref_t wakeref;
>  	bool is_enabled;
>  
> @@ -5611,7 +5611,7 @@ intel_dp_detect(struct drm_connector
> *connector,
>  		bool force)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> -	struct intel_dp *intel_dp = intel_attached_dp(connector);
> +	struct intel_dp *intel_dp =
> intel_attached_dp(to_intel_connector(connector));
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct intel_encoder *encoder = &dig_port->base;
>  	enum drm_connector_status status;
> @@ -5715,7 +5715,7 @@ intel_dp_detect(struct drm_connector
> *connector,
>  static void
>  intel_dp_force(struct drm_connector *connector)
>  {
> -	struct intel_dp *intel_dp = intel_attached_dp(connector);
> +	struct intel_dp *intel_dp =
> intel_attached_dp(to_intel_connector(connector));
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct intel_encoder *intel_encoder = &dig_port->base;
>  	struct drm_i915_private *dev_priv = to_i915(intel_encoder-
> >base.dev);
> @@ -5750,7 +5750,7 @@ static int intel_dp_get_modes(struct
> drm_connector *connector)
>  	}
>  
>  	/* if eDP has no EDID, fall back to fixed mode */
> -	if (intel_dp_is_edp(intel_attached_dp(connector)) &&
> +	if
> (intel_dp_is_edp(intel_attached_dp(to_intel_connector(connector))) &&
>  	    intel_connector->panel.fixed_mode) {
>  		struct drm_display_mode *mode;
>  
> @@ -5768,7 +5768,7 @@ static int intel_dp_get_modes(struct
> drm_connector *connector)
>  static int
>  intel_dp_connector_register(struct drm_connector *connector)
>  {
> -	struct intel_dp *intel_dp = intel_attached_dp(connector);
> +	struct intel_dp *intel_dp =
> intel_attached_dp(to_intel_connector(connector));
>  	int ret;
>  
>  	ret = intel_connector_register(connector);
> @@ -5790,7 +5790,7 @@ intel_dp_connector_register(struct
> drm_connector *connector)
>  static void
>  intel_dp_connector_unregister(struct drm_connector *connector)
>  {
> -	struct intel_dp *intel_dp = intel_attached_dp(connector);
> +	struct intel_dp *intel_dp =
> intel_attached_dp(to_intel_connector(connector));
>  
>  	drm_dp_cec_unregister_connector(&intel_dp->aux);
>  	drm_dp_aux_unregister(&intel_dp->aux);
> diff --git a/drivers/gpu/drm/i915/display/intel_dvo.c
> b/drivers/gpu/drm/i915/display/intel_dvo.c
> index a74dc5b915d1..86a337c9d85d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_dvo.c
> @@ -125,7 +125,7 @@ static struct intel_dvo *enc_to_dvo(struct
> intel_encoder *encoder)
>  	return container_of(encoder, struct intel_dvo, base);
>  }
>  
> -static struct intel_dvo *intel_attached_dvo(struct drm_connector
> *connector)
> +static struct intel_dvo *intel_attached_dvo(struct intel_connector
> *connector)
>  {
>  	return enc_to_dvo(intel_attached_encoder(connector));
>  }
> @@ -134,7 +134,7 @@ static bool
> intel_dvo_connector_get_hw_state(struct intel_connector *connector)
>  {
>  	struct drm_device *dev = connector->base.dev;
>  	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_dvo *intel_dvo = intel_attached_dvo(&connector-
> >base);
> +	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
>  	u32 tmp;
>  
>  	tmp = I915_READ(intel_dvo->dev.dvo_reg);
> @@ -220,7 +220,7 @@ static enum drm_mode_status
>  intel_dvo_mode_valid(struct drm_connector *connector,
>  		     struct drm_display_mode *mode)
>  {
> -	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
> +	struct intel_dvo *intel_dvo =
> intel_attached_dvo(to_intel_connector(connector));
>  	const struct drm_display_mode *fixed_mode =
>  		to_intel_connector(connector)->panel.fixed_mode;
>  	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
> @@ -311,7 +311,7 @@ static void intel_dvo_pre_enable(struct
> intel_encoder *encoder,
>  static enum drm_connector_status
>  intel_dvo_detect(struct drm_connector *connector, bool force)
>  {
> -	struct intel_dvo *intel_dvo = intel_attached_dvo(connector);
> +	struct intel_dvo *intel_dvo =
> intel_attached_dvo(to_intel_connector(connector));
>  	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
>  		      connector->base.id, connector->name);
>  	return intel_dvo->dev.dev_ops->detect(&intel_dvo->dev);
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c
> b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index a89a09b25260..a8deb4789f04 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -92,7 +92,7 @@ struct intel_hdmi *enc_to_intel_hdmi(struct
> drm_encoder *encoder)
>  	return &intel_dig_port->hdmi;
>  }
>  
> -static struct intel_hdmi *intel_attached_hdmi(struct drm_connector
> *connector)
> +static struct intel_hdmi *intel_attached_hdmi(struct intel_connector
> *connector)
>  {
>  	return enc_to_intel_hdmi(&intel_attached_encoder(connector)-
> >base);
>  }
> @@ -2160,7 +2160,7 @@ static enum drm_mode_status
>  intel_hdmi_mode_valid(struct drm_connector *connector,
>  		      struct drm_display_mode *mode)
>  {
> -	struct intel_hdmi *hdmi = intel_attached_hdmi(connector);
> +	struct intel_hdmi *hdmi =
> intel_attached_hdmi(to_intel_connector(connector));
>  	struct drm_device *dev = intel_hdmi_to_dev(hdmi);
>  	struct drm_i915_private *dev_priv = to_i915(dev);
>  	enum drm_mode_status status;
> @@ -2496,7 +2496,7 @@ int intel_hdmi_compute_config(struct
> intel_encoder *encoder,
>  static void
>  intel_hdmi_unset_edid(struct drm_connector *connector)
>  {
> -	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
> +	struct intel_hdmi *intel_hdmi =
> intel_attached_hdmi(to_intel_connector(connector));
>  
>  	intel_hdmi->has_hdmi_sink = false;
>  	intel_hdmi->has_audio = false;
> @@ -2512,7 +2512,7 @@ static void
>  intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool
> has_edid)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> -	struct intel_hdmi *hdmi = intel_attached_hdmi(connector);
> +	struct intel_hdmi *hdmi =
> intel_attached_hdmi(to_intel_connector(connector));
>  	enum port port = hdmi_to_dig_port(hdmi)->base.port;
>  	struct i2c_adapter *adapter =
>  		intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
> @@ -2559,7 +2559,7 @@ static bool
>  intel_hdmi_set_edid(struct drm_connector *connector)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> -	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
> +	struct intel_hdmi *intel_hdmi =
> intel_attached_hdmi(to_intel_connector(connector));
>  	intel_wakeref_t wakeref;
>  	struct edid *edid;
>  	bool connected = false;
> @@ -2600,7 +2600,7 @@ intel_hdmi_detect(struct drm_connector
> *connector, bool force)
>  {
>  	enum drm_connector_status status =
> connector_status_disconnected;
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> -	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
> +	struct intel_hdmi *intel_hdmi =
> intel_attached_hdmi(to_intel_connector(connector));
>  	struct intel_encoder *encoder = &hdmi_to_dig_port(intel_hdmi)-
> >base;
>  	intel_wakeref_t wakeref;
>  
> @@ -2772,7 +2772,7 @@ static struct i2c_adapter *
>  intel_hdmi_get_i2c_adapter(struct drm_connector *connector)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> -	struct intel_hdmi *intel_hdmi = intel_attached_hdmi(connector);
> +	struct intel_hdmi *intel_hdmi =
> intel_attached_hdmi(to_intel_connector(connector));
>  
>  	return intel_gmbus_get_adapter(dev_priv, intel_hdmi->ddc_bus);
>  }
> @@ -2816,7 +2816,7 @@ intel_hdmi_connector_register(struct
> drm_connector *connector)
>  
>  static void intel_hdmi_destroy(struct drm_connector *connector)
>  {
> -	struct cec_notifier *n = intel_attached_hdmi(connector)-
> >cec_notifier;
> +	struct cec_notifier *n =
> intel_attached_hdmi(to_intel_connector(connector))->cec_notifier;
>  
>  	cec_notifier_conn_unregister(n);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c
> b/drivers/gpu/drm/i915/display/intel_sdvo.c
> index 8758ee2a4442..e8819fd21e03 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> @@ -180,7 +180,7 @@ static struct intel_sdvo *to_sdvo(struct
> intel_encoder *encoder)
>  	return container_of(encoder, struct intel_sdvo, base);
>  }
>  
> -static struct intel_sdvo *intel_attached_sdvo(struct drm_connector
> *connector)
> +static struct intel_sdvo *intel_attached_sdvo(struct intel_connector
> *connector)
>  {
>  	return to_sdvo(intel_attached_encoder(connector));
>  }
> @@ -1551,7 +1551,7 @@ static bool
> intel_sdvo_connector_get_hw_state(struct intel_connector *connector)
>  {
>  	struct intel_sdvo_connector *intel_sdvo_connector =
>  		to_intel_sdvo_connector(&connector->base);
> -	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(&connector-
> >base);
> +	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
>  	u16 active_outputs = 0;
>  
>  	intel_sdvo_get_active_outputs(intel_sdvo, &active_outputs);
> @@ -1823,7 +1823,7 @@ static enum drm_mode_status
>  intel_sdvo_mode_valid(struct drm_connector *connector,
>  		      struct drm_display_mode *mode)
>  {
> -	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
> +	struct intel_sdvo *intel_sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	struct intel_sdvo_connector *intel_sdvo_connector =
>  		to_intel_sdvo_connector(connector);
>  	int max_dotclk = to_i915(connector->dev)->max_dotclk_freq;
> @@ -1941,7 +1941,7 @@ intel_sdvo_multifunc_encoder(struct intel_sdvo
> *intel_sdvo)
>  static struct edid *
>  intel_sdvo_get_edid(struct drm_connector *connector)
>  {
> -	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
> +	struct intel_sdvo *sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	return drm_get_edid(connector, &sdvo->ddc);
>  }
>  
> @@ -1959,7 +1959,7 @@ intel_sdvo_get_analog_edid(struct drm_connector
> *connector)
>  static enum drm_connector_status
>  intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
>  {
> -	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
> +	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 status;
> @@ -2028,7 +2028,7 @@ static enum drm_connector_status
>  intel_sdvo_detect(struct drm_connector *connector, bool force)
>  {
>  	u16 response;
> -	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
> +	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;
>  
> @@ -2175,7 +2175,7 @@ static const struct drm_display_mode
> sdvo_tv_modes[] = {
>  
>  static void intel_sdvo_get_tv_modes(struct drm_connector *connector)
>  {
> -	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
> +	struct intel_sdvo *intel_sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	const struct drm_connector_state *conn_state = connector-
> >state;
>  	struct intel_sdvo_sdtv_resolution_request tv_res;
>  	u32 reply = 0, format_map = 0;
> @@ -2215,7 +2215,7 @@ static void intel_sdvo_get_tv_modes(struct
> drm_connector *connector)
>  
>  static void intel_sdvo_get_lvds_modes(struct drm_connector
> *connector)
>  {
> -	struct intel_sdvo *intel_sdvo = intel_attached_sdvo(connector);
> +	struct intel_sdvo *intel_sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
>  	struct drm_display_mode *newmode;
>  
> @@ -2379,7 +2379,7 @@ intel_sdvo_connector_atomic_set_property(struct
> drm_connector *connector,
>  static int
>  intel_sdvo_connector_register(struct drm_connector *connector)
>  {
> -	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
> +	struct intel_sdvo *sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  	int ret;
>  
>  	ret = intel_connector_register(connector);
> @@ -2394,7 +2394,7 @@ intel_sdvo_connector_register(struct
> drm_connector *connector)
>  static void
>  intel_sdvo_connector_unregister(struct drm_connector *connector)
>  {
> -	struct intel_sdvo *sdvo = intel_attached_sdvo(connector);
> +	struct intel_sdvo *sdvo =
> intel_attached_sdvo(to_intel_connector(connector));
>  
>  	sysfs_remove_link(&connector->kdev->kobj,
>  			  sdvo->ddc.dev.kobj.name);
> @@ -2932,7 +2932,7 @@ static void intel_sdvo_output_cleanup(struct
> intel_sdvo *intel_sdvo)
>  
>  	list_for_each_entry_safe(connector, tmp,
>  				 &dev->mode_config.connector_list,
> head) {
> -		if (intel_attached_encoder(connector) == &intel_sdvo-
> >base) {
> +		if
> (intel_attached_encoder(to_intel_connector(connector)) ==
> &intel_sdvo->base) {
>  			drm_connector_unregister(connector);
>  			intel_connector_destroy(connector);
>  		}
> diff --git a/drivers/gpu/drm/i915/display/intel_tv.c
> b/drivers/gpu/drm/i915/display/intel_tv.c
> index 50703536436c..5cd0719758d9 100644
> --- a/drivers/gpu/drm/i915/display/intel_tv.c
> +++ b/drivers/gpu/drm/i915/display/intel_tv.c
> @@ -898,7 +898,7 @@ static struct intel_tv *enc_to_tv(struct
> intel_encoder *encoder)
>  	return container_of(encoder, struct intel_tv, base);
>  }
>  
> -static struct intel_tv *intel_attached_tv(struct drm_connector
> *connector)
> +static struct intel_tv *intel_attached_tv(struct intel_connector
> *connector)
>  {
>  	return enc_to_tv(intel_attached_encoder(connector));
>  }
> @@ -1662,7 +1662,7 @@ intel_tv_detect_type(struct intel_tv *intel_tv,
>   */
>  static void intel_tv_find_better_format(struct drm_connector
> *connector)
>  {
> -	struct intel_tv *intel_tv = intel_attached_tv(connector);
> +	struct intel_tv *intel_tv =
> intel_attached_tv(to_intel_connector(connector));
>  	const struct tv_mode *tv_mode = intel_tv_mode_find(connector-
> >state);
>  	int i;
>  
> @@ -1689,7 +1689,7 @@ intel_tv_detect(struct drm_connector
> *connector,
>  		struct drm_modeset_acquire_ctx *ctx,
>  		bool force)
>  {
> -	struct intel_tv *intel_tv = intel_attached_tv(connector);
> +	struct intel_tv *intel_tv =
> intel_attached_tv(to_intel_connector(connector));
>  	enum drm_connector_status status;
>  	int type;
>  
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c
> b/drivers/gpu/drm/i915/i915_debugfs.c
> index eb80a2c4b55b..4f543ccec15d 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2020,7 +2020,7 @@ static int i915_psr_sink_status_show(struct
> seq_file *m, void *data)
>  	struct drm_connector *connector = m->private;
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
>  	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(&intel_attached_encoder(connector)-
> >base);
> +		enc_to_intel_dp(&intel_attached_encoder(to_intel_connec
> tor(connector))->base);
>  	int ret;
>  
>  	if (!CAN_PSR(dev_priv)) {
> @@ -3055,7 +3055,7 @@ static int i915_dp_mst_info(struct seq_file *m,
> void *unused)
>  		if (connector->connector_type !=
> DRM_MODE_CONNECTOR_DisplayPort)
>  			continue;
>  
> -		intel_encoder = intel_attached_encoder(connector);
> +		intel_encoder =
> intel_attached_encoder(to_intel_connector(connector));
>  		if (!intel_encoder || intel_encoder->type ==
> INTEL_OUTPUT_DP_MST)
>  			continue;
>  
> @@ -4185,7 +4185,7 @@ static int i915_drrs_ctl_set(void *data, u64
> val)
>  			      drm_connector_mask(connector)))
>  				continue;
>  
> -			encoder = intel_attached_encoder(connector);
> +			encoder =
> intel_attached_encoder(to_intel_connector(connector));
>  			if (encoder->type != INTEL_OUTPUT_EDP)
>  				continue;
>  
> @@ -4396,7 +4396,7 @@ static int i915_dpcd_show(struct seq_file *m,
> void *data)
>  {
>  	struct drm_connector *connector = m->private;
>  	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(&intel_attached_encoder(connector)-
> >base);
> +		enc_to_intel_dp(&intel_attached_encoder(to_intel_connec
> tor(connector))->base);
>  	u8 buf[16];
>  	ssize_t err;
>  	int i;
> @@ -4431,7 +4431,7 @@ static int i915_panel_show(struct seq_file *m,
> void *data)
>  {
>  	struct drm_connector *connector = m->private;
>  	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(&intel_attached_encoder(connector)-
> >base);
> +		enc_to_intel_dp(&intel_attached_encoder(to_intel_connec
> tor(connector))->base);
>  
>  	if (connector->status != connector_status_connected)
>  		return -ENODEV;
> @@ -4509,7 +4509,7 @@ static int i915_dsc_fec_support_show(struct
> seq_file *m, void *data)
>  		} else if (ret) {
>  			break;
>  		}
> -		intel_dp =
> enc_to_intel_dp(&intel_attached_encoder(connector)->base);
> +		intel_dp =
> enc_to_intel_dp(&intel_attached_encoder(to_intel_connector(connector)
> )->base);
>  		crtc_state = to_intel_crtc_state(crtc->state);
>  		seq_printf(m, "DSC_Enabled: %s\n",
>  			   yesno(crtc_state->dsc.compression_enable));
> @@ -4536,7 +4536,7 @@ static ssize_t
> i915_dsc_fec_support_write(struct file *file,
>  	int ret;
>  	struct drm_connector *connector =
>  		((struct seq_file *)file->private_data)->private;
> -	struct intel_encoder *encoder =
> intel_attached_encoder(connector);
> +	struct intel_encoder *encoder =
> intel_attached_encoder(to_intel_connector(connector));
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  
>  	if (len == 0)
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 6/9] drm/i915: Relocate intel_attached_dp()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 6/9] drm/i915: Relocate intel_attached_dp() Ville Syrjala
@ 2020-01-13 13:53   ` Kahola, Mika
  0 siblings, 0 replies; 27+ messages in thread
From: Kahola, Mika @ 2020-01-13 13:53 UTC (permalink / raw)
  To: ville.syrjala, intel-gfx

On Wed, 2019-12-04 at 20:05 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We have uses for intel_attached_dp() outside of intel_dp.c. Move
> it to a header.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_display_types.h | 5 +++++
>  drivers/gpu/drm/i915/display/intel_dp.c            | 5 -----
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 79c7454ff510..92bd3d04ad80 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1483,6 +1483,11 @@ static inline struct intel_dp
> *enc_to_intel_dp(struct intel_encoder *encoder)
>  	return &enc_to_dig_port(encoder)->dp;
>  }
>  
> +static inline struct intel_dp *intel_attached_dp(struct
> intel_connector *connector)
> +{
> +	return enc_to_intel_dp(intel_attached_encoder(connector));
> +}
> +
>  static inline bool intel_encoder_is_dp(struct intel_encoder
> *encoder)
>  {
>  	switch (encoder->type) {
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 93f3d232fcb5..50b9b81d37db 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -146,11 +146,6 @@ bool intel_dp_is_edp(struct intel_dp *intel_dp)
>  	return intel_dig_port->base.type == INTEL_OUTPUT_EDP;
>  }
>  
> -static struct intel_dp *intel_attached_dp(struct intel_connector
> *connector)
> -{
> -	return enc_to_intel_dp(intel_attached_encoder(connector));
> -}
> -
>  static void intel_dp_link_down(struct intel_encoder *encoder,
>  			       const struct intel_crtc_state
> *old_crtc_state);
>  static bool edp_panel_vdd_on(struct intel_dp *intel_dp);
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 7/9] drm/i915: Use intel_attached_dp() instead of hand rolling it
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 7/9] drm/i915: Use intel_attached_dp() instead of hand rolling it Ville Syrjala
@ 2020-01-21 14:46   ` Juha-Pekka Heikkila
  0 siblings, 0 replies; 27+ messages in thread
From: Juha-Pekka Heikkila @ 2020-01-21 14:46 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 4.12.2019 20.05, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Replace the hand rolled intel_attached_dp() with the real thing.
> 
> @@
> identifier F !~ "^intel_attached_dp$";
> expression C;
> @@
> F(...)
> {
> <...
> - enc_to_intel_dp(intel_attached_encoder(C))
> + intel_attached_dp(C)
> ...>
> }
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_display.c         |  2 +-
>   .../gpu/drm/i915/display/intel_dp_aux_backlight.c    | 12 ++++++------
>   drivers/gpu/drm/i915/i915_debugfs.c                  |  8 ++++----
>   3 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index df1b80387106..ec292ccb6eaf 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -14505,7 +14505,7 @@ static void intel_set_dp_tp_ctl_normal(struct intel_crtc *crtc,
>   		if (conn_state->crtc == &crtc->base)
>   			break;
>   	}
> -	intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(conn)));
> +	intel_dp = intel_attached_dp(to_intel_connector(conn));
>   	intel_dp_stop_link_train(intel_dp);
>   }
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 771e22a0b2a4..1e69c5bbe65b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
>    */
>   static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>   	u8 read_val[2] = { 0x0 };
>   	u16 level = 0;
>   
> @@ -82,7 +82,7 @@ static void
>   intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
>   {
>   	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>   	u8 vals[2] = { 0x0 };
>   
>   	vals[0] = level;
> @@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
>   static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>   	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
>   	u8 pn, pn_min, pn_max;
>   
> @@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>   					  const struct drm_connector_state *conn_state)
>   {
>   	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>   	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
>   
>   	if (drm_dp_dpcd_readb(&intel_dp->aux,
> @@ -229,7 +229,7 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old
>   static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>   					enum pipe pipe)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>   	struct intel_panel *panel = &connector->panel;
>   
>   	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
> @@ -248,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>   static bool
>   intel_dp_aux_display_control_capable(struct intel_connector *connector)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
> +	struct intel_dp *intel_dp = intel_attached_dp(connector);
>   
>   	/* Check the eDP Display control capabilities registers to determine if
>   	 * the panel can support backlight control over the aux channel
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index d8c2fa2672b5..5de5dacef394 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2020,7 +2020,7 @@ static int i915_psr_sink_status_show(struct seq_file *m, void *data)
>   	struct drm_connector *connector = m->private;
>   	struct drm_i915_private *dev_priv = to_i915(connector->dev);
>   	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
> +		intel_attached_dp(to_intel_connector(connector));
>   	int ret;
>   
>   	if (!CAN_PSR(dev_priv)) {
> @@ -4396,7 +4396,7 @@ static int i915_dpcd_show(struct seq_file *m, void *data)
>   {
>   	struct drm_connector *connector = m->private;
>   	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
> +		intel_attached_dp(to_intel_connector(connector));
>   	u8 buf[16];
>   	ssize_t err;
>   	int i;
> @@ -4431,7 +4431,7 @@ static int i915_panel_show(struct seq_file *m, void *data)
>   {
>   	struct drm_connector *connector = m->private;
>   	struct intel_dp *intel_dp =
> -		enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
> +		intel_attached_dp(to_intel_connector(connector));
>   
>   	if (connector->status != connector_status_connected)
>   		return -ENODEV;
> @@ -4509,7 +4509,7 @@ static int i915_dsc_fec_support_show(struct seq_file *m, void *data)
>   		} else if (ret) {
>   			break;
>   		}
> -		intel_dp = enc_to_intel_dp(intel_attached_encoder(to_intel_connector(connector)));
> +		intel_dp = intel_attached_dp(to_intel_connector(connector));
>   		crtc_state = to_intel_crtc_state(crtc->state);
>   		seq_printf(m, "DSC_Enabled: %s\n",
>   			   yesno(crtc_state->dsc.compression_enable));
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 8/9] drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 8/9] drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port() Ville Syrjala
@ 2020-01-21 14:46   ` Juha-Pekka Heikkila
  0 siblings, 0 replies; 27+ messages in thread
From: Juha-Pekka Heikkila @ 2020-01-21 14:46 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 4.12.2019 20.05, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use the standard naming convention and rename conn_to_dig_port()
> to intel_attached_dig_port().
> 
> @@
> @@
> - conn_to_dig_port
> + intel_attached_dig_port
> 	(...)
> {
> ...
> }
> 
> @@
> expression C;
> @@
> - conn_to_dig_port(C)
> + intel_attached_dig_port(C)
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   .../drm/i915/display/intel_display_types.h    |  2 +-
>   drivers/gpu/drm/i915/display/intel_hdcp.c     | 32 +++++++++----------
>   drivers/gpu/drm/i915/display/intel_hdmi.c     |  2 +-
>   3 files changed, 18 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 92bd3d04ad80..1f8f47c69502 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1466,7 +1466,7 @@ enc_to_dig_port(struct intel_encoder *encoder)
>   }
>   
>   static inline struct intel_digital_port *
> -conn_to_dig_port(struct intel_connector *connector)
> +intel_attached_dig_port(struct intel_connector *connector)
>   {
>   	return enc_to_dig_port(intel_attached_encoder(connector));
>   }
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 2859230671ae..4b73227644f0 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -64,7 +64,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
>   /* Is HDCP1.4 capable on Platform and Sink */
>   bool intel_hdcp_capable(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
>   	bool capable = false;
>   	u8 bksv[5];
> @@ -86,7 +86,7 @@ bool intel_hdcp_capable(struct intel_connector *connector)
>   bool intel_hdcp2_capable(struct intel_connector *connector)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	bool capable = false;
>   
> @@ -297,7 +297,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>   				const struct intel_hdcp_shim *shim,
>   				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct drm_i915_private *dev_priv;
>   	enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder;
>   	enum port port = intel_dig_port->base.port;
> @@ -513,7 +513,7 @@ int intel_hdcp_validate_v_prime(struct intel_connector *connector,
>   static
>   int intel_hdcp_auth_downstream(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	const struct intel_hdcp_shim *shim = connector->hdcp.shim;
>   	struct drm_device *dev = connector->base.dev;
>   	u8 bstatus[2], num_downstream, *ksv_fifo;
> @@ -592,7 +592,7 @@ int intel_hdcp_auth_downstream(struct intel_connector *connector)
>   /* Implements Part 1 of the HDCP authorization procedure */
>   static int intel_hdcp_auth(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	struct drm_device *dev = connector->base.dev;
>   	const struct intel_hdcp_shim *shim = hdcp->shim;
> @@ -757,7 +757,7 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
>   {
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	enum port port = intel_dig_port->base.port;
>   	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>   	int ret;
> @@ -838,7 +838,7 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
>   {
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	enum port port = intel_dig_port->base.port;
>   	enum transcoder cpu_transcoder;
>   	int ret = 0;
> @@ -1209,7 +1209,7 @@ static int hdcp2_deauthenticate_port(struct intel_connector *connector)
>   /* Authentication flow starts from here */
>   static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	struct drm_device *dev = connector->base.dev;
>   	union {
> @@ -1297,7 +1297,7 @@ static int hdcp2_authentication_key_exchange(struct intel_connector *connector)
>   
>   static int hdcp2_locality_check(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	union {
>   		struct hdcp2_lc_init lc_init;
> @@ -1333,7 +1333,7 @@ static int hdcp2_locality_check(struct intel_connector *connector)
>   
>   static int hdcp2_session_key_exchange(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	struct hdcp2_ske_send_eks send_eks;
>   	int ret;
> @@ -1353,7 +1353,7 @@ static int hdcp2_session_key_exchange(struct intel_connector *connector)
>   static
>   int hdcp2_propagate_stream_management_info(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	union {
>   		struct hdcp2_rep_stream_manage stream_manage;
> @@ -1404,7 +1404,7 @@ int hdcp2_propagate_stream_management_info(struct intel_connector *connector)
>   static
>   int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	struct drm_device *dev = connector->base.dev;
>   	union {
> @@ -1475,7 +1475,7 @@ static int hdcp2_authenticate_repeater(struct intel_connector *connector)
>   
>   static int hdcp2_authenticate_sink(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	const struct intel_hdcp_shim *shim = hdcp->shim;
>   	int ret;
> @@ -1524,7 +1524,7 @@ static int hdcp2_authenticate_sink(struct intel_connector *connector)
>   
>   static int hdcp2_enable_encryption(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	enum port port = intel_attached_encoder(connector)->port;
> @@ -1562,7 +1562,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
>   
>   static int hdcp2_disable_encryption(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	enum port port = intel_attached_encoder(connector)->port;
> @@ -1673,7 +1673,7 @@ static int _intel_hdcp2_disable(struct intel_connector *connector)
>   /* Implements the Link Integrity Check for HDCP2.2 */
>   static int intel_hdcp2_check_link(struct intel_connector *connector)
>   {
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
>   	enum port port = intel_attached_encoder(connector)->port;
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index e179ee046687..53a32165c5ff 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -1447,7 +1447,7 @@ int intel_hdmi_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
>   static int kbl_repositioning_enc_en_signal(struct intel_connector *connector)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	struct intel_digital_port *intel_dig_port = intel_attached_dig_port(connector);
>   	struct drm_crtc *crtc = connector->base.state->crtc;
>   	struct intel_crtc *intel_crtc = container_of(crtc,
>   						     struct intel_crtc, base);
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder()
  2019-12-04 18:05 ` [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder() Ville Syrjala
  2019-12-05 10:59   ` Ramalingam C
@ 2020-01-21 15:49   ` Juha-Pekka Heikkila
  1 sibling, 0 replies; 27+ messages in thread
From: Juha-Pekka Heikkila @ 2020-01-21 15:49 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 4.12.2019 20.05, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> It's easy to confuse the drm_connector->encoder (legacy state
> adjusted during modeset) and intel_connector->encoder (the statically
> (sans. MST) attached encoder of the connector). For the latter
> let's use intel_attached_encoder() consistently.
> 
> @@
> identifier F !~ "^intel_attached_encoder$";
> struct intel_connector *C;
> expression E;
> @@
> F(...)
> {
> <...
> (
>    C->encoder = E
> |
> - C->encoder
> + intel_attached_encoder(C)
> )
> ...>
> }
> 
> @@
> identifier F !~ "^intel_attached_encoder$";
> struct drm_connector *C;
> expression E;
> @@
> F(...)
> {
> <...
> (
>    to_intel_connector(C)->encoder = E
> |
> - to_intel_connector(C)->encoder
> + intel_attached_encoder(to_intel_connector(C))
> )
> ...>
> }
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_connector.c       |  2 +-
>   drivers/gpu/drm/i915/display/intel_ddi.c             |  2 +-
>   drivers/gpu/drm/i915/display/intel_display.c         |  4 ++--
>   .../gpu/drm/i915/display/intel_dp_aux_backlight.c    | 12 ++++++------
>   drivers/gpu/drm/i915/display/intel_dp_mst.c          |  4 ++--
>   .../gpu/drm/i915/display/intel_dsi_dcs_backlight.c   |  4 ++--
>   drivers/gpu/drm/i915/display/intel_hdcp.c            |  8 ++++----
>   drivers/gpu/drm/i915/display/intel_hotplug.c         | 10 +++++-----
>   drivers/gpu/drm/i915/display/vlv_dsi.c               |  2 +-
>   drivers/gpu/drm/i915/i915_debugfs.c                  |  6 +++---
>   10 files changed, 27 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_connector.c b/drivers/gpu/drm/i915/display/intel_connector.c
> index 1133c4e97bb4..54891a4ed2f3 100644
> --- a/drivers/gpu/drm/i915/display/intel_connector.c
> +++ b/drivers/gpu/drm/i915/display/intel_connector.c
> @@ -153,7 +153,7 @@ void intel_connector_attach_encoder(struct intel_connector *connector,
>   bool intel_connector_get_hw_state(struct intel_connector *connector)
>   {
>   	enum pipe pipe = 0;
> -	struct intel_encoder *encoder = connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(connector);
>   
>   	return encoder->get_hw_state(encoder, &pipe);
>   }
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 52d187db320f..3e46017150b4 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -2003,7 +2003,7 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
>   {
>   	struct drm_device *dev = intel_connector->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_encoder *encoder = intel_connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
>   	int type = intel_connector->base.connector_type;
>   	enum port port = encoder->port;
>   	enum transcoder cpu_transcoder;
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 45568a7c6579..df1b80387106 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -7279,7 +7279,7 @@ static void intel_connector_verify_state(struct intel_crtc_state *crtc_state,
>   		      connector->base.name);
>   
>   	if (connector->get_hw_state(connector)) {
> -		struct intel_encoder *encoder = connector->encoder;
> +		struct intel_encoder *encoder = intel_attached_encoder(connector);
>   
>   		I915_STATE_WARN(!crtc_state,
>   			 "connector enabled without attached crtc\n");
> @@ -17529,7 +17529,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
>   
>   			connector->base.dpms = DRM_MODE_DPMS_ON;
>   
> -			encoder = connector->encoder;
> +			encoder = intel_attached_encoder(connector);
>   			connector->base.encoder = &encoder->base;
>   
>   			crtc = to_intel_crtc(encoder->base.crtc);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> index 7c653f8c307f..771e22a0b2a4 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c
> @@ -57,7 +57,7 @@ static void set_aux_backlight_enable(struct intel_dp *intel_dp, bool enable)
>    */
>   static u32 intel_dp_aux_get_backlight(struct intel_connector *connector)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>   	u8 read_val[2] = { 0x0 };
>   	u16 level = 0;
>   
> @@ -82,7 +82,7 @@ static void
>   intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 level)
>   {
>   	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>   	u8 vals[2] = { 0x0 };
>   
>   	vals[0] = level;
> @@ -110,7 +110,7 @@ intel_dp_aux_set_backlight(const struct drm_connector_state *conn_state, u32 lev
>   static bool intel_dp_aux_set_pwm_freq(struct intel_connector *connector)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>   	int freq, fxp, fxp_min, fxp_max, fxp_actual, f = 1;
>   	u8 pn, pn_min, pn_max;
>   
> @@ -178,7 +178,7 @@ static void intel_dp_aux_enable_backlight(const struct intel_crtc_state *crtc_st
>   					  const struct drm_connector_state *conn_state)
>   {
>   	struct intel_connector *connector = to_intel_connector(conn_state->connector);
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>   	u8 dpcd_buf, new_dpcd_buf, edp_backlight_mode;
>   
>   	if (drm_dp_dpcd_readb(&intel_dp->aux,
> @@ -229,7 +229,7 @@ static void intel_dp_aux_disable_backlight(const struct drm_connector_state *old
>   static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>   					enum pipe pipe)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>   	struct intel_panel *panel = &connector->panel;
>   
>   	if (intel_dp->edp_dpcd[2] & DP_EDP_BACKLIGHT_BRIGHTNESS_BYTE_COUNT)
> @@ -248,7 +248,7 @@ static int intel_dp_aux_setup_backlight(struct intel_connector *connector,
>   static bool
>   intel_dp_aux_display_control_capable(struct intel_connector *connector)
>   {
> -	struct intel_dp *intel_dp = enc_to_intel_dp(connector->encoder);
> +	struct intel_dp *intel_dp = enc_to_intel_dp(intel_attached_encoder(connector));
>   
>   	/* Check the eDP Display control capabilities registers to determine if
>   	 * the panel can support backlight control over the aux channel
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index af7f6d670e07..1a7d69843c12 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -503,9 +503,9 @@ static const struct drm_encoder_funcs intel_dp_mst_enc_funcs = {
>   
>   static bool intel_dp_mst_get_hw_state(struct intel_connector *connector)
>   {
> -	if (connector->encoder && connector->base.state->crtc) {
> +	if (intel_attached_encoder(connector) && connector->base.state->crtc) {
>   		enum pipe pipe;
> -		if (!connector->encoder->get_hw_state(connector->encoder, &pipe))
> +		if (!intel_attached_encoder(connector)->get_hw_state(intel_attached_encoder(connector), &pipe))
>   			return false;
>   		return true;
>   	}
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> index c87838843d0b..ac3eff26df12 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.c
> @@ -45,7 +45,7 @@
>   
>   static u32 dcs_get_backlight(struct intel_connector *connector)
>   {
> -	struct intel_encoder *encoder = connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(connector);
>   	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>   	struct mipi_dsi_device *dsi_device;
>   	u8 data = 0;
> @@ -160,7 +160,7 @@ int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector)
>   {
>   	struct drm_device *dev = intel_connector->base.dev;
>   	struct drm_i915_private *dev_priv = to_i915(dev);
> -	struct intel_encoder *encoder = intel_connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(intel_connector);
>   	struct intel_panel *panel = &intel_connector->panel;
>   
>   	if (dev_priv->vbt.backlight.type != INTEL_BACKLIGHT_DSI_DCS)
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 0fdbd39f6641..2859230671ae 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -1527,7 +1527,7 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
>   	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = connector->encoder->port;
> +	enum port port = intel_attached_encoder(connector)->port;
>   	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>   	int ret;
>   
> @@ -1565,7 +1565,7 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
>   	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = connector->encoder->port;
> +	enum port port = intel_attached_encoder(connector)->port;
>   	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>   	int ret;
>   
> @@ -1676,7 +1676,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>   	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
>   	struct intel_hdcp *hdcp = &connector->hdcp;
> -	enum port port = connector->encoder->port;
> +	enum port port = intel_attached_encoder(connector)->port;
>   	enum transcoder cpu_transcoder;
>   	int ret = 0;
>   
> @@ -1830,7 +1830,7 @@ static inline int initialize_hdcp_port_data(struct intel_connector *connector,
>   
>   	if (INTEL_GEN(dev_priv) < 12)
>   		data->fw_ddi =
> -			intel_get_mei_fw_ddi_index(connector->encoder->port);
> +			intel_get_mei_fw_ddi_index(intel_attached_encoder(connector)->port);
>   	else
>   		/*
>   		 * As per ME FW API expectation, for GEN 12+, fw_ddi is filled
> diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
> index 99d3a3c7989e..c3a48af35997 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> @@ -200,7 +200,7 @@ intel_hpd_irq_storm_switch_to_polling(struct drm_i915_private *dev_priv)
>   			continue;
>   
>   		intel_connector = to_intel_connector(connector);
> -		intel_encoder = intel_connector->encoder;
> +		intel_encoder = intel_attached_encoder(intel_connector);
>   		if (!intel_encoder)
>   			continue;
>   
> @@ -255,7 +255,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
>   
>   			/* Don't check MST ports, they don't have pins */
>   			if (!intel_connector->mst_port &&
> -			    intel_connector->encoder->hpd_pin == pin) {
> +			    intel_attached_encoder(intel_connector)->hpd_pin == pin) {
>   				if (connector->polled != intel_connector->polled)
>   					DRM_DEBUG_DRIVER("Reenabling HPD on connector %s\n",
>   							 connector->name);
> @@ -389,9 +389,9 @@ static void i915_hotplug_work_func(struct work_struct *work)
>   		u32 hpd_bit;
>   
>   		intel_connector = to_intel_connector(connector);
> -		if (!intel_connector->encoder)
> +		if (!intel_attached_encoder(intel_connector))
>   			continue;
> -		intel_encoder = intel_connector->encoder;
> +		intel_encoder = intel_attached_encoder(intel_connector);
>   		hpd_bit = BIT(intel_encoder->hpd_pin);
>   		if ((hpd_event_bits | hpd_retry_bits) & hpd_bit) {
>   			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> @@ -621,7 +621,7 @@ static void i915_hpd_poll_init_work(struct work_struct *work)
>   			continue;
>   
>   		if (!connector->polled && I915_HAS_HOTPLUG(dev_priv) &&
> -		    intel_connector->encoder->hpd_pin > HPD_NONE) {
> +		    intel_attached_encoder(intel_connector)->hpd_pin > HPD_NONE) {
>   			connector->polled = enabled ?
>   				DRM_CONNECTOR_POLL_CONNECT |
>   				DRM_CONNECTOR_POLL_DISCONNECT :
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 0c19064e42e0..535b332b067d 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -1567,7 +1567,7 @@ static enum drm_panel_orientation
>   vlv_dsi_get_hw_panel_orientation(struct intel_connector *connector)
>   {
>   	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> -	struct intel_encoder *encoder = connector->encoder;
> +	struct intel_encoder *encoder = intel_attached_encoder(connector);
>   	enum intel_display_power_domain power_domain;
>   	enum drm_panel_orientation orientation;
>   	struct intel_plane *plane;
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3bc8d5c0e88a..d8c2fa2672b5 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -2431,7 +2431,7 @@ static void intel_hdcp_info(struct seq_file *m,
>   static void intel_dp_info(struct seq_file *m,
>   			  struct intel_connector *intel_connector)
>   {
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
>   	struct intel_dp *intel_dp = enc_to_intel_dp(intel_encoder);
>   
>   	seq_printf(m, "\tDPCD rev: %x\n", intel_dp->dpcd[DP_DPCD_REV]);
> @@ -2450,7 +2450,7 @@ static void intel_dp_info(struct seq_file *m,
>   static void intel_dp_mst_info(struct seq_file *m,
>   			  struct intel_connector *intel_connector)
>   {
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
>   	struct intel_dp_mst_encoder *intel_mst =
>   		enc_to_mst(intel_encoder);
>   	struct intel_digital_port *intel_dig_port = intel_mst->primary;
> @@ -2464,7 +2464,7 @@ static void intel_dp_mst_info(struct seq_file *m,
>   static void intel_hdmi_info(struct seq_file *m,
>   			    struct intel_connector *intel_connector)
>   {
> -	struct intel_encoder *intel_encoder = intel_connector->encoder;
> +	struct intel_encoder *intel_encoder = intel_attached_encoder(intel_connector);
>   	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(intel_encoder);
>   
>   	seq_printf(m, "\taudio support: %s\n", yesno(intel_hdmi->has_audio));
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2020-01-21 15:49 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-04 18:05 [Intel-gfx] [PATCH 0/9] drm/i915: Cleanups around intel_attached_encoder() & co Ville Syrjala
2019-12-04 18:05 ` [Intel-gfx] [PATCH 1/9] drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() Ville Syrjala
2019-12-05  9:33   ` Ramalingam C
2019-12-04 18:05 ` [Intel-gfx] [PATCH 2/9] drm/i915: Pass intel_connector to intel_attached_*() Ville Syrjala
2020-01-09  7:28   ` Kahola, Mika
2019-12-04 18:05 ` [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*() Ville Syrjala
2019-12-18 20:41   ` Juha-Pekka Heikkila
2019-12-04 18:05 ` [Intel-gfx] [PATCH 4/9] drm/i915: Use the passed in encoder Ville Syrjala
2019-12-05 10:24   ` Ramalingam C
2019-12-04 18:05 ` [Intel-gfx] [PATCH 5/9] drm/i915: Use intel_attached_encoder() Ville Syrjala
2019-12-05 10:59   ` Ramalingam C
2019-12-05 11:04     ` Ramalingam C
2019-12-09 15:52     ` Ville Syrjälä
2020-01-21 15:49   ` Juha-Pekka Heikkila
2019-12-04 18:05 ` [Intel-gfx] [PATCH 6/9] drm/i915: Relocate intel_attached_dp() Ville Syrjala
2020-01-13 13:53   ` Kahola, Mika
2019-12-04 18:05 ` [Intel-gfx] [PATCH 7/9] drm/i915: Use intel_attached_dp() instead of hand rolling it Ville Syrjala
2020-01-21 14:46   ` Juha-Pekka Heikkila
2019-12-04 18:05 ` [Intel-gfx] [PATCH 8/9] drm/i915: Rename conn_to_dig_port() to intel_attached_dig_port() Ville Syrjala
2020-01-21 14:46   ` Juha-Pekka Heikkila
2019-12-04 18:05 ` [Intel-gfx] [PATCH 9/9] drm/i915/hdcp: Clean up local variables Ville Syrjala
2019-12-05 10:22   ` Ramalingam C
2019-12-04 23:48 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co Patchwork
2019-12-05  0:15 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2019-12-05 11:58 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Cleanups around intel_attached_encoder() & co. (rev2) Patchwork
2019-12-05 12:19 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2019-12-05 15:06 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.