All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "Pandiyan, Dhinakaran" <dhinakaran.pandiyan@intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 08/10] drm/i915: Nuke intel_digital_port->port
Date: Thu, 9 Nov 2017 15:50:15 +0200	[thread overview]
Message-ID: <20171109135015.GO10981@intel.com> (raw)
In-Reply-To: <1510192696.8287.24.camel@dk-H97M-D3H>

On Thu, Nov 09, 2017 at 01:37:48AM +0000, Pandiyan, Dhinakaran wrote:
> 
> On Tue, 2017-10-31 at 22:51 +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Remove intel_digital_port->port and replace its users with
> > intel_encoder->port. intel_encoder->port is a superset of
> > intel_digital_port->port, and it works correctly even for
> > MST encoders.
> > 
> > Performed with cocci:
> > @@
> > @@
> > struct intel_digital_port {
> >        ...
> > -       enum port port;
> >        ...
> > }
> > 
> > @@
> > struct intel_digital_port *D;
> > expression E;
> > @@
> > - D->port = E;
> > 
> > @@
> > struct intel_digital_port *D;
> > @@
> > - D->port
> > + D->base.port
> > 
> > @@
> > expression E;
> > @@
> > (
> > - dp_to_dig_port(E)->port
> > + dp_to_dig_port(E)->base.port
> > |
> > - enc_to_dig_port(E)->port
> > + to_intel_encoder(E)->port
> > )
> > 
> > @@
> > expression E;
> > @@
> > - to_intel_encoder(&E->base)
> > + E
> > 
> > @@
> > struct intel_digital_port *D;
> > identifier I, M;
> > @@
> >   I = &D->base
> > <...
> > (
> > - D->base.M
> > + I->M
> > |
> > - &D->base
> > + I
> > )
> > ...>
> > 
> > @@
> > identifier D;
> > expression E;
> > identifier M;
> > @@
> >  D = enc_to_dig_port(&E->base)
> > <...
> > (
> > - D->base.M
> > + E->M
> > |
> > - &D->base
> > + E
> > )
> > ...>
> > 
> > @@
> > expression E;
> > identifier M;
> > @@
> > (
> > - enc_to_dig_port(&E->base)->base.M
> > + E->M
> > |
> > - enc_to_dig_port(&E->base)->base
> > + E
> > |
> > - enc_to_mst(&E->base)->primary->base.port
> > + E->port
> > )
> > 
> > @@
> > expression E;
> > identifier D;
> > @@
> > - struct intel_digital_port *D = E;
> > ... when != D
> > 
> 
> 
> The script has ended up creating intel_dig_port->base.port dereferences
> in some places where encoder->port was possible, but has worked pretty
> well otherwise.

I guess I missed some pattern in the cleanup. Hmm. I wonder if that
entire thing could be simplified a bit. I'll give it another try.

> 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_debugfs.c   |   2 +-
> >  drivers/gpu/drm/i915/intel_ddi.c      |  13 ++---
> >  drivers/gpu/drm/i915/intel_display.c  |  13 +++--
> >  drivers/gpu/drm/i915/intel_dp.c       | 103 +++++++++++++++++-----------------
> >  drivers/gpu/drm/i915/intel_dp_mst.c   |   6 +-
> >  drivers/gpu/drm/i915/intel_dpio_phy.c |  12 ++--
> >  drivers/gpu/drm/i915/intel_drv.h      |   5 +-
> >  drivers/gpu/drm/i915/intel_hdmi.c     |  17 +++---
> >  drivers/gpu/drm/i915/intel_pipe_crc.c |   4 +-
> >  drivers/gpu/drm/i915/intel_psr.c      |   4 +-
> >  10 files changed, 87 insertions(+), 92 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 39883cd915db..d89321f0468c 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -3603,7 +3603,7 @@ static int i915_dp_mst_info(struct seq_file *m, void *unused)
> >  			continue;
> >  
> >  		seq_printf(m, "MST Source Port %c\n",
> > -			   port_name(intel_dig_port->port));
> > +			   port_name(intel_dig_port->base.port));
> >  		drm_dp_mst_dump_topology(m, &intel_dig_port->dp.mst_mgr);
> >  	}
> >  	drm_connector_list_iter_end(&conn_iter);
> > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> > index ace674cd79b9..65ab55496ab7 100644
> > --- a/drivers/gpu/drm/i915/intel_ddi.c
> > +++ b/drivers/gpu/drm/i915/intel_ddi.c
> > @@ -1801,8 +1801,8 @@ 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 drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
> > -	enum port port = intel_dig_port->port;
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +	enum port port = encoder->port;
> >  	uint8_t iboost;
> >  
> >  	if (type == INTEL_OUTPUT_HDMI)
> > @@ -2470,7 +2470,7 @@ void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp)
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> >  	struct drm_i915_private *dev_priv =
> >  		to_i915(intel_dig_port->base.base.dev);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  	uint32_t val;
> >  	bool wait = false;
> >  
> > @@ -2698,7 +2698,7 @@ static struct intel_connector *
> >  intel_ddi_init_dp_connector(struct intel_digital_port *intel_dig_port)
> >  {
> >  	struct intel_connector *connector;
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  
> >  	connector = intel_connector_alloc();
> >  	if (!connector)
> > @@ -2717,7 +2717,7 @@ static struct intel_connector *
> >  intel_ddi_init_hdmi_connector(struct intel_digital_port *intel_dig_port)
> >  {
> >  	struct intel_connector *connector;
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  
> >  	connector = intel_connector_alloc();
> >  	if (!connector)
> > @@ -2733,7 +2733,7 @@ static bool intel_ddi_a_force_4_lanes(struct intel_digital_port *dport)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev);
> >  
> > -	if (dport->port != PORT_A)
> > +	if (dport->base.port != PORT_A)
> >  		return false;
> >  
> >  	if (dport->saved_port_bits & DDI_A_4_LANES)
> > @@ -2836,7 +2836,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
> >  	intel_encoder->suspend = intel_dp_encoder_suspend;
> >  	intel_encoder->get_power_domains = intel_ddi_get_power_domains;
> >  
> > -	intel_dig_port->port = port;
> >  	intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
> >  					  (DDI_BUF_PORT_REVERSAL |
> >  					   DDI_A_4_LANES);
> > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > index 737de251d0f8..c75bcf989454 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -1703,7 +1703,7 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
> >  	u32 port_mask;
> >  	i915_reg_t dpll_reg;
> >  
> > -	switch (dport->port) {
> > +	switch (dport->base.port) {
> >  	case PORT_B:
> >  		port_mask = DPLL_PORTB_READY_MASK;
> >  		dpll_reg = DPLL(0);
> > @@ -1725,7 +1725,8 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
> >  				    dpll_reg, port_mask, expected_mask,
> >  				    1000))
> >  		WARN(1, "timed out waiting for port %c ready: got 0x%x, expected 0x%x\n",
> > -		     port_name(dport->port), I915_READ(dpll_reg) & port_mask, expected_mask);
> > +		     port_name(dport->base.port),
> > +		     I915_READ(dpll_reg) & port_mask, expected_mask);
> >  }
> >  
> >  static void ironlake_enable_pch_transcoder(struct drm_i915_private *dev_priv,
> > @@ -4482,7 +4483,7 @@ intel_trans_dp_port_sel(struct intel_crtc *crtc)
> >  	for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
> >  		if (encoder->type == INTEL_OUTPUT_DP ||
> >  		    encoder->type == INTEL_OUTPUT_EDP)
> > -			return enc_to_dig_port(&encoder->base)->port;
> > +			return encoder->port;
> >  	}
> >  
> >  	return -1;
> > @@ -7633,7 +7634,7 @@ static void ironlake_init_pch_refclk(struct drm_i915_private *dev_priv)
> >  			break;
> >  		case INTEL_OUTPUT_EDP:
> >  			has_panel = true;
> > -			if (enc_to_dig_port(&encoder->base)->port == PORT_A)
> > +			if (encoder->port == PORT_A)
> >  				has_cpu_edp = true;
> >  			break;
> >  		default:
> > @@ -10756,7 +10757,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
> >  		case INTEL_OUTPUT_DP:
> >  		case INTEL_OUTPUT_HDMI:
> >  		case INTEL_OUTPUT_EDP:
> > -			port_mask = 1 << enc_to_dig_port(&encoder->base)->port;
> > +			port_mask = 1 << encoder->port;
> >  
> >  			/* the same port mustn't appear more than once */
> >  			if (used_ports & port_mask)
> > @@ -10766,7 +10767,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
> >  			break;
> >  		case INTEL_OUTPUT_DP_MST:
> >  			used_mst_ports |=
> > -				1 << enc_to_mst(&encoder->base)->primary->port;
> > +				1 << encoder->port;
> >  			break;
> >  		default:
> >  			break;
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> > index 0151c8d18b79..b81535fdef1d 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -223,7 +223,7 @@ intel_dp_set_source_rates(struct intel_dp *intel_dp)
> >  {
> >  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
> >  	struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
> > -	enum port port = dig_port->port;
> > +	enum port port = dig_port->base.port;
> >  	const int *source_rates;
> >  	int size;
> >  	u32 voltage;
> > @@ -479,11 +479,11 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
> >  
> >  	if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN,
> >  		 "skipping pipe %c power seqeuncer kick due to port %c being active\n",
> > -		 pipe_name(pipe), port_name(intel_dig_port->port)))
> > +		 pipe_name(pipe), port_name(intel_dig_port->base.port)))
> >  		return;
> >  
> >  	DRM_DEBUG_KMS("kicking pipe %c power sequencer for port %c\n",
> > -		      pipe_name(pipe), port_name(intel_dig_port->port));
> > +		      pipe_name(pipe), port_name(intel_dig_port->base.port));
> >  
> >  	/* Preserve the BIOS-computed detected bit. This is
> >  	 * supposed to be read-only.
> > @@ -610,7 +610,7 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
> >  
> >  	DRM_DEBUG_KMS("picked pipe %c power sequencer for port %c\n",
> >  		      pipe_name(intel_dp->pps_pipe),
> > -		      port_name(intel_dig_port->port));
> > +		      port_name(intel_dig_port->base.port));
> >  
> >  	/* init power sequencer on this pipe and port */
> >  	intel_dp_init_panel_power_sequencer(dev, intel_dp);
> > @@ -706,7 +706,7 @@ vlv_initial_power_sequencer_setup(struct intel_dp *intel_dp)
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> >  	struct drm_device *dev = intel_dig_port->base.base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  
> >  	lockdep_assert_held(&dev_priv->pps_mutex);
> >  
> > @@ -966,7 +966,7 @@ static uint32_t ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
> >  	 * like to run at 2MHz.  So, take the cdclk or PCH rawclk value and
> >  	 * divide by 2000 and use that
> >  	 */
> > -	if (intel_dig_port->port == PORT_A)
> > +	if (intel_dig_port->base.port == PORT_A)
> >  		return DIV_ROUND_CLOSEST(dev_priv->cdclk.hw.cdclk, 2000);
> >  	else
> >  		return DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 2000);
> > @@ -977,7 +977,7 @@ static uint32_t hsw_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> >  	struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
> >  
> > -	if (intel_dig_port->port != PORT_A && HAS_PCH_LPT_H(dev_priv)) {
> > +	if (intel_dig_port->base.port != PORT_A && HAS_PCH_LPT_H(dev_priv)) {
> >  		/* Workaround for non-ULT HSW */
> >  		switch (index) {
> >  		case 0: return 63;
> > @@ -1447,7 +1447,7 @@ static void intel_aux_reg_init(struct intel_dp *intel_dp)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
> >  	enum port port = intel_aux_port(dev_priv,
> > -					dp_to_dig_port(intel_dp)->port);
> > +					dp_to_dig_port(intel_dp)->base.port);
> >  	int i;
> >  
> >  	intel_dp->aux_ch_ctl_reg = intel_aux_ctl_reg(dev_priv, port);
> > @@ -1465,7 +1465,7 @@ static void
> >  intel_dp_aux_init(struct intel_dp *intel_dp)
> >  {
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  
> >  	intel_aux_reg_init(intel_dp);
> >  	drm_dp_aux_init(&intel_dp->aux);
> > @@ -1635,7 +1635,7 @@ 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->base.adjusted_mode;
> >  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> 
> encoder->port 
> 
> >  	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
> >  	struct intel_connector *intel_connector = intel_dp->attached_connector;
> >  	struct intel_digital_connector_state *intel_conn_state =
> > @@ -1859,7 +1859,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
> >  	struct drm_device *dev = encoder->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> 
> Same here.
> >  	struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
> >  	const struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
> >  
> > @@ -2074,7 +2074,7 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
> >  	intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
> >  
> >  	DRM_DEBUG_KMS("Turning eDP port %c VDD on\n",
> > -		      port_name(intel_dig_port->port));
> > +		      port_name(intel_dig_port->base.port));
> >  
> >  	if (!edp_have_panel_power(intel_dp))
> >  		wait_panel_power_cycle(intel_dp);
> > @@ -2094,7 +2094,7 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
> >  	 */
> >  	if (!edp_have_panel_power(intel_dp)) {
> >  		DRM_DEBUG_KMS("eDP port %c panel power wasn't enabled\n",
> > -			      port_name(intel_dig_port->port));
> > +			      port_name(intel_dig_port->base.port));
> >  		msleep(intel_dp->panel_power_up_delay);
> >  	}
> >  
> > @@ -2120,7 +2120,7 @@ void intel_edp_panel_vdd_on(struct intel_dp *intel_dp)
> >  	pps_unlock(intel_dp);
> >  
> >  	I915_STATE_WARN(!vdd, "eDP port %c VDD already requested on\n",
> > -	     port_name(dp_to_dig_port(intel_dp)->port));
> > +	     port_name(dp_to_dig_port(intel_dp)->base.port));
> >  }
> >  
> >  static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
> > @@ -2140,7 +2140,7 @@ static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
> >  		return;
> >  
> >  	DRM_DEBUG_KMS("Turning eDP port %c VDD off\n",
> > -		      port_name(intel_dig_port->port));
> > +		      port_name(intel_dig_port->base.port));
> >  
> >  	pp = ironlake_get_pp_control(intel_dp);
> >  	pp &= ~EDP_FORCE_VDD;
> > @@ -2200,7 +2200,7 @@ static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync)
> >  		return;
> >  
> >  	I915_STATE_WARN(!intel_dp->want_panel_vdd, "eDP port %c VDD not forced on",
> > -	     port_name(dp_to_dig_port(intel_dp)->port));
> > +	     port_name(dp_to_dig_port(intel_dp)->base.port));
> >  
> >  	intel_dp->want_panel_vdd = false;
> >  
> > @@ -2223,11 +2223,11 @@ static void edp_panel_on(struct intel_dp *intel_dp)
> >  		return;
> >  
> >  	DRM_DEBUG_KMS("Turn eDP port %c panel power on\n",
> > -		      port_name(dp_to_dig_port(intel_dp)->port));
> > +		      port_name(dp_to_dig_port(intel_dp)->base.port));
> >  
> >  	if (WARN(edp_have_panel_power(intel_dp),
> >  		 "eDP port %c panel power already on\n",
> > -		 port_name(dp_to_dig_port(intel_dp)->port)))
> > +		 port_name(dp_to_dig_port(intel_dp)->base.port)))
> >  		return;
> >  
> >  	wait_panel_power_cycle(intel_dp);
> > @@ -2282,10 +2282,10 @@ static void edp_panel_off(struct intel_dp *intel_dp)
> >  		return;
> >  
> >  	DRM_DEBUG_KMS("Turn eDP port %c panel power off\n",
> > -		      port_name(dp_to_dig_port(intel_dp)->port));
> > +		      port_name(dp_to_dig_port(intel_dp)->base.port));
> >  
> >  	WARN(!intel_dp->want_panel_vdd, "Need eDP port %c VDD to turn off panel\n",
> > -	     port_name(dp_to_dig_port(intel_dp)->port));
> > +	     port_name(dp_to_dig_port(intel_dp)->base.port));
> >  
> >  	pp = ironlake_get_pp_control(intel_dp);
> >  	/* We need to switch off panel power _and_ force vdd, for otherwise some
> > @@ -2437,7 +2437,7 @@ static void assert_dp_port(struct intel_dp *intel_dp, bool state)
> >  
> >  	I915_STATE_WARN(cur_state != state,
> >  			"DP port %c state assertion failure (expected %s, current %s)\n",
> > -			port_name(dig_port->port),
> > +			port_name(dig_port->base.port),
> >  			onoff(state), onoff(cur_state));
> >  }
> >  #define assert_dp_port_disabled(d) assert_dp_port((d), false)
> > @@ -2570,7 +2570,7 @@ static bool intel_dp_get_hw_state(struct intel_encoder *encoder,
> >  				  enum pipe *pipe)
> >  {
> >  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> >  	struct drm_device *dev = encoder->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	u32 tmp;
> > @@ -2625,7 +2625,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
> >  	u32 tmp, flags = 0;
> >  	struct drm_device *dev = encoder->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> >  	struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
> >  
> >  	if (encoder->type == INTEL_OUTPUT_EDP)
> > @@ -2794,7 +2794,7 @@ _intel_dp_set_link_train(struct intel_dp *intel_dp,
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> >  	struct drm_device *dev = intel_dig_port->base.base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  
> >  	if (dp_train_pat & DP_TRAINING_PATTERN_MASK)
> >  		DRM_DEBUG_KMS("Using DP training pattern TPS%d\n",
> > @@ -2969,7 +2969,7 @@ static void g4x_pre_enable_dp(struct intel_encoder *encoder,
> >  			      const struct drm_connector_state *conn_state)
> >  {
> >  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> >  
> >  	intel_dp_prepare(encoder, pipe_config);
> >  
> > @@ -3002,7 +3002,7 @@ static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
> >  	 * from a port.
> >  	 */
> >  	DRM_DEBUG_KMS("detaching pipe %c power sequencer from port %c\n",
> > -		      pipe_name(pipe), port_name(intel_dig_port->port));
> > +		      pipe_name(pipe), port_name(intel_dig_port->base.port));
> >  	I915_WRITE(pp_on_reg, 0);
> >  	POSTING_READ(pp_on_reg);
> >  
> > @@ -3026,7 +3026,7 @@ static void vlv_steal_power_sequencer(struct drm_device *dev,
> >  			continue;
> >  
> >  		intel_dp = enc_to_intel_dp(&encoder->base);
> > -		port = dp_to_dig_port(intel_dp)->port;
> > +		port = dp_to_dig_port(intel_dp)->base.port;
> >  
> >  		WARN(intel_dp->active_pipe == pipe,
> >  		     "stealing pipe %c power sequencer from active (e)DP port %c\n",
> > @@ -3178,7 +3178,7 @@ uint8_t
> >  intel_dp_voltage_max(struct intel_dp *intel_dp)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> >  
> >  	if (INTEL_GEN(dev_priv) >= 9) {
> >  		struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
> > @@ -3197,7 +3197,7 @@ uint8_t
> >  intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing)
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> >  
> >  	if (INTEL_GEN(dev_priv) >= 9) {
> >  		switch (voltage_swing & DP_TRAIN_VOLTAGE_SWING_MASK) {
> > @@ -3531,7 +3531,7 @@ void
> >  intel_dp_set_signal_levels(struct intel_dp *intel_dp)
> >  {
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  	struct drm_device *dev = intel_dig_port->base.base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> >  	uint32_t signal_levels, mask = 0;
> > @@ -3591,7 +3591,7 @@ void intel_dp_set_idle_link_train(struct intel_dp *intel_dp)
> >  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
> >  	struct drm_device *dev = intel_dig_port->base.base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  	uint32_t val;
> >  
> >  	if (!HAS_DDI(dev_priv))
> > @@ -4490,7 +4490,7 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
> >  {
> >  	u32 bit;
> >  
> > -	switch (port->port) {
> > +	switch (port->base.port) {
> >  	case PORT_B:
> >  		bit = SDE_PORTB_HOTPLUG;
> >  		break;
> > @@ -4501,7 +4501,7 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
> >  		bit = SDE_PORTD_HOTPLUG;
> >  		break;
> >  	default:
> > -		MISSING_CASE(port->port);
> > +		MISSING_CASE(port->base.port);
> >  		return false;
> >  	}
> >  
> > @@ -4513,7 +4513,7 @@ static bool cpt_digital_port_connected(struct drm_i915_private *dev_priv,
> >  {
> >  	u32 bit;
> >  
> > -	switch (port->port) {
> > +	switch (port->base.port) {
> >  	case PORT_B:
> >  		bit = SDE_PORTB_HOTPLUG_CPT;
> >  		break;
> > @@ -4524,7 +4524,7 @@ static bool cpt_digital_port_connected(struct drm_i915_private *dev_priv,
> >  		bit = SDE_PORTD_HOTPLUG_CPT;
> >  		break;
> >  	default:
> > -		MISSING_CASE(port->port);
> > +		MISSING_CASE(port->base.port);
> >  		return false;
> >  	}
> >  
> > @@ -4536,7 +4536,7 @@ static bool spt_digital_port_connected(struct drm_i915_private *dev_priv,
> >  {
> >  	u32 bit;
> >  
> > -	switch (port->port) {
> > +	switch (port->base.port) {
> >  	case PORT_A:
> >  		bit = SDE_PORTA_HOTPLUG_SPT;
> >  		break;
> > @@ -4555,7 +4555,7 @@ static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
> >  {
> >  	u32 bit;
> >  
> > -	switch (port->port) {
> > +	switch (port->base.port) {
> >  	case PORT_B:
> >  		bit = PORTB_HOTPLUG_LIVE_STATUS_G4X;
> >  		break;
> > @@ -4566,7 +4566,7 @@ static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
> >  		bit = PORTD_HOTPLUG_LIVE_STATUS_G4X;
> >  		break;
> >  	default:
> > -		MISSING_CASE(port->port);
> > +		MISSING_CASE(port->base.port);
> >  		return false;
> >  	}
> >  
> > @@ -4578,7 +4578,7 @@ static bool gm45_digital_port_connected(struct drm_i915_private *dev_priv,
> >  {
> >  	u32 bit;
> >  
> > -	switch (port->port) {
> > +	switch (port->base.port) {
> >  	case PORT_B:
> >  		bit = PORTB_HOTPLUG_LIVE_STATUS_GM45;
> >  		break;
> > @@ -4589,7 +4589,7 @@ static bool gm45_digital_port_connected(struct drm_i915_private *dev_priv,
> >  		bit = PORTD_HOTPLUG_LIVE_STATUS_GM45;
> >  		break;
> >  	default:
> > -		MISSING_CASE(port->port);
> > +		MISSING_CASE(port->base.port);
> >  		return false;
> >  	}
> >  
> > @@ -4599,7 +4599,7 @@ static bool gm45_digital_port_connected(struct drm_i915_private *dev_priv,
> >  static bool ilk_digital_port_connected(struct drm_i915_private *dev_priv,
> >  				       struct intel_digital_port *port)
> >  {
> > -	if (port->port == PORT_A)
> > +	if (port->base.port == PORT_A)
> >  		return I915_READ(DEISR) & DE_DP_A_HOTPLUG;
> >  	else
> >  		return ibx_digital_port_connected(dev_priv, port);
> > @@ -4608,7 +4608,7 @@ static bool ilk_digital_port_connected(struct drm_i915_private *dev_priv,
> >  static bool snb_digital_port_connected(struct drm_i915_private *dev_priv,
> >  				       struct intel_digital_port *port)
> >  {
> > -	if (port->port == PORT_A)
> > +	if (port->base.port == PORT_A)
> >  		return I915_READ(DEISR) & DE_DP_A_HOTPLUG;
> >  	else
> >  		return cpt_digital_port_connected(dev_priv, port);
> > @@ -4617,7 +4617,7 @@ static bool snb_digital_port_connected(struct drm_i915_private *dev_priv,
> >  static bool ivb_digital_port_connected(struct drm_i915_private *dev_priv,
> >  				       struct intel_digital_port *port)
> >  {
> > -	if (port->port == PORT_A)
> > +	if (port->base.port == PORT_A)
> >  		return I915_READ(DEISR) & DE_DP_A_HOTPLUG_IVB;
> >  	else
> >  		return cpt_digital_port_connected(dev_priv, port);
> > @@ -4626,7 +4626,7 @@ static bool ivb_digital_port_connected(struct drm_i915_private *dev_priv,
> >  static bool bdw_digital_port_connected(struct drm_i915_private *dev_priv,
> >  				       struct intel_digital_port *port)
> >  {
> > -	if (port->port == PORT_A)
> > +	if (port->base.port == PORT_A)
> >  		return I915_READ(GEN8_DE_PORT_ISR) & GEN8_PORT_DP_A_HOTPLUG;
> >  	else
> >  		return cpt_digital_port_connected(dev_priv, port);
> > @@ -5109,12 +5109,12 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
> >  		 * "vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..."
> >  		 */
> >  		DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n",
> > -			      port_name(intel_dig_port->port));
> > +			      port_name(intel_dig_port->base.port));
> >  		return IRQ_HANDLED;
> >  	}
> >  
> >  	DRM_DEBUG_KMS("got hpd irq on port %c - %s\n",
> > -		      port_name(intel_dig_port->port),
> > +		      port_name(intel_dig_port->base.port),
> >  		      long_hpd ? "long" : "short");
> >  
> >  	if (long_hpd) {
> > @@ -5364,7 +5364,7 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev,
> >  	u32 pp_on, pp_off, pp_div, port_sel = 0;
> >  	int div = dev_priv->rawclk_freq / 1000;
> >  	struct pps_registers regs;
> > -	enum port port = dp_to_dig_port(intel_dp)->port;
> > +	enum port port = dp_to_dig_port(intel_dp)->base.port;
> >  	const struct edp_power_seq *seq = &intel_dp->pps_delays;
> >  
> >  	lockdep_assert_held(&dev_priv->pps_mutex);
> > @@ -5965,9 +5965,9 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> >  	struct intel_encoder *encoder = &intel_dig_port->base;
> >  	struct intel_dp *intel_dp = &intel_dig_port->dp;
> >  
> > -	encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port);
> > +	encoder->hpd_pin = intel_hpd_pin(encoder->port);
> >  
> > -	switch (intel_dig_port->port) {
> > +	switch (encoder->port) {
> >  	case PORT_A:
> >  		intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
> >  		break;
> > @@ -5985,7 +5985,7 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> >  		intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> >  		break;
> >  	default:
> > -		MISSING_CASE(intel_dig_port->port);
> > +		MISSING_CASE(encoder->port);
> >  	}
> >  }
> >  
> > @@ -6021,7 +6021,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
> >  	struct intel_encoder *intel_encoder = &intel_dig_port->base;
> >  	struct drm_device *dev = intel_encoder->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_encoder->port;
> >  	int type;
> >  
> >  	/* Initialize the work for modeset in case of link train failure */
> > @@ -6191,7 +6191,6 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
> >  		intel_encoder->disable = g4x_disable_dp;
> >  	}
> >  
> > -	intel_dig_port->port = port;
> >  	intel_dig_port->dp.output_reg = output_reg;
> >  	intel_dig_port->max_lanes = 4;
> >  
> > diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> > index 653ca39789b8..c3de0918ee13 100644
> > --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> > @@ -209,7 +209,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *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);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  	struct intel_connector *connector =
> >  		to_intel_connector(conn_state->connector);
> >  	int ret;
> > @@ -253,7 +253,7 @@ static void intel_mst_enable_dp(struct intel_encoder *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);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_dig_port->base.port;
> >  	int ret;
> >  
> >  	DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
> > @@ -552,7 +552,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
> >  
> >  	intel_encoder->type = INTEL_OUTPUT_DP_MST;
> >  	intel_encoder->power_domain = intel_dig_port->base.power_domain;
> > -	intel_encoder->port = intel_dig_port->port;
> > +	intel_encoder->port = intel_dig_port->base.port;
> >  	intel_encoder->crtc_mask = 0x7;
> >  	intel_encoder->cloneable = 0;
> >  
> > diff --git a/drivers/gpu/drm/i915/intel_dpio_phy.c b/drivers/gpu/drm/i915/intel_dpio_phy.c
> > index 4f4a0bf12f8c..704041f70d93 100644
> > --- a/drivers/gpu/drm/i915/intel_dpio_phy.c
> > +++ b/drivers/gpu/drm/i915/intel_dpio_phy.c
> > @@ -586,9 +586,8 @@ bxt_ddi_phy_calc_lane_lat_optim_mask(uint8_t lane_count)
> >  void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder,
> >  				     uint8_t lane_lat_optim_mask)
> >  {
> > -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> > -	struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev);
> > -	enum port port = dport->port;
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +	enum port port = encoder->port;
> >  	enum dpio_phy phy;
> >  	enum dpio_channel ch;
> >  	int lane;
> > @@ -613,9 +612,8 @@ void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder,
> >  uint8_t
> >  bxt_ddi_phy_get_lane_lat_optim_mask(struct intel_encoder *encoder)
> >  {
> > -	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> > -	struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev);
> > -	enum port port = dport->port;
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +	enum port port = encoder->port;
> >  	enum dpio_phy phy;
> >  	enum dpio_channel ch;
> >  	int lane;
> > @@ -641,7 +639,7 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder,
> >  {
> >  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >  	struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
> > -	struct intel_crtc *intel_crtc = to_intel_crtc(dport->base.base.crtc);
> > +	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;
> >  	u32 val;
> > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> > index 00b488688042..a0a5cead868c 100644
> > --- a/drivers/gpu/drm/i915/intel_drv.h
> > +++ b/drivers/gpu/drm/i915/intel_drv.h
> > @@ -1056,7 +1056,6 @@ struct intel_lspcon {
> >  
> >  struct intel_digital_port {
> >  	struct intel_encoder base;
> > -	enum port port;
> >  	u32 saved_port_bits;
> >  	struct intel_dp dp;
> >  	struct intel_hdmi hdmi;
> > @@ -1088,7 +1087,7 @@ struct intel_dp_mst_encoder {
> >  static inline enum dpio_channel
> >  vlv_dport_to_channel(struct intel_digital_port *dport)
> >  {
> > -	switch (dport->port) {
> > +	switch (dport->base.port) {
> >  	case PORT_B:
> >  	case PORT_D:
> >  		return DPIO_CH0;
> > @@ -1102,7 +1101,7 @@ vlv_dport_to_channel(struct intel_digital_port *dport)
> >  static inline enum dpio_phy
> >  vlv_dport_to_phy(struct intel_digital_port *dport)
> >  {
> > -	switch (dport->port) {
> > +	switch (dport->base.port) {
> >  	case PORT_B:
> >  	case PORT_C:
> >  		return DPIO_PHY0;
> > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> > index 1f2258dec09e..2d95db64cdf2 100644
> > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > @@ -186,7 +186,7 @@ static bool g4x_infoframe_enabled(struct drm_encoder *encoder,
> >  	if ((val & VIDEO_DIP_ENABLE) == 0)
> >  		return false;
> >  
> > -	if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->port))
> > +	if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->base.port))
> >  		return false;
> >  
> >  	return val & (VIDEO_DIP_ENABLE_AVI |
> > @@ -245,7 +245,7 @@ static bool ibx_infoframe_enabled(struct drm_encoder *encoder,
> >  	if ((val & VIDEO_DIP_ENABLE) == 0)
> >  		return false;
> >  
> > -	if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->port))
> > +	if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->base.port))
> >  		return false;
> >  
> >  	return val & (VIDEO_DIP_ENABLE_AVI |
> > @@ -362,7 +362,7 @@ static bool vlv_infoframe_enabled(struct drm_encoder *encoder,
> >  	if ((val & VIDEO_DIP_ENABLE) == 0)
> >  		return false;
> >  
> > -	if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->port))
> > +	if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->base.port))
> >  		return false;
> >  
> >  	return val & (VIDEO_DIP_ENABLE_AVI |
> > @@ -535,7 +535,7 @@ static void g4x_set_infoframes(struct drm_encoder *encoder,
> >  	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
> >  	i915_reg_t reg = VIDEO_DIP_CTL;
> >  	u32 val = I915_READ(reg);
> > -	u32 port = VIDEO_DIP_PORT(intel_dig_port->port);
> > +	u32 port = VIDEO_DIP_PORT(intel_dig_port->base.port);
> >  
> >  	assert_hdmi_port_disabled(intel_hdmi);
> >  
> > @@ -686,7 +686,7 @@ static void ibx_set_infoframes(struct drm_encoder *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);
> > -	u32 port = VIDEO_DIP_PORT(intel_dig_port->port);
> > +	u32 port = VIDEO_DIP_PORT(intel_dig_port->base.port);
> >  
> >  	assert_hdmi_port_disabled(intel_hdmi);
> >  
> > @@ -782,7 +782,7 @@ static void vlv_set_infoframes(struct drm_encoder *encoder,
> >  	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(intel_dig_port->port);
> > +	u32 port = VIDEO_DIP_PORT(intel_dig_port->base.port);
> >  
> >  	assert_hdmi_port_disabled(intel_hdmi);
> >  
> > @@ -1545,7 +1545,7 @@ 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);
> > -	enum port port = hdmi_to_dig_port(hdmi)->port;
> > +	enum port port = hdmi_to_dig_port(hdmi)->base.port;
> >  	struct i2c_adapter *adapter =
> >  		intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
> >  	enum drm_dp_dual_mode_type type = drm_dp_dual_mode_detect(adapter);
> > @@ -2015,7 +2015,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
> >  	struct intel_encoder *intel_encoder = &intel_dig_port->base;
> >  	struct drm_device *dev = intel_encoder->base.dev;
> >  	struct drm_i915_private *dev_priv = to_i915(dev);
> > -	enum port port = intel_dig_port->port;
> > +	enum port port = intel_encoder->port;
> >  
> >  	DRM_DEBUG_KMS("Adding HDMI connector on port %c\n",
> >  		      port_name(port));
> > @@ -2135,7 +2135,6 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
> >  	if (IS_G4X(dev_priv))
> >  		intel_encoder->cloneable |= 1 << INTEL_OUTPUT_HDMI;
> >  
> > -	intel_dig_port->port = port;
> >  	intel_dig_port->hdmi.hdmi_reg = hdmi_reg;
> >  	intel_dig_port->dp.output_reg = INVALID_MMIO_REG;
> >  	intel_dig_port->max_lanes = 4;
> > diff --git a/drivers/gpu/drm/i915/intel_pipe_crc.c b/drivers/gpu/drm/i915/intel_pipe_crc.c
> > index 899839f2f7c6..61641d479b93 100644
> > --- a/drivers/gpu/drm/i915/intel_pipe_crc.c
> > +++ b/drivers/gpu/drm/i915/intel_pipe_crc.c
> > @@ -269,7 +269,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
> >  		case INTEL_OUTPUT_DP:
> >  		case INTEL_OUTPUT_EDP:
> >  			dig_port = enc_to_dig_port(&encoder->base);
> This can be eliminated.
> > -			switch (dig_port->port) {
> > +			switch (dig_port->base.port) {
> >  			case PORT_B:
> >  				*source = INTEL_PIPE_CRC_SOURCE_DP_B;
> >  				break;
> > @@ -281,7 +281,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
> >  				break;
> >  			default:
> >  				WARN(1, "nonexisting DP port %c\n",
> > -				     port_name(dig_port->port));
> > +				     port_name(dig_port->base.port));
> >  				break;
> >  			}
> >  			break;
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> > index 6e3b430fccdc..a1ad85fa5c1a 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -163,7 +163,7 @@ static void hsw_psr_enable_sink(struct intel_dp *intel_dp)
> >  		[3] = 1 - 1,
> >  		[4] = DP_SET_POWER_D0,
> >  	};
> > -	enum port port = dig_port->port;
> > +	enum port port = dig_port->base.port;
> >  	u32 aux_ctl;
> >  	int i;
> >  
> > @@ -376,7 +376,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
> >  	 * ones. Since by Display design transcoder EDP is tied to port A
> >  	 * we can safely escape based on the port A.
> >  	 */
> > -	if (HAS_DDI(dev_priv) && dig_port->port != PORT_A) {
> > +	if (HAS_DDI(dev_priv) && dig_port->base.port != PORT_A) {
> >  		DRM_DEBUG_KMS("PSR condition failed: Port not supported\n");
> >  		return;
> >  	}

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

  reply	other threads:[~2017-11-09 13:50 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-31 20:51 [PATCH 00/10] drm/i915: Nuke dig_port->port and assorted cleanups Ville Syrjala
2017-10-31 20:51 ` [PATCH 01/10] drm/i915: Eliminate some encoder->crtc usage from DP code Ville Syrjala
2017-11-09  1:35   ` Pandiyan, Dhinakaran
2017-11-09 14:36     ` Ville Syrjälä
2017-10-31 20:51 ` [PATCH 02/10] drm/i915: Eliminate some encoder->crtc usage from DSI code Ville Syrjala
2017-11-09  1:36   ` Pandiyan, Dhinakaran
2017-11-09 14:43     ` Ville Syrjälä
2017-10-31 20:51 ` [PATCH 03/10] drm/i915: Eliminate some encoder->crtc usage from SDVO code Ville Syrjala
2017-10-31 20:51 ` [PATCH 04/10] drm/i915: Eliminate some encoder->crtc usage from TV code Ville Syrjala
2017-10-31 20:51 ` [PATCH 05/10] drm/i915: Pass crtc state to DPIO PHY functions Ville Syrjala
2017-10-31 20:51 ` [PATCH 06/10] drm/i915: Eliminate crtc->config usage from CRT code Ville Syrjala
2017-10-31 20:51 ` [PATCH 07/10] drm/i915: Replace dig_port->port with encoder port for BXT DPLL selection Ville Syrjala
2017-10-31 20:51 ` [PATCH 08/10] drm/i915: Nuke intel_digital_port->port Ville Syrjala
2017-11-09  1:37   ` Pandiyan, Dhinakaran
2017-11-09 13:50     ` Ville Syrjälä [this message]
2017-11-09 15:24   ` [PATCH v2 " Ville Syrjala
2017-10-31 20:51 ` [PATCH 09/10] drm/i915: Clean up PPS code calling conventions Ville Syrjala
2017-10-31 20:51 ` [PATCH 10/10] drm/i915: Clean up DP code local variables and " Ville Syrjala
2017-11-09  3:01   ` Pandiyan, Dhinakaran
2017-11-09 15:27     ` Ville Syrjälä
2017-11-09 15:27   ` [PATCH v2 " Ville Syrjala
2017-10-31 22:31 ` ✗ Fi.CI.BAT: warning for drm/i915: Nuke dig_port->port and assorted cleanups Patchwork
2017-11-01  9:55 ` [PATCH 00/10] " Jani Nikula
2017-11-09  3:08   ` Pandiyan, Dhinakaran
2017-11-09 18:26     ` Ville Syrjälä
2017-11-09 16:01 ` ✓ Fi.CI.BAT: success for drm/i915: Nuke dig_port->port and assorted cleanups (rev3) Patchwork
2017-11-09 16:59 ` ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171109135015.GO10981@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=dhinakaran.pandiyan@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.