On Thu, Feb 24, 2022 at 06:51:00PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > All the skl+ scaler registers are suitably confined to their own > cachelines so we don't need the uncore.lock to globally serialize > access to these registers. We actually already dropped some of this > in commit 14ad15296d1f ("drm/i915: Make skl+ universal plane > registers unlocked") as the plane scaler enabling/reconfiguration > became lockless. So let's complete that and remove the rest of > the locks from the scaler programming as well. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/skl_scaler.c | 10 ---------- > 1 file changed, 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c > index c2e94118566b..ac67e9fbb713 100644 > --- a/drivers/gpu/drm/i915/display/skl_scaler.c > +++ b/drivers/gpu/drm/i915/display/skl_scaler.c > @@ -412,7 +412,6 @@ void skl_pfit_enable(const struct intel_crtc_state *crtc_state) > int x = dst->x1; > int y = dst->y1; > int hscale, vscale; > - unsigned long irqflags; > int id; > u32 ps_ctrl; > > @@ -434,8 +433,6 @@ void skl_pfit_enable(const struct intel_crtc_state *crtc_state) > ps_ctrl = skl_scaler_get_filter_select(crtc_state->hw.scaling_filter, 0); > ps_ctrl |= PS_SCALER_EN | scaler_state->scalers[id].mode; > > - spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); > - > skl_scaler_setup_filter(dev_priv, pipe, id, 0, > crtc_state->hw.scaling_filter); > > @@ -449,8 +446,6 @@ void skl_pfit_enable(const struct intel_crtc_state *crtc_state) > x << 16 | y); > intel_de_write_fw(dev_priv, SKL_PS_WIN_SZ(pipe, id), > width << 16 | height); > - > - spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); > } > > void > @@ -519,15 +514,10 @@ static void skl_detach_scaler(struct intel_crtc *crtc, int id) > { > struct drm_device *dev = crtc->base.dev; > struct drm_i915_private *dev_priv = to_i915(dev); > - unsigned long irqflags; > - > - spin_lock_irqsave(&dev_priv->uncore.lock, irqflags); > > intel_de_write_fw(dev_priv, SKL_PS_CTRL(crtc->pipe, id), 0); > intel_de_write_fw(dev_priv, SKL_PS_WIN_POS(crtc->pipe, id), 0); > intel_de_write_fw(dev_priv, SKL_PS_WIN_SZ(crtc->pipe, id), 0); > - > - spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); > } > > /* > -- > 2.34.1 >