[PATCH 7/9] drm/i915/irq: convert intel_display_irq.[ch] interfaces to struct intel_display
Ville Syrjälä
ville.syrjala at linux.intel.com
Tue Mar 11 19:15:41 UTC 2025
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.nikula at 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
More information about the Intel-xe
mailing list