Commit 5c28e3a5 authored by Imre Deak's avatar Imre Deak

drm/i915: Clear the shared PLL from the put_dplls() hook

For symmetry with the get_dplls() hook which sets the shared_dpll
pointer clear the same pointer from the put_dplls() hook.

While at it also constify the old crtc state.

v2:
- Constify the old crtc state. (Ville)
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190708140735.20198-1-imre.deak@intel.com
parent a46f4e9e
...@@ -13307,8 +13307,6 @@ static void intel_modeset_clear_plls(struct intel_atomic_state *state) ...@@ -13307,8 +13307,6 @@ static void intel_modeset_clear_plls(struct intel_atomic_state *state)
if (!needs_modeset(new_crtc_state)) if (!needs_modeset(new_crtc_state))
continue; continue;
new_crtc_state->shared_dpll = NULL;
intel_release_shared_dplls(state, crtc); intel_release_shared_dplls(state, crtc);
} }
} }
......
...@@ -323,13 +323,17 @@ static void intel_unreference_shared_dpll(struct intel_atomic_state *state, ...@@ -323,13 +323,17 @@ static void intel_unreference_shared_dpll(struct intel_atomic_state *state,
static void intel_put_dpll(struct intel_atomic_state *state, static void intel_put_dpll(struct intel_atomic_state *state,
struct intel_crtc *crtc) struct intel_crtc *crtc)
{ {
struct intel_crtc_state *crtc_state = const struct intel_crtc_state *old_crtc_state =
intel_atomic_get_old_crtc_state(state, crtc); intel_atomic_get_old_crtc_state(state, crtc);
struct intel_crtc_state *new_crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
if (!crtc_state->shared_dpll) new_crtc_state->shared_dpll = NULL;
if (!old_crtc_state->shared_dpll)
return; return;
intel_unreference_shared_dpll(state, crtc, crtc_state->shared_dpll); intel_unreference_shared_dpll(state, crtc, old_crtc_state->shared_dpll);
} }
/** /**
...@@ -3015,13 +3019,17 @@ static bool icl_get_dplls(struct intel_atomic_state *state, ...@@ -3015,13 +3019,17 @@ static bool icl_get_dplls(struct intel_atomic_state *state,
static void icl_put_dplls(struct intel_atomic_state *state, static void icl_put_dplls(struct intel_atomic_state *state,
struct intel_crtc *crtc) struct intel_crtc *crtc)
{ {
struct intel_crtc_state *crtc_state = const struct intel_crtc_state *old_crtc_state =
intel_atomic_get_old_crtc_state(state, crtc); intel_atomic_get_old_crtc_state(state, crtc);
struct intel_crtc_state *new_crtc_state =
intel_atomic_get_new_crtc_state(state, crtc);
enum icl_port_dpll_id id; enum icl_port_dpll_id id;
new_crtc_state->shared_dpll = NULL;
for (id = ICL_PORT_DPLL_DEFAULT; id < ICL_PORT_DPLL_COUNT; id++) { for (id = ICL_PORT_DPLL_DEFAULT; id < ICL_PORT_DPLL_COUNT; id++) {
struct icl_port_dpll *port_dpll = const struct icl_port_dpll *port_dpll =
&crtc_state->icl_port_dplls[id]; &old_crtc_state->icl_port_dplls[id];
if (!port_dpll->pll) if (!port_dpll->pll)
continue; continue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment