]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/display: add intel_display_conversion.c to hide stuff better
authorJani Nikula <jani.nikula@intel.com>
Wed, 20 Nov 2024 12:03:34 +0000 (14:03 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 16 Dec 2024 16:09:35 +0000 (18:09 +0200)
The __to_intel_display() generics require the definition of struct
drm_i915_private i.e. inclusion of i915_drv.h. Add
intel_display_conversion.c with a __i915_to_display() function to do the
conversion without the intel_display_conversion.h having an implicit
dependency on i915_drv.h.

The long term goal is to remove __to_intel_display() and the
intel_display_conversion.[ch] files altoghether, and this is merely a
transitional step to make the dependencies on i915_drv.h explicit.

Reviewed-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/39e99b765b8c1a05d001659c39686a661ac268e2.1732104170.git.jani.nikula@intel.com
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/display/intel_display_conversion.c [new file with mode: 0644]
drivers/gpu/drm/i915/display/intel_display_conversion.h
drivers/gpu/drm/xe/Makefile

index 1e1e75e6c8e4f63f2ea5f9ccffc70ab2747edc15..3dda9f0eda82b7501193eb3fb9c0e5dd8efa71e4 100644 (file)
@@ -238,6 +238,7 @@ i915-y += \
        display/intel_crtc_state_dump.o \
        display/intel_cursor.o \
        display/intel_display.o \
+       display/intel_display_conversion.o \
        display/intel_display_driver.o \
        display/intel_display_irq.o \
        display/intel_display_params.o \
diff --git a/drivers/gpu/drm/i915/display/intel_display_conversion.c b/drivers/gpu/drm/i915/display/intel_display_conversion.c
new file mode 100644 (file)
index 0000000..bdd947f
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: MIT
+/* Copyright © 2024 Intel Corporation */
+
+#include "i915_drv.h"
+
+struct intel_display *__i915_to_display(struct drm_i915_private *i915)
+{
+       return &i915->display;
+}
index ad8545c8055dac150506fc1647e15b0d9a488121..790d0be698dc8500ec5167a0faa8fb30d0775bb5 100644 (file)
@@ -8,14 +8,19 @@
 #ifndef __INTEL_DISPLAY_CONVERSION__
 #define __INTEL_DISPLAY_CONVERSION__
 
+struct drm_i915_private;
+struct intel_display;
+
+struct intel_display *__i915_to_display(struct drm_i915_private *i915);
+
 /*
  * Transitional macro to optionally convert struct drm_i915_private * to struct
  * intel_display *, also accepting the latter.
  */
 #define __to_intel_display(p)                                          \
        _Generic(p,                                                     \
-                const struct drm_i915_private *: (&((const struct drm_i915_private *)(p))->display), \
-                struct drm_i915_private *: (&((struct drm_i915_private *)(p))->display), \
+                const struct drm_i915_private *: __i915_to_display((struct drm_i915_private *)(p)), \
+                struct drm_i915_private *: __i915_to_display((struct drm_i915_private *)(p)), \
                 const struct intel_display *: (p),                     \
                 struct intel_display *: (p))
 
index bc7a04ce69fd005b962b0f938375adae6411c5f1..c357b3afb0115694d6b310cf185b6c2385b64123 100644 (file)
@@ -206,6 +206,7 @@ xe-$(CONFIG_DRM_XE_DISPLAY) += \
        i915-display/intel_ddi.o \
        i915-display/intel_ddi_buf_trans.o \
        i915-display/intel_display.o \
+       i915-display/intel_display_conversion.o \
        i915-display/intel_display_device.o \
        i915-display/intel_display_driver.o \
        i915-display/intel_display_irq.o \