drm/{i915,xe}/display: move irq calls to parent interface

Add an irq parent driver interface for the .enabled and .synchronize
calls. This lets us drop the dependency on i915_drv.h and i915_irq.h in
multiple places, and subsequently remove the compat i915_irq.h and
i915_irq.c files along with the display/ext directory from xe
altogether.

Introduce new intel_parent.[ch] as the wrapper layer to chase the
function pointers and convert between generic and more specific display
types.

v2: Keep static wrappers in intel_display_irq.c (Ville)

v3: Full blown wrappers in intel_parent.[ch] (Ville)

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/dd62dd52ef10d9ecf77da3bdf6a70f71193d141c.1763370931.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Jani Nikula
2025-11-17 11:16:10 +02:00
parent a651be53c4
commit 3815e8f2ff
18 changed files with 119 additions and 79 deletions

View File

@@ -25,6 +25,11 @@ struct intel_display_rpm_interface {
void (*assert_unblock)(const struct drm_device *drm);
};
struct intel_display_irq_interface {
bool (*enabled)(struct drm_device *drm);
void (*synchronize)(struct drm_device *drm);
};
/**
* struct intel_display_parent_interface - services parent driver provides to display
*
@@ -40,6 +45,9 @@ struct intel_display_rpm_interface {
struct intel_display_parent_interface {
/** @rpm: Runtime PM functions */
const struct intel_display_rpm_interface *rpm;
/** @irq: IRQ interface */
const struct intel_display_irq_interface *irq;
};
#endif