Lines Matching full:encoder
92 static int intel_ddi_hdmi_level(struct intel_encoder *encoder, in intel_ddi_hdmi_level() argument
97 level = intel_bios_hdmi_level_shift(encoder->devdata); in intel_ddi_hdmi_level()
119 void hsw_prepare_dp_ddi_buffers(struct intel_encoder *encoder, in hsw_prepare_dp_ddi_buffers() argument
122 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in hsw_prepare_dp_ddi_buffers()
125 enum port port = encoder->port; in hsw_prepare_dp_ddi_buffers()
128 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in hsw_prepare_dp_ddi_buffers()
134 intel_bios_dp_boost_level(encoder->devdata)) in hsw_prepare_dp_ddi_buffers()
150 static void hsw_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder, in hsw_prepare_hdmi_ddi_buffers() argument
153 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in hsw_prepare_hdmi_ddi_buffers()
154 int level = intel_ddi_level(encoder, crtc_state, 0); in hsw_prepare_hdmi_ddi_buffers()
157 enum port port = encoder->port; in hsw_prepare_hdmi_ddi_buffers()
160 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in hsw_prepare_hdmi_ddi_buffers()
166 intel_bios_hdmi_boost_level(encoder->devdata)) in hsw_prepare_hdmi_ddi_buffers()
261 static u32 icl_pll_to_ddi_clk_sel(struct intel_encoder *encoder, in icl_pll_to_ddi_clk_sel() argument
325 static void intel_ddi_init_dp_buf_reg(struct intel_encoder *encoder, in intel_ddi_init_dp_buf_reg() argument
328 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_init_dp_buf_reg()
329 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_init_dp_buf_reg()
330 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_init_dp_buf_reg()
331 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_init_dp_buf_reg()
453 intel_ddi_config_transcoder_dp2(struct intel_encoder *encoder, in intel_ddi_config_transcoder_dp2() argument
456 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_config_transcoder_dp2()
473 intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder, in intel_ddi_transcoder_func_reg_val_get() argument
480 enum port port = encoder->port; in intel_ddi_transcoder_func_reg_val_get()
584 void intel_ddi_enable_transcoder_func(struct intel_encoder *encoder, in intel_ddi_enable_transcoder_func() argument
608 intel_ddi_transcoder_func_reg_val_get(encoder, in intel_ddi_enable_transcoder_func()
617 intel_ddi_config_transcoder_func(struct intel_encoder *encoder, in intel_ddi_config_transcoder_func() argument
625 ctl = intel_ddi_transcoder_func_reg_val_get(encoder, crtc_state); in intel_ddi_config_transcoder_func()
695 struct intel_encoder *encoder = intel_attached_encoder(intel_connector); in intel_ddi_connector_get_hw_state() local
697 enum port port = encoder->port; in intel_ddi_connector_get_hw_state()
705 encoder->power_domain); in intel_ddi_connector_get_hw_state()
709 if (!encoder->get_hw_state(encoder, &pipe)) { in intel_ddi_connector_get_hw_state()
753 intel_display_power_put(dev_priv, encoder->power_domain, wakeref); in intel_ddi_connector_get_hw_state()
758 static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder, in intel_ddi_get_encoder_pipes() argument
761 struct drm_device *dev = encoder->base.dev; in intel_ddi_get_encoder_pipes()
763 enum port port = encoder->port; in intel_ddi_get_encoder_pipes()
773 encoder->power_domain); in intel_ddi_get_encoder_pipes()
841 "No pipe for [ENCODER:%d:%s] found\n", in intel_ddi_get_encoder_pipes()
842 encoder->base.base.id, encoder->base.name); in intel_ddi_get_encoder_pipes()
846 "Multiple pipes for [ENCODER:%d:%s] (pipe_mask %02x)\n", in intel_ddi_get_encoder_pipes()
847 encoder->base.base.id, encoder->base.name, in intel_ddi_get_encoder_pipes()
854 … "Conflicting MST and non-MST state for [ENCODER:%d:%s] (pipe_mask %02x mst_pipe_mask %02x)\n", in intel_ddi_get_encoder_pipes()
855 encoder->base.base.id, encoder->base.name, in intel_ddi_get_encoder_pipes()
867 "[ENCODER:%d:%s] enabled but PHY powered down? (PHY_CTL %08x)\n", in intel_ddi_get_encoder_pipes()
868 encoder->base.base.id, encoder->base.name, tmp); in intel_ddi_get_encoder_pipes()
871 intel_display_power_put(dev_priv, encoder->power_domain, wakeref); in intel_ddi_get_encoder_pipes()
874 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, in intel_ddi_get_hw_state() argument
880 intel_ddi_get_encoder_pipes(encoder, &pipe_mask, &is_mst); in intel_ddi_get_hw_state()
952 static void intel_ddi_get_power_domains(struct intel_encoder *encoder, in intel_ddi_get_power_domains() argument
955 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_get_power_domains()
967 dig_port = enc_to_dig_port(encoder); in intel_ddi_get_power_domains()
978 void intel_ddi_enable_transcoder_clock(struct intel_encoder *encoder, in intel_ddi_enable_transcoder_clock() argument
984 enum phy phy = intel_port_to_phy(dev_priv, encoder->port); in intel_ddi_enable_transcoder_clock()
993 val = TGL_TRANS_CLK_SEL_PORT(encoder->port); in intel_ddi_enable_transcoder_clock()
995 val = TRANS_CLK_SEL_PORT(encoder->port); in intel_ddi_enable_transcoder_clock()
1031 static void skl_ddi_set_iboost(struct intel_encoder *encoder, in skl_ddi_set_iboost() argument
1035 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in skl_ddi_set_iboost()
1036 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in skl_ddi_set_iboost()
1040 iboost = intel_bios_hdmi_boost_level(encoder->devdata); in skl_ddi_set_iboost()
1042 iboost = intel_bios_dp_boost_level(encoder->devdata); in skl_ddi_set_iboost()
1048 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in skl_ddi_set_iboost()
1061 _skl_ddi_set_iboost(dev_priv, encoder->port, iboost); in skl_ddi_set_iboost()
1063 if (encoder->port == PORT_A && dig_port->max_lanes == 4) in skl_ddi_set_iboost()
1070 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; in intel_ddi_dp_voltage_max() local
1071 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_dp_voltage_max()
1074 encoder->get_buf_trans(encoder, crtc_state, &n_entries); in intel_ddi_dp_voltage_max()
1108 static void icl_ddi_combo_vswing_program(struct intel_encoder *encoder, in icl_ddi_combo_vswing_program() argument
1111 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in icl_ddi_combo_vswing_program()
1113 enum phy phy = intel_port_to_phy(dev_priv, encoder->port); in icl_ddi_combo_vswing_program()
1117 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in icl_ddi_combo_vswing_program()
1122 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in icl_ddi_combo_vswing_program()
1141 int level = intel_ddi_level(encoder, crtc_state, ln); in icl_ddi_combo_vswing_program()
1153 int level = intel_ddi_level(encoder, crtc_state, ln); in icl_ddi_combo_vswing_program()
1164 int level = intel_ddi_level(encoder, crtc_state, ln); in icl_ddi_combo_vswing_program()
1172 static void icl_combo_phy_set_signal_levels(struct intel_encoder *encoder, in icl_combo_phy_set_signal_levels() argument
1175 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in icl_combo_phy_set_signal_levels()
1176 enum phy phy = intel_port_to_phy(dev_priv, encoder->port); in icl_combo_phy_set_signal_levels()
1215 icl_ddi_combo_vswing_program(encoder, crtc_state); in icl_combo_phy_set_signal_levels()
1223 static void icl_mg_phy_set_signal_levels(struct intel_encoder *encoder, in icl_mg_phy_set_signal_levels() argument
1226 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in icl_mg_phy_set_signal_levels()
1227 enum tc_port tc_port = intel_port_to_tc(dev_priv, encoder->port); in icl_mg_phy_set_signal_levels()
1231 if (intel_tc_port_in_tbt_alt_mode(enc_to_dig_port(encoder))) in icl_mg_phy_set_signal_levels()
1234 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in icl_mg_phy_set_signal_levels()
1249 level = intel_ddi_level(encoder, crtc_state, 2*ln+0); in icl_mg_phy_set_signal_levels()
1255 level = intel_ddi_level(encoder, crtc_state, 2*ln+1); in icl_mg_phy_set_signal_levels()
1266 level = intel_ddi_level(encoder, crtc_state, 2*ln+0); in icl_mg_phy_set_signal_levels()
1275 level = intel_ddi_level(encoder, crtc_state, 2*ln+1); in icl_mg_phy_set_signal_levels()
1324 static void tgl_dkl_phy_set_signal_levels(struct intel_encoder *encoder, in tgl_dkl_phy_set_signal_levels() argument
1327 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in tgl_dkl_phy_set_signal_levels()
1328 enum tc_port tc_port = intel_port_to_tc(dev_priv, encoder->port); in tgl_dkl_phy_set_signal_levels()
1332 if (intel_tc_port_in_tbt_alt_mode(enc_to_dig_port(encoder))) in tgl_dkl_phy_set_signal_levels()
1335 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in tgl_dkl_phy_set_signal_levels()
1344 level = intel_ddi_level(encoder, crtc_state, 2*ln+0); in tgl_dkl_phy_set_signal_levels()
1354 level = intel_ddi_level(encoder, crtc_state, 2*ln+1); in tgl_dkl_phy_set_signal_levels()
1425 int intel_ddi_level(struct intel_encoder *encoder, in intel_ddi_level() argument
1429 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_level()
1433 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); in intel_ddi_level()
1438 level = intel_ddi_hdmi_level(encoder, trans); in intel_ddi_level()
1440 level = intel_ddi_dp_level(enc_to_intel_dp(encoder), crtc_state, in intel_ddi_level()
1450 hsw_set_signal_levels(struct intel_encoder *encoder, in hsw_set_signal_levels() argument
1453 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in hsw_set_signal_levels()
1454 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in hsw_set_signal_levels()
1455 int level = intel_ddi_level(encoder, crtc_state, 0); in hsw_set_signal_levels()
1456 enum port port = encoder->port; in hsw_set_signal_levels()
1460 skl_ddi_set_iboost(encoder, crtc_state, level); in hsw_set_signal_levels()
1521 static void adls_ddi_enable_clock(struct intel_encoder *encoder, in adls_ddi_enable_clock() argument
1524 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in adls_ddi_enable_clock()
1526 enum phy phy = intel_port_to_phy(i915, encoder->port); in adls_ddi_enable_clock()
1537 static void adls_ddi_disable_clock(struct intel_encoder *encoder) in adls_ddi_disable_clock() argument
1539 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in adls_ddi_disable_clock()
1540 enum phy phy = intel_port_to_phy(i915, encoder->port); in adls_ddi_disable_clock()
1546 static bool adls_ddi_is_clock_enabled(struct intel_encoder *encoder) in adls_ddi_is_clock_enabled() argument
1548 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in adls_ddi_is_clock_enabled()
1549 enum phy phy = intel_port_to_phy(i915, encoder->port); in adls_ddi_is_clock_enabled()
1555 static struct intel_shared_dpll *adls_ddi_get_pll(struct intel_encoder *encoder) in adls_ddi_get_pll() argument
1557 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in adls_ddi_get_pll()
1558 enum phy phy = intel_port_to_phy(i915, encoder->port); in adls_ddi_get_pll()
1565 static void rkl_ddi_enable_clock(struct intel_encoder *encoder, in rkl_ddi_enable_clock() argument
1568 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in rkl_ddi_enable_clock()
1570 enum phy phy = intel_port_to_phy(i915, encoder->port); in rkl_ddi_enable_clock()
1581 static void rkl_ddi_disable_clock(struct intel_encoder *encoder) in rkl_ddi_disable_clock() argument
1583 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in rkl_ddi_disable_clock()
1584 enum phy phy = intel_port_to_phy(i915, encoder->port); in rkl_ddi_disable_clock()
1590 static bool rkl_ddi_is_clock_enabled(struct intel_encoder *encoder) in rkl_ddi_is_clock_enabled() argument
1592 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in rkl_ddi_is_clock_enabled()
1593 enum phy phy = intel_port_to_phy(i915, encoder->port); in rkl_ddi_is_clock_enabled()
1599 static struct intel_shared_dpll *rkl_ddi_get_pll(struct intel_encoder *encoder) in rkl_ddi_get_pll() argument
1601 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in rkl_ddi_get_pll()
1602 enum phy phy = intel_port_to_phy(i915, encoder->port); in rkl_ddi_get_pll()
1609 static void dg1_ddi_enable_clock(struct intel_encoder *encoder, in dg1_ddi_enable_clock() argument
1612 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in dg1_ddi_enable_clock()
1614 enum phy phy = intel_port_to_phy(i915, encoder->port); in dg1_ddi_enable_clock()
1634 static void dg1_ddi_disable_clock(struct intel_encoder *encoder) in dg1_ddi_disable_clock() argument
1636 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in dg1_ddi_disable_clock()
1637 enum phy phy = intel_port_to_phy(i915, encoder->port); in dg1_ddi_disable_clock()
1643 static bool dg1_ddi_is_clock_enabled(struct intel_encoder *encoder) in dg1_ddi_is_clock_enabled() argument
1645 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in dg1_ddi_is_clock_enabled()
1646 enum phy phy = intel_port_to_phy(i915, encoder->port); in dg1_ddi_is_clock_enabled()
1652 static struct intel_shared_dpll *dg1_ddi_get_pll(struct intel_encoder *encoder) in dg1_ddi_get_pll() argument
1654 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in dg1_ddi_get_pll()
1655 enum phy phy = intel_port_to_phy(i915, encoder->port); in dg1_ddi_get_pll()
1675 static void icl_ddi_combo_enable_clock(struct intel_encoder *encoder, in icl_ddi_combo_enable_clock() argument
1678 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_combo_enable_clock()
1680 enum phy phy = intel_port_to_phy(i915, encoder->port); in icl_ddi_combo_enable_clock()
1691 static void icl_ddi_combo_disable_clock(struct intel_encoder *encoder) in icl_ddi_combo_disable_clock() argument
1693 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_combo_disable_clock()
1694 enum phy phy = intel_port_to_phy(i915, encoder->port); in icl_ddi_combo_disable_clock()
1700 static bool icl_ddi_combo_is_clock_enabled(struct intel_encoder *encoder) in icl_ddi_combo_is_clock_enabled() argument
1702 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_combo_is_clock_enabled()
1703 enum phy phy = intel_port_to_phy(i915, encoder->port); in icl_ddi_combo_is_clock_enabled()
1709 struct intel_shared_dpll *icl_ddi_combo_get_pll(struct intel_encoder *encoder) in icl_ddi_combo_get_pll() argument
1711 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_combo_get_pll()
1712 enum phy phy = intel_port_to_phy(i915, encoder->port); in icl_ddi_combo_get_pll()
1719 static void jsl_ddi_tc_enable_clock(struct intel_encoder *encoder, in jsl_ddi_tc_enable_clock() argument
1722 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in jsl_ddi_tc_enable_clock()
1724 enum port port = encoder->port; in jsl_ddi_tc_enable_clock()
1735 icl_ddi_combo_enable_clock(encoder, crtc_state); in jsl_ddi_tc_enable_clock()
1738 static void jsl_ddi_tc_disable_clock(struct intel_encoder *encoder) in jsl_ddi_tc_disable_clock() argument
1740 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in jsl_ddi_tc_disable_clock()
1741 enum port port = encoder->port; in jsl_ddi_tc_disable_clock()
1743 icl_ddi_combo_disable_clock(encoder); in jsl_ddi_tc_disable_clock()
1748 static bool jsl_ddi_tc_is_clock_enabled(struct intel_encoder *encoder) in jsl_ddi_tc_is_clock_enabled() argument
1750 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in jsl_ddi_tc_is_clock_enabled()
1751 enum port port = encoder->port; in jsl_ddi_tc_is_clock_enabled()
1759 return icl_ddi_combo_is_clock_enabled(encoder); in jsl_ddi_tc_is_clock_enabled()
1762 static void icl_ddi_tc_enable_clock(struct intel_encoder *encoder, in icl_ddi_tc_enable_clock() argument
1765 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_tc_enable_clock()
1767 enum tc_port tc_port = intel_port_to_tc(i915, encoder->port); in icl_ddi_tc_enable_clock()
1768 enum port port = encoder->port; in icl_ddi_tc_enable_clock()
1774 icl_pll_to_ddi_clk_sel(encoder, crtc_state)); in icl_ddi_tc_enable_clock()
1784 static void icl_ddi_tc_disable_clock(struct intel_encoder *encoder) in icl_ddi_tc_disable_clock() argument
1786 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_tc_disable_clock()
1787 enum tc_port tc_port = intel_port_to_tc(i915, encoder->port); in icl_ddi_tc_disable_clock()
1788 enum port port = encoder->port; in icl_ddi_tc_disable_clock()
1800 static bool icl_ddi_tc_is_clock_enabled(struct intel_encoder *encoder) in icl_ddi_tc_is_clock_enabled() argument
1802 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_tc_is_clock_enabled()
1803 enum tc_port tc_port = intel_port_to_tc(i915, encoder->port); in icl_ddi_tc_is_clock_enabled()
1804 enum port port = encoder->port; in icl_ddi_tc_is_clock_enabled()
1817 static struct intel_shared_dpll *icl_ddi_tc_get_pll(struct intel_encoder *encoder) in icl_ddi_tc_get_pll() argument
1819 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_tc_get_pll()
1820 enum tc_port tc_port = intel_port_to_tc(i915, encoder->port); in icl_ddi_tc_get_pll()
1821 enum port port = encoder->port; in icl_ddi_tc_get_pll()
1847 static struct intel_shared_dpll *bxt_ddi_get_pll(struct intel_encoder *encoder) in bxt_ddi_get_pll() argument
1849 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in bxt_ddi_get_pll()
1852 switch (encoder->port) { in bxt_ddi_get_pll()
1863 MISSING_CASE(encoder->port); in bxt_ddi_get_pll()
1870 static void skl_ddi_enable_clock(struct intel_encoder *encoder, in skl_ddi_enable_clock() argument
1873 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in skl_ddi_enable_clock()
1875 enum port port = encoder->port; in skl_ddi_enable_clock()
1891 static void skl_ddi_disable_clock(struct intel_encoder *encoder) in skl_ddi_disable_clock() argument
1893 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in skl_ddi_disable_clock()
1894 enum port port = encoder->port; in skl_ddi_disable_clock()
1904 static bool skl_ddi_is_clock_enabled(struct intel_encoder *encoder) in skl_ddi_is_clock_enabled() argument
1906 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in skl_ddi_is_clock_enabled()
1907 enum port port = encoder->port; in skl_ddi_is_clock_enabled()
1916 static struct intel_shared_dpll *skl_ddi_get_pll(struct intel_encoder *encoder) in skl_ddi_get_pll() argument
1918 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in skl_ddi_get_pll()
1919 enum port port = encoder->port; in skl_ddi_get_pll()
1938 void hsw_ddi_enable_clock(struct intel_encoder *encoder, in hsw_ddi_enable_clock() argument
1941 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in hsw_ddi_enable_clock()
1943 enum port port = encoder->port; in hsw_ddi_enable_clock()
1951 void hsw_ddi_disable_clock(struct intel_encoder *encoder) in hsw_ddi_disable_clock() argument
1953 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in hsw_ddi_disable_clock()
1954 enum port port = encoder->port; in hsw_ddi_disable_clock()
1959 bool hsw_ddi_is_clock_enabled(struct intel_encoder *encoder) in hsw_ddi_is_clock_enabled() argument
1961 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in hsw_ddi_is_clock_enabled()
1962 enum port port = encoder->port; in hsw_ddi_is_clock_enabled()
1967 static struct intel_shared_dpll *hsw_ddi_get_pll(struct intel_encoder *encoder) in hsw_ddi_get_pll() argument
1969 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in hsw_ddi_get_pll()
1970 enum port port = encoder->port; in hsw_ddi_get_pll()
2005 void intel_ddi_enable_clock(struct intel_encoder *encoder, in intel_ddi_enable_clock() argument
2008 if (encoder->enable_clock) in intel_ddi_enable_clock()
2009 encoder->enable_clock(encoder, crtc_state); in intel_ddi_enable_clock()
2012 void intel_ddi_disable_clock(struct intel_encoder *encoder) in intel_ddi_disable_clock() argument
2014 if (encoder->disable_clock) in intel_ddi_disable_clock()
2015 encoder->disable_clock(encoder); in intel_ddi_disable_clock()
2018 void intel_ddi_sanitize_encoder_pll_mapping(struct intel_encoder *encoder) in intel_ddi_sanitize_encoder_pll_mapping() argument
2020 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_sanitize_encoder_pll_mapping()
2025 * In case of DP MST, we sanitize the primary encoder only, not the in intel_ddi_sanitize_encoder_pll_mapping()
2028 if (encoder->type == INTEL_OUTPUT_DP_MST) in intel_ddi_sanitize_encoder_pll_mapping()
2031 if (!encoder->base.crtc && intel_encoder_is_dp(encoder)) { in intel_ddi_sanitize_encoder_pll_mapping()
2035 intel_ddi_get_encoder_pipes(encoder, &pipe_mask, &is_mst); in intel_ddi_sanitize_encoder_pll_mapping()
2044 port_mask = BIT(encoder->port); in intel_ddi_sanitize_encoder_pll_mapping()
2045 ddi_clk_needed = encoder->base.crtc; in intel_ddi_sanitize_encoder_pll_mapping()
2047 if (encoder->type == INTEL_OUTPUT_DSI) { in intel_ddi_sanitize_encoder_pll_mapping()
2050 port_mask = intel_dsi_encoder_ports(encoder); in intel_ddi_sanitize_encoder_pll_mapping()
2053 * encoder using any of the ports of this DSI encoder. in intel_ddi_sanitize_encoder_pll_mapping()
2056 if (other_encoder == encoder) in intel_ddi_sanitize_encoder_pll_mapping()
2070 if (ddi_clk_needed || !encoder->is_clock_enabled || in intel_ddi_sanitize_encoder_pll_mapping()
2071 !encoder->is_clock_enabled(encoder)) in intel_ddi_sanitize_encoder_pll_mapping()
2075 "[ENCODER:%d:%s] is disabled/in DSI mode with an ungated DDI clock, gate it\n", in intel_ddi_sanitize_encoder_pll_mapping()
2076 encoder->base.base.id, encoder->base.name); in intel_ddi_sanitize_encoder_pll_mapping()
2078 encoder->disable_clock(encoder); in intel_ddi_sanitize_encoder_pll_mapping()
2175 i915_reg_t dp_tp_ctl_reg(struct intel_encoder *encoder, in dp_tp_ctl_reg() argument
2178 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in dp_tp_ctl_reg()
2183 return DP_TP_CTL(encoder->port); in dp_tp_ctl_reg()
2186 i915_reg_t dp_tp_status_reg(struct intel_encoder *encoder, in dp_tp_status_reg() argument
2189 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in dp_tp_status_reg()
2194 return DP_TP_STATUS(encoder->port); in dp_tp_status_reg()
2266 void intel_ddi_wait_for_fec_status(struct intel_encoder *encoder, in intel_ddi_wait_for_fec_status() argument
2271 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_wait_for_fec_status()
2278 ret = intel_de_wait_for_set(i915, dp_tp_status_reg(encoder, crtc_state), in intel_ddi_wait_for_fec_status()
2281 ret = intel_de_wait_for_clear(i915, dp_tp_status_reg(encoder, crtc_state), in intel_ddi_wait_for_fec_status()
2297 static void intel_ddi_enable_fec(struct intel_encoder *encoder, in intel_ddi_enable_fec() argument
2300 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_enable_fec()
2305 intel_de_rmw(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_enable_fec()
2309 static void intel_ddi_disable_fec(struct intel_encoder *encoder, in intel_ddi_disable_fec() argument
2312 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_disable_fec()
2317 intel_de_rmw(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_disable_fec()
2319 intel_de_posting_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_disable_fec()
2322 static void intel_ddi_power_up_lanes(struct intel_encoder *encoder, in intel_ddi_power_up_lanes() argument
2325 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_power_up_lanes()
2326 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_power_up_lanes()
2327 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_power_up_lanes()
2348 static void intel_ddi_mso_get_config(struct intel_encoder *encoder, in intel_ddi_mso_get_config() argument
2428 mtl_ddi_enable_d2d(struct intel_encoder *encoder) in mtl_ddi_enable_d2d() argument
2430 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in mtl_ddi_enable_d2d()
2431 enum port port = encoder->port; in mtl_ddi_enable_d2d()
2443 static void mtl_port_buf_ctl_program(struct intel_encoder *encoder, in mtl_port_buf_ctl_program() argument
2446 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in mtl_port_buf_ctl_program()
2447 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_port_buf_ctl_program()
2448 enum port port = encoder->port; in mtl_port_buf_ctl_program()
2467 static void mtl_port_buf_ctl_io_selection(struct intel_encoder *encoder) in mtl_port_buf_ctl_io_selection() argument
2469 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in mtl_port_buf_ctl_io_selection()
2470 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_port_buf_ctl_io_selection()
2475 intel_de_rmw(i915, XELPDP_PORT_BUF_CTL1(encoder->port), in mtl_port_buf_ctl_io_selection()
2480 struct intel_encoder *encoder, in mtl_ddi_pre_enable_dp() argument
2484 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in mtl_ddi_pre_enable_dp()
2495 intel_ddi_init_dp_buf_reg(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2507 mtl_port_buf_ctl_io_selection(encoder); in mtl_ddi_pre_enable_dp()
2513 intel_ddi_enable_clock(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2519 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2524 intel_ddi_config_transcoder_dp2(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2530 intel_ddi_config_transcoder_func(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2582 intel_ddi_enable_fec(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2585 intel_dsc_dp_pps_write(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2589 struct intel_encoder *encoder, in tgl_ddi_pre_enable_dp() argument
2593 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in tgl_ddi_pre_enable_dp()
2594 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in tgl_ddi_pre_enable_dp()
2595 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in tgl_ddi_pre_enable_dp()
2606 intel_ddi_init_dp_buf_reg(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2633 intel_ddi_enable_clock(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2659 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2662 intel_ddi_config_transcoder_dp2(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2668 intel_ddi_config_transcoder_func(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2679 encoder->set_signal_levels(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2685 intel_ddi_power_up_lanes(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2724 intel_ddi_enable_fec(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2727 intel_dsc_dp_pps_write(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2731 struct intel_encoder *encoder, in hsw_ddi_pre_enable_dp() argument
2735 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in hsw_ddi_pre_enable_dp()
2736 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in hsw_ddi_pre_enable_dp()
2737 enum port port = encoder->port; in hsw_ddi_pre_enable_dp()
2738 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in hsw_ddi_pre_enable_dp()
2755 intel_ddi_init_dp_buf_reg(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2759 intel_ddi_enable_clock(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2770 hsw_prepare_dp_ddi_buffers(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2772 encoder->set_signal_levels(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2774 intel_ddi_power_up_lanes(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2789 intel_ddi_enable_fec(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2792 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2793 intel_dsc_dp_pps_write(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2798 struct intel_encoder *encoder, in intel_ddi_pre_enable_dp() argument
2802 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_pre_enable_dp()
2803 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_pre_enable_dp()
2806 intel_dp_128b132b_sdp_crc16(enc_to_intel_dp(encoder), in intel_ddi_pre_enable_dp()
2814 mtl_ddi_pre_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_pre_enable_dp()
2816 tgl_ddi_pre_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_pre_enable_dp()
2818 hsw_ddi_pre_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_pre_enable_dp()
2821 * from MST encoder pre_enable callback. in intel_ddi_pre_enable_dp()
2828 struct intel_encoder *encoder, in intel_ddi_pre_enable_hdmi() argument
2832 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable_hdmi()
2834 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_pre_enable_hdmi()
2837 intel_ddi_enable_clock(encoder, crtc_state); in intel_ddi_pre_enable_hdmi()
2845 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in intel_ddi_pre_enable_hdmi()
2847 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable_hdmi()
2853 struct intel_encoder *encoder, in intel_ddi_pre_enable() argument
2864 * - encoder will be the main encoder (ie. mst->primary) in intel_ddi_pre_enable()
2879 intel_ddi_pre_enable_hdmi(state, encoder, crtc_state, in intel_ddi_pre_enable()
2882 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable()
2884 intel_ddi_pre_enable_dp(state, encoder, crtc_state, in intel_ddi_pre_enable()
2890 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable()
2897 mtl_ddi_disable_d2d_link(struct intel_encoder *encoder) in mtl_ddi_disable_d2d_link() argument
2899 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in mtl_ddi_disable_d2d_link()
2900 enum port port = encoder->port; in mtl_ddi_disable_d2d_link()
2911 static void mtl_disable_ddi_buf(struct intel_encoder *encoder, in mtl_disable_ddi_buf() argument
2914 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in mtl_disable_ddi_buf()
2915 enum port port = encoder->port; in mtl_disable_ddi_buf()
2929 mtl_ddi_disable_d2d_link(encoder); in mtl_disable_ddi_buf()
2933 intel_de_rmw(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), in mtl_disable_ddi_buf()
2938 static void disable_ddi_buf(struct intel_encoder *encoder, in disable_ddi_buf() argument
2941 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in disable_ddi_buf()
2942 enum port port = encoder->port; in disable_ddi_buf()
2954 intel_de_rmw(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), in disable_ddi_buf()
2957 intel_ddi_disable_fec(encoder, crtc_state); in disable_ddi_buf()
2963 static void intel_disable_ddi_buf(struct intel_encoder *encoder, in intel_disable_ddi_buf() argument
2966 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_disable_ddi_buf()
2969 mtl_disable_ddi_buf(encoder, crtc_state); in intel_disable_ddi_buf()
2972 intel_ddi_disable_fec(encoder, crtc_state); in intel_disable_ddi_buf()
2974 disable_ddi_buf(encoder, crtc_state); in intel_disable_ddi_buf()
2977 intel_ddi_wait_for_fec_status(encoder, crtc_state, false); in intel_disable_ddi_buf()
2981 struct intel_encoder *encoder, in intel_ddi_post_disable_dp() argument
2985 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_post_disable_dp()
2986 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_dp()
2993 intel_dp_set_infoframes(encoder, false, in intel_ddi_post_disable_dp()
3015 intel_disable_ddi_buf(encoder, old_crtc_state); in intel_ddi_post_disable_dp()
3037 intel_ddi_disable_clock(encoder); in intel_ddi_post_disable_dp()
3041 intel_de_rmw(dev_priv, XELPDP_PORT_BUF_CTL1(encoder->port), in intel_ddi_post_disable_dp()
3046 struct intel_encoder *encoder, in intel_ddi_post_disable_hdmi() argument
3050 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_post_disable_hdmi()
3051 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_hdmi()
3055 dig_port->set_infoframes(encoder, false, in intel_ddi_post_disable_hdmi()
3061 intel_disable_ddi_buf(encoder, old_crtc_state); in intel_ddi_post_disable_hdmi()
3072 intel_ddi_disable_clock(encoder); in intel_ddi_post_disable_hdmi()
3078 struct intel_encoder *encoder, in intel_ddi_post_disable() argument
3082 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_post_disable()
3114 * - encoder will be the main encoder (ie. mst->primary) in intel_ddi_post_disable()
3125 intel_ddi_post_disable_hdmi(state, encoder, old_crtc_state, in intel_ddi_post_disable()
3128 intel_ddi_post_disable_dp(state, encoder, old_crtc_state, in intel_ddi_post_disable()
3133 struct intel_encoder *encoder, in intel_ddi_post_pll_disable() argument
3137 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_post_pll_disable()
3138 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_pll_disable()
3139 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_post_pll_disable()
3149 struct intel_encoder *encoder, in trans_port_sync_stop_link_train() argument
3181 intel_dp_stop_link_train(enc_to_intel_dp(encoder), in trans_port_sync_stop_link_train()
3186 struct intel_encoder *encoder, in intel_enable_ddi_dp() argument
3190 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_enable_ddi_dp()
3191 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_enable_ddi_dp()
3192 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_enable_ddi_dp()
3193 enum port port = encoder->port; in intel_enable_ddi_dp()
3202 intel_dp_set_infoframes(encoder, true, crtc_state, conn_state); in intel_enable_ddi_dp()
3204 trans_port_sync_stop_link_train(state, encoder, crtc_state); in intel_enable_ddi_dp()
3237 struct intel_encoder *encoder, in intel_enable_ddi_hdmi() argument
3241 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_enable_ddi_hdmi()
3242 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_enable_ddi_hdmi()
3244 enum port port = encoder->port; in intel_enable_ddi_hdmi()
3248 if (!intel_hdmi_handle_sink_scrambling(encoder, connector, in intel_enable_ddi_hdmi()
3256 hsw_prepare_hdmi_ddi_buffers(encoder, crtc_state); in intel_enable_ddi_hdmi()
3260 mtl_ddi_enable_d2d(encoder); in intel_enable_ddi_hdmi()
3262 encoder->set_signal_levels(encoder, crtc_state); in intel_enable_ddi_hdmi()
3299 intel_ddi_power_up_lanes(encoder, crtc_state); in intel_enable_ddi_hdmi()
3337 struct intel_encoder *encoder, in intel_enable_ddi() argument
3344 intel_ddi_enable_transcoder_func(encoder, crtc_state); in intel_enable_ddi()
3351 intel_ddi_wait_for_fec_status(encoder, crtc_state, true); in intel_enable_ddi()
3356 intel_enable_ddi_hdmi(state, encoder, crtc_state, conn_state); in intel_enable_ddi()
3358 intel_enable_ddi_dp(state, encoder, crtc_state, conn_state); in intel_enable_ddi()
3360 intel_hdcp_enable(state, encoder, crtc_state, conn_state); in intel_enable_ddi()
3365 struct intel_encoder *encoder, in intel_disable_ddi_dp() argument
3369 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_disable_ddi_dp()
3386 struct intel_encoder *encoder, in intel_disable_ddi_hdmi() argument
3390 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_disable_ddi_hdmi()
3393 if (!intel_hdmi_handle_sink_scrambling(encoder, connector, in intel_disable_ddi_hdmi()
3401 struct intel_encoder *encoder, in intel_disable_ddi() argument
3405 intel_tc_port_link_cancel_reset_work(enc_to_dig_port(encoder)); in intel_disable_ddi()
3410 intel_disable_ddi_hdmi(state, encoder, old_crtc_state, in intel_disable_ddi()
3413 intel_disable_ddi_dp(state, encoder, old_crtc_state, in intel_disable_ddi()
3418 struct intel_encoder *encoder, in intel_ddi_update_pipe_dp() argument
3424 intel_dp_set_infoframes(encoder, true, crtc_state, conn_state); in intel_ddi_update_pipe_dp()
3426 intel_backlight_update(state, encoder, crtc_state, conn_state); in intel_ddi_update_pipe_dp()
3431 struct intel_encoder *encoder, in intel_ddi_update_pipe() argument
3437 !intel_encoder_is_mst(encoder)) in intel_ddi_update_pipe()
3438 intel_ddi_update_pipe_dp(state, encoder, crtc_state, in intel_ddi_update_pipe()
3441 intel_hdcp_update_pipe(state, encoder, crtc_state, conn_state); in intel_ddi_update_pipe()
3445 struct intel_encoder *encoder, in intel_ddi_update_active_dpll() argument
3448 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_update_active_dpll()
3452 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_update_active_dpll()
3458 intel_update_active_dpll(state, crtc, encoder); in intel_ddi_update_active_dpll()
3461 intel_update_active_dpll(state, slave_crtc, encoder); in intel_ddi_update_active_dpll()
3466 struct intel_encoder *encoder, in intel_ddi_pre_pll_enable() argument
3470 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_pre_pll_enable()
3471 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_pll_enable()
3472 enum phy phy = intel_port_to_phy(dev_priv, encoder->port); in intel_ddi_pre_pll_enable()
3480 intel_ddi_update_active_dpll(state, encoder, master_crtc); in intel_ddi_pre_pll_enable()
3492 bxt_ddi_phy_set_lane_optim_mask(encoder, in intel_ddi_pre_pll_enable()
3496 static void adlp_tbt_to_dp_alt_switch_wa(struct intel_encoder *encoder) in adlp_tbt_to_dp_alt_switch_wa() argument
3498 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in adlp_tbt_to_dp_alt_switch_wa()
3499 enum tc_port tc_port = intel_port_to_tc(i915, encoder->port); in adlp_tbt_to_dp_alt_switch_wa()
3510 struct intel_encoder *encoder = &dig_port->base; in mtl_ddi_prepare_link_retrain() local
3511 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in mtl_ddi_prepare_link_retrain()
3512 enum port port = encoder->port; in mtl_ddi_prepare_link_retrain()
3519 dp_tp_ctl = intel_de_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in mtl_ddi_prepare_link_retrain()
3521 mtl_disable_ddi_buf(encoder, crtc_state); in mtl_ddi_prepare_link_retrain()
3532 intel_de_write(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), dp_tp_ctl); in mtl_ddi_prepare_link_retrain()
3533 intel_de_posting_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in mtl_ddi_prepare_link_retrain()
3536 mtl_ddi_enable_d2d(encoder); in mtl_ddi_prepare_link_retrain()
3539 encoder->set_signal_levels(encoder, crtc_state); in mtl_ddi_prepare_link_retrain()
3542 mtl_port_buf_ctl_program(encoder, crtc_state); in mtl_ddi_prepare_link_retrain()
3557 struct intel_encoder *encoder = &dig_port->base; in intel_ddi_prepare_link_retrain() local
3558 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_prepare_link_retrain()
3559 enum port port = encoder->port; in intel_ddi_prepare_link_retrain()
3563 dp_tp_ctl = intel_de_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_prepare_link_retrain()
3574 intel_de_write(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), dp_tp_ctl); in intel_ddi_prepare_link_retrain()
3575 intel_de_posting_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_prepare_link_retrain()
3589 intel_de_write(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), dp_tp_ctl); in intel_ddi_prepare_link_retrain()
3590 intel_de_posting_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_prepare_link_retrain()
3594 adlp_tbt_to_dp_alt_switch_wa(encoder); in intel_ddi_prepare_link_retrain()
3607 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; in intel_ddi_set_link_train() local
3608 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_set_link_train()
3611 temp = intel_de_read(dev_priv, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_set_link_train()
3632 intel_de_write(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), temp); in intel_ddi_set_link_train()
3638 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; in intel_ddi_set_idle_link_train() local
3639 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_set_idle_link_train()
3640 enum port port = encoder->port; in intel_ddi_set_idle_link_train()
3642 intel_de_rmw(dev_priv, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_set_idle_link_train()
3656 dp_tp_status_reg(encoder, crtc_state), in intel_ddi_set_idle_link_train()
3773 static void intel_ddi_read_func_ctl(struct intel_encoder *encoder, in intel_ddi_read_func_ctl() argument
3776 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_read_func_ctl()
3779 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_read_func_ctl()
3816 intel_hdmi_infoframes_enabled(encoder, pipe_config); in intel_ddi_read_func_ctl()
3835 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_read_func_ctl()
3848 intel_de_read(dev_priv, dp_tp_ctl_reg(encoder, pipe_config)) & in intel_ddi_read_func_ctl()
3854 dp_tp_ctl_reg(encoder, pipe_config)) & DP_TP_CTL_FEC_ENABLE; in intel_ddi_read_func_ctl()
3858 intel_lspcon_infoframes_enabled(encoder, pipe_config); in intel_ddi_read_func_ctl()
3861 intel_hdmi_infoframes_enabled(encoder, pipe_config); in intel_ddi_read_func_ctl()
3868 intel_de_read(dev_priv, dp_tp_ctl_reg(encoder, pipe_config)) & in intel_ddi_read_func_ctl()
3888 dp_tp_ctl_reg(encoder, pipe_config)) & DP_TP_CTL_FEC_ENABLE; in intel_ddi_read_func_ctl()
3891 intel_hdmi_infoframes_enabled(encoder, pipe_config); in intel_ddi_read_func_ctl()
3898 static void intel_ddi_get_config(struct intel_encoder *encoder, in intel_ddi_get_config() argument
3901 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_get_config()
3908 intel_ddi_read_func_ctl(encoder, pipe_config); in intel_ddi_get_config()
3910 intel_ddi_mso_get_config(encoder, pipe_config); in intel_ddi_get_config()
3915 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_get_config()
3916 intel_edp_fixup_vbt_bpp(encoder, pipe_config->pipe_bpp); in intel_ddi_get_config()
3922 bxt_ddi_phy_get_lane_lat_optim_mask(encoder); in intel_ddi_get_config()
3926 intel_hdmi_read_gcp_infoframe(encoder, pipe_config); in intel_ddi_get_config()
3928 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
3931 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
3934 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
3937 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
3944 intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA); in intel_ddi_get_config()
3945 intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC); in intel_ddi_get_config()
3947 intel_psr_get_config(encoder, pipe_config); in intel_ddi_get_config()
3949 intel_audio_codec_get_config(encoder, pipe_config); in intel_ddi_get_config()
3952 void intel_ddi_get_clock(struct intel_encoder *encoder, in intel_ddi_get_clock() argument
3956 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_get_clock()
3974 static void mtl_ddi_get_config(struct intel_encoder *encoder, in mtl_ddi_get_config() argument
3977 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_ddi_get_config()
3980 crtc_state->port_clock = intel_mtl_tbt_calc_port_clock(encoder); in mtl_ddi_get_config()
3982 intel_cx0pll_readout_hw_state(encoder, &crtc_state->cx0pll_state); in mtl_ddi_get_config()
3983 crtc_state->port_clock = intel_cx0pll_calc_port_clock(encoder, &crtc_state->cx0pll_state); in mtl_ddi_get_config()
3986 intel_ddi_get_config(encoder, crtc_state); in mtl_ddi_get_config()
3989 static void dg2_ddi_get_config(struct intel_encoder *encoder, in dg2_ddi_get_config() argument
3992 intel_mpllb_readout_hw_state(encoder, &crtc_state->mpllb_state); in dg2_ddi_get_config()
3993 crtc_state->port_clock = intel_mpllb_calc_port_clock(encoder, &crtc_state->mpllb_state); in dg2_ddi_get_config()
3995 intel_ddi_get_config(encoder, crtc_state); in dg2_ddi_get_config()
3998 static void adls_ddi_get_config(struct intel_encoder *encoder, in adls_ddi_get_config() argument
4001 intel_ddi_get_clock(encoder, crtc_state, adls_ddi_get_pll(encoder)); in adls_ddi_get_config()
4002 intel_ddi_get_config(encoder, crtc_state); in adls_ddi_get_config()
4005 static void rkl_ddi_get_config(struct intel_encoder *encoder, in rkl_ddi_get_config() argument
4008 intel_ddi_get_clock(encoder, crtc_state, rkl_ddi_get_pll(encoder)); in rkl_ddi_get_config()
4009 intel_ddi_get_config(encoder, crtc_state); in rkl_ddi_get_config()
4012 static void dg1_ddi_get_config(struct intel_encoder *encoder, in dg1_ddi_get_config() argument
4015 intel_ddi_get_clock(encoder, crtc_state, dg1_ddi_get_pll(encoder)); in dg1_ddi_get_config()
4016 intel_ddi_get_config(encoder, crtc_state); in dg1_ddi_get_config()
4019 static void icl_ddi_combo_get_config(struct intel_encoder *encoder, in icl_ddi_combo_get_config() argument
4022 intel_ddi_get_clock(encoder, crtc_state, icl_ddi_combo_get_pll(encoder)); in icl_ddi_combo_get_config()
4023 intel_ddi_get_config(encoder, crtc_state); in icl_ddi_combo_get_config()
4032 icl_ddi_tc_port_pll_type(struct intel_encoder *encoder, in icl_ddi_tc_port_pll_type() argument
4035 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_tc_port_pll_type()
4048 intel_ddi_port_pll_type(struct intel_encoder *encoder, in intel_ddi_port_pll_type() argument
4051 if (!encoder->port_pll_type) in intel_ddi_port_pll_type()
4054 return encoder->port_pll_type(encoder, crtc_state); in intel_ddi_port_pll_type()
4057 static void icl_ddi_tc_get_clock(struct intel_encoder *encoder, in icl_ddi_tc_get_clock() argument
4061 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in icl_ddi_tc_get_clock()
4083 crtc_state->port_clock = icl_calc_tbt_pll_link(i915, encoder->port); in icl_ddi_tc_get_clock()
4089 static void icl_ddi_tc_get_config(struct intel_encoder *encoder, in icl_ddi_tc_get_config() argument
4092 icl_ddi_tc_get_clock(encoder, crtc_state, icl_ddi_tc_get_pll(encoder)); in icl_ddi_tc_get_config()
4093 intel_ddi_get_config(encoder, crtc_state); in icl_ddi_tc_get_config()
4096 static void bxt_ddi_get_config(struct intel_encoder *encoder, in bxt_ddi_get_config() argument
4099 intel_ddi_get_clock(encoder, crtc_state, bxt_ddi_get_pll(encoder)); in bxt_ddi_get_config()
4100 intel_ddi_get_config(encoder, crtc_state); in bxt_ddi_get_config()
4103 static void skl_ddi_get_config(struct intel_encoder *encoder, in skl_ddi_get_config() argument
4106 intel_ddi_get_clock(encoder, crtc_state, skl_ddi_get_pll(encoder)); in skl_ddi_get_config()
4107 intel_ddi_get_config(encoder, crtc_state); in skl_ddi_get_config()
4110 void hsw_ddi_get_config(struct intel_encoder *encoder, in hsw_ddi_get_config() argument
4113 intel_ddi_get_clock(encoder, crtc_state, hsw_ddi_get_pll(encoder)); in hsw_ddi_get_config()
4114 intel_ddi_get_config(encoder, crtc_state); in hsw_ddi_get_config()
4117 static void intel_ddi_sync_state(struct intel_encoder *encoder, in intel_ddi_sync_state() argument
4120 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_sync_state()
4121 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_sync_state()
4124 intel_tc_port_sanitize_mode(enc_to_dig_port(encoder), in intel_ddi_sync_state()
4128 intel_dp_sync_state(encoder, crtc_state); in intel_ddi_sync_state()
4131 static bool intel_ddi_initial_fastset_check(struct intel_encoder *encoder, in intel_ddi_initial_fastset_check() argument
4134 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_initial_fastset_check()
4135 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_initial_fastset_check()
4139 drm_dbg_kms(&i915->drm, "[ENCODER:%d:%s] Forcing full modeset to compute TC port DPLLs\n", in intel_ddi_initial_fastset_check()
4140 encoder->base.base.id, encoder->base.name); in intel_ddi_initial_fastset_check()
4146 !intel_dp_initial_fastset_check(encoder, crtc_state)) in intel_ddi_initial_fastset_check()
4153 intel_ddi_compute_output_type(struct intel_encoder *encoder, in intel_ddi_compute_output_type() argument
4170 static int intel_ddi_compute_config(struct intel_encoder *encoder, in intel_ddi_compute_config() argument
4175 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_ddi_compute_config()
4176 enum port port = encoder->port; in intel_ddi_compute_config()
4184 intel_hdmi_compute_has_hdmi_sink(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
4186 ret = intel_hdmi_compute_config(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
4188 ret = intel_dp_compute_config(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
4286 static int intel_ddi_compute_config_late(struct intel_encoder *encoder, in intel_ddi_compute_config_late() argument
4290 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_compute_config_late()
4294 drm_dbg_kms(&i915->drm, "[ENCODER:%d:%s] [CRTC:%d:%s]\n", in intel_ddi_compute_config_late()
4295 encoder->base.base.id, encoder->base.name, in intel_ddi_compute_config_late()
4320 static void intel_ddi_encoder_destroy(struct drm_encoder *encoder) in intel_ddi_encoder_destroy() argument
4322 struct drm_i915_private *i915 = to_i915(encoder->dev); in intel_ddi_encoder_destroy()
4323 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_destroy()
4326 intel_dp_encoder_flush_work(encoder); in intel_ddi_encoder_destroy()
4331 drm_encoder_cleanup(encoder); in intel_ddi_encoder_destroy()
4336 static void intel_ddi_encoder_reset(struct drm_encoder *encoder) in intel_ddi_encoder_reset() argument
4338 struct drm_i915_private *i915 = to_i915(encoder->dev); in intel_ddi_encoder_reset()
4339 struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(encoder)); in intel_ddi_encoder_reset()
4340 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_reset()
4353 struct intel_encoder *encoder = to_intel_encoder(_encoder); in intel_ddi_encoder_late_register() local
4355 intel_tc_port_link_reset(enc_to_dig_port(encoder)); in intel_ddi_encoder_late_register()
4438 static int intel_hdmi_reset_link(struct intel_encoder *encoder, in intel_hdmi_reset_link() argument
4441 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in intel_hdmi_reset_link()
4442 struct intel_hdmi *hdmi = enc_to_intel_hdmi(encoder); in intel_hdmi_reset_link()
4511 intel_ddi_hotplug(struct intel_encoder *encoder, in intel_ddi_hotplug() argument
4514 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in intel_ddi_hotplug()
4515 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_hotplug()
4517 enum phy phy = intel_port_to_phy(i915, encoder->port); in intel_ddi_hotplug()
4525 intel_dp_phy_test(encoder); in intel_ddi_hotplug()
4530 state = intel_encoder_hotplug(encoder, connector); in intel_ddi_hotplug()
4535 ret = intel_hdmi_reset_link(encoder, &ctx); in intel_ddi_hotplug()
4537 ret = intel_dp_retrain_link(encoder, &ctx); in intel_ddi_hotplug()
4540 drm_WARN_ON(encoder->base.dev, ret); in intel_ddi_hotplug()
4573 static bool lpt_digital_port_connected(struct intel_encoder *encoder) in lpt_digital_port_connected() argument
4575 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in lpt_digital_port_connected()
4576 u32 bit = dev_priv->display.hotplug.pch_hpd[encoder->hpd_pin]; in lpt_digital_port_connected()
4581 static bool hsw_digital_port_connected(struct intel_encoder *encoder) in hsw_digital_port_connected() argument
4583 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in hsw_digital_port_connected()
4584 u32 bit = dev_priv->display.hotplug.hpd[encoder->hpd_pin]; in hsw_digital_port_connected()
4589 static bool bdw_digital_port_connected(struct intel_encoder *encoder) in bdw_digital_port_connected() argument
4591 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); in bdw_digital_port_connected()
4592 u32 bit = dev_priv->display.hotplug.hpd[encoder->hpd_pin]; in bdw_digital_port_connected()
4745 static void intel_ddi_encoder_suspend(struct intel_encoder *encoder) in intel_ddi_encoder_suspend() argument
4747 intel_dp_encoder_suspend(encoder); in intel_ddi_encoder_suspend()
4750 static void intel_ddi_tc_encoder_suspend_complete(struct intel_encoder *encoder) in intel_ddi_tc_encoder_suspend_complete() argument
4752 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_tc_encoder_suspend_complete()
4758 static void intel_ddi_encoder_shutdown(struct intel_encoder *encoder) in intel_ddi_encoder_shutdown() argument
4760 intel_dp_encoder_shutdown(encoder); in intel_ddi_encoder_shutdown()
4761 intel_hdmi_encoder_shutdown(encoder); in intel_ddi_encoder_shutdown()
4764 static void intel_ddi_tc_encoder_shutdown_complete(struct intel_encoder *encoder) in intel_ddi_tc_encoder_shutdown_complete() argument
4766 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_tc_encoder_shutdown_complete()
4798 static bool need_aux_ch(struct intel_encoder *encoder, bool init_dp) in need_aux_ch() argument
4800 struct drm_i915_private *i915 = to_i915(encoder->base.dev); in need_aux_ch()
4801 enum phy phy = intel_port_to_phy(i915, encoder->port); in need_aux_ch()
4815 struct intel_encoder *encoder; in port_in_use() local
4817 for_each_intel_encoder(&i915->drm, encoder) { in port_in_use()
4819 if (encoder->port == port) in port_in_use()
4830 struct intel_encoder *encoder; in intel_ddi_init() local
4913 encoder = &dig_port->base; in intel_ddi_init()
4914 encoder->devdata = devdata; in intel_ddi_init()
4917 drm_encoder_init(&dev_priv->drm, &encoder->base, &intel_ddi_funcs, in intel_ddi_init()
4925 drm_encoder_init(&dev_priv->drm, &encoder->base, &intel_ddi_funcs, in intel_ddi_init()
4935 drm_encoder_init(&dev_priv->drm, &encoder->base, &intel_ddi_funcs, in intel_ddi_init()
4943 drm_encoder_init(&dev_priv->drm, &encoder->base, &intel_ddi_funcs, in intel_ddi_init()
4951 encoder->hotplug = intel_ddi_hotplug; in intel_ddi_init()
4952 encoder->compute_output_type = intel_ddi_compute_output_type; in intel_ddi_init()
4953 encoder->compute_config = intel_ddi_compute_config; in intel_ddi_init()
4954 encoder->compute_config_late = intel_ddi_compute_config_late; in intel_ddi_init()
4955 encoder->enable = intel_enable_ddi; in intel_ddi_init()
4956 encoder->pre_pll_enable = intel_ddi_pre_pll_enable; in intel_ddi_init()
4957 encoder->pre_enable = intel_ddi_pre_enable; in intel_ddi_init()
4958 encoder->disable = intel_disable_ddi; in intel_ddi_init()
4959 encoder->post_pll_disable = intel_ddi_post_pll_disable; in intel_ddi_init()
4960 encoder->post_disable = intel_ddi_post_disable; in intel_ddi_init()
4961 encoder->update_pipe = intel_ddi_update_pipe; in intel_ddi_init()
4962 encoder->audio_enable = intel_audio_codec_enable; in intel_ddi_init()
4963 encoder->audio_disable = intel_audio_codec_disable; in intel_ddi_init()
4964 encoder->get_hw_state = intel_ddi_get_hw_state; in intel_ddi_init()
4965 encoder->sync_state = intel_ddi_sync_state; in intel_ddi_init()
4966 encoder->initial_fastset_check = intel_ddi_initial_fastset_check; in intel_ddi_init()
4967 encoder->suspend = intel_ddi_encoder_suspend; in intel_ddi_init()
4968 encoder->shutdown = intel_ddi_encoder_shutdown; in intel_ddi_init()
4969 encoder->get_power_domains = intel_ddi_get_power_domains; in intel_ddi_init()
4971 encoder->type = INTEL_OUTPUT_DDI; in intel_ddi_init()
4972 encoder->power_domain = intel_display_power_ddi_lanes_domain(dev_priv, port); in intel_ddi_init()
4973 encoder->port = port; in intel_ddi_init()
4974 encoder->cloneable = 0; in intel_ddi_init()
4975 encoder->pipe_mask = ~0; in intel_ddi_init()
4978 encoder->enable_clock = intel_mtl_pll_enable; in intel_ddi_init()
4979 encoder->disable_clock = intel_mtl_pll_disable; in intel_ddi_init()
4980 encoder->port_pll_type = intel_mtl_port_pll_type; in intel_ddi_init()
4981 encoder->get_config = mtl_ddi_get_config; in intel_ddi_init()
4983 encoder->enable_clock = intel_mpllb_enable; in intel_ddi_init()
4984 encoder->disable_clock = intel_mpllb_disable; in intel_ddi_init()
4985 encoder->get_config = dg2_ddi_get_config; in intel_ddi_init()
4987 encoder->enable_clock = adls_ddi_enable_clock; in intel_ddi_init()
4988 encoder->disable_clock = adls_ddi_disable_clock; in intel_ddi_init()
4989 encoder->is_clock_enabled = adls_ddi_is_clock_enabled; in intel_ddi_init()
4990 encoder->get_config = adls_ddi_get_config; in intel_ddi_init()
4992 encoder->enable_clock = rkl_ddi_enable_clock; in intel_ddi_init()
4993 encoder->disable_clock = rkl_ddi_disable_clock; in intel_ddi_init()
4994 encoder->is_clock_enabled = rkl_ddi_is_clock_enabled; in intel_ddi_init()
4995 encoder->get_config = rkl_ddi_get_config; in intel_ddi_init()
4997 encoder->enable_clock = dg1_ddi_enable_clock; in intel_ddi_init()
4998 encoder->disable_clock = dg1_ddi_disable_clock; in intel_ddi_init()
4999 encoder->is_clock_enabled = dg1_ddi_is_clock_enabled; in intel_ddi_init()
5000 encoder->get_config = dg1_ddi_get_config; in intel_ddi_init()
5003 encoder->enable_clock = jsl_ddi_tc_enable_clock; in intel_ddi_init()
5004 encoder->disable_clock = jsl_ddi_tc_disable_clock; in intel_ddi_init()
5005 encoder->is_clock_enabled = jsl_ddi_tc_is_clock_enabled; in intel_ddi_init()
5006 encoder->port_pll_type = icl_ddi_tc_port_pll_type; in intel_ddi_init()
5007 encoder->get_config = icl_ddi_combo_get_config; in intel_ddi_init()
5009 encoder->enable_clock = icl_ddi_combo_enable_clock; in intel_ddi_init()
5010 encoder->disable_clock = icl_ddi_combo_disable_clock; in intel_ddi_init()
5011 encoder->is_clock_enabled = icl_ddi_combo_is_clock_enabled; in intel_ddi_init()
5012 encoder->get_config = icl_ddi_combo_get_config; in intel_ddi_init()
5016 encoder->enable_clock = icl_ddi_tc_enable_clock; in intel_ddi_init()
5017 encoder->disable_clock = icl_ddi_tc_disable_clock; in intel_ddi_init()
5018 encoder->is_clock_enabled = icl_ddi_tc_is_clock_enabled; in intel_ddi_init()
5019 encoder->port_pll_type = icl_ddi_tc_port_pll_type; in intel_ddi_init()
5020 encoder->get_config = icl_ddi_tc_get_config; in intel_ddi_init()
5022 encoder->enable_clock = icl_ddi_combo_enable_clock; in intel_ddi_init()
5023 encoder->disable_clock = icl_ddi_combo_disable_clock; in intel_ddi_init()
5024 encoder->is_clock_enabled = icl_ddi_combo_is_clock_enabled; in intel_ddi_init()
5025 encoder->get_config = icl_ddi_combo_get_config; in intel_ddi_init()
5029 encoder->get_config = bxt_ddi_get_config; in intel_ddi_init()
5031 encoder->enable_clock = skl_ddi_enable_clock; in intel_ddi_init()
5032 encoder->disable_clock = skl_ddi_disable_clock; in intel_ddi_init()
5033 encoder->is_clock_enabled = skl_ddi_is_clock_enabled; in intel_ddi_init()
5034 encoder->get_config = skl_ddi_get_config; in intel_ddi_init()
5036 encoder->enable_clock = hsw_ddi_enable_clock; in intel_ddi_init()
5037 encoder->disable_clock = hsw_ddi_disable_clock; in intel_ddi_init()
5038 encoder->is_clock_enabled = hsw_ddi_is_clock_enabled; in intel_ddi_init()
5039 encoder->get_config = hsw_ddi_get_config; in intel_ddi_init()
5043 encoder->set_signal_levels = intel_cx0_phy_set_signal_levels; in intel_ddi_init()
5045 encoder->set_signal_levels = intel_snps_phy_set_signal_levels; in intel_ddi_init()
5048 encoder->set_signal_levels = icl_combo_phy_set_signal_levels; in intel_ddi_init()
5050 encoder->set_signal_levels = tgl_dkl_phy_set_signal_levels; in intel_ddi_init()
5053 encoder->set_signal_levels = icl_combo_phy_set_signal_levels; in intel_ddi_init()
5055 encoder->set_signal_levels = icl_mg_phy_set_signal_levels; in intel_ddi_init()
5057 encoder->set_signal_levels = bxt_ddi_phy_set_signal_levels; in intel_ddi_init()
5059 encoder->set_signal_levels = hsw_set_signal_levels; in intel_ddi_init()
5062 intel_ddi_buf_trans_init(encoder); in intel_ddi_init()
5065 encoder->hpd_pin = xelpd_hpd_pin(dev_priv, port); in intel_ddi_init()
5067 encoder->hpd_pin = dg1_hpd_pin(dev_priv, port); in intel_ddi_init()
5069 encoder->hpd_pin = rkl_hpd_pin(dev_priv, port); in intel_ddi_init()
5071 encoder->hpd_pin = tgl_hpd_pin(dev_priv, port); in intel_ddi_init()
5073 encoder->hpd_pin = ehl_hpd_pin(dev_priv, port); in intel_ddi_init()
5075 encoder->hpd_pin = icl_hpd_pin(dev_priv, port); in intel_ddi_init()
5077 encoder->hpd_pin = skl_hpd_pin(dev_priv, port); in intel_ddi_init()
5079 encoder->hpd_pin = intel_hpd_pin_default(dev_priv, port); in intel_ddi_init()
5096 if (need_aux_ch(encoder, init_dp)) { in intel_ddi_init()
5097 dig_port->aux_ch = intel_dp_aux_ch(encoder); in intel_ddi_init()
5117 encoder->suspend_complete = intel_ddi_tc_encoder_suspend_complete; in intel_ddi_init()
5118 encoder->shutdown_complete = intel_ddi_tc_encoder_shutdown_complete; in intel_ddi_init()
5157 encoder->pipe_mask = intel_ddi_splitter_pipe_mask(dev_priv); in intel_ddi_init()
5161 * In theory we don't need the encoder->type check, in intel_ddi_init()
5164 if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { in intel_ddi_init()
5172 drm_encoder_cleanup(&encoder->base); in intel_ddi_init()