On Mon, 2020-01-20 at 19:47 +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Move the initial setup of state- > >{cdclk,min_cdclk[],min_voltage_level[]} > into intel_modeset_calc_cdclk(), and we'll move the counterparts into > intel_cdclk_swap_state(). This encapsulates the cdclk state much > better. > Reviewed-by: José Roberto de Souza <jose.souza@xxxxxxxxx> > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_cdclk.c | 26 +++++++++++++++--- > -- > drivers/gpu/drm/i915/display/intel_display.c | 11 --------- > 2 files changed, 20 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c > b/drivers/gpu/drm/i915/display/intel_cdclk.c > index 0ce5926006ca..05f6c6456ddf 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -1819,6 +1819,14 @@ void intel_cdclk_swap_state(struct > intel_atomic_state *state) > { > struct drm_i915_private *dev_priv = to_i915(state->base.dev); > > + /* FIXME maybe swap() these too */ > + memcpy(dev_priv->min_cdclk, state->min_cdclk, > + sizeof(state->min_cdclk)); > + memcpy(dev_priv->min_voltage_level, state->min_voltage_level, > + sizeof(state->min_voltage_level)); > + > + dev_priv->cdclk.force_min_cdclk = state->cdclk.force_min_cdclk; > + > swap(state->cdclk.logical, dev_priv->cdclk.logical); > swap(state->cdclk.actual, dev_priv->cdclk.actual); > } > @@ -2033,9 +2041,6 @@ static int intel_compute_min_cdclk(struct > intel_atomic_state *state) > int min_cdclk, i; > enum pipe pipe; > > - memcpy(state->min_cdclk, dev_priv->min_cdclk, > - sizeof(state->min_cdclk)); > - > for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) { > int ret; > > @@ -2082,9 +2087,6 @@ static int bxt_compute_min_voltage_level(struct > intel_atomic_state *state) > int i; > enum pipe pipe; > > - memcpy(state->min_voltage_level, dev_priv->min_voltage_level, > - sizeof(state->min_voltage_level)); > - > for_each_new_intel_crtc_in_state(state, crtc, crtc_state, i) { > int ret; > > @@ -2339,6 +2341,18 @@ int intel_modeset_calc_cdclk(struct > intel_atomic_state *state) > enum pipe pipe; > int ret; > > + memcpy(state->min_cdclk, dev_priv->min_cdclk, > + sizeof(state->min_cdclk)); > + memcpy(state->min_voltage_level, dev_priv->min_voltage_level, > + sizeof(state->min_voltage_level)); > + > + /* keep the current setting */ > + if (!state->cdclk.force_min_cdclk_changed) > + state->cdclk.force_min_cdclk = dev_priv- > >cdclk.force_min_cdclk; > + > + state->cdclk.logical = dev_priv->cdclk.logical; > + state->cdclk.actual = dev_priv->cdclk.actual; > + > ret = dev_priv->display.modeset_calc_cdclk(state); > if (ret) > return ret; > diff --git a/drivers/gpu/drm/i915/display/intel_display.c > b/drivers/gpu/drm/i915/display/intel_display.c > index 8dcb86c51aaa..930e9256596c 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -14360,14 +14360,8 @@ static int intel_modeset_checks(struct > intel_atomic_state *state) > struct intel_crtc *crtc; > int ret, i; > > - /* keep the current setting */ > - if (!state->cdclk.force_min_cdclk_changed) > - state->cdclk.force_min_cdclk = dev_priv- > >cdclk.force_min_cdclk; > - > state->modeset = true; > state->active_pipes = dev_priv->active_pipes; > - state->cdclk.logical = dev_priv->cdclk.logical; > - state->cdclk.actual = dev_priv->cdclk.actual; > > for_each_oldnew_intel_crtc_in_state(state, crtc, > old_crtc_state, > new_crtc_state, i) { > @@ -15673,12 +15667,7 @@ static int intel_atomic_commit(struct > drm_device *dev, > if (state->global_state_changed) { > assert_global_state_locked(dev_priv); > > - memcpy(dev_priv->min_cdclk, state->min_cdclk, > - sizeof(state->min_cdclk)); > - memcpy(dev_priv->min_voltage_level, state- > >min_voltage_level, > - sizeof(state->min_voltage_level)); > dev_priv->active_pipes = state->active_pipes; > - dev_priv->cdclk.force_min_cdclk = state- > >cdclk.force_min_cdclk; > > intel_cdclk_swap_state(state); > } _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx