On Tue, 2017-10-31 at 22:51 +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrj...@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.

> Signed-off-by: Ville Syrjälä <ville.syrj...@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;
>       }
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to