]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/display: Add macro with display driver features
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 12 May 2026 18:33:40 +0000 (20:33 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Thu, 14 May 2026 18:44:49 +0000 (20:44 +0200)
Instead of updating drm_driver.driver_features in the runtime, we
can use macro which value depends on the CONFIG_DRM_XE_DISPLAY.

And if display support is later disabled by the xe_modparam then we
will clear related bits in the drm_device.driver_features instead.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patch.msgid.link/20260512183342.3374-6-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/display/xe_display.c
drivers/gpu/drm/xe/display/xe_display.h
drivers/gpu/drm/xe/xe_device.c

index 7e7d476da8ce59e4d64ff176fee63f0dc35e1487..7e5382fc161d49e4636a882b2090af980c3d9bdf 100644 (file)
@@ -84,13 +84,11 @@ void xe_display_driver_set_hooks(struct drm_driver *driver)
 {
        if (!xe_modparam.probe_display)
                return;
-
-       driver->driver_features |= DRIVER_MODESET | DRIVER_ATOMIC;
 }
 
 static void unset_display_features(struct xe_device *xe)
 {
-       xe->drm.driver_features &= ~(DRIVER_MODESET | DRIVER_ATOMIC);
+       xe->drm.driver_features &= ~XE_DISPLAY_DRIVER_FEATURES;
 }
 
 static void xe_display_fini_early(void *arg)
index deec0232532eb4dd55d606b609feddd8aab3b33e..d2b105d5f2a1b3560ca7f885a4cbc381ec9ad11e 100644 (file)
@@ -44,12 +44,14 @@ void xe_display_pm_runtime_suspend(struct xe_device *xe);
 void xe_display_pm_runtime_suspend_late(struct xe_device *xe);
 void xe_display_pm_runtime_resume(struct xe_device *xe);
 
+#define XE_DISPLAY_DRIVER_FEATURES     (DRIVER_MODESET | DRIVER_ATOMIC)
 #define XE_DISPLAY_DRIVER_OPS                                          \
        .fbdev_probe = PTR_IF(IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION),   \
                              xe_display_driver_fbdev_probe)
 
 #else
 
+#define XE_DISPLAY_DRIVER_FEATURES     0
 #define XE_DISPLAY_DRIVER_OPS \
        .fbdev_probe = NULL
 
index 3bca4c1d1d5f142a6667b35d411dbe8542c6d22b..c053e4d2692ffa270572e47e25eb596a0f3ac0f7 100644 (file)
@@ -393,6 +393,7 @@ bool xe_is_xe_file(const struct file *file)
 
 static struct drm_driver regular_driver = {
        .driver_features =
+           XE_DISPLAY_DRIVER_FEATURES |
            DRIVER_GEM |
            DRIVER_RENDER | DRIVER_SYNCOBJ |
            DRIVER_SYNCOBJ_TIMELINE | DRIVER_GEM_GPUVA,
@@ -425,6 +426,7 @@ static const struct drm_ioctl_desc xe_ioctls_admin_only[] = {
 
 static struct drm_driver admin_only_driver = {
        .driver_features =
+           XE_DISPLAY_DRIVER_FEATURES |
            DRIVER_GEM | DRIVER_RENDER | DRIVER_GEM_GPUVA,
        .open = xe_file_open,
        .postclose = xe_file_close,