This is perhaps not ideal, but simplifies the interfaces, and allows us to get rid of the compat header in xe.
Signed-off-by: Jani Nikula <[email protected]> --- drivers/gpu/drm/i915/display/intel_display_rps.c | 2 ++ drivers/gpu/drm/i915/display/intel_plane.c | 6 +----- drivers/gpu/drm/i915/gt/intel_rps.c | 9 +++++++++ .../xe/compat-i915-headers/gem/i915_gem_object.h | 13 ------------- include/drm/intel/display_parent_interface.h | 1 + 5 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h diff --git a/drivers/gpu/drm/i915/display/intel_display_rps.c b/drivers/gpu/drm/i915/display/intel_display_rps.c index 44cb9dba0c19..a2d57671c419 100644 --- a/drivers/gpu/drm/i915/display/intel_display_rps.c +++ b/drivers/gpu/drm/i915/display/intel_display_rps.c @@ -48,6 +48,8 @@ void intel_display_rps_boost_after_vblank(struct drm_crtc *crtc, if (!display->parent->rps) return; + display->parent->rps->priority_display(fence); + if (DISPLAY_VER(display) < 6) return; diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c index 505c776c0585..28ee9502b596 100644 --- a/drivers/gpu/drm/i915/display/intel_plane.c +++ b/drivers/gpu/drm/i915/display/intel_plane.c @@ -45,7 +45,6 @@ #include <drm/drm_panic.h> #include <drm/drm_print.h> -#include "gem/i915_gem_object.h" #include "i9xx_plane_regs.h" #include "intel_cdclk.h" #include "intel_cursor.h" @@ -1176,12 +1175,9 @@ intel_prepare_plane_fb(struct drm_plane *_plane, if (ret < 0) goto unpin_fb; - if (new_plane_state->uapi.fence) { - i915_gem_fence_wait_priority_display(new_plane_state->uapi.fence); - + if (new_plane_state->uapi.fence) intel_display_rps_boost_after_vblank(new_plane_state->hw.crtc, new_plane_state->uapi.fence); - } /* * We declare pageflips to be interactive and so merit a small bias diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c index 05b21de6c24b..1af39198e0c5 100644 --- a/drivers/gpu/drm/i915/gt/intel_rps.c +++ b/drivers/gpu/drm/i915/gt/intel_rps.c @@ -2915,6 +2915,14 @@ bool i915_gpu_turbo_disable(void) } EXPORT_SYMBOL_GPL(i915_gpu_turbo_disable); +static void priority_display(struct dma_fence *fence) +{ + if (!dma_fence_is_i915(fence)) + return; + + i915_gem_fence_wait_priority_display(fence); +} + static void boost(struct dma_fence *fence) { struct i915_request *rq; @@ -2948,6 +2956,7 @@ static void ilk_irq_handler(struct drm_device *drm) } const struct intel_display_rps_interface i915_display_rps_interface = { + .priority_display = priority_display, .boost = boost, .mark_interactive = mark_interactive, .ilk_irq_handler = ilk_irq_handler, diff --git a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h b/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h deleted file mode 100644 index 0548b2e0316f..000000000000 --- a/drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h +++ /dev/null @@ -1,13 +0,0 @@ -/* SPDX-License-Identifier: MIT */ -/* Copyright © 2025 Intel Corporation */ - -#ifndef __I915_GEM_OBJECT_H__ -#define __I915_GEM_OBJECT_H__ - -struct dma_fence; - -static inline void i915_gem_fence_wait_priority_display(struct dma_fence *fence) -{ -} - -#endif diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h index 8920404545be..7614b35660c9 100644 --- a/include/drm/intel/display_parent_interface.h +++ b/include/drm/intel/display_parent_interface.h @@ -27,6 +27,7 @@ struct intel_display_rpm_interface { }; struct intel_display_rps_interface { + void (*priority_display)(struct dma_fence *fence); void (*boost)(struct dma_fence *fence); void (*mark_interactive)(struct drm_device *drm, bool interactive); void (*ilk_irq_handler)(struct drm_device *drm); -- 2.47.3
