xe3plpd platform is supported by dpll framework remove a separate
check for hw comparison and rely solely on dpll framework
hw comparison.

Finally, all required hooks are now in place so initialize
PLL manager for xe3plpd platform and remove the redirections
to the legacy code paths for clock enable/disable as well as
state mismatch checks that are no longer needed.

Signed-off-by: Mika Kahola <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_ddi.c      |  2 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 31 -------------------
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  7 +++--
 drivers/gpu/drm/i915/display/intel_lt_phy.c   |  8 +----
 4 files changed, 6 insertions(+), 42 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c 
b/drivers/gpu/drm/i915/display/intel_ddi.c
index 9f3c8cd02a33..e59b5857bdb5 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -5286,7 +5286,7 @@ void intel_ddi_init(struct intel_display *display,
        if (HAS_LT_PHY(display)) {
                encoder->enable_clock = intel_xe3plpd_pll_enable_clock;
                encoder->disable_clock = intel_xe3plpd_pll_disable_clock;
-               encoder->port_pll_type = intel_mtl_port_pll_type;
+               encoder->port_pll_type = icl_ddi_tc_port_pll_type;
                if (intel_encoder_is_tc(encoder))
                        encoder->get_config = mtl_ddi_tc_phy_get_config;
                else
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 57b0ed062b41..b0e92e1bd98c 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5045,23 +5045,6 @@ static bool allow_vblank_delay_fastset(const struct 
intel_crtc_state *old_crtc_s
               !intel_crtc_has_type(old_crtc_state, INTEL_OUTPUT_DSI);
 }
 
-static void
-pipe_config_lt_phy_pll_mismatch(struct drm_printer *p, bool fastset,
-                               const struct intel_crtc *crtc,
-                               const char *name,
-                               const struct intel_lt_phy_pll_state *a,
-                               const struct intel_lt_phy_pll_state *b)
-{
-       char *chipname = "LTPHY";
-
-       pipe_config_mismatch(p, fastset, crtc, name, chipname);
-
-       drm_printf(p, "expected:\n");
-       intel_lt_phy_dump_hw_state(p, a);
-       drm_printf(p, "found:\n");
-       intel_lt_phy_dump_hw_state(p, b);
-}
-
 bool
 intel_pipe_config_compare(const struct intel_crtc_state *current_config,
                          const struct intel_crtc_state *pipe_config,
@@ -5176,16 +5159,6 @@ intel_pipe_config_compare(const struct intel_crtc_state 
*current_config,
        } \
 } while (0)
 
-#define PIPE_CONF_CHECK_PLL_LT(name) do { \
-       if (!intel_lt_phy_pll_compare_hw_state(&current_config->name, \
-                                              &pipe_config->name)) { \
-               pipe_config_lt_phy_pll_mismatch(&p, fastset, crtc, 
__stringify(name), \
-                                               &current_config->name, \
-                                               &pipe_config->name); \
-               ret = false; \
-       } \
-} while (0)
-
 #define PIPE_CONF_CHECK_TIMINGS(name) do {     \
        PIPE_CONF_CHECK_I(name.crtc_hdisplay); \
        PIPE_CONF_CHECK_I(name.crtc_htotal); \
@@ -5412,10 +5385,6 @@ intel_pipe_config_compare(const struct intel_crtc_state 
*current_config,
        if (display->dpll.mgr || HAS_GMCH(display))
                PIPE_CONF_CHECK_PLL(dpll_hw_state);
 
-       /* FIXME convert MTL+ platforms over to dpll_mgr */
-       if (HAS_LT_PHY(display))
-               PIPE_CONF_CHECK_PLL_LT(dpll_hw_state.ltpll);
-
        PIPE_CONF_CHECK_X(dsi_pll.ctrl);
        PIPE_CONF_CHECK_X(dsi_pll.div);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 534cc691979f..bbd2bcfc7ea3 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -4724,7 +4724,6 @@ static bool xe3plpd_compare_hw_state(const struct 
intel_dpll_hw_state *_a,
        return intel_lt_phy_pll_compare_hw_state(a, b);
 }
 
-__maybe_unused
 static const struct intel_dpll_mgr xe3plpd_pll_mgr = {
        .dpll_info = xe3plpd_plls,
        .compute_dplls = xe3plpd_compute_dplls,
@@ -4750,9 +4749,11 @@ void intel_dpll_init(struct intel_display *display)
 
        mutex_init(&display->dpll.lock);
 
-       if (DISPLAY_VER(display) >= 35 || display->platform.dg2)
-               /* No shared DPLLs on NVL or DG2; port PLLs are part of the PHY 
*/
+       if (display->platform.dg2)
+               /* No shared DPLLs on DG2; port PLLs are part of the PHY */
                dpll_mgr = NULL;
+       else if (DISPLAY_VER(display) >= 35)
+               dpll_mgr = &xe3plpd_pll_mgr;
        else if (DISPLAY_VER(display) >= 14)
                dpll_mgr = &mtl_pll_mgr;
        else if (display->platform.alderlake_p)
diff --git a/drivers/gpu/drm/i915/display/intel_lt_phy.c 
b/drivers/gpu/drm/i915/display/intel_lt_phy.c
index 1dc53918a054..f68c3164332e 100644
--- a/drivers/gpu/drm/i915/display/intel_lt_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_lt_phy.c
@@ -12,6 +12,7 @@
 #include "intel_ddi_buf_trans.h"
 #include "intel_de.h"
 #include "intel_display.h"
+#include "intel_display_regs.h"
 #include "intel_display_types.h"
 #include "intel_display_utils.h"
 #include "intel_dpll.h"
@@ -2284,9 +2285,6 @@ void intel_xe3plpd_pll_enable_clock(struct intel_encoder 
*encoder,
 
        if (intel_tc_port_in_tbt_alt_mode(dig_port))
                intel_mtl_tbt_pll_enable_clock(encoder, crtc_state->port_clock);
-       else
-               /* TODO: remove when PLL mgr is in place. */
-               intel_xe3plpd_pll_enable(encoder, NULL, 
&crtc_state->dpll_hw_state);
 }
 
 void intel_xe3plpd_pll_disable(struct intel_encoder *encoder)
@@ -2305,10 +2303,6 @@ void intel_xe3plpd_pll_disable_clock(struct 
intel_encoder *encoder)
 
        if (intel_tc_port_in_tbt_alt_mode(dig_port))
                intel_mtl_tbt_pll_disable_clock(encoder);
-       else
-               /* TODO: remove when PLL mgr is in place. */
-               intel_xe3plpd_pll_disable(encoder);
-
 }
 
 static void intel_lt_phy_pll_verify_clock(struct intel_display *display,
-- 
2.43.0

Reply via email to