]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/{i915, xe}: deduplicate intel_alloc_initial_plane_obj() FB modifier checks
authorJani Nikula <jani.nikula@intel.com>
Mon, 15 Dec 2025 15:28:25 +0000 (17:28 +0200)
committerJani Nikula <jani.nikula@intel.com>
Mon, 22 Dec 2025 13:09:23 +0000 (15:09 +0200)
Move the modifier checks into common code to deduplicate.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/3c62ad48595aa2306219b1d6a215cf7680a67da2.1765812266.git.jani.nikula@intel.com
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_initial_plane.c
drivers/gpu/drm/i915/i915_initial_plane.c
drivers/gpu/drm/xe/display/xe_initial_plane.c

index cbfcc52f180f417c4cbedf72d417c151a27b45d4..e45d2f4e80ad7f4f2eba4b5e279e4b57348cc37c 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: MIT
 /* Copyright © 2025 Intel Corporation */
 
+#include <drm/drm_print.h>
 #include <drm/intel/display_parent_interface.h>
 
 #include "intel_display_core.h"
@@ -47,6 +48,19 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
                              struct intel_initial_plane_config *plane_config)
 {
        struct intel_display *display = to_intel_display(crtc);
+       struct intel_framebuffer *fb = plane_config->fb;
+
+       switch (fb->base.modifier) {
+       case DRM_FORMAT_MOD_LINEAR:
+       case I915_FORMAT_MOD_X_TILED:
+       case I915_FORMAT_MOD_Y_TILED:
+       case I915_FORMAT_MOD_4_TILED:
+               break;
+       default:
+               drm_dbg_kms(display->drm, "Unsupported modifier for initial FB: 0x%llx\n",
+                           fb->base.modifier);
+               return NULL;
+       }
 
        return display->parent->initial_plane->alloc_obj(&crtc->base, plane_config);
 }
index 0117f9e115d14da6579ba6c882bd3ccfac6a019c..5f7dfe7c6d42583fb65c6efe1afd40d3e2985648 100644 (file)
@@ -240,19 +240,6 @@ i915_alloc_initial_plane_obj(struct drm_crtc *_crtc,
        struct drm_framebuffer *fb = &plane_config->fb->base;
        struct i915_vma *vma;
 
-       switch (fb->modifier) {
-       case DRM_FORMAT_MOD_LINEAR:
-       case I915_FORMAT_MOD_X_TILED:
-       case I915_FORMAT_MOD_Y_TILED:
-       case I915_FORMAT_MOD_4_TILED:
-               break;
-       default:
-               drm_dbg(display->drm,
-                       "Unsupported modifier for initial FB: 0x%llx\n",
-                       fb->modifier);
-               return NULL;
-       }
-
        vma = initial_plane_vma(display, plane_config);
        if (!vma)
                return NULL;
index 2ce0f78cd7b1f77d4c919272323032cc523c9865..e819175d59468e5e7cd117a940e4a02b810b9d50 100644 (file)
@@ -134,19 +134,6 @@ xe_alloc_initial_plane_obj(struct drm_crtc *_crtc,
        struct drm_framebuffer *fb = &plane_config->fb->base;
        struct xe_bo *bo;
 
-       switch (fb->modifier) {
-       case DRM_FORMAT_MOD_LINEAR:
-       case I915_FORMAT_MOD_X_TILED:
-       case I915_FORMAT_MOD_Y_TILED:
-       case I915_FORMAT_MOD_4_TILED:
-               break;
-       default:
-               drm_dbg_kms(&xe->drm,
-                           "Unsupported modifier for initial FB: 0x%llx\n",
-                           fb->modifier);
-               return NULL;
-       }
-
        mode_cmd.pixel_format = fb->format->format;
        mode_cmd.width = fb->width;
        mode_cmd.height = fb->height;