[1/2] Revert "FIXME: drm/i915: avoid taking the uncore lock for xe"
Hogander, Jouni
jouni.hogander at intel.com
Thu Dec 7 16:03:06 UTC 2023
On Thu, 2023-12-07 at 15:01 +0200, Luca Coelho wrote:
> This reverts commit 54cbd07bd1d15cb6c8d28375dce6d6b70df6d252.
>
> Signed-off-by: Luca Coelho <luciano.coelho at intel.com>
Thank you Luca for the patches. These are now pushed to drm-xe-next
branch.
BR,
Jouni Högander
> ---
> drivers/gpu/drm/i915/display/intel_vblank.c | 24 +++++--------------
> --
> 1 file changed, 5 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c
> b/drivers/gpu/drm/i915/display/intel_vblank.c
> index 6a0d51823655..2cec2abf9746 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -306,11 +306,8 @@ static bool i915_get_crtc_scanoutpos(struct
> drm_crtc *_crtc,
> * register reads, potentially with preemption disabled, so
> the
> * following code must not block on uncore.lock.
> */
> -#ifdef I915
> spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
> -#else
> - local_irq_save(irqflags);
> -#endif
> +
> /* preempt_disable_rt() should go right here in PREEMPT_RT
> patchset. */
>
> /* Get optional system timestamp before query. */
> @@ -377,11 +374,8 @@ static bool i915_get_crtc_scanoutpos(struct
> drm_crtc *_crtc,
>
> /* preempt_enable_rt() should go right here in PREEMPT_RT
> patchset. */
>
> -#ifdef I915
> spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
> -#else
> - local_irq_restore(irqflags);
> -#endif
> +
> /*
> * While in vblank, position will be negative
> * counting up towards 0 at vbl_end. And outside
> @@ -414,19 +408,14 @@ bool intel_crtc_get_vblank_timestamp(struct
> drm_crtc *crtc, int *max_error,
>
> int intel_get_crtc_scanline(struct intel_crtc *crtc)
> {
> + struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> unsigned long irqflags;
> int position;
> -#ifdef I915
> - struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>
> spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
> position = __intel_get_crtc_scanline(crtc);
> spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
> -#else
> - local_irq_save(irqflags);
> - position = __intel_get_crtc_scanline(crtc);
> - local_irq_restore(irqflags);
> -#endif
> +
> return position;
> }
>
> @@ -548,9 +537,7 @@ void intel_crtc_update_active_timings(const
> struct intel_crtc_state *crtc_state,
> * Need to audit everything to make sure it's safe.
> */
> spin_lock_irqsave(&i915->drm.vblank_time_lock, irqflags);
> -#ifdef I915
> spin_lock(&i915->uncore.lock);
> -#endif
>
> drm_calc_timestamping_constants(&crtc->base, &adjusted_mode);
>
> @@ -559,8 +546,7 @@ void intel_crtc_update_active_timings(const
> struct intel_crtc_state *crtc_state,
> crtc->mode_flags = mode_flags;
>
> crtc->scanline_offset =
> intel_crtc_scanline_offset(crtc_state);
> -#ifdef I915
> +
> spin_unlock(&i915->uncore.lock);
> -#endif
> spin_unlock_irqrestore(&i915->drm.vblank_time_lock,
> irqflags);
> }
More information about the Intel-xe
mailing list