drm/i915/icl: Clear the shared port PLLs from the new crtc state
For consistency clear the icl_port_dplls from the new crtc state, when releasing the DPLLs from the old crtc state. Leaving them set could result in releasing the same PLLs multiple times from the same CRTC state incorrectly (if the same CRTC was first used for a TypeC port then for a combo PHY port). Leaving the stale pointers behind happens not to cause a problem atm (since the incorrect releasing will be a NOP), but we need to fix that for consistency. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190708140735.20198-2-imre.deak@intel.com
This commit is contained in:
parent
5c28e3a567
commit
f7ddc80ecb
@ -3028,15 +3028,17 @@ static void icl_put_dplls(struct intel_atomic_state *state,
|
||||
new_crtc_state->shared_dpll = NULL;
|
||||
|
||||
for (id = ICL_PORT_DPLL_DEFAULT; id < ICL_PORT_DPLL_COUNT; id++) {
|
||||
const struct icl_port_dpll *port_dpll =
|
||||
const struct icl_port_dpll *old_port_dpll =
|
||||
&old_crtc_state->icl_port_dplls[id];
|
||||
struct icl_port_dpll *new_port_dpll =
|
||||
&new_crtc_state->icl_port_dplls[id];
|
||||
|
||||
if (!port_dpll->pll)
|
||||
new_port_dpll->pll = NULL;
|
||||
|
||||
if (!old_port_dpll->pll)
|
||||
continue;
|
||||
|
||||
intel_unreference_shared_dpll(state, crtc, port_dpll->pll);
|
||||
|
||||
/* FIXME: Clear the icl_port_dplls from the new crtc state */
|
||||
intel_unreference_shared_dpll(state, crtc, old_port_dpll->pll);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user