On Tue, Mar 11, 2025 at 08:00:41PM +0200, Jani Nikula wrote: > Going forward, struct intel_display is the main display device data > pointer. Convert the external interfaces of intel_display_irq.[ch] to > struct intel_display. > > Signed-off-by: Jani Nikula <jani.nik...@intel.com> > --- > drivers/gpu/drm/i915/display/i9xx_plane.c | 24 ++- > .../drm/i915/display/intel_display_driver.c | 2 +- > .../gpu/drm/i915/display/intel_display_irq.c | 204 +++++++++--------- > .../gpu/drm/i915/display/intel_display_irq.h | 75 ++++--- > .../i915/display/intel_display_power_well.c | 12 +- > .../drm/i915/display/intel_fifo_underrun.c | 27 +-- > .../gpu/drm/i915/display/intel_hotplug_irq.c | 22 +- > drivers/gpu/drm/i915/display/intel_pipe_crc.c | 3 +- > drivers/gpu/drm/i915/display/intel_tv.c | 4 +- > .../drm/i915/display/skl_universal_plane.c | 6 +- > drivers/gpu/drm/i915/gt/intel_rps.c | 6 +- > drivers/gpu/drm/i915/i915_irq.c | 98 +++++---- > drivers/gpu/drm/xe/display/xe_display.c | 12 +- > 13 files changed, 263 insertions(+), 232 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c > b/drivers/gpu/drm/i915/display/i9xx_plane.c > index 013295f66d56..5e8344fdfc28 100644 > --- a/drivers/gpu/drm/i915/display/i9xx_plane.c > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c > @@ -630,84 +630,92 @@ vlv_primary_async_flip(struct intel_dsb *dsb, > static void > bdw_primary_enable_flip_done(struct intel_plane *plane) > { > + struct intel_display *display = to_intel_display(plane); > struct drm_i915_private *i915 = to_i915(plane->base.dev); > enum pipe pipe = plane->pipe; > > spin_lock_irq(&i915->irq_lock); > - bdw_enable_pipe_irq(i915, pipe, GEN8_PIPE_PRIMARY_FLIP_DONE); > + bdw_enable_pipe_irq(display, pipe, GEN8_PIPE_PRIMARY_FLIP_DONE); > spin_unlock_irq(&i915->irq_lock); > } > > static void > bdw_primary_disable_flip_done(struct intel_plane *plane) > { > + struct intel_display *display = to_intel_display(plane); > struct drm_i915_private *i915 = to_i915(plane->base.dev); > enum pipe pipe = plane->pipe; > > spin_lock_irq(&i915->irq_lock); > - bdw_disable_pipe_irq(i915, pipe, GEN8_PIPE_PRIMARY_FLIP_DONE); > + bdw_disable_pipe_irq(display, pipe, GEN8_PIPE_PRIMARY_FLIP_DONE); > spin_unlock_irq(&i915->irq_lock); > } > > static void > ivb_primary_enable_flip_done(struct intel_plane *plane) > { > + struct intel_display *display = to_intel_display(plane); > struct drm_i915_private *i915 = to_i915(plane->base.dev); > > spin_lock_irq(&i915->irq_lock); > - ilk_enable_display_irq(i915, DE_PLANE_FLIP_DONE_IVB(plane->i9xx_plane)); > + ilk_enable_display_irq(display, > DE_PLANE_FLIP_DONE_IVB(plane->i9xx_plane)); > spin_unlock_irq(&i915->irq_lock);
I was pondering if we could just suck the lock into these guys. But at least the fifo underrun reporting code is using some of these things and there there the lock is taken further out. So sadly not as trivial as I was hoping. -- Ville Syrjälä Intel