@@ -3060,6 +3060,25 @@ void intel_ddi_update_pipe(struct intel_atomic_state *state,
30603060 intel_hdcp_update_pipe (state , encoder , crtc_state , conn_state );
30613061}
30623062
3063+ void intel_ddi_update_active_dpll (struct intel_atomic_state * state ,
3064+ struct intel_encoder * encoder ,
3065+ struct intel_crtc * crtc )
3066+ {
3067+ struct drm_i915_private * i915 = to_i915 (encoder -> base .dev );
3068+ struct intel_crtc_state * crtc_state =
3069+ intel_atomic_get_new_crtc_state (state , crtc );
3070+ struct intel_crtc * slave_crtc ;
3071+ enum phy phy = intel_port_to_phy (i915 , encoder -> port );
3072+
3073+ if (!intel_phy_is_tc (i915 , phy ))
3074+ return ;
3075+
3076+ intel_update_active_dpll (state , crtc , encoder );
3077+ for_each_intel_crtc_in_pipe_mask (& i915 -> drm , slave_crtc ,
3078+ intel_crtc_bigjoiner_slave_pipes (crtc_state ))
3079+ intel_update_active_dpll (state , slave_crtc , encoder );
3080+ }
3081+
30633082static void
30643083intel_ddi_pre_pll_enable (struct intel_atomic_state * state ,
30653084 struct intel_encoder * encoder ,
@@ -3074,15 +3093,9 @@ intel_ddi_pre_pll_enable(struct intel_atomic_state *state,
30743093 if (is_tc_port ) {
30753094 struct intel_crtc * master_crtc =
30763095 to_intel_crtc (crtc_state -> uapi .crtc );
3077- struct intel_crtc * slave_crtc ;
30783096
30793097 intel_tc_port_get_link (dig_port , crtc_state -> lane_count );
3080-
3081- intel_update_active_dpll (state , master_crtc , encoder );
3082-
3083- for_each_intel_crtc_in_pipe_mask (& dev_priv -> drm , slave_crtc ,
3084- intel_crtc_bigjoiner_slave_pipes (crtc_state ))
3085- intel_update_active_dpll (state , slave_crtc , encoder );
3098+ intel_ddi_update_active_dpll (state , encoder , master_crtc );
30863099 }
30873100
30883101 main_link_aux_power_domain_get (dig_port , crtc_state );
0 commit comments