Message ID | 20230222073507.788705-8-radhakrishna.sripada@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Misc Meteorlake patches | expand |
On Tue, Feb 21, 2023 at 11:35:05PM -0800, Radhakrishna Sripada wrote: > From: Clint Taylor <clinton.a.taylor@intel.com> > > Add support for remapping CCS FBs on MTL to remove the restriction > of the power-of-two sized stride and the 2MB surface offset alignment > for these FBs. There's strange/unwanted indentation here... The "Add MTL for..." part of the title also seems confusing to me. It might be worth rewording? > > Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com> > Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> > --- > drivers/gpu/drm/i915/display/intel_fb.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c > index 799bdc81a6a9..fc4cb829e8af 100644 > --- a/drivers/gpu/drm/i915/display/intel_fb.c > +++ b/drivers/gpu/drm/i915/display/intel_fb.c > @@ -1189,7 +1189,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) && fb->base.modifier != DRM_FORMAT_MOD_LINEAR; > + return (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14) && We're updating this condition in a few places (and may need to update it again in the future); it might be worth creating a feature flag for this, since I'm not sure if it's definitely going to carry forward to all future platforms. Matt > + fb->base.modifier != DRM_FORMAT_MOD_LINEAR; > } > > static int intel_fb_pitch(const struct intel_framebuffer *fb, int color_plane, unsigned int rotation) > @@ -1325,9 +1326,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; > @@ -1521,7 +1523,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; > } > > -- > 2.34.1 >
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c index 799bdc81a6a9..fc4cb829e8af 100644 --- a/drivers/gpu/drm/i915/display/intel_fb.c +++ b/drivers/gpu/drm/i915/display/intel_fb.c @@ -1189,7 +1189,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) && fb->base.modifier != DRM_FORMAT_MOD_LINEAR; + return (IS_ALDERLAKE_P(i915) || DISPLAY_VER(i915) >= 14) && + fb->base.modifier != DRM_FORMAT_MOD_LINEAR; } static int intel_fb_pitch(const struct intel_framebuffer *fb, int color_plane, unsigned int rotation) @@ -1325,9 +1326,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; @@ -1521,7 +1523,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; }