aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c2
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c13
-rw-r--r--drivers/gpu/drm/i915/intel_display.c13
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c103
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c6
-rw-r--r--drivers/gpu/drm/i915/intel_dpio_phy.c12
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h5
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c17
-rw-r--r--drivers/gpu/drm/i915/intel_pipe_crc.c4
-rw-r--r--drivers/gpu/drm/i915/intel_psr.c4
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)
3603 continue; 3603 continue;
3604 3604
3605 seq_printf(m, "MST Source Port %c\n", 3605 seq_printf(m, "MST Source Port %c\n",
3606 port_name(intel_dig_port->port)); 3606 port_name(intel_dig_port->base.port));
3607 drm_dp_mst_dump_topology(m, &intel_dig_port->dp.mst_mgr); 3607 drm_dp_mst_dump_topology(m, &intel_dig_port->dp.mst_mgr);
3608 } 3608 }
3609 drm_connector_list_iter_end(&conn_iter); 3609 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,
1801 int level, enum intel_output_type type) 1801 int level, enum intel_output_type type)
1802{ 1802{
1803 struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base); 1803 struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
1804 struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev); 1804 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
1805 enum port port = intel_dig_port->port; 1805 enum port port = encoder->port;
1806 uint8_t iboost; 1806 uint8_t iboost;
1807 1807
1808 if (type == INTEL_OUTPUT_HDMI) 1808 if (type == INTEL_OUTPUT_HDMI)
@@ -2470,7 +2470,7 @@ void intel_ddi_prepare_link_retrain(struct intel_dp *intel_dp)
2470 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 2470 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
2471 struct drm_i915_private *dev_priv = 2471 struct drm_i915_private *dev_priv =
2472 to_i915(intel_dig_port->base.base.dev); 2472 to_i915(intel_dig_port->base.base.dev);
2473 enum port port = intel_dig_port->port; 2473 enum port port = intel_dig_port->base.port;
2474 uint32_t val; 2474 uint32_t val;
2475 bool wait = false; 2475 bool wait = false;
2476 2476
@@ -2698,7 +2698,7 @@ static struct intel_connector *
2698intel_ddi_init_dp_connector(struct intel_digital_port *intel_dig_port) 2698intel_ddi_init_dp_connector(struct intel_digital_port *intel_dig_port)
2699{ 2699{
2700 struct intel_connector *connector; 2700 struct intel_connector *connector;
2701 enum port port = intel_dig_port->port; 2701 enum port port = intel_dig_port->base.port;
2702 2702
2703 connector = intel_connector_alloc(); 2703 connector = intel_connector_alloc();
2704 if (!connector) 2704 if (!connector)
@@ -2717,7 +2717,7 @@ static struct intel_connector *
2717intel_ddi_init_hdmi_connector(struct intel_digital_port *intel_dig_port) 2717intel_ddi_init_hdmi_connector(struct intel_digital_port *intel_dig_port)
2718{ 2718{
2719 struct intel_connector *connector; 2719 struct intel_connector *connector;
2720 enum port port = intel_dig_port->port; 2720 enum port port = intel_dig_port->base.port;
2721 2721
2722 connector = intel_connector_alloc(); 2722 connector = intel_connector_alloc();
2723 if (!connector) 2723 if (!connector)
@@ -2733,7 +2733,7 @@ static bool intel_ddi_a_force_4_lanes(struct intel_digital_port *dport)
2733{ 2733{
2734 struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev); 2734 struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev);
2735 2735
2736 if (dport->port != PORT_A) 2736 if (dport->base.port != PORT_A)
2737 return false; 2737 return false;
2738 2738
2739 if (dport->saved_port_bits & DDI_A_4_LANES) 2739 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)
2836 intel_encoder->suspend = intel_dp_encoder_suspend; 2836 intel_encoder->suspend = intel_dp_encoder_suspend;
2837 intel_encoder->get_power_domains = intel_ddi_get_power_domains; 2837 intel_encoder->get_power_domains = intel_ddi_get_power_domains;
2838 2838
2839 intel_dig_port->port = port;
2840 intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) & 2839 intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
2841 (DDI_BUF_PORT_REVERSAL | 2840 (DDI_BUF_PORT_REVERSAL |
2842 DDI_A_4_LANES); 2841 DDI_A_4_LANES);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 84817ccc5305..435dc18aa239 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1701,7 +1701,7 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
1701 u32 port_mask; 1701 u32 port_mask;
1702 i915_reg_t dpll_reg; 1702 i915_reg_t dpll_reg;
1703 1703
1704 switch (dport->port) { 1704 switch (dport->base.port) {
1705 case PORT_B: 1705 case PORT_B:
1706 port_mask = DPLL_PORTB_READY_MASK; 1706 port_mask = DPLL_PORTB_READY_MASK;
1707 dpll_reg = DPLL(0); 1707 dpll_reg = DPLL(0);
@@ -1723,7 +1723,8 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
1723 dpll_reg, port_mask, expected_mask, 1723 dpll_reg, port_mask, expected_mask,
1724 1000)) 1724 1000))
1725 WARN(1, "timed out waiting for port %c ready: got 0x%x, expected 0x%x\n", 1725 WARN(1, "timed out waiting for port %c ready: got 0x%x, expected 0x%x\n",
1726 port_name(dport->port), I915_READ(dpll_reg) & port_mask, expected_mask); 1726 port_name(dport->base.port),
1727 I915_READ(dpll_reg) & port_mask, expected_mask);
1727} 1728}
1728 1729
1729static void ironlake_enable_pch_transcoder(struct drm_i915_private *dev_priv, 1730static void ironlake_enable_pch_transcoder(struct drm_i915_private *dev_priv,
@@ -4481,7 +4482,7 @@ intel_trans_dp_port_sel(struct intel_crtc *crtc)
4481 for_each_encoder_on_crtc(dev, &crtc->base, encoder) { 4482 for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
4482 if (encoder->type == INTEL_OUTPUT_DP || 4483 if (encoder->type == INTEL_OUTPUT_DP ||
4483 encoder->type == INTEL_OUTPUT_EDP) 4484 encoder->type == INTEL_OUTPUT_EDP)
4484 return enc_to_dig_port(&encoder->base)->port; 4485 return encoder->port;
4485 } 4486 }
4486 4487
4487 return -1; 4488 return -1;
@@ -7632,7 +7633,7 @@ static void ironlake_init_pch_refclk(struct drm_i915_private *dev_priv)
7632 break; 7633 break;
7633 case INTEL_OUTPUT_EDP: 7634 case INTEL_OUTPUT_EDP:
7634 has_panel = true; 7635 has_panel = true;
7635 if (enc_to_dig_port(&encoder->base)->port == PORT_A) 7636 if (encoder->port == PORT_A)
7636 has_cpu_edp = true; 7637 has_cpu_edp = true;
7637 break; 7638 break;
7638 default: 7639 default:
@@ -10755,7 +10756,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
10755 case INTEL_OUTPUT_DP: 10756 case INTEL_OUTPUT_DP:
10756 case INTEL_OUTPUT_HDMI: 10757 case INTEL_OUTPUT_HDMI:
10757 case INTEL_OUTPUT_EDP: 10758 case INTEL_OUTPUT_EDP:
10758 port_mask = 1 << enc_to_dig_port(&encoder->base)->port; 10759 port_mask = 1 << encoder->port;
10759 10760
10760 /* the same port mustn't appear more than once */ 10761 /* the same port mustn't appear more than once */
10761 if (used_ports & port_mask) 10762 if (used_ports & port_mask)
@@ -10765,7 +10766,7 @@ static bool check_digital_port_conflicts(struct drm_atomic_state *state)
10765 break; 10766 break;
10766 case INTEL_OUTPUT_DP_MST: 10767 case INTEL_OUTPUT_DP_MST:
10767 used_mst_ports |= 10768 used_mst_ports |=
10768 1 << enc_to_mst(&encoder->base)->primary->port; 10769 1 << encoder->port;
10769 break; 10770 break;
10770 default: 10771 default:
10771 break; 10772 break;
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 0151c8d18b79..9b0c6dea40bc 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)
223{ 223{
224 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 224 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
225 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); 225 struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
226 enum port port = dig_port->port; 226 enum port port = dig_port->base.port;
227 const int *source_rates; 227 const int *source_rates;
228 int size; 228 int size;
229 u32 voltage; 229 u32 voltage;
@@ -479,11 +479,11 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
479 479
480 if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN, 480 if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN,
481 "skipping pipe %c power seqeuncer kick due to port %c being active\n", 481 "skipping pipe %c power seqeuncer kick due to port %c being active\n",
482 pipe_name(pipe), port_name(intel_dig_port->port))) 482 pipe_name(pipe), port_name(intel_dig_port->base.port)))
483 return; 483 return;
484 484
485 DRM_DEBUG_KMS("kicking pipe %c power sequencer for port %c\n", 485 DRM_DEBUG_KMS("kicking pipe %c power sequencer for port %c\n",
486 pipe_name(pipe), port_name(intel_dig_port->port)); 486 pipe_name(pipe), port_name(intel_dig_port->base.port));
487 487
488 /* Preserve the BIOS-computed detected bit. This is 488 /* Preserve the BIOS-computed detected bit. This is
489 * supposed to be read-only. 489 * supposed to be read-only.
@@ -610,7 +610,7 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
610 610
611 DRM_DEBUG_KMS("picked pipe %c power sequencer for port %c\n", 611 DRM_DEBUG_KMS("picked pipe %c power sequencer for port %c\n",
612 pipe_name(intel_dp->pps_pipe), 612 pipe_name(intel_dp->pps_pipe),
613 port_name(intel_dig_port->port)); 613 port_name(intel_dig_port->base.port));
614 614
615 /* init power sequencer on this pipe and port */ 615 /* init power sequencer on this pipe and port */
616 intel_dp_init_panel_power_sequencer(dev, intel_dp); 616 intel_dp_init_panel_power_sequencer(dev, intel_dp);
@@ -706,7 +706,7 @@ vlv_initial_power_sequencer_setup(struct intel_dp *intel_dp)
706 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 706 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
707 struct drm_device *dev = intel_dig_port->base.base.dev; 707 struct drm_device *dev = intel_dig_port->base.base.dev;
708 struct drm_i915_private *dev_priv = to_i915(dev); 708 struct drm_i915_private *dev_priv = to_i915(dev);
709 enum port port = intel_dig_port->port; 709 enum port port = intel_dig_port->base.port;
710 710
711 lockdep_assert_held(&dev_priv->pps_mutex); 711 lockdep_assert_held(&dev_priv->pps_mutex);
712 712
@@ -966,7 +966,7 @@ static uint32_t ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index)
966 * like to run at 2MHz. So, take the cdclk or PCH rawclk value and 966 * like to run at 2MHz. So, take the cdclk or PCH rawclk value and
967 * divide by 2000 and use that 967 * divide by 2000 and use that
968 */ 968 */
969 if (intel_dig_port->port == PORT_A) 969 if (intel_dig_port->base.port == PORT_A)
970 return DIV_ROUND_CLOSEST(dev_priv->cdclk.hw.cdclk, 2000); 970 return DIV_ROUND_CLOSEST(dev_priv->cdclk.hw.cdclk, 2000);
971 else 971 else
972 return DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 2000); 972 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)
977 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 977 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
978 struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev); 978 struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
979 979
980 if (intel_dig_port->port != PORT_A && HAS_PCH_LPT_H(dev_priv)) { 980 if (intel_dig_port->base.port != PORT_A && HAS_PCH_LPT_H(dev_priv)) {
981 /* Workaround for non-ULT HSW */ 981 /* Workaround for non-ULT HSW */
982 switch (index) { 982 switch (index) {
983 case 0: return 63; 983 case 0: return 63;
@@ -1447,7 +1447,7 @@ static void intel_aux_reg_init(struct intel_dp *intel_dp)
1447{ 1447{
1448 struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp)); 1448 struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
1449 enum port port = intel_aux_port(dev_priv, 1449 enum port port = intel_aux_port(dev_priv,
1450 dp_to_dig_port(intel_dp)->port); 1450 dp_to_dig_port(intel_dp)->base.port);
1451 int i; 1451 int i;
1452 1452
1453 intel_dp->aux_ch_ctl_reg = intel_aux_ctl_reg(dev_priv, port); 1453 intel_dp->aux_ch_ctl_reg = intel_aux_ctl_reg(dev_priv, port);
@@ -1465,7 +1465,7 @@ static void
1465intel_dp_aux_init(struct intel_dp *intel_dp) 1465intel_dp_aux_init(struct intel_dp *intel_dp)
1466{ 1466{
1467 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 1467 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
1468 enum port port = intel_dig_port->port; 1468 enum port port = intel_dig_port->base.port;
1469 1469
1470 intel_aux_reg_init(intel_dp); 1470 intel_aux_reg_init(intel_dp);
1471 drm_dp_aux_init(&intel_dp->aux); 1471 drm_dp_aux_init(&intel_dp->aux);
@@ -1635,7 +1635,7 @@ intel_dp_compute_config(struct intel_encoder *encoder,
1635 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 1635 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
1636 struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; 1636 struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
1637 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); 1637 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
1638 enum port port = dp_to_dig_port(intel_dp)->port; 1638 enum port port = encoder->port;
1639 struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc); 1639 struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
1640 struct intel_connector *intel_connector = intel_dp->attached_connector; 1640 struct intel_connector *intel_connector = intel_dp->attached_connector;
1641 struct intel_digital_connector_state *intel_conn_state = 1641 struct intel_digital_connector_state *intel_conn_state =
@@ -1859,7 +1859,7 @@ static void intel_dp_prepare(struct intel_encoder *encoder,
1859 struct drm_device *dev = encoder->base.dev; 1859 struct drm_device *dev = encoder->base.dev;
1860 struct drm_i915_private *dev_priv = to_i915(dev); 1860 struct drm_i915_private *dev_priv = to_i915(dev);
1861 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); 1861 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
1862 enum port port = dp_to_dig_port(intel_dp)->port; 1862 enum port port = encoder->port;
1863 struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc); 1863 struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
1864 const struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; 1864 const struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
1865 1865
@@ -2074,7 +2074,7 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
2074 intel_display_power_get(dev_priv, intel_dp->aux_power_domain); 2074 intel_display_power_get(dev_priv, intel_dp->aux_power_domain);
2075 2075
2076 DRM_DEBUG_KMS("Turning eDP port %c VDD on\n", 2076 DRM_DEBUG_KMS("Turning eDP port %c VDD on\n",
2077 port_name(intel_dig_port->port)); 2077 port_name(intel_dig_port->base.port));
2078 2078
2079 if (!edp_have_panel_power(intel_dp)) 2079 if (!edp_have_panel_power(intel_dp))
2080 wait_panel_power_cycle(intel_dp); 2080 wait_panel_power_cycle(intel_dp);
@@ -2094,7 +2094,7 @@ static bool edp_panel_vdd_on(struct intel_dp *intel_dp)
2094 */ 2094 */
2095 if (!edp_have_panel_power(intel_dp)) { 2095 if (!edp_have_panel_power(intel_dp)) {
2096 DRM_DEBUG_KMS("eDP port %c panel power wasn't enabled\n", 2096 DRM_DEBUG_KMS("eDP port %c panel power wasn't enabled\n",
2097 port_name(intel_dig_port->port)); 2097 port_name(intel_dig_port->base.port));
2098 msleep(intel_dp->panel_power_up_delay); 2098 msleep(intel_dp->panel_power_up_delay);
2099 } 2099 }
2100 2100
@@ -2120,7 +2120,7 @@ void intel_edp_panel_vdd_on(struct intel_dp *intel_dp)
2120 pps_unlock(intel_dp); 2120 pps_unlock(intel_dp);
2121 2121
2122 I915_STATE_WARN(!vdd, "eDP port %c VDD already requested on\n", 2122 I915_STATE_WARN(!vdd, "eDP port %c VDD already requested on\n",
2123 port_name(dp_to_dig_port(intel_dp)->port)); 2123 port_name(dp_to_dig_port(intel_dp)->base.port));
2124} 2124}
2125 2125
2126static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp) 2126static 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)
2140 return; 2140 return;
2141 2141
2142 DRM_DEBUG_KMS("Turning eDP port %c VDD off\n", 2142 DRM_DEBUG_KMS("Turning eDP port %c VDD off\n",
2143 port_name(intel_dig_port->port)); 2143 port_name(intel_dig_port->base.port));
2144 2144
2145 pp = ironlake_get_pp_control(intel_dp); 2145 pp = ironlake_get_pp_control(intel_dp);
2146 pp &= ~EDP_FORCE_VDD; 2146 pp &= ~EDP_FORCE_VDD;
@@ -2200,7 +2200,7 @@ static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync)
2200 return; 2200 return;
2201 2201
2202 I915_STATE_WARN(!intel_dp->want_panel_vdd, "eDP port %c VDD not forced on", 2202 I915_STATE_WARN(!intel_dp->want_panel_vdd, "eDP port %c VDD not forced on",
2203 port_name(dp_to_dig_port(intel_dp)->port)); 2203 port_name(dp_to_dig_port(intel_dp)->base.port));
2204 2204
2205 intel_dp->want_panel_vdd = false; 2205 intel_dp->want_panel_vdd = false;
2206 2206
@@ -2223,11 +2223,11 @@ static void edp_panel_on(struct intel_dp *intel_dp)
2223 return; 2223 return;
2224 2224
2225 DRM_DEBUG_KMS("Turn eDP port %c panel power on\n", 2225 DRM_DEBUG_KMS("Turn eDP port %c panel power on\n",
2226 port_name(dp_to_dig_port(intel_dp)->port)); 2226 port_name(dp_to_dig_port(intel_dp)->base.port));
2227 2227
2228 if (WARN(edp_have_panel_power(intel_dp), 2228 if (WARN(edp_have_panel_power(intel_dp),
2229 "eDP port %c panel power already on\n", 2229 "eDP port %c panel power already on\n",
2230 port_name(dp_to_dig_port(intel_dp)->port))) 2230 port_name(dp_to_dig_port(intel_dp)->base.port)))
2231 return; 2231 return;
2232 2232
2233 wait_panel_power_cycle(intel_dp); 2233 wait_panel_power_cycle(intel_dp);
@@ -2282,10 +2282,10 @@ static void edp_panel_off(struct intel_dp *intel_dp)
2282 return; 2282 return;
2283 2283
2284 DRM_DEBUG_KMS("Turn eDP port %c panel power off\n", 2284 DRM_DEBUG_KMS("Turn eDP port %c panel power off\n",
2285 port_name(dp_to_dig_port(intel_dp)->port)); 2285 port_name(dp_to_dig_port(intel_dp)->base.port));
2286 2286
2287 WARN(!intel_dp->want_panel_vdd, "Need eDP port %c VDD to turn off panel\n", 2287 WARN(!intel_dp->want_panel_vdd, "Need eDP port %c VDD to turn off panel\n",
2288 port_name(dp_to_dig_port(intel_dp)->port)); 2288 port_name(dp_to_dig_port(intel_dp)->base.port));
2289 2289
2290 pp = ironlake_get_pp_control(intel_dp); 2290 pp = ironlake_get_pp_control(intel_dp);
2291 /* We need to switch off panel power _and_ force vdd, for otherwise some 2291 /* 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)
2437 2437
2438 I915_STATE_WARN(cur_state != state, 2438 I915_STATE_WARN(cur_state != state,
2439 "DP port %c state assertion failure (expected %s, current %s)\n", 2439 "DP port %c state assertion failure (expected %s, current %s)\n",
2440 port_name(dig_port->port), 2440 port_name(dig_port->base.port),
2441 onoff(state), onoff(cur_state)); 2441 onoff(state), onoff(cur_state));
2442} 2442}
2443#define assert_dp_port_disabled(d) assert_dp_port((d), false) 2443#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,
2570 enum pipe *pipe) 2570 enum pipe *pipe)
2571{ 2571{
2572 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); 2572 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
2573 enum port port = dp_to_dig_port(intel_dp)->port; 2573 enum port port = encoder->port;
2574 struct drm_device *dev = encoder->base.dev; 2574 struct drm_device *dev = encoder->base.dev;
2575 struct drm_i915_private *dev_priv = to_i915(dev); 2575 struct drm_i915_private *dev_priv = to_i915(dev);
2576 u32 tmp; 2576 u32 tmp;
@@ -2625,7 +2625,7 @@ static void intel_dp_get_config(struct intel_encoder *encoder,
2625 u32 tmp, flags = 0; 2625 u32 tmp, flags = 0;
2626 struct drm_device *dev = encoder->base.dev; 2626 struct drm_device *dev = encoder->base.dev;
2627 struct drm_i915_private *dev_priv = to_i915(dev); 2627 struct drm_i915_private *dev_priv = to_i915(dev);
2628 enum port port = dp_to_dig_port(intel_dp)->port; 2628 enum port port = encoder->port;
2629 struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc); 2629 struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
2630 2630
2631 if (encoder->type == INTEL_OUTPUT_EDP) 2631 if (encoder->type == INTEL_OUTPUT_EDP)
@@ -2794,7 +2794,7 @@ _intel_dp_set_link_train(struct intel_dp *intel_dp,
2794 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 2794 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
2795 struct drm_device *dev = intel_dig_port->base.base.dev; 2795 struct drm_device *dev = intel_dig_port->base.base.dev;
2796 struct drm_i915_private *dev_priv = to_i915(dev); 2796 struct drm_i915_private *dev_priv = to_i915(dev);
2797 enum port port = intel_dig_port->port; 2797 enum port port = intel_dig_port->base.port;
2798 2798
2799 if (dp_train_pat & DP_TRAINING_PATTERN_MASK) 2799 if (dp_train_pat & DP_TRAINING_PATTERN_MASK)
2800 DRM_DEBUG_KMS("Using DP training pattern TPS%d\n", 2800 DRM_DEBUG_KMS("Using DP training pattern TPS%d\n",
@@ -2969,7 +2969,7 @@ static void g4x_pre_enable_dp(struct intel_encoder *encoder,
2969 const struct drm_connector_state *conn_state) 2969 const struct drm_connector_state *conn_state)
2970{ 2970{
2971 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base); 2971 struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
2972 enum port port = dp_to_dig_port(intel_dp)->port; 2972 enum port port = encoder->port;
2973 2973
2974 intel_dp_prepare(encoder, pipe_config); 2974 intel_dp_prepare(encoder, pipe_config);
2975 2975
@@ -3002,7 +3002,7 @@ static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
3002 * from a port. 3002 * from a port.
3003 */ 3003 */
3004 DRM_DEBUG_KMS("detaching pipe %c power sequencer from port %c\n", 3004 DRM_DEBUG_KMS("detaching pipe %c power sequencer from port %c\n",
3005 pipe_name(pipe), port_name(intel_dig_port->port)); 3005 pipe_name(pipe), port_name(intel_dig_port->base.port));
3006 I915_WRITE(pp_on_reg, 0); 3006 I915_WRITE(pp_on_reg, 0);
3007 POSTING_READ(pp_on_reg); 3007 POSTING_READ(pp_on_reg);
3008 3008
@@ -3026,7 +3026,7 @@ static void vlv_steal_power_sequencer(struct drm_device *dev,
3026 continue; 3026 continue;
3027 3027
3028 intel_dp = enc_to_intel_dp(&encoder->base); 3028 intel_dp = enc_to_intel_dp(&encoder->base);
3029 port = dp_to_dig_port(intel_dp)->port; 3029 port = dp_to_dig_port(intel_dp)->base.port;
3030 3030
3031 WARN(intel_dp->active_pipe == pipe, 3031 WARN(intel_dp->active_pipe == pipe,
3032 "stealing pipe %c power sequencer from active (e)DP port %c\n", 3032 "stealing pipe %c power sequencer from active (e)DP port %c\n",
@@ -3178,7 +3178,7 @@ uint8_t
3178intel_dp_voltage_max(struct intel_dp *intel_dp) 3178intel_dp_voltage_max(struct intel_dp *intel_dp)
3179{ 3179{
3180 struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp)); 3180 struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
3181 enum port port = dp_to_dig_port(intel_dp)->port; 3181 enum port port = dp_to_dig_port(intel_dp)->base.port;
3182 3182
3183 if (INTEL_GEN(dev_priv) >= 9) { 3183 if (INTEL_GEN(dev_priv) >= 9) {
3184 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; 3184 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
@@ -3197,7 +3197,7 @@ uint8_t
3197intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing) 3197intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, uint8_t voltage_swing)
3198{ 3198{
3199 struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp)); 3199 struct drm_i915_private *dev_priv = to_i915(intel_dp_to_dev(intel_dp));
3200 enum port port = dp_to_dig_port(intel_dp)->port; 3200 enum port port = dp_to_dig_port(intel_dp)->base.port;
3201 3201
3202 if (INTEL_GEN(dev_priv) >= 9) { 3202 if (INTEL_GEN(dev_priv) >= 9) {
3203 switch (voltage_swing & DP_TRAIN_VOLTAGE_SWING_MASK) { 3203 switch (voltage_swing & DP_TRAIN_VOLTAGE_SWING_MASK) {
@@ -3531,7 +3531,7 @@ void
3531intel_dp_set_signal_levels(struct intel_dp *intel_dp) 3531intel_dp_set_signal_levels(struct intel_dp *intel_dp)
3532{ 3532{
3533 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 3533 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
3534 enum port port = intel_dig_port->port; 3534 enum port port = intel_dig_port->base.port;
3535 struct drm_device *dev = intel_dig_port->base.base.dev; 3535 struct drm_device *dev = intel_dig_port->base.base.dev;
3536 struct drm_i915_private *dev_priv = to_i915(dev); 3536 struct drm_i915_private *dev_priv = to_i915(dev);
3537 uint32_t signal_levels, mask = 0; 3537 uint32_t signal_levels, mask = 0;
@@ -3591,7 +3591,7 @@ void intel_dp_set_idle_link_train(struct intel_dp *intel_dp)
3591 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); 3591 struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
3592 struct drm_device *dev = intel_dig_port->base.base.dev; 3592 struct drm_device *dev = intel_dig_port->base.base.dev;
3593 struct drm_i915_private *dev_priv = to_i915(dev); 3593 struct drm_i915_private *dev_priv = to_i915(dev);
3594 enum port port = intel_dig_port->port; 3594 enum port port = intel_dig_port->base.port;
3595 uint32_t val; 3595 uint32_t val;
3596 3596
3597 if (!HAS_DDI(dev_priv)) 3597 if (!HAS_DDI(dev_priv))
@@ -4490,7 +4490,7 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
4490{ 4490{
4491 u32 bit; 4491 u32 bit;
4492 4492
4493 switch (port->port) { 4493 switch (port->base.port) {
4494 case PORT_B: 4494 case PORT_B:
4495 bit = SDE_PORTB_HOTPLUG; 4495 bit = SDE_PORTB_HOTPLUG;
4496 break; 4496 break;
@@ -4501,7 +4501,7 @@ static bool ibx_digital_port_connected(struct drm_i915_private *dev_priv,
4501 bit = SDE_PORTD_HOTPLUG; 4501 bit = SDE_PORTD_HOTPLUG;
4502 break; 4502 break;
4503 default: 4503 default:
4504 MISSING_CASE(port->port); 4504 MISSING_CASE(port->base.port);
4505 return false; 4505 return false;
4506 } 4506 }
4507 4507
@@ -4513,7 +4513,7 @@ static bool cpt_digital_port_connected(struct drm_i915_private *dev_priv,
4513{ 4513{
4514 u32 bit; 4514 u32 bit;
4515 4515
4516 switch (port->port) { 4516 switch (port->base.port) {
4517 case PORT_B: 4517 case PORT_B:
4518 bit = SDE_PORTB_HOTPLUG_CPT; 4518 bit = SDE_PORTB_HOTPLUG_CPT;
4519 break; 4519 break;
@@ -4524,7 +4524,7 @@ static bool cpt_digital_port_connected(struct drm_i915_private *dev_priv,
4524 bit = SDE_PORTD_HOTPLUG_CPT; 4524 bit = SDE_PORTD_HOTPLUG_CPT;
4525 break; 4525 break;
4526 default: 4526 default:
4527 MISSING_CASE(port->port); 4527 MISSING_CASE(port->base.port);
4528 return false; 4528 return false;
4529 } 4529 }
4530 4530
@@ -4536,7 +4536,7 @@ static bool spt_digital_port_connected(struct drm_i915_private *dev_priv,
4536{ 4536{
4537 u32 bit; 4537 u32 bit;
4538 4538
4539 switch (port->port) { 4539 switch (port->base.port) {
4540 case PORT_A: 4540 case PORT_A:
4541 bit = SDE_PORTA_HOTPLUG_SPT; 4541 bit = SDE_PORTA_HOTPLUG_SPT;
4542 break; 4542 break;
@@ -4555,7 +4555,7 @@ static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
4555{ 4555{
4556 u32 bit; 4556 u32 bit;
4557 4557
4558 switch (port->port) { 4558 switch (port->base.port) {
4559 case PORT_B: 4559 case PORT_B:
4560 bit = PORTB_HOTPLUG_LIVE_STATUS_G4X; 4560 bit = PORTB_HOTPLUG_LIVE_STATUS_G4X;
4561 break; 4561 break;
@@ -4566,7 +4566,7 @@ static bool g4x_digital_port_connected(struct drm_i915_private *dev_priv,
4566 bit = PORTD_HOTPLUG_LIVE_STATUS_G4X; 4566 bit = PORTD_HOTPLUG_LIVE_STATUS_G4X;
4567 break; 4567 break;
4568 default: 4568 default:
4569 MISSING_CASE(port->port); 4569 MISSING_CASE(port->base.port);
4570 return false; 4570 return false;
4571 } 4571 }
4572 4572
@@ -4578,7 +4578,7 @@ static bool gm45_digital_port_connected(struct drm_i915_private *dev_priv,
4578{ 4578{
4579 u32 bit; 4579 u32 bit;
4580 4580
4581 switch (port->port) { 4581 switch (port->base.port) {
4582 case PORT_B: 4582 case PORT_B:
4583 bit = PORTB_HOTPLUG_LIVE_STATUS_GM45; 4583 bit = PORTB_HOTPLUG_LIVE_STATUS_GM45;
4584 break; 4584 break;
@@ -4589,7 +4589,7 @@ static bool gm45_digital_port_connected(struct drm_i915_private *dev_priv,
4589 bit = PORTD_HOTPLUG_LIVE_STATUS_GM45; 4589 bit = PORTD_HOTPLUG_LIVE_STATUS_GM45;
4590 break; 4590 break;
4591 default: 4591 default:
4592 MISSING_CASE(port->port); 4592 MISSING_CASE(port->base.port);
4593 return false; 4593 return false;
4594 } 4594 }
4595 4595
@@ -4599,7 +4599,7 @@ static bool gm45_digital_port_connected(struct drm_i915_private *dev_priv,
4599static bool ilk_digital_port_connected(struct drm_i915_private *dev_priv, 4599static bool ilk_digital_port_connected(struct drm_i915_private *dev_priv,
4600 struct intel_digital_port *port) 4600 struct intel_digital_port *port)
4601{ 4601{
4602 if (port->port == PORT_A) 4602 if (port->base.port == PORT_A)
4603 return I915_READ(DEISR) & DE_DP_A_HOTPLUG; 4603 return I915_READ(DEISR) & DE_DP_A_HOTPLUG;
4604 else 4604 else
4605 return ibx_digital_port_connected(dev_priv, port); 4605 return ibx_digital_port_connected(dev_priv, port);
@@ -4608,7 +4608,7 @@ static bool ilk_digital_port_connected(struct drm_i915_private *dev_priv,
4608static bool snb_digital_port_connected(struct drm_i915_private *dev_priv, 4608static bool snb_digital_port_connected(struct drm_i915_private *dev_priv,
4609 struct intel_digital_port *port) 4609 struct intel_digital_port *port)
4610{ 4610{
4611 if (port->port == PORT_A) 4611 if (port->base.port == PORT_A)
4612 return I915_READ(DEISR) & DE_DP_A_HOTPLUG; 4612 return I915_READ(DEISR) & DE_DP_A_HOTPLUG;
4613 else 4613 else
4614 return cpt_digital_port_connected(dev_priv, port); 4614 return cpt_digital_port_connected(dev_priv, port);
@@ -4617,7 +4617,7 @@ static bool snb_digital_port_connected(struct drm_i915_private *dev_priv,
4617static bool ivb_digital_port_connected(struct drm_i915_private *dev_priv, 4617static bool ivb_digital_port_connected(struct drm_i915_private *dev_priv,
4618 struct intel_digital_port *port) 4618 struct intel_digital_port *port)
4619{ 4619{
4620 if (port->port == PORT_A) 4620 if (port->base.port == PORT_A)
4621 return I915_READ(DEISR) & DE_DP_A_HOTPLUG_IVB; 4621 return I915_READ(DEISR) & DE_DP_A_HOTPLUG_IVB;
4622 else 4622 else
4623 return cpt_digital_port_connected(dev_priv, port); 4623 return cpt_digital_port_connected(dev_priv, port);
@@ -4626,7 +4626,7 @@ static bool ivb_digital_port_connected(struct drm_i915_private *dev_priv,
4626static bool bdw_digital_port_connected(struct drm_i915_private *dev_priv, 4626static bool bdw_digital_port_connected(struct drm_i915_private *dev_priv,
4627 struct intel_digital_port *port) 4627 struct intel_digital_port *port)
4628{ 4628{
4629 if (port->port == PORT_A) 4629 if (port->base.port == PORT_A)
4630 return I915_READ(GEN8_DE_PORT_ISR) & GEN8_PORT_DP_A_HOTPLUG; 4630 return I915_READ(GEN8_DE_PORT_ISR) & GEN8_PORT_DP_A_HOTPLUG;
4631 else 4631 else
4632 return cpt_digital_port_connected(dev_priv, port); 4632 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)
5109 * "vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..." 5109 * "vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..."
5110 */ 5110 */
5111 DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n", 5111 DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n",
5112 port_name(intel_dig_port->port)); 5112 port_name(intel_dig_port->base.port));
5113 return IRQ_HANDLED; 5113 return IRQ_HANDLED;
5114 } 5114 }
5115 5115
5116 DRM_DEBUG_KMS("got hpd irq on port %c - %s\n", 5116 DRM_DEBUG_KMS("got hpd irq on port %c - %s\n",
5117 port_name(intel_dig_port->port), 5117 port_name(intel_dig_port->base.port),
5118 long_hpd ? "long" : "short"); 5118 long_hpd ? "long" : "short");
5119 5119
5120 if (long_hpd) { 5120 if (long_hpd) {
@@ -5364,7 +5364,7 @@ intel_dp_init_panel_power_sequencer_registers(struct drm_device *dev,
5364 u32 pp_on, pp_off, pp_div, port_sel = 0; 5364 u32 pp_on, pp_off, pp_div, port_sel = 0;
5365 int div = dev_priv->rawclk_freq / 1000; 5365 int div = dev_priv->rawclk_freq / 1000;
5366 struct pps_registers regs; 5366 struct pps_registers regs;
5367 enum port port = dp_to_dig_port(intel_dp)->port; 5367 enum port port = dp_to_dig_port(intel_dp)->base.port;
5368 const struct edp_power_seq *seq = &intel_dp->pps_delays; 5368 const struct edp_power_seq *seq = &intel_dp->pps_delays;
5369 5369
5370 lockdep_assert_held(&dev_priv->pps_mutex); 5370 lockdep_assert_held(&dev_priv->pps_mutex);
@@ -5965,9 +5965,9 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
5965 struct intel_encoder *encoder = &intel_dig_port->base; 5965 struct intel_encoder *encoder = &intel_dig_port->base;
5966 struct intel_dp *intel_dp = &intel_dig_port->dp; 5966 struct intel_dp *intel_dp = &intel_dig_port->dp;
5967 5967
5968 encoder->hpd_pin = intel_hpd_pin(intel_dig_port->port); 5968 encoder->hpd_pin = intel_hpd_pin(encoder->port);
5969 5969
5970 switch (intel_dig_port->port) { 5970 switch (encoder->port) {
5971 case PORT_A: 5971 case PORT_A:
5972 intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A; 5972 intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A;
5973 break; 5973 break;
@@ -5985,7 +5985,7 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
5985 intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D; 5985 intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
5986 break; 5986 break;
5987 default: 5987 default:
5988 MISSING_CASE(intel_dig_port->port); 5988 MISSING_CASE(encoder->port);
5989 } 5989 }
5990} 5990}
5991 5991
@@ -6021,7 +6021,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
6021 struct intel_encoder *intel_encoder = &intel_dig_port->base; 6021 struct intel_encoder *intel_encoder = &intel_dig_port->base;
6022 struct drm_device *dev = intel_encoder->base.dev; 6022 struct drm_device *dev = intel_encoder->base.dev;
6023 struct drm_i915_private *dev_priv = to_i915(dev); 6023 struct drm_i915_private *dev_priv = to_i915(dev);
6024 enum port port = intel_dig_port->port; 6024 enum port port = intel_encoder->port;
6025 int type; 6025 int type;
6026 6026
6027 /* Initialize the work for modeset in case of link train failure */ 6027 /* 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,
6191 intel_encoder->disable = g4x_disable_dp; 6191 intel_encoder->disable = g4x_disable_dp;
6192 } 6192 }
6193 6193
6194 intel_dig_port->port = port;
6195 intel_dig_port->dp.output_reg = output_reg; 6194 intel_dig_port->dp.output_reg = output_reg;
6196 intel_dig_port->max_lanes = 4; 6195 intel_dig_port->max_lanes = 4;
6197 6196
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,
209 struct intel_digital_port *intel_dig_port = intel_mst->primary; 209 struct intel_digital_port *intel_dig_port = intel_mst->primary;
210 struct intel_dp *intel_dp = &intel_dig_port->dp; 210 struct intel_dp *intel_dp = &intel_dig_port->dp;
211 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 211 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
212 enum port port = intel_dig_port->port; 212 enum port port = intel_dig_port->base.port;
213 struct intel_connector *connector = 213 struct intel_connector *connector =
214 to_intel_connector(conn_state->connector); 214 to_intel_connector(conn_state->connector);
215 int ret; 215 int ret;
@@ -253,7 +253,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
253 struct intel_digital_port *intel_dig_port = intel_mst->primary; 253 struct intel_digital_port *intel_dig_port = intel_mst->primary;
254 struct intel_dp *intel_dp = &intel_dig_port->dp; 254 struct intel_dp *intel_dp = &intel_dig_port->dp;
255 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 255 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
256 enum port port = intel_dig_port->port; 256 enum port port = intel_dig_port->base.port;
257 int ret; 257 int ret;
258 258
259 DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links); 259 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
552 552
553 intel_encoder->type = INTEL_OUTPUT_DP_MST; 553 intel_encoder->type = INTEL_OUTPUT_DP_MST;
554 intel_encoder->power_domain = intel_dig_port->base.power_domain; 554 intel_encoder->power_domain = intel_dig_port->base.power_domain;
555 intel_encoder->port = intel_dig_port->port; 555 intel_encoder->port = intel_dig_port->base.port;
556 intel_encoder->crtc_mask = 0x7; 556 intel_encoder->crtc_mask = 0x7;
557 intel_encoder->cloneable = 0; 557 intel_encoder->cloneable = 0;
558 558
diff --git a/drivers/gpu/drm/i915/intel_dpio_phy.c b/drivers/gpu/drm/i915/intel_dpio_phy.c
index 5958d3d8b90e..76473e9836c6 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)
586void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder, 586void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder,
587 uint8_t lane_lat_optim_mask) 587 uint8_t lane_lat_optim_mask)
588{ 588{
589 struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); 589 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
590 struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev); 590 enum port port = encoder->port;
591 enum port port = dport->port;
592 enum dpio_phy phy; 591 enum dpio_phy phy;
593 enum dpio_channel ch; 592 enum dpio_channel ch;
594 int lane; 593 int lane;
@@ -613,9 +612,8 @@ void bxt_ddi_phy_set_lane_optim_mask(struct intel_encoder *encoder,
613uint8_t 612uint8_t
614bxt_ddi_phy_get_lane_lat_optim_mask(struct intel_encoder *encoder) 613bxt_ddi_phy_get_lane_lat_optim_mask(struct intel_encoder *encoder)
615{ 614{
616 struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); 615 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
617 struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev); 616 enum port port = encoder->port;
618 enum port port = dport->port;
619 enum dpio_phy phy; 617 enum dpio_phy phy;
620 enum dpio_channel ch; 618 enum dpio_channel ch;
621 int lane; 619 int lane;
@@ -641,7 +639,7 @@ void chv_set_phy_signal_level(struct intel_encoder *encoder,
641{ 639{
642 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 640 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
643 struct intel_digital_port *dport = enc_to_dig_port(&encoder->base); 641 struct intel_digital_port *dport = enc_to_dig_port(&encoder->base);
644 struct intel_crtc *intel_crtc = to_intel_crtc(dport->base.base.crtc); 642 struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc);
645 enum dpio_channel ch = vlv_dport_to_channel(dport); 643 enum dpio_channel ch = vlv_dport_to_channel(dport);
646 enum pipe pipe = intel_crtc->pipe; 644 enum pipe pipe = intel_crtc->pipe;
647 u32 val; 645 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 {
1056 1056
1057struct intel_digital_port { 1057struct intel_digital_port {
1058 struct intel_encoder base; 1058 struct intel_encoder base;
1059 enum port port;
1060 u32 saved_port_bits; 1059 u32 saved_port_bits;
1061 struct intel_dp dp; 1060 struct intel_dp dp;
1062 struct intel_hdmi hdmi; 1061 struct intel_hdmi hdmi;
@@ -1088,7 +1087,7 @@ struct intel_dp_mst_encoder {
1088static inline enum dpio_channel 1087static inline enum dpio_channel
1089vlv_dport_to_channel(struct intel_digital_port *dport) 1088vlv_dport_to_channel(struct intel_digital_port *dport)
1090{ 1089{
1091 switch (dport->port) { 1090 switch (dport->base.port) {
1092 case PORT_B: 1091 case PORT_B:
1093 case PORT_D: 1092 case PORT_D:
1094 return DPIO_CH0; 1093 return DPIO_CH0;
@@ -1102,7 +1101,7 @@ vlv_dport_to_channel(struct intel_digital_port *dport)
1102static inline enum dpio_phy 1101static inline enum dpio_phy
1103vlv_dport_to_phy(struct intel_digital_port *dport) 1102vlv_dport_to_phy(struct intel_digital_port *dport)
1104{ 1103{
1105 switch (dport->port) { 1104 switch (dport->base.port) {
1106 case PORT_B: 1105 case PORT_B:
1107 case PORT_C: 1106 case PORT_C:
1108 return DPIO_PHY0; 1107 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,
186 if ((val & VIDEO_DIP_ENABLE) == 0) 186 if ((val & VIDEO_DIP_ENABLE) == 0)
187 return false; 187 return false;
188 188
189 if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->port)) 189 if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->base.port))
190 return false; 190 return false;
191 191
192 return val & (VIDEO_DIP_ENABLE_AVI | 192 return val & (VIDEO_DIP_ENABLE_AVI |
@@ -245,7 +245,7 @@ static bool ibx_infoframe_enabled(struct drm_encoder *encoder,
245 if ((val & VIDEO_DIP_ENABLE) == 0) 245 if ((val & VIDEO_DIP_ENABLE) == 0)
246 return false; 246 return false;
247 247
248 if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->port)) 248 if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->base.port))
249 return false; 249 return false;
250 250
251 return val & (VIDEO_DIP_ENABLE_AVI | 251 return val & (VIDEO_DIP_ENABLE_AVI |
@@ -362,7 +362,7 @@ static bool vlv_infoframe_enabled(struct drm_encoder *encoder,
362 if ((val & VIDEO_DIP_ENABLE) == 0) 362 if ((val & VIDEO_DIP_ENABLE) == 0)
363 return false; 363 return false;
364 364
365 if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->port)) 365 if ((val & VIDEO_DIP_PORT_MASK) != VIDEO_DIP_PORT(intel_dig_port->base.port))
366 return false; 366 return false;
367 367
368 return val & (VIDEO_DIP_ENABLE_AVI | 368 return val & (VIDEO_DIP_ENABLE_AVI |
@@ -535,7 +535,7 @@ static void g4x_set_infoframes(struct drm_encoder *encoder,
535 struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi; 535 struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
536 i915_reg_t reg = VIDEO_DIP_CTL; 536 i915_reg_t reg = VIDEO_DIP_CTL;
537 u32 val = I915_READ(reg); 537 u32 val = I915_READ(reg);
538 u32 port = VIDEO_DIP_PORT(intel_dig_port->port); 538 u32 port = VIDEO_DIP_PORT(intel_dig_port->base.port);
539 539
540 assert_hdmi_port_disabled(intel_hdmi); 540 assert_hdmi_port_disabled(intel_hdmi);
541 541
@@ -686,7 +686,7 @@ static void ibx_set_infoframes(struct drm_encoder *encoder,
686 struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi; 686 struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
687 i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe); 687 i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
688 u32 val = I915_READ(reg); 688 u32 val = I915_READ(reg);
689 u32 port = VIDEO_DIP_PORT(intel_dig_port->port); 689 u32 port = VIDEO_DIP_PORT(intel_dig_port->base.port);
690 690
691 assert_hdmi_port_disabled(intel_hdmi); 691 assert_hdmi_port_disabled(intel_hdmi);
692 692
@@ -782,7 +782,7 @@ static void vlv_set_infoframes(struct drm_encoder *encoder,
782 struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder); 782 struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
783 i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe); 783 i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
784 u32 val = I915_READ(reg); 784 u32 val = I915_READ(reg);
785 u32 port = VIDEO_DIP_PORT(intel_dig_port->port); 785 u32 port = VIDEO_DIP_PORT(intel_dig_port->base.port);
786 786
787 assert_hdmi_port_disabled(intel_hdmi); 787 assert_hdmi_port_disabled(intel_hdmi);
788 788
@@ -1545,7 +1545,7 @@ intel_hdmi_dp_dual_mode_detect(struct drm_connector *connector, bool has_edid)
1545{ 1545{
1546 struct drm_i915_private *dev_priv = to_i915(connector->dev); 1546 struct drm_i915_private *dev_priv = to_i915(connector->dev);
1547 struct intel_hdmi *hdmi = intel_attached_hdmi(connector); 1547 struct intel_hdmi *hdmi = intel_attached_hdmi(connector);
1548 enum port port = hdmi_to_dig_port(hdmi)->port; 1548 enum port port = hdmi_to_dig_port(hdmi)->base.port;
1549 struct i2c_adapter *adapter = 1549 struct i2c_adapter *adapter =
1550 intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus); 1550 intel_gmbus_get_adapter(dev_priv, hdmi->ddc_bus);
1551 enum drm_dp_dual_mode_type type = drm_dp_dual_mode_detect(adapter); 1551 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,
2015 struct intel_encoder *intel_encoder = &intel_dig_port->base; 2015 struct intel_encoder *intel_encoder = &intel_dig_port->base;
2016 struct drm_device *dev = intel_encoder->base.dev; 2016 struct drm_device *dev = intel_encoder->base.dev;
2017 struct drm_i915_private *dev_priv = to_i915(dev); 2017 struct drm_i915_private *dev_priv = to_i915(dev);
2018 enum port port = intel_dig_port->port; 2018 enum port port = intel_encoder->port;
2019 2019
2020 DRM_DEBUG_KMS("Adding HDMI connector on port %c\n", 2020 DRM_DEBUG_KMS("Adding HDMI connector on port %c\n",
2021 port_name(port)); 2021 port_name(port));
@@ -2135,7 +2135,6 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
2135 if (IS_G4X(dev_priv)) 2135 if (IS_G4X(dev_priv))
2136 intel_encoder->cloneable |= 1 << INTEL_OUTPUT_HDMI; 2136 intel_encoder->cloneable |= 1 << INTEL_OUTPUT_HDMI;
2137 2137
2138 intel_dig_port->port = port;
2139 intel_dig_port->hdmi.hdmi_reg = hdmi_reg; 2138 intel_dig_port->hdmi.hdmi_reg = hdmi_reg;
2140 intel_dig_port->dp.output_reg = INVALID_MMIO_REG; 2139 intel_dig_port->dp.output_reg = INVALID_MMIO_REG;
2141 intel_dig_port->max_lanes = 4; 2140 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,
269 case INTEL_OUTPUT_DP: 269 case INTEL_OUTPUT_DP:
270 case INTEL_OUTPUT_EDP: 270 case INTEL_OUTPUT_EDP:
271 dig_port = enc_to_dig_port(&encoder->base); 271 dig_port = enc_to_dig_port(&encoder->base);
272 switch (dig_port->port) { 272 switch (dig_port->base.port) {
273 case PORT_B: 273 case PORT_B:
274 *source = INTEL_PIPE_CRC_SOURCE_DP_B; 274 *source = INTEL_PIPE_CRC_SOURCE_DP_B;
275 break; 275 break;
@@ -281,7 +281,7 @@ static int i9xx_pipe_crc_auto_source(struct drm_i915_private *dev_priv,
281 break; 281 break;
282 default: 282 default:
283 WARN(1, "nonexisting DP port %c\n", 283 WARN(1, "nonexisting DP port %c\n",
284 port_name(dig_port->port)); 284 port_name(dig_port->base.port));
285 break; 285 break;
286 } 286 }
287 break; 287 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)
163 [3] = 1 - 1, 163 [3] = 1 - 1,
164 [4] = DP_SET_POWER_D0, 164 [4] = DP_SET_POWER_D0,
165 }; 165 };
166 enum port port = dig_port->port; 166 enum port port = dig_port->base.port;
167 u32 aux_ctl; 167 u32 aux_ctl;
168 int i; 168 int i;
169 169
@@ -376,7 +376,7 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
376 * ones. Since by Display design transcoder EDP is tied to port A 376 * ones. Since by Display design transcoder EDP is tied to port A
377 * we can safely escape based on the port A. 377 * we can safely escape based on the port A.
378 */ 378 */
379 if (HAS_DDI(dev_priv) && dig_port->port != PORT_A) { 379 if (HAS_DDI(dev_priv) && dig_port->base.port != PORT_A) {
380 DRM_DEBUG_KMS("PSR condition failed: Port not supported\n"); 380 DRM_DEBUG_KMS("PSR condition failed: Port not supported\n");
381 return; 381 return;
382 } 382 }