Message ID | 20171031205123.13123-9-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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. > 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; > }
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; > > }
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; 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; 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); - 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; }