Lines Matching refs:encoder

107 static int intel_ddi_hdmi_level(struct intel_encoder *encoder,  in intel_ddi_hdmi_level()  argument
112 level = intel_bios_hdmi_level_shift(encoder->devdata); in intel_ddi_hdmi_level()
134 void hsw_prepare_dp_ddi_buffers(struct intel_encoder *encoder, in hsw_prepare_dp_ddi_buffers() argument
137 struct intel_display *display = to_intel_display(encoder); in hsw_prepare_dp_ddi_buffers()
140 enum port port = encoder->port; in hsw_prepare_dp_ddi_buffers()
143 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in hsw_prepare_dp_ddi_buffers()
149 intel_bios_dp_boost_level(encoder->devdata)) in hsw_prepare_dp_ddi_buffers()
165 static void hsw_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder, in hsw_prepare_hdmi_ddi_buffers() argument
168 struct intel_display *display = to_intel_display(encoder); in hsw_prepare_hdmi_ddi_buffers()
169 int level = intel_ddi_level(encoder, crtc_state, 0); in hsw_prepare_hdmi_ddi_buffers()
172 enum port port = encoder->port; in hsw_prepare_hdmi_ddi_buffers()
175 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in hsw_prepare_hdmi_ddi_buffers()
181 intel_bios_hdmi_boost_level(encoder->devdata)) in hsw_prepare_hdmi_ddi_buffers()
221 static void intel_wait_ddi_buf_active(struct intel_encoder *encoder) in intel_wait_ddi_buf_active() argument
223 struct intel_display *display = to_intel_display(encoder); in intel_wait_ddi_buf_active()
224 enum port port = encoder->port; in intel_wait_ddi_buf_active()
267 static u32 icl_pll_to_ddi_clk_sel(struct intel_encoder *encoder, in icl_pll_to_ddi_clk_sel() argument
353 static void intel_ddi_init_dp_buf_reg(struct intel_encoder *encoder, in intel_ddi_init_dp_buf_reg() argument
356 struct intel_display *display = to_intel_display(encoder); in intel_ddi_init_dp_buf_reg()
357 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_init_dp_buf_reg()
358 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_init_dp_buf_reg()
376 if (display->platform.alderlake_p && intel_encoder_is_tc(encoder)) { in intel_ddi_init_dp_buf_reg()
382 if (IS_DISPLAY_VER(display, 11, 13) && intel_encoder_is_tc(encoder)) { in intel_ddi_init_dp_buf_reg()
514 intel_ddi_transcoder_func_reg_val_get(struct intel_encoder *encoder, in intel_ddi_transcoder_func_reg_val_get() argument
521 enum port port = encoder->port; in intel_ddi_transcoder_func_reg_val_get()
627 void intel_ddi_enable_transcoder_func(struct intel_encoder *encoder, in intel_ddi_enable_transcoder_func() argument
651 intel_ddi_transcoder_func_reg_val_get(encoder, in intel_ddi_enable_transcoder_func()
661 intel_ddi_config_transcoder_func(struct intel_encoder *encoder, in intel_ddi_config_transcoder_func() argument
670 ctl = intel_ddi_transcoder_func_reg_val_get(encoder, crtc_state); in intel_ddi_config_transcoder_func()
750 struct intel_encoder *encoder = intel_attached_encoder(intel_connector); in intel_ddi_connector_get_hw_state() local
752 enum port port = encoder->port; in intel_ddi_connector_get_hw_state()
760 encoder->power_domain); in intel_ddi_connector_get_hw_state()
765 if (!encoder->get_hw_state(encoder, &pipe)) { in intel_ddi_connector_get_hw_state()
800 intel_display_power_put(display, encoder->power_domain, wakeref); in intel_ddi_connector_get_hw_state()
805 static void intel_ddi_get_encoder_pipes(struct intel_encoder *encoder, in intel_ddi_get_encoder_pipes() argument
808 struct intel_display *display = to_intel_display(encoder); in intel_ddi_get_encoder_pipes()
809 enum port port = encoder->port; in intel_ddi_get_encoder_pipes()
819 encoder->power_domain); in intel_ddi_get_encoder_pipes()
889 encoder->base.base.id, encoder->base.name); in intel_ddi_get_encoder_pipes()
892 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_get_encoder_pipes()
912 encoder->base.base.id, encoder->base.name, in intel_ddi_get_encoder_pipes()
920 encoder->base.base.id, encoder->base.name, in intel_ddi_get_encoder_pipes()
933 encoder->base.base.id, encoder->base.name, tmp); in intel_ddi_get_encoder_pipes()
936 intel_display_power_put(display, encoder->power_domain, wakeref); in intel_ddi_get_encoder_pipes()
939 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, in intel_ddi_get_hw_state() argument
945 intel_ddi_get_encoder_pipes(encoder, &pipe_mask, &is_mst); in intel_ddi_get_hw_state()
1016 static void intel_ddi_get_power_domains(struct intel_encoder *encoder, in intel_ddi_get_power_domains() argument
1019 struct intel_display *display = to_intel_display(encoder); in intel_ddi_get_power_domains()
1031 dig_port = enc_to_dig_port(encoder); in intel_ddi_get_power_domains()
1042 void intel_ddi_enable_transcoder_clock(struct intel_encoder *encoder, in intel_ddi_enable_transcoder_clock() argument
1047 enum phy phy = intel_encoder_to_phy(encoder); in intel_ddi_enable_transcoder_clock()
1056 val = TGL_TRANS_CLK_SEL_PORT(encoder->port); in intel_ddi_enable_transcoder_clock()
1058 val = TRANS_CLK_SEL_PORT(encoder->port); in intel_ddi_enable_transcoder_clock()
1094 static void skl_ddi_set_iboost(struct intel_encoder *encoder, in skl_ddi_set_iboost() argument
1098 struct intel_display *display = to_intel_display(encoder); in skl_ddi_set_iboost()
1099 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in skl_ddi_set_iboost()
1103 iboost = intel_bios_hdmi_boost_level(encoder->devdata); in skl_ddi_set_iboost()
1105 iboost = intel_bios_dp_boost_level(encoder->devdata); in skl_ddi_set_iboost()
1111 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in skl_ddi_set_iboost()
1124 _skl_ddi_set_iboost(display, encoder->port, iboost); in skl_ddi_set_iboost()
1126 if (encoder->port == PORT_A && dig_port->max_lanes == 4) in skl_ddi_set_iboost()
1134 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; in intel_ddi_dp_voltage_max() local
1137 intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in intel_ddi_dp_voltage_max()
1171 static void icl_ddi_combo_vswing_program(struct intel_encoder *encoder, in icl_ddi_combo_vswing_program() argument
1174 struct intel_display *display = to_intel_display(encoder); in icl_ddi_combo_vswing_program()
1176 enum phy phy = intel_encoder_to_phy(encoder); in icl_ddi_combo_vswing_program()
1180 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in icl_ddi_combo_vswing_program()
1185 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in icl_ddi_combo_vswing_program()
1205 int level = intel_ddi_level(encoder, crtc_state, ln); in icl_ddi_combo_vswing_program()
1217 int level = intel_ddi_level(encoder, crtc_state, ln); in icl_ddi_combo_vswing_program()
1228 int level = intel_ddi_level(encoder, crtc_state, ln); in icl_ddi_combo_vswing_program()
1236 static void icl_combo_phy_set_signal_levels(struct intel_encoder *encoder, in icl_combo_phy_set_signal_levels() argument
1239 struct intel_display *display = to_intel_display(encoder); in icl_combo_phy_set_signal_levels()
1240 enum phy phy = intel_encoder_to_phy(encoder); in icl_combo_phy_set_signal_levels()
1279 icl_ddi_combo_vswing_program(encoder, crtc_state); in icl_combo_phy_set_signal_levels()
1287 static void icl_mg_phy_set_signal_levels(struct intel_encoder *encoder, in icl_mg_phy_set_signal_levels() argument
1290 struct intel_display *display = to_intel_display(encoder); in icl_mg_phy_set_signal_levels()
1291 enum tc_port tc_port = intel_encoder_to_tc(encoder); in icl_mg_phy_set_signal_levels()
1295 if (intel_tc_port_in_tbt_alt_mode(enc_to_dig_port(encoder))) in icl_mg_phy_set_signal_levels()
1298 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in icl_mg_phy_set_signal_levels()
1313 level = intel_ddi_level(encoder, crtc_state, 2*ln+0); in icl_mg_phy_set_signal_levels()
1319 level = intel_ddi_level(encoder, crtc_state, 2*ln+1); in icl_mg_phy_set_signal_levels()
1330 level = intel_ddi_level(encoder, crtc_state, 2*ln+0); in icl_mg_phy_set_signal_levels()
1339 level = intel_ddi_level(encoder, crtc_state, 2*ln+1); in icl_mg_phy_set_signal_levels()
1388 static void tgl_dkl_phy_set_signal_levels(struct intel_encoder *encoder, in tgl_dkl_phy_set_signal_levels() argument
1391 struct intel_display *display = to_intel_display(encoder); in tgl_dkl_phy_set_signal_levels()
1392 enum tc_port tc_port = intel_encoder_to_tc(encoder); in tgl_dkl_phy_set_signal_levels()
1396 if (intel_tc_port_in_tbt_alt_mode(enc_to_dig_port(encoder))) in tgl_dkl_phy_set_signal_levels()
1399 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in tgl_dkl_phy_set_signal_levels()
1408 if ((intel_encoder_is_hdmi(encoder) && in tgl_dkl_phy_set_signal_levels()
1410 (intel_encoder_is_dp(encoder) && in tgl_dkl_phy_set_signal_levels()
1422 level = intel_ddi_level(encoder, crtc_state, 2*ln+0); in tgl_dkl_phy_set_signal_levels()
1432 level = intel_ddi_level(encoder, crtc_state, 2*ln+1); in tgl_dkl_phy_set_signal_levels()
1508 int intel_ddi_level(struct intel_encoder *encoder, in intel_ddi_level() argument
1512 struct intel_display *display = to_intel_display(encoder); in intel_ddi_level()
1516 trans = intel_ddi_buf_trans_get(encoder, crtc_state, &n_entries); in intel_ddi_level()
1521 level = intel_ddi_hdmi_level(encoder, trans); in intel_ddi_level()
1523 level = intel_ddi_dp_level(enc_to_intel_dp(encoder), crtc_state, in intel_ddi_level()
1532 int intel_ddi_link_symbol_clock(struct intel_encoder *encoder, int clock) in intel_ddi_link_symbol_clock() argument
1534 if (intel_encoder_is_dp(encoder)) in intel_ddi_link_symbol_clock()
1544 hsw_set_signal_levels(struct intel_encoder *encoder, in hsw_set_signal_levels() argument
1547 struct intel_display *display = to_intel_display(encoder); in hsw_set_signal_levels()
1548 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in hsw_set_signal_levels()
1549 int level = intel_ddi_level(encoder, crtc_state, 0); in hsw_set_signal_levels()
1550 enum port port = encoder->port; in hsw_set_signal_levels()
1554 skl_ddi_set_iboost(encoder, crtc_state, level); in hsw_set_signal_levels()
1615 static void adls_ddi_enable_clock(struct intel_encoder *encoder, in adls_ddi_enable_clock() argument
1618 struct intel_display *display = to_intel_display(encoder); in adls_ddi_enable_clock()
1620 enum phy phy = intel_encoder_to_phy(encoder); in adls_ddi_enable_clock()
1631 static void adls_ddi_disable_clock(struct intel_encoder *encoder) in adls_ddi_disable_clock() argument
1633 struct intel_display *display = to_intel_display(encoder); in adls_ddi_disable_clock()
1634 enum phy phy = intel_encoder_to_phy(encoder); in adls_ddi_disable_clock()
1640 static bool adls_ddi_is_clock_enabled(struct intel_encoder *encoder) in adls_ddi_is_clock_enabled() argument
1642 struct intel_display *display = to_intel_display(encoder); in adls_ddi_is_clock_enabled()
1643 enum phy phy = intel_encoder_to_phy(encoder); in adls_ddi_is_clock_enabled()
1649 static struct intel_dpll *adls_ddi_get_pll(struct intel_encoder *encoder) in adls_ddi_get_pll() argument
1651 struct intel_display *display = to_intel_display(encoder); in adls_ddi_get_pll()
1652 enum phy phy = intel_encoder_to_phy(encoder); in adls_ddi_get_pll()
1659 static void rkl_ddi_enable_clock(struct intel_encoder *encoder, in rkl_ddi_enable_clock() argument
1662 struct intel_display *display = to_intel_display(encoder); in rkl_ddi_enable_clock()
1664 enum phy phy = intel_encoder_to_phy(encoder); in rkl_ddi_enable_clock()
1675 static void rkl_ddi_disable_clock(struct intel_encoder *encoder) in rkl_ddi_disable_clock() argument
1677 struct intel_display *display = to_intel_display(encoder); in rkl_ddi_disable_clock()
1678 enum phy phy = intel_encoder_to_phy(encoder); in rkl_ddi_disable_clock()
1684 static bool rkl_ddi_is_clock_enabled(struct intel_encoder *encoder) in rkl_ddi_is_clock_enabled() argument
1686 struct intel_display *display = to_intel_display(encoder); in rkl_ddi_is_clock_enabled()
1687 enum phy phy = intel_encoder_to_phy(encoder); in rkl_ddi_is_clock_enabled()
1693 static struct intel_dpll *rkl_ddi_get_pll(struct intel_encoder *encoder) in rkl_ddi_get_pll() argument
1695 struct intel_display *display = to_intel_display(encoder); in rkl_ddi_get_pll()
1696 enum phy phy = intel_encoder_to_phy(encoder); in rkl_ddi_get_pll()
1703 static void dg1_ddi_enable_clock(struct intel_encoder *encoder, in dg1_ddi_enable_clock() argument
1706 struct intel_display *display = to_intel_display(encoder); in dg1_ddi_enable_clock()
1708 enum phy phy = intel_encoder_to_phy(encoder); in dg1_ddi_enable_clock()
1728 static void dg1_ddi_disable_clock(struct intel_encoder *encoder) in dg1_ddi_disable_clock() argument
1730 struct intel_display *display = to_intel_display(encoder); in dg1_ddi_disable_clock()
1731 enum phy phy = intel_encoder_to_phy(encoder); in dg1_ddi_disable_clock()
1737 static bool dg1_ddi_is_clock_enabled(struct intel_encoder *encoder) in dg1_ddi_is_clock_enabled() argument
1739 struct intel_display *display = to_intel_display(encoder); in dg1_ddi_is_clock_enabled()
1740 enum phy phy = intel_encoder_to_phy(encoder); in dg1_ddi_is_clock_enabled()
1746 static struct intel_dpll *dg1_ddi_get_pll(struct intel_encoder *encoder) in dg1_ddi_get_pll() argument
1748 struct intel_display *display = to_intel_display(encoder); in dg1_ddi_get_pll()
1749 enum phy phy = intel_encoder_to_phy(encoder); in dg1_ddi_get_pll()
1769 static void icl_ddi_combo_enable_clock(struct intel_encoder *encoder, in icl_ddi_combo_enable_clock() argument
1772 struct intel_display *display = to_intel_display(encoder); in icl_ddi_combo_enable_clock()
1774 enum phy phy = intel_encoder_to_phy(encoder); in icl_ddi_combo_enable_clock()
1785 static void icl_ddi_combo_disable_clock(struct intel_encoder *encoder) in icl_ddi_combo_disable_clock() argument
1787 struct intel_display *display = to_intel_display(encoder); in icl_ddi_combo_disable_clock()
1788 enum phy phy = intel_encoder_to_phy(encoder); in icl_ddi_combo_disable_clock()
1794 static bool icl_ddi_combo_is_clock_enabled(struct intel_encoder *encoder) in icl_ddi_combo_is_clock_enabled() argument
1796 struct intel_display *display = to_intel_display(encoder); in icl_ddi_combo_is_clock_enabled()
1797 enum phy phy = intel_encoder_to_phy(encoder); in icl_ddi_combo_is_clock_enabled()
1803 struct intel_dpll *icl_ddi_combo_get_pll(struct intel_encoder *encoder) in icl_ddi_combo_get_pll() argument
1805 struct intel_display *display = to_intel_display(encoder); in icl_ddi_combo_get_pll()
1806 enum phy phy = intel_encoder_to_phy(encoder); in icl_ddi_combo_get_pll()
1813 static void jsl_ddi_tc_enable_clock(struct intel_encoder *encoder, in jsl_ddi_tc_enable_clock() argument
1816 struct intel_display *display = to_intel_display(encoder); in jsl_ddi_tc_enable_clock()
1818 enum port port = encoder->port; in jsl_ddi_tc_enable_clock()
1829 icl_ddi_combo_enable_clock(encoder, crtc_state); in jsl_ddi_tc_enable_clock()
1832 static void jsl_ddi_tc_disable_clock(struct intel_encoder *encoder) in jsl_ddi_tc_disable_clock() argument
1834 struct intel_display *display = to_intel_display(encoder); in jsl_ddi_tc_disable_clock()
1835 enum port port = encoder->port; in jsl_ddi_tc_disable_clock()
1837 icl_ddi_combo_disable_clock(encoder); in jsl_ddi_tc_disable_clock()
1842 static bool jsl_ddi_tc_is_clock_enabled(struct intel_encoder *encoder) in jsl_ddi_tc_is_clock_enabled() argument
1844 struct intel_display *display = to_intel_display(encoder); in jsl_ddi_tc_is_clock_enabled()
1845 enum port port = encoder->port; in jsl_ddi_tc_is_clock_enabled()
1853 return icl_ddi_combo_is_clock_enabled(encoder); in jsl_ddi_tc_is_clock_enabled()
1856 static void icl_ddi_tc_enable_clock(struct intel_encoder *encoder, in icl_ddi_tc_enable_clock() argument
1859 struct intel_display *display = to_intel_display(encoder); in icl_ddi_tc_enable_clock()
1861 enum tc_port tc_port = intel_encoder_to_tc(encoder); in icl_ddi_tc_enable_clock()
1862 enum port port = encoder->port; in icl_ddi_tc_enable_clock()
1868 icl_pll_to_ddi_clk_sel(encoder, crtc_state)); in icl_ddi_tc_enable_clock()
1878 static void icl_ddi_tc_disable_clock(struct intel_encoder *encoder) in icl_ddi_tc_disable_clock() argument
1880 struct intel_display *display = to_intel_display(encoder); in icl_ddi_tc_disable_clock()
1881 enum tc_port tc_port = intel_encoder_to_tc(encoder); in icl_ddi_tc_disable_clock()
1882 enum port port = encoder->port; in icl_ddi_tc_disable_clock()
1894 static bool icl_ddi_tc_is_clock_enabled(struct intel_encoder *encoder) in icl_ddi_tc_is_clock_enabled() argument
1896 struct intel_display *display = to_intel_display(encoder); in icl_ddi_tc_is_clock_enabled()
1897 enum tc_port tc_port = intel_encoder_to_tc(encoder); in icl_ddi_tc_is_clock_enabled()
1898 enum port port = encoder->port; in icl_ddi_tc_is_clock_enabled()
1911 static struct intel_dpll *icl_ddi_tc_get_pll(struct intel_encoder *encoder) in icl_ddi_tc_get_pll() argument
1913 struct intel_display *display = to_intel_display(encoder); in icl_ddi_tc_get_pll()
1914 enum tc_port tc_port = intel_encoder_to_tc(encoder); in icl_ddi_tc_get_pll()
1915 enum port port = encoder->port; in icl_ddi_tc_get_pll()
1941 static struct intel_dpll *bxt_ddi_get_pll(struct intel_encoder *encoder) in bxt_ddi_get_pll() argument
1943 struct intel_display *display = to_intel_display(encoder->base.dev); in bxt_ddi_get_pll()
1946 switch (encoder->port) { in bxt_ddi_get_pll()
1957 MISSING_CASE(encoder->port); in bxt_ddi_get_pll()
1964 static void skl_ddi_enable_clock(struct intel_encoder *encoder, in skl_ddi_enable_clock() argument
1967 struct intel_display *display = to_intel_display(encoder); in skl_ddi_enable_clock()
1969 enum port port = encoder->port; in skl_ddi_enable_clock()
1985 static void skl_ddi_disable_clock(struct intel_encoder *encoder) in skl_ddi_disable_clock() argument
1987 struct intel_display *display = to_intel_display(encoder); in skl_ddi_disable_clock()
1988 enum port port = encoder->port; in skl_ddi_disable_clock()
1998 static bool skl_ddi_is_clock_enabled(struct intel_encoder *encoder) in skl_ddi_is_clock_enabled() argument
2000 struct intel_display *display = to_intel_display(encoder); in skl_ddi_is_clock_enabled()
2001 enum port port = encoder->port; in skl_ddi_is_clock_enabled()
2010 static struct intel_dpll *skl_ddi_get_pll(struct intel_encoder *encoder) in skl_ddi_get_pll() argument
2012 struct intel_display *display = to_intel_display(encoder); in skl_ddi_get_pll()
2013 enum port port = encoder->port; in skl_ddi_get_pll()
2032 void hsw_ddi_enable_clock(struct intel_encoder *encoder, in hsw_ddi_enable_clock() argument
2035 struct intel_display *display = to_intel_display(encoder); in hsw_ddi_enable_clock()
2037 enum port port = encoder->port; in hsw_ddi_enable_clock()
2045 void hsw_ddi_disable_clock(struct intel_encoder *encoder) in hsw_ddi_disable_clock() argument
2047 struct intel_display *display = to_intel_display(encoder); in hsw_ddi_disable_clock()
2048 enum port port = encoder->port; in hsw_ddi_disable_clock()
2053 bool hsw_ddi_is_clock_enabled(struct intel_encoder *encoder) in hsw_ddi_is_clock_enabled() argument
2055 struct intel_display *display = to_intel_display(encoder); in hsw_ddi_is_clock_enabled()
2056 enum port port = encoder->port; in hsw_ddi_is_clock_enabled()
2061 static struct intel_dpll *hsw_ddi_get_pll(struct intel_encoder *encoder) in hsw_ddi_get_pll() argument
2063 struct intel_display *display = to_intel_display(encoder); in hsw_ddi_get_pll()
2064 enum port port = encoder->port; in hsw_ddi_get_pll()
2099 void intel_ddi_enable_clock(struct intel_encoder *encoder, in intel_ddi_enable_clock() argument
2102 if (encoder->enable_clock) in intel_ddi_enable_clock()
2103 encoder->enable_clock(encoder, crtc_state); in intel_ddi_enable_clock()
2106 void intel_ddi_disable_clock(struct intel_encoder *encoder) in intel_ddi_disable_clock() argument
2108 if (encoder->disable_clock) in intel_ddi_disable_clock()
2109 encoder->disable_clock(encoder); in intel_ddi_disable_clock()
2112 void intel_ddi_sanitize_encoder_pll_mapping(struct intel_encoder *encoder) in intel_ddi_sanitize_encoder_pll_mapping() argument
2114 struct intel_display *display = to_intel_display(encoder); in intel_ddi_sanitize_encoder_pll_mapping()
2122 if (encoder->type == INTEL_OUTPUT_DP_MST) in intel_ddi_sanitize_encoder_pll_mapping()
2125 if (!encoder->base.crtc && intel_encoder_is_dp(encoder)) { in intel_ddi_sanitize_encoder_pll_mapping()
2129 intel_ddi_get_encoder_pipes(encoder, &pipe_mask, &is_mst); in intel_ddi_sanitize_encoder_pll_mapping()
2138 port_mask = BIT(encoder->port); in intel_ddi_sanitize_encoder_pll_mapping()
2139 ddi_clk_needed = encoder->base.crtc; in intel_ddi_sanitize_encoder_pll_mapping()
2141 if (encoder->type == INTEL_OUTPUT_DSI) { in intel_ddi_sanitize_encoder_pll_mapping()
2144 port_mask = intel_dsi_encoder_ports(encoder); in intel_ddi_sanitize_encoder_pll_mapping()
2150 if (other_encoder == encoder) in intel_ddi_sanitize_encoder_pll_mapping()
2164 if (ddi_clk_needed || !encoder->is_clock_enabled || in intel_ddi_sanitize_encoder_pll_mapping()
2165 !encoder->is_clock_enabled(encoder)) in intel_ddi_sanitize_encoder_pll_mapping()
2170 encoder->base.base.id, encoder->base.name); in intel_ddi_sanitize_encoder_pll_mapping()
2172 encoder->disable_clock(encoder); in intel_ddi_sanitize_encoder_pll_mapping()
2286 intel_reg_t dp_tp_ctl_reg(struct intel_encoder *encoder, in dp_tp_ctl_reg() argument
2289 struct intel_display *display = to_intel_display(encoder); in dp_tp_ctl_reg()
2295 return DP_TP_CTL(encoder->port); in dp_tp_ctl_reg()
2298 static intel_reg_t dp_tp_status_reg(struct intel_encoder *encoder, in dp_tp_status_reg() argument
2301 struct intel_display *display = to_intel_display(encoder); in dp_tp_status_reg()
2307 return DP_TP_STATUS(encoder->port); in dp_tp_status_reg()
2310 void intel_ddi_clear_act_sent(struct intel_encoder *encoder, in intel_ddi_clear_act_sent() argument
2313 struct intel_display *display = to_intel_display(encoder); in intel_ddi_clear_act_sent()
2315 intel_de_write(display, dp_tp_status_reg(encoder, crtc_state), in intel_ddi_clear_act_sent()
2319 void intel_ddi_wait_for_act_sent(struct intel_encoder *encoder, in intel_ddi_wait_for_act_sent() argument
2322 struct intel_display *display = to_intel_display(encoder); in intel_ddi_wait_for_act_sent()
2324 if (intel_de_wait_for_set_ms(display, dp_tp_status_reg(encoder, crtc_state), in intel_ddi_wait_for_act_sent()
2388 int intel_ddi_wait_for_fec_status(struct intel_encoder *encoder, in intel_ddi_wait_for_fec_status() argument
2392 struct intel_display *display = to_intel_display(encoder); in intel_ddi_wait_for_fec_status()
2393 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_wait_for_fec_status()
2400 ret = intel_de_wait_for_set_ms(display, dp_tp_status_reg(encoder, crtc_state), in intel_ddi_wait_for_fec_status()
2403 ret = intel_de_wait_for_clear_ms(display, dp_tp_status_reg(encoder, crtc_state), in intel_ddi_wait_for_fec_status()
2425 static void intel_ddi_enable_fec(struct intel_encoder *encoder, in intel_ddi_enable_fec() argument
2428 struct intel_display *display = to_intel_display(encoder); in intel_ddi_enable_fec()
2435 intel_de_rmw(display, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_enable_fec()
2441 ret = intel_ddi_wait_for_fec_status(encoder, crtc_state, true); in intel_ddi_enable_fec()
2448 intel_de_rmw(display, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_enable_fec()
2451 ret = intel_ddi_wait_for_fec_status(encoder, crtc_state, false); in intel_ddi_enable_fec()
2455 intel_de_rmw(display, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_enable_fec()
2458 ret = intel_ddi_wait_for_fec_status(encoder, crtc_state, true); in intel_ddi_enable_fec()
2466 static void intel_ddi_disable_fec(struct intel_encoder *encoder, in intel_ddi_disable_fec() argument
2469 struct intel_display *display = to_intel_display(encoder); in intel_ddi_disable_fec()
2474 intel_de_rmw(display, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_disable_fec()
2476 intel_de_posting_read(display, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_disable_fec()
2479 static void intel_ddi_power_up_lanes(struct intel_encoder *encoder, in intel_ddi_power_up_lanes() argument
2482 struct intel_display *display = to_intel_display(encoder); in intel_ddi_power_up_lanes()
2483 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_power_up_lanes()
2485 if (intel_encoder_is_combo(encoder)) { in intel_ddi_power_up_lanes()
2486 enum phy phy = intel_encoder_to_phy(encoder); in intel_ddi_power_up_lanes()
2508 static void intel_ddi_mso_get_config(struct intel_encoder *encoder, in intel_ddi_mso_get_config() argument
2571 mtl_ddi_enable_d2d(struct intel_encoder *encoder) in mtl_ddi_enable_d2d() argument
2573 struct intel_display *display = to_intel_display(encoder); in mtl_ddi_enable_d2d()
2574 enum port port = encoder->port; in mtl_ddi_enable_d2d()
2601 static void mtl_port_buf_ctl_program(struct intel_encoder *encoder, in mtl_port_buf_ctl_program() argument
2604 struct intel_display *display = to_intel_display(encoder); in mtl_port_buf_ctl_program()
2605 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_port_buf_ctl_program()
2606 enum port port = encoder->port; in mtl_port_buf_ctl_program()
2624 static void mtl_port_buf_ctl_io_selection(struct intel_encoder *encoder) in mtl_port_buf_ctl_io_selection() argument
2626 struct intel_display *display = to_intel_display(encoder); in mtl_port_buf_ctl_io_selection()
2627 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in mtl_port_buf_ctl_io_selection()
2632 intel_de_rmw(display, XELPDP_PORT_BUF_CTL1(display, encoder->port), in mtl_port_buf_ctl_io_selection()
2637 struct intel_encoder *encoder, in mtl_ddi_pre_enable_dp() argument
2641 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in mtl_ddi_pre_enable_dp()
2654 intel_ddi_init_dp_buf_reg(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2666 mtl_port_buf_ctl_io_selection(encoder); in mtl_ddi_pre_enable_dp()
2669 intel_ddi_enable_clock(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2675 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2682 intel_ddi_config_transcoder_func(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2737 intel_ddi_enable_fec(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2744 intel_dp_queue_modeset_retry_for_link(state, encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2748 intel_dsc_dp_pps_write(encoder, crtc_state); in mtl_ddi_pre_enable_dp()
2752 struct intel_encoder *encoder, in tgl_ddi_pre_enable_dp() argument
2756 struct intel_display *display = to_intel_display(encoder); in tgl_ddi_pre_enable_dp()
2757 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in tgl_ddi_pre_enable_dp()
2758 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in tgl_ddi_pre_enable_dp()
2770 intel_ddi_init_dp_buf_reg(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2797 intel_ddi_enable_clock(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2823 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2829 intel_ddi_config_transcoder_func(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2840 encoder->set_signal_levels(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2846 intel_ddi_power_up_lanes(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2885 intel_ddi_enable_fec(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2891 intel_dp_queue_modeset_retry_for_link(state, encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2895 intel_dsc_dp_pps_write(encoder, crtc_state); in tgl_ddi_pre_enable_dp()
2899 struct intel_encoder *encoder, in hsw_ddi_pre_enable_dp() argument
2903 struct intel_display *display = to_intel_display(encoder); in hsw_ddi_pre_enable_dp()
2904 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in hsw_ddi_pre_enable_dp()
2905 enum port port = encoder->port; in hsw_ddi_pre_enable_dp()
2906 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in hsw_ddi_pre_enable_dp()
2923 intel_ddi_init_dp_buf_reg(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2927 intel_ddi_enable_clock(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2938 hsw_prepare_dp_ddi_buffers(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2940 encoder->set_signal_levels(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2942 intel_ddi_power_up_lanes(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2957 intel_ddi_enable_fec(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2960 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2961 intel_dsc_dp_pps_write(encoder, crtc_state); in hsw_ddi_pre_enable_dp()
2966 struct intel_encoder *encoder, in intel_ddi_pre_enable_dp() argument
2970 struct intel_display *display = to_intel_display(encoder); in intel_ddi_pre_enable_dp()
2973 intel_dp_128b132b_sdp_crc16(enc_to_intel_dp(encoder), in intel_ddi_pre_enable_dp()
2977 intel_psr_panel_replay_enable_sink(enc_to_intel_dp(encoder)); in intel_ddi_pre_enable_dp()
2980 mtl_ddi_pre_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_pre_enable_dp()
2982 tgl_ddi_pre_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_pre_enable_dp()
2984 hsw_ddi_pre_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_pre_enable_dp()
2994 struct intel_encoder *encoder, in intel_ddi_pre_enable_hdmi() argument
2998 struct intel_display *display = to_intel_display(encoder); in intel_ddi_pre_enable_hdmi()
2999 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable_hdmi()
3003 intel_ddi_enable_clock(encoder, crtc_state); in intel_ddi_pre_enable_hdmi()
3011 intel_ddi_enable_transcoder_clock(encoder, crtc_state); in intel_ddi_pre_enable_hdmi()
3013 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable_hdmi()
3037 struct intel_encoder *encoder, in intel_ddi_pre_enable() argument
3050 intel_ddi_pre_enable_hdmi(state, encoder, crtc_state, in intel_ddi_pre_enable()
3053 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_enable()
3055 intel_ddi_pre_enable_dp(state, encoder, crtc_state, in intel_ddi_pre_enable()
3061 dig_port->set_infoframes(encoder, in intel_ddi_pre_enable()
3068 mtl_ddi_disable_d2d(struct intel_encoder *encoder) in mtl_ddi_disable_d2d() argument
3070 struct intel_display *display = to_intel_display(encoder); in mtl_ddi_disable_d2d()
3071 enum port port = encoder->port; in mtl_ddi_disable_d2d()
3097 static void intel_ddi_buf_enable(struct intel_encoder *encoder, u32 buf_ctl) in intel_ddi_buf_enable() argument
3099 struct intel_display *display = to_intel_display(encoder); in intel_ddi_buf_enable()
3100 enum port port = encoder->port; in intel_ddi_buf_enable()
3105 intel_wait_ddi_buf_active(encoder); in intel_ddi_buf_enable()
3108 static void intel_ddi_buf_disable(struct intel_encoder *encoder, in intel_ddi_buf_disable() argument
3111 struct intel_display *display = to_intel_display(encoder); in intel_ddi_buf_disable()
3112 enum port port = encoder->port; in intel_ddi_buf_disable()
3119 mtl_ddi_disable_d2d(encoder); in intel_ddi_buf_disable()
3122 intel_de_rmw(display, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_buf_disable()
3126 intel_ddi_disable_fec(encoder, crtc_state); in intel_ddi_buf_disable()
3131 intel_ddi_wait_for_fec_status(encoder, crtc_state, false); in intel_ddi_buf_disable()
3135 struct intel_encoder *encoder, in intel_ddi_post_disable_dp() argument
3139 struct intel_display *display = to_intel_display(encoder); in intel_ddi_post_disable_dp()
3140 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_dp()
3147 intel_dp_set_infoframes(encoder, false, in intel_ddi_post_disable_dp()
3170 intel_ddi_buf_disable(encoder, old_crtc_state); in intel_ddi_post_disable_dp()
3194 intel_ddi_disable_clock(encoder); in intel_ddi_post_disable_dp()
3198 intel_de_rmw(display, XELPDP_PORT_BUF_CTL1(display, encoder->port), in intel_ddi_post_disable_dp()
3203 struct intel_encoder *encoder, in intel_ddi_post_disable_hdmi() argument
3207 struct intel_display *display = to_intel_display(encoder); in intel_ddi_post_disable_hdmi()
3208 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_disable_hdmi()
3212 dig_port->set_infoframes(encoder, false, in intel_ddi_post_disable_hdmi()
3218 intel_ddi_buf_disable(encoder, old_crtc_state); in intel_ddi_post_disable_hdmi()
3229 intel_ddi_disable_clock(encoder); in intel_ddi_post_disable_hdmi()
3235 struct intel_encoder *encoder, in intel_ddi_post_disable_hdmi_or_sst() argument
3239 struct intel_display *display = to_intel_display(encoder); in intel_ddi_post_disable_hdmi_or_sst()
3240 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_post_disable_hdmi_or_sst()
3258 intel_ddi_clear_act_sent(encoder, old_crtc_state); in intel_ddi_post_disable_hdmi_or_sst()
3263 intel_ddi_wait_for_act_sent(encoder, old_crtc_state); in intel_ddi_post_disable_hdmi_or_sst()
3290 struct intel_encoder *encoder, in intel_ddi_post_disable() argument
3295 intel_ddi_post_disable_hdmi_or_sst(state, encoder, old_crtc_state, in intel_ddi_post_disable()
3312 intel_ddi_post_disable_hdmi(state, encoder, old_crtc_state, in intel_ddi_post_disable()
3315 intel_ddi_post_disable_dp(state, encoder, old_crtc_state, in intel_ddi_post_disable()
3325 struct intel_encoder *encoder, in intel_ddi_post_pll_disable() argument
3329 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_post_pll_disable()
3333 if (intel_encoder_is_tc(encoder)) in intel_ddi_post_pll_disable()
3338 struct intel_encoder *encoder, in trans_port_sync_stop_link_train() argument
3370 intel_dp_stop_link_train(enc_to_intel_dp(encoder), in trans_port_sync_stop_link_train()
3375 struct intel_encoder *encoder, in intel_ddi_enable_dp() argument
3379 struct intel_display *display = to_intel_display(encoder); in intel_ddi_enable_dp()
3380 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_enable_dp()
3381 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_enable_dp()
3382 enum port port = encoder->port; in intel_ddi_enable_dp()
3393 intel_dp_set_infoframes(encoder, true, crtc_state, conn_state); in intel_ddi_enable_dp()
3395 trans_port_sync_stop_link_train(state, encoder, crtc_state); in intel_ddi_enable_dp()
3418 struct intel_encoder *encoder, in intel_ddi_enable_hdmi() argument
3422 struct intel_display *display = to_intel_display(encoder); in intel_ddi_enable_hdmi()
3423 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_enable_hdmi()
3425 enum port port = encoder->port; in intel_ddi_enable_hdmi()
3428 if (!intel_hdmi_handle_sink_scrambling(encoder, connector, in intel_ddi_enable_hdmi()
3436 hsw_prepare_hdmi_ddi_buffers(encoder, crtc_state); in intel_ddi_enable_hdmi()
3439 mtl_ddi_enable_d2d(encoder); in intel_ddi_enable_hdmi()
3441 encoder->set_signal_levels(encoder, crtc_state); in intel_ddi_enable_hdmi()
3478 intel_ddi_power_up_lanes(encoder, crtc_state); in intel_ddi_enable_hdmi()
3511 } else if (display->platform.alderlake_p && intel_encoder_is_tc(encoder)) { in intel_ddi_enable_hdmi()
3516 intel_ddi_buf_enable(encoder, buf_ctl); in intel_ddi_enable_hdmi()
3522 struct intel_encoder *encoder, in intel_ddi_enable() argument
3526 struct intel_display *display = to_intel_display(encoder); in intel_ddi_enable()
3542 intel_ddi_enable_transcoder_func(encoder, crtc_state); in intel_ddi_enable()
3548 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_enable()
3550 intel_ddi_clear_act_sent(encoder, crtc_state); in intel_ddi_enable()
3555 intel_ddi_wait_for_act_sent(encoder, crtc_state); in intel_ddi_enable()
3561 intel_ddi_wait_for_fec_status(encoder, crtc_state, true); in intel_ddi_enable()
3571 intel_ddi_enable_hdmi(state, encoder, crtc_state, conn_state); in intel_ddi_enable()
3573 intel_ddi_enable_dp(state, encoder, crtc_state, conn_state); in intel_ddi_enable()
3575 intel_hdcp_enable(state, encoder, crtc_state, conn_state); in intel_ddi_enable()
3580 struct intel_encoder *encoder, in intel_ddi_disable_dp() argument
3584 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_disable_dp()
3603 struct intel_encoder *encoder, in intel_ddi_disable_hdmi() argument
3607 struct intel_display *display = to_intel_display(encoder); in intel_ddi_disable_hdmi()
3610 if (!intel_hdmi_handle_sink_scrambling(encoder, connector, in intel_ddi_disable_hdmi()
3618 struct intel_encoder *encoder, in intel_ddi_disable() argument
3622 intel_tc_port_link_cancel_reset_work(enc_to_dig_port(encoder)); in intel_ddi_disable()
3627 intel_ddi_disable_hdmi(state, encoder, old_crtc_state, in intel_ddi_disable()
3630 intel_ddi_disable_dp(state, encoder, old_crtc_state, in intel_ddi_disable()
3635 struct intel_encoder *encoder, in intel_ddi_update_pipe_dp() argument
3641 intel_dp_set_infoframes(encoder, true, crtc_state, conn_state); in intel_ddi_update_pipe_dp()
3643 intel_backlight_update(state, encoder, crtc_state, conn_state); in intel_ddi_update_pipe_dp()
3647 static void intel_ddi_update_pipe_hdmi(struct intel_encoder *encoder, in intel_ddi_update_pipe_hdmi() argument
3651 intel_hdmi_fastset_infoframes(encoder, crtc_state, conn_state); in intel_ddi_update_pipe_hdmi()
3655 struct intel_encoder *encoder, in intel_ddi_update_pipe() argument
3661 !intel_encoder_is_mst(encoder)) in intel_ddi_update_pipe()
3662 intel_ddi_update_pipe_dp(state, encoder, crtc_state, in intel_ddi_update_pipe()
3666 intel_ddi_update_pipe_hdmi(encoder, crtc_state, in intel_ddi_update_pipe()
3669 intel_hdcp_update_pipe(state, encoder, crtc_state, conn_state); in intel_ddi_update_pipe()
3673 struct intel_encoder *encoder, in intel_ddi_update_active_dpll() argument
3676 struct intel_display *display = to_intel_display(encoder); in intel_ddi_update_active_dpll()
3682 if (!intel_encoder_is_tc(encoder) || !display->dpll.mgr) in intel_ddi_update_active_dpll()
3687 intel_dpll_update_active(state, pipe_crtc, encoder); in intel_ddi_update_active_dpll()
3697 struct intel_encoder *encoder, in intel_ddi_pre_pll_enable() argument
3701 struct intel_display *display = to_intel_display(encoder); in intel_ddi_pre_pll_enable()
3702 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_pre_pll_enable()
3703 bool is_tc_port = intel_encoder_is_tc(encoder); in intel_ddi_pre_pll_enable()
3709 intel_ddi_update_active_dpll(state, encoder, crtc); in intel_ddi_pre_pll_enable()
3721 bxt_dpio_phy_set_lane_optim_mask(encoder, in intel_ddi_pre_pll_enable()
3733 static void adlp_tbt_to_dp_alt_switch_wa(struct intel_encoder *encoder) in adlp_tbt_to_dp_alt_switch_wa() argument
3735 struct intel_display *display = to_intel_display(encoder); in adlp_tbt_to_dp_alt_switch_wa()
3736 enum tc_port tc_port = intel_encoder_to_tc(encoder); in adlp_tbt_to_dp_alt_switch_wa()
3749 struct intel_encoder *encoder = &dig_port->base; in mtl_ddi_prepare_link_retrain() local
3756 dp_tp_ctl = intel_de_read(display, dp_tp_ctl_reg(encoder, crtc_state)); in mtl_ddi_prepare_link_retrain()
3770 intel_de_write(display, dp_tp_ctl_reg(encoder, crtc_state), dp_tp_ctl); in mtl_ddi_prepare_link_retrain()
3771 intel_de_posting_read(display, dp_tp_ctl_reg(encoder, crtc_state)); in mtl_ddi_prepare_link_retrain()
3774 mtl_ddi_enable_d2d(encoder); in mtl_ddi_prepare_link_retrain()
3777 encoder->set_signal_levels(encoder, crtc_state); in mtl_ddi_prepare_link_retrain()
3780 mtl_port_buf_ctl_program(encoder, crtc_state); in mtl_ddi_prepare_link_retrain()
3786 intel_ddi_buf_enable(encoder, intel_dp->DP); in mtl_ddi_prepare_link_retrain()
3799 intel_lnl_mac_transmit_lfps(encoder, crtc_state); in mtl_ddi_prepare_link_retrain()
3807 struct intel_encoder *encoder = &dig_port->base; in intel_ddi_prepare_link_retrain() local
3810 dp_tp_ctl = intel_de_read(display, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_prepare_link_retrain()
3823 intel_de_write(display, dp_tp_ctl_reg(encoder, crtc_state), dp_tp_ctl); in intel_ddi_prepare_link_retrain()
3824 intel_de_posting_read(display, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_prepare_link_retrain()
3828 adlp_tbt_to_dp_alt_switch_wa(encoder); in intel_ddi_prepare_link_retrain()
3830 intel_ddi_buf_enable(encoder, intel_dp->DP); in intel_ddi_prepare_link_retrain()
3839 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; in intel_ddi_set_link_train() local
3842 temp = intel_de_read(display, dp_tp_ctl_reg(encoder, crtc_state)); in intel_ddi_set_link_train()
3863 intel_de_write(display, dp_tp_ctl_reg(encoder, crtc_state), temp); in intel_ddi_set_link_train()
3870 struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; in intel_ddi_set_idle_link_train() local
3871 enum port port = encoder->port; in intel_ddi_set_idle_link_train()
3873 intel_de_rmw(display, dp_tp_ctl_reg(encoder, crtc_state), in intel_ddi_set_idle_link_train()
3887 dp_tp_status_reg(encoder, crtc_state), in intel_ddi_set_idle_link_train()
4006 static void intel_ddi_read_func_ctl_dvi(struct intel_encoder *encoder, in intel_ddi_read_func_ctl_dvi() argument
4010 struct intel_display *display = to_intel_display(encoder); in intel_ddi_read_func_ctl_dvi()
4020 static void intel_ddi_read_func_ctl_hdmi(struct intel_encoder *encoder, in intel_ddi_read_func_ctl_hdmi() argument
4027 intel_hdmi_infoframes_enabled(encoder, crtc_state); in intel_ddi_read_func_ctl_hdmi()
4037 intel_ddi_read_func_ctl_dvi(encoder, crtc_state, ddi_func_ctl); in intel_ddi_read_func_ctl_hdmi()
4040 static void intel_ddi_read_func_ctl_fdi(struct intel_encoder *encoder, in intel_ddi_read_func_ctl_fdi() argument
4044 struct intel_display *display = to_intel_display(encoder); in intel_ddi_read_func_ctl_fdi()
4048 intel_de_read(display, dp_tp_ctl_reg(encoder, crtc_state)) & in intel_ddi_read_func_ctl_fdi()
4052 static void intel_ddi_read_func_ctl_dp_sst(struct intel_encoder *encoder, in intel_ddi_read_func_ctl_dp_sst() argument
4056 struct intel_display *display = to_intel_display(encoder); in intel_ddi_read_func_ctl_dp_sst()
4058 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_read_func_ctl_dp_sst()
4061 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_read_func_ctl_dp_sst()
4077 intel_de_read(display, dp_tp_ctl_reg(encoder, crtc_state)) & in intel_ddi_read_func_ctl_dp_sst()
4083 dp_tp_ctl_reg(encoder, crtc_state)) & DP_TP_CTL_FEC_ENABLE; in intel_ddi_read_func_ctl_dp_sst()
4087 intel_lspcon_infoframes_enabled(encoder, crtc_state); in intel_ddi_read_func_ctl_dp_sst()
4090 intel_hdmi_infoframes_enabled(encoder, crtc_state); in intel_ddi_read_func_ctl_dp_sst()
4093 static void intel_ddi_read_func_ctl_dp_mst(struct intel_encoder *encoder, in intel_ddi_read_func_ctl_dp_mst() argument
4097 struct intel_display *display = to_intel_display(encoder); in intel_ddi_read_func_ctl_dp_mst()
4114 dp_tp_ctl_reg(encoder, crtc_state)) & DP_TP_CTL_FEC_ENABLE; in intel_ddi_read_func_ctl_dp_mst()
4117 intel_hdmi_infoframes_enabled(encoder, crtc_state); in intel_ddi_read_func_ctl_dp_mst()
4120 static void intel_ddi_read_func_ctl(struct intel_encoder *encoder, in intel_ddi_read_func_ctl() argument
4123 struct intel_display *display = to_intel_display(encoder); in intel_ddi_read_func_ctl()
4159 intel_ddi_read_func_ctl_hdmi(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4161 intel_ddi_read_func_ctl_dvi(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4163 intel_ddi_read_func_ctl_fdi(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4165 intel_ddi_read_func_ctl_dp_sst(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4167 intel_ddi_read_func_ctl_dp_mst(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4169 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_read_func_ctl()
4176 intel_ddi_read_func_ctl_dp_mst(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4178 intel_ddi_read_func_ctl_dp_sst(encoder, pipe_config, ddi_func_ctl); in intel_ddi_read_func_ctl()
4187 static void intel_ddi_get_config(struct intel_encoder *encoder, in intel_ddi_get_config() argument
4190 struct intel_display *display = to_intel_display(encoder); in intel_ddi_get_config()
4197 intel_ddi_read_func_ctl(encoder, pipe_config); in intel_ddi_get_config()
4199 intel_ddi_mso_get_config(encoder, pipe_config); in intel_ddi_get_config()
4204 if (encoder->type == INTEL_OUTPUT_EDP) in intel_ddi_get_config()
4205 intel_edp_fixup_vbt_bpp(encoder, pipe_config->pipe_bpp); in intel_ddi_get_config()
4211 bxt_dpio_phy_get_lane_lat_optim_mask(encoder); in intel_ddi_get_config()
4215 intel_hdmi_read_gcp_infoframe(encoder, pipe_config); in intel_ddi_get_config()
4217 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
4220 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
4223 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
4226 intel_read_infoframe(encoder, pipe_config, in intel_ddi_get_config()
4233 intel_psr_get_config(encoder, pipe_config); in intel_ddi_get_config()
4235 intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA); in intel_ddi_get_config()
4236 intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC); in intel_ddi_get_config()
4237 intel_read_dp_sdp(encoder, pipe_config, DP_SDP_ADAPTIVE_SYNC); in intel_ddi_get_config()
4239 intel_audio_codec_get_config(encoder, pipe_config); in intel_ddi_get_config()
4242 void intel_ddi_get_clock(struct intel_encoder *encoder, in intel_ddi_get_clock() argument
4246 struct intel_display *display = to_intel_display(encoder); in intel_ddi_get_clock()
4269 static void mtl_ddi_cx0_get_config(struct intel_encoder *encoder, in mtl_ddi_cx0_get_config() argument
4274 struct intel_display *display = to_intel_display(encoder); in mtl_ddi_cx0_get_config()
4292 crtc_state->port_clock = intel_mtl_tbt_calc_port_clock(encoder); in mtl_ddi_cx0_get_config()
4297 intel_ddi_get_config(encoder, crtc_state); in mtl_ddi_cx0_get_config()
4306 static void mtl_ddi_non_tc_phy_get_config(struct intel_encoder *encoder, in mtl_ddi_non_tc_phy_get_config() argument
4309 struct intel_display *display = to_intel_display(encoder); in mtl_ddi_non_tc_phy_get_config()
4311 mtl_ddi_cx0_get_config(encoder, crtc_state, ICL_PORT_DPLL_DEFAULT, in mtl_ddi_non_tc_phy_get_config()
4312 mtl_port_to_pll_id(display, encoder->port)); in mtl_ddi_non_tc_phy_get_config()
4315 static void mtl_ddi_tc_phy_get_config(struct intel_encoder *encoder, in mtl_ddi_tc_phy_get_config() argument
4318 struct intel_display *display = to_intel_display(encoder); in mtl_ddi_tc_phy_get_config()
4320 if (intel_tc_port_in_tbt_alt_mode(enc_to_dig_port(encoder))) in mtl_ddi_tc_phy_get_config()
4321 mtl_ddi_cx0_get_config(encoder, crtc_state, ICL_PORT_DPLL_DEFAULT, in mtl_ddi_tc_phy_get_config()
4324 mtl_ddi_cx0_get_config(encoder, crtc_state, ICL_PORT_DPLL_MG_PHY, in mtl_ddi_tc_phy_get_config()
4325 mtl_port_to_pll_id(display, encoder->port)); in mtl_ddi_tc_phy_get_config()
4328 static void dg2_ddi_get_config(struct intel_encoder *encoder, in dg2_ddi_get_config() argument
4331 intel_mpllb_readout_hw_state(encoder, &crtc_state->dpll_hw_state.mpllb); in dg2_ddi_get_config()
4332 crtc_state->port_clock = intel_mpllb_calc_port_clock(encoder, &crtc_state->dpll_hw_state.mpllb); in dg2_ddi_get_config()
4334 intel_ddi_get_config(encoder, crtc_state); in dg2_ddi_get_config()
4337 static void adls_ddi_get_config(struct intel_encoder *encoder, in adls_ddi_get_config() argument
4340 intel_ddi_get_clock(encoder, crtc_state, adls_ddi_get_pll(encoder)); in adls_ddi_get_config()
4341 intel_ddi_get_config(encoder, crtc_state); in adls_ddi_get_config()
4344 static void rkl_ddi_get_config(struct intel_encoder *encoder, in rkl_ddi_get_config() argument
4347 intel_ddi_get_clock(encoder, crtc_state, rkl_ddi_get_pll(encoder)); in rkl_ddi_get_config()
4348 intel_ddi_get_config(encoder, crtc_state); in rkl_ddi_get_config()
4351 static void dg1_ddi_get_config(struct intel_encoder *encoder, in dg1_ddi_get_config() argument
4354 intel_ddi_get_clock(encoder, crtc_state, dg1_ddi_get_pll(encoder)); in dg1_ddi_get_config()
4355 intel_ddi_get_config(encoder, crtc_state); in dg1_ddi_get_config()
4358 static void icl_ddi_combo_get_config(struct intel_encoder *encoder, in icl_ddi_combo_get_config() argument
4361 intel_ddi_get_clock(encoder, crtc_state, icl_ddi_combo_get_pll(encoder)); in icl_ddi_combo_get_config()
4362 intel_ddi_get_config(encoder, crtc_state); in icl_ddi_combo_get_config()
4366 icl_ddi_tc_port_pll_type(struct intel_encoder *encoder, in icl_ddi_tc_port_pll_type() argument
4369 struct intel_display *display = to_intel_display(encoder); in icl_ddi_tc_port_pll_type()
4382 intel_ddi_port_pll_type(struct intel_encoder *encoder, in intel_ddi_port_pll_type() argument
4385 if (!encoder->port_pll_type) in intel_ddi_port_pll_type()
4388 return encoder->port_pll_type(encoder, crtc_state); in intel_ddi_port_pll_type()
4391 static void icl_ddi_tc_get_clock(struct intel_encoder *encoder, in icl_ddi_tc_get_clock() argument
4395 struct intel_display *display = to_intel_display(encoder); in icl_ddi_tc_get_clock()
4417 crtc_state->port_clock = icl_calc_tbt_pll_link(display, encoder->port); in icl_ddi_tc_get_clock()
4423 static void icl_ddi_tc_get_config(struct intel_encoder *encoder, in icl_ddi_tc_get_config() argument
4426 icl_ddi_tc_get_clock(encoder, crtc_state, icl_ddi_tc_get_pll(encoder)); in icl_ddi_tc_get_config()
4427 intel_ddi_get_config(encoder, crtc_state); in icl_ddi_tc_get_config()
4430 static void bxt_ddi_get_config(struct intel_encoder *encoder, in bxt_ddi_get_config() argument
4433 intel_ddi_get_clock(encoder, crtc_state, bxt_ddi_get_pll(encoder)); in bxt_ddi_get_config()
4434 intel_ddi_get_config(encoder, crtc_state); in bxt_ddi_get_config()
4437 static void skl_ddi_get_config(struct intel_encoder *encoder, in skl_ddi_get_config() argument
4440 intel_ddi_get_clock(encoder, crtc_state, skl_ddi_get_pll(encoder)); in skl_ddi_get_config()
4441 intel_ddi_get_config(encoder, crtc_state); in skl_ddi_get_config()
4444 void hsw_ddi_get_config(struct intel_encoder *encoder, in hsw_ddi_get_config() argument
4447 intel_ddi_get_clock(encoder, crtc_state, hsw_ddi_get_pll(encoder)); in hsw_ddi_get_config()
4448 intel_ddi_get_config(encoder, crtc_state); in hsw_ddi_get_config()
4451 static void intel_ddi_sync_state(struct intel_encoder *encoder, in intel_ddi_sync_state() argument
4454 if (intel_encoder_is_tc(encoder)) in intel_ddi_sync_state()
4455 intel_tc_port_sanitize_mode(enc_to_dig_port(encoder), in intel_ddi_sync_state()
4459 (!crtc_state && intel_encoder_is_dp(encoder))) in intel_ddi_sync_state()
4460 intel_dp_sync_state(encoder, crtc_state); in intel_ddi_sync_state()
4463 static bool intel_ddi_initial_fastset_check(struct intel_encoder *encoder, in intel_ddi_initial_fastset_check() argument
4466 struct intel_display *display = to_intel_display(encoder); in intel_ddi_initial_fastset_check()
4469 if (intel_encoder_is_tc(encoder)) { in intel_ddi_initial_fastset_check()
4471 encoder->base.base.id, encoder->base.name); in intel_ddi_initial_fastset_check()
4477 !intel_dp_initial_fastset_check(encoder, crtc_state)) in intel_ddi_initial_fastset_check()
4484 intel_ddi_compute_output_type(struct intel_encoder *encoder, in intel_ddi_compute_output_type() argument
4502 struct intel_encoder *encoder, in intel_ddi_compute_config() argument
4506 struct intel_display *display = to_intel_display(encoder); in intel_ddi_compute_config()
4508 enum port port = encoder->port; in intel_ddi_compute_config()
4516 intel_hdmi_compute_has_hdmi_sink(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
4518 ret = intel_hdmi_compute_config(encoder, pipe_config, conn_state); in intel_ddi_compute_config()
4520 ret = intel_dp_compute_config(state, encoder, pipe_config, conn_state); in intel_ddi_compute_config()
4626 struct intel_encoder *encoder, in intel_ddi_compute_config_late() argument
4630 struct intel_display *display = to_intel_display(encoder); in intel_ddi_compute_config_late()
4636 ret = intel_dp_compute_config_late(encoder, crtc_state, conn_state); in intel_ddi_compute_config_late()
4642 encoder->base.base.id, encoder->base.name, in intel_ddi_compute_config_late()
4667 static void intel_ddi_encoder_destroy(struct drm_encoder *encoder) in intel_ddi_encoder_destroy() argument
4669 struct intel_display *display = to_intel_display(encoder->dev); in intel_ddi_encoder_destroy()
4670 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_destroy()
4672 intel_dp_encoder_flush_work(encoder); in intel_ddi_encoder_destroy()
4677 drm_encoder_cleanup(encoder); in intel_ddi_encoder_destroy()
4683 static void intel_ddi_encoder_reset(struct drm_encoder *encoder) in intel_ddi_encoder_reset() argument
4685 struct intel_dp *intel_dp = enc_to_intel_dp(to_intel_encoder(encoder)); in intel_ddi_encoder_reset()
4686 struct intel_digital_port *dig_port = enc_to_dig_port(to_intel_encoder(encoder)); in intel_ddi_encoder_reset()
4699 struct intel_encoder *encoder = to_intel_encoder(_encoder); in intel_ddi_encoder_late_register() local
4701 intel_tc_port_link_reset(enc_to_dig_port(encoder)); in intel_ddi_encoder_late_register()
4776 static int intel_hdmi_reset_link(struct intel_encoder *encoder, in intel_hdmi_reset_link() argument
4779 struct intel_display *display = to_intel_display(encoder); in intel_hdmi_reset_link()
4780 struct intel_hdmi *hdmi = enc_to_intel_hdmi(encoder); in intel_hdmi_reset_link()
4848 static void intel_ddi_link_check(struct intel_encoder *encoder) in intel_ddi_link_check() argument
4850 struct intel_display *display = to_intel_display(encoder); in intel_ddi_link_check()
4851 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_link_check()
4856 intel_dp_link_check(encoder); in intel_ddi_link_check()
4860 intel_ddi_hotplug(struct intel_encoder *encoder, in intel_ddi_hotplug() argument
4863 struct intel_digital_port *dig_port = enc_to_dig_port(encoder); in intel_ddi_hotplug()
4865 bool is_tc = intel_encoder_is_tc(encoder); in intel_ddi_hotplug()
4873 state = intel_encoder_hotplug(encoder, connector); in intel_ddi_hotplug()
4878 ret = intel_hdmi_reset_link(encoder, &ctx); in intel_ddi_hotplug()
4879 drm_WARN_ON(encoder->base.dev, ret); in intel_ddi_hotplug()
4915 static bool lpt_digital_port_connected(struct intel_encoder *encoder) in lpt_digital_port_connected() argument
4917 struct intel_display *display = to_intel_display(encoder); in lpt_digital_port_connected()
4918 u32 bit = display->hotplug.pch_hpd[encoder->hpd_pin]; in lpt_digital_port_connected()
4923 static bool hsw_digital_port_connected(struct intel_encoder *encoder) in hsw_digital_port_connected() argument
4925 struct intel_display *display = to_intel_display(encoder); in hsw_digital_port_connected()
4926 u32 bit = display->hotplug.hpd[encoder->hpd_pin]; in hsw_digital_port_connected()
4931 static bool bdw_digital_port_connected(struct intel_encoder *encoder) in bdw_digital_port_connected() argument
4933 struct intel_display *display = to_intel_display(encoder); in bdw_digital_port_connected()
4934 u32 bit = display->hotplug.hpd[encoder->hpd_pin]; in bdw_digital_port_connected()
5089 static void intel_ddi_encoder_suspend(struct intel_encoder *encoder) in intel_ddi_encoder_suspend() argument
5091 intel_dp_encoder_suspend(encoder); in intel_ddi_encoder_suspend()
5094 static void intel_ddi_tc_encoder_suspend_complete(struct intel_encoder *encoder) in intel_ddi_tc_encoder_suspend_complete() argument
5096 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_tc_encoder_suspend_complete()
5103 intel_encoder_link_check_flush_work(encoder); in intel_ddi_tc_encoder_suspend_complete()
5107 static void intel_ddi_encoder_shutdown(struct intel_encoder *encoder) in intel_ddi_encoder_shutdown() argument
5109 if (intel_encoder_is_dp(encoder)) in intel_ddi_encoder_shutdown()
5110 intel_dp_encoder_shutdown(encoder); in intel_ddi_encoder_shutdown()
5111 if (intel_encoder_is_hdmi(encoder)) in intel_ddi_encoder_shutdown()
5112 intel_hdmi_encoder_shutdown(encoder); in intel_ddi_encoder_shutdown()
5115 static void intel_ddi_tc_encoder_shutdown_complete(struct intel_encoder *encoder) in intel_ddi_tc_encoder_shutdown_complete() argument
5117 struct intel_dp *intel_dp = enc_to_intel_dp(encoder); in intel_ddi_tc_encoder_shutdown_complete()
5149 static bool need_aux_ch(struct intel_encoder *encoder, bool init_dp) in need_aux_ch() argument
5151 return init_dp || intel_encoder_is_tc(encoder); in need_aux_ch()
5163 struct intel_encoder *encoder; in port_in_use() local
5165 for_each_intel_encoder(display->drm, encoder) { in port_in_use()
5167 if (encoder->port == port) in port_in_use()
5211 struct intel_encoder *encoder; in intel_ddi_init() local
5294 encoder = &dig_port->base; in intel_ddi_init()
5295 encoder->devdata = devdata; in intel_ddi_init()
5297 drm_encoder_init(display->drm, &encoder->base, &intel_ddi_funcs, in intel_ddi_init()
5301 intel_encoder_link_check_init(encoder, intel_ddi_link_check); in intel_ddi_init()
5303 encoder->hotplug = intel_ddi_hotplug; in intel_ddi_init()
5304 encoder->compute_output_type = intel_ddi_compute_output_type; in intel_ddi_init()
5305 encoder->compute_config = intel_ddi_compute_config; in intel_ddi_init()
5306 encoder->compute_config_late = intel_ddi_compute_config_late; in intel_ddi_init()
5307 encoder->enable = intel_ddi_enable; in intel_ddi_init()
5308 encoder->pre_pll_enable = intel_ddi_pre_pll_enable; in intel_ddi_init()
5309 encoder->pre_enable = intel_ddi_pre_enable; in intel_ddi_init()
5310 encoder->disable = intel_ddi_disable; in intel_ddi_init()
5311 encoder->post_pll_disable = intel_ddi_post_pll_disable; in intel_ddi_init()
5312 encoder->post_disable = intel_ddi_post_disable; in intel_ddi_init()
5313 encoder->update_pipe = intel_ddi_update_pipe; in intel_ddi_init()
5314 encoder->audio_enable = intel_audio_codec_enable; in intel_ddi_init()
5315 encoder->audio_disable = intel_audio_codec_disable; in intel_ddi_init()
5316 encoder->get_hw_state = intel_ddi_get_hw_state; in intel_ddi_init()
5317 encoder->sync_state = intel_ddi_sync_state; in intel_ddi_init()
5318 encoder->initial_fastset_check = intel_ddi_initial_fastset_check; in intel_ddi_init()
5319 encoder->suspend = intel_ddi_encoder_suspend; in intel_ddi_init()
5320 encoder->shutdown = intel_ddi_encoder_shutdown; in intel_ddi_init()
5321 encoder->get_power_domains = intel_ddi_get_power_domains; in intel_ddi_init()
5323 encoder->type = INTEL_OUTPUT_DDI; in intel_ddi_init()
5324 encoder->power_domain = intel_display_power_ddi_lanes_domain(display, port); in intel_ddi_init()
5325 encoder->port = port; in intel_ddi_init()
5326 encoder->cloneable = 0; in intel_ddi_init()
5327 encoder->pipe_mask = ~0; in intel_ddi_init()
5330 encoder->enable_clock = intel_mtl_pll_enable_clock; in intel_ddi_init()
5331 encoder->disable_clock = intel_mtl_pll_disable_clock; in intel_ddi_init()
5332 encoder->port_pll_type = icl_ddi_tc_port_pll_type; in intel_ddi_init()
5333 if (intel_encoder_is_tc(encoder)) in intel_ddi_init()
5334 encoder->get_config = mtl_ddi_tc_phy_get_config; in intel_ddi_init()
5336 encoder->get_config = mtl_ddi_non_tc_phy_get_config; in intel_ddi_init()
5338 encoder->enable_clock = intel_mtl_pll_enable_clock; in intel_ddi_init()
5339 encoder->disable_clock = intel_mtl_pll_disable_clock; in intel_ddi_init()
5340 encoder->port_pll_type = icl_ddi_tc_port_pll_type; in intel_ddi_init()
5341 if (intel_encoder_is_tc(encoder)) in intel_ddi_init()
5342 encoder->get_config = mtl_ddi_tc_phy_get_config; in intel_ddi_init()
5344 encoder->get_config = mtl_ddi_non_tc_phy_get_config; in intel_ddi_init()
5346 encoder->enable_clock = intel_mpllb_enable; in intel_ddi_init()
5347 encoder->disable_clock = intel_mpllb_disable; in intel_ddi_init()
5348 encoder->get_config = dg2_ddi_get_config; in intel_ddi_init()
5350 encoder->enable_clock = adls_ddi_enable_clock; in intel_ddi_init()
5351 encoder->disable_clock = adls_ddi_disable_clock; in intel_ddi_init()
5352 encoder->is_clock_enabled = adls_ddi_is_clock_enabled; in intel_ddi_init()
5353 encoder->get_config = adls_ddi_get_config; in intel_ddi_init()
5355 encoder->enable_clock = rkl_ddi_enable_clock; in intel_ddi_init()
5356 encoder->disable_clock = rkl_ddi_disable_clock; in intel_ddi_init()
5357 encoder->is_clock_enabled = rkl_ddi_is_clock_enabled; in intel_ddi_init()
5358 encoder->get_config = rkl_ddi_get_config; in intel_ddi_init()
5360 encoder->enable_clock = dg1_ddi_enable_clock; in intel_ddi_init()
5361 encoder->disable_clock = dg1_ddi_disable_clock; in intel_ddi_init()
5362 encoder->is_clock_enabled = dg1_ddi_is_clock_enabled; in intel_ddi_init()
5363 encoder->get_config = dg1_ddi_get_config; in intel_ddi_init()
5366 encoder->enable_clock = jsl_ddi_tc_enable_clock; in intel_ddi_init()
5367 encoder->disable_clock = jsl_ddi_tc_disable_clock; in intel_ddi_init()
5368 encoder->is_clock_enabled = jsl_ddi_tc_is_clock_enabled; in intel_ddi_init()
5369 encoder->port_pll_type = icl_ddi_tc_port_pll_type; in intel_ddi_init()
5370 encoder->get_config = icl_ddi_combo_get_config; in intel_ddi_init()
5372 encoder->enable_clock = icl_ddi_combo_enable_clock; in intel_ddi_init()
5373 encoder->disable_clock = icl_ddi_combo_disable_clock; in intel_ddi_init()
5374 encoder->is_clock_enabled = icl_ddi_combo_is_clock_enabled; in intel_ddi_init()
5375 encoder->get_config = icl_ddi_combo_get_config; in intel_ddi_init()
5379 encoder->enable_clock = icl_ddi_tc_enable_clock; in intel_ddi_init()
5380 encoder->disable_clock = icl_ddi_tc_disable_clock; in intel_ddi_init()
5381 encoder->is_clock_enabled = icl_ddi_tc_is_clock_enabled; in intel_ddi_init()
5382 encoder->port_pll_type = icl_ddi_tc_port_pll_type; in intel_ddi_init()
5383 encoder->get_config = icl_ddi_tc_get_config; in intel_ddi_init()
5385 encoder->enable_clock = icl_ddi_combo_enable_clock; in intel_ddi_init()
5386 encoder->disable_clock = icl_ddi_combo_disable_clock; in intel_ddi_init()
5387 encoder->is_clock_enabled = icl_ddi_combo_is_clock_enabled; in intel_ddi_init()
5388 encoder->get_config = icl_ddi_combo_get_config; in intel_ddi_init()
5392 encoder->get_config = bxt_ddi_get_config; in intel_ddi_init()
5394 encoder->enable_clock = skl_ddi_enable_clock; in intel_ddi_init()
5395 encoder->disable_clock = skl_ddi_disable_clock; in intel_ddi_init()
5396 encoder->is_clock_enabled = skl_ddi_is_clock_enabled; in intel_ddi_init()
5397 encoder->get_config = skl_ddi_get_config; in intel_ddi_init()
5399 encoder->enable_clock = hsw_ddi_enable_clock; in intel_ddi_init()
5400 encoder->disable_clock = hsw_ddi_disable_clock; in intel_ddi_init()
5401 encoder->is_clock_enabled = hsw_ddi_is_clock_enabled; in intel_ddi_init()
5402 encoder->get_config = hsw_ddi_get_config; in intel_ddi_init()
5406 encoder->set_signal_levels = intel_lt_phy_set_signal_levels; in intel_ddi_init()
5408 encoder->set_signal_levels = intel_cx0_phy_set_signal_levels; in intel_ddi_init()
5410 encoder->set_signal_levels = intel_snps_phy_set_signal_levels; in intel_ddi_init()
5412 if (intel_encoder_is_combo(encoder)) in intel_ddi_init()
5413 encoder->set_signal_levels = icl_combo_phy_set_signal_levels; in intel_ddi_init()
5415 encoder->set_signal_levels = tgl_dkl_phy_set_signal_levels; in intel_ddi_init()
5417 if (intel_encoder_is_combo(encoder)) in intel_ddi_init()
5418 encoder->set_signal_levels = icl_combo_phy_set_signal_levels; in intel_ddi_init()
5420 encoder->set_signal_levels = icl_mg_phy_set_signal_levels; in intel_ddi_init()
5422 encoder->set_signal_levels = bxt_dpio_phy_set_signal_levels; in intel_ddi_init()
5424 encoder->set_signal_levels = hsw_set_signal_levels; in intel_ddi_init()
5427 intel_ddi_buf_trans_init(encoder); in intel_ddi_init()
5430 encoder->hpd_pin = xelpd_hpd_pin(display, port); in intel_ddi_init()
5432 encoder->hpd_pin = dg1_hpd_pin(display, port); in intel_ddi_init()
5434 encoder->hpd_pin = rkl_hpd_pin(display, port); in intel_ddi_init()
5436 encoder->hpd_pin = tgl_hpd_pin(display, port); in intel_ddi_init()
5438 encoder->hpd_pin = ehl_hpd_pin(display, port); in intel_ddi_init()
5440 encoder->hpd_pin = icl_hpd_pin(display, port); in intel_ddi_init()
5442 encoder->hpd_pin = skl_hpd_pin(display, port); in intel_ddi_init()
5444 encoder->hpd_pin = intel_hpd_pin_default(port); in intel_ddi_init()
5455 if (need_aux_ch(encoder, init_dp)) { in intel_ddi_init()
5456 dig_port->aux_ch = intel_dp_aux_ch(encoder); in intel_ddi_init()
5472 if (intel_encoder_is_tc(encoder)) { in intel_ddi_init()
5487 encoder->suspend_complete = intel_ddi_tc_encoder_suspend_complete; in intel_ddi_init()
5488 encoder->shutdown_complete = intel_ddi_tc_encoder_shutdown_complete; in intel_ddi_init()
5501 if (intel_encoder_is_tc(encoder)) in intel_ddi_init()
5530 encoder->pipe_mask = intel_ddi_splitter_pipe_mask(display); in intel_ddi_init()
5537 if (encoder->type != INTEL_OUTPUT_EDP && init_hdmi) { in intel_ddi_init()
5548 if (intel_encoder_is_tc(encoder)) in intel_ddi_init()
5551 drm_encoder_cleanup(&encoder->base); in intel_ddi_init()