drm/i915/mtl: Add MTL for remapping CCS FBs
authorjsg <jsg@openbsd.org>
Mon, 1 Jan 2024 23:55:41 +0000 (23:55 +0000)
committerjsg <jsg@openbsd.org>
Mon, 1 Jan 2024 23:55:41 +0000 (23:55 +0000)
From Clint Taylor
de4349bdf9f3ba46d0e5e298924432957328ddfd in linux-6.1.y/6.1.70
0da6bfe857ea9399498876cbe6ef428637b6e475 in mainline linux

sys/dev/pci/drm/i915/display/intel_fb.c

index 4f7502d..99ee0e6 100644 (file)
@@ -1176,7 +1176,8 @@ bool intel_fb_needs_pot_stride_remap(const struct intel_framebuffer *fb)
 {
        struct drm_i915_private *i915 = to_i915(fb->base.dev);
 
-       return IS_ALDERLAKE_P(i915) && intel_fb_uses_dpt(&fb->base);
+       return (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14) &&
+               intel_fb_uses_dpt(&fb->base);
 }
 
 static int intel_fb_pitch(const struct intel_framebuffer *fb, int color_plane, unsigned int rotation)
@@ -1312,9 +1313,10 @@ plane_view_scanout_stride(const struct intel_framebuffer *fb, int color_plane,
                          unsigned int tile_width,
                          unsigned int src_stride_tiles, unsigned int dst_stride_tiles)
 {
+       struct drm_i915_private *i915 = to_i915(fb->base.dev);
        unsigned int stride_tiles;
 
-       if (IS_ALDERLAKE_P(to_i915(fb->base.dev)))
+       if (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14)
                stride_tiles = src_stride_tiles;
        else
                stride_tiles = dst_stride_tiles;
@@ -1520,7 +1522,8 @@ static void intel_fb_view_init(struct drm_i915_private *i915, struct intel_fb_vi
        memset(view, 0, sizeof(*view));
        view->gtt.type = view_type;
 
-       if (view_type == I915_GTT_VIEW_REMAPPED && IS_ALDERLAKE_P(i915))
+       if (view_type == I915_GTT_VIEW_REMAPPED &&
+           (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14))
                view->gtt.remapped.plane_alignment = SZ_2M / PAGE_SIZE;
 }