Message ID | 20230504102805.18645-2-juhapekka.heikkila@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/4] drm/i915/mtl: Drop FLAT CCS check | expand |
> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Juha- > Pekka Heikkila > Sent: Thursday, May 4, 2023 3:28 AM > To: intel-gfx@lists.freedesktop.org > Subject: [Intel-gfx] [PATCH 2/4] drm/i915/mtl: Add MTL for remapping CCS FBs > > 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. > > Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com> > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> With Alignment of commit message fixed. Reviewed-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 e5f637897b5e..c004f08fcfe1 100644 > --- a/drivers/gpu/drm/i915/display/intel_fb.c > +++ b/drivers/gpu/drm/i915/display/intel_fb.c > @@ -1190,7 +1190,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) > @@ -1326,9 +1327,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; > @@ -1522,7 +1524,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.25.1
On Thu, May 04, 2023 at 01:28:03PM +0300, Juha-Pekka Heikkila 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. The alignment here is off. Andi > Signed-off-by: Clint Taylor <clinton.a.taylor@intel.com> > Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.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 e5f637897b5e..c004f08fcfe1 100644 --- a/drivers/gpu/drm/i915/display/intel_fb.c +++ b/drivers/gpu/drm/i915/display/intel_fb.c @@ -1190,7 +1190,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) @@ -1326,9 +1327,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; @@ -1522,7 +1524,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; }