[Intel-xe] [PATCH v4 2/3] drm/xe/display: Enable remapped display page tables

Ruhl, Michael J michael.j.ruhl at intel.com
Fri Oct 6 17:30:48 UTC 2023



>-----Original Message-----
>From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of Juha-
>Pekka Heikkila
>Sent: Friday, October 6, 2023 9:46 AM
>To: intel-xe at lists.freedesktop.org
>Subject: [Intel-xe] [PATCH v4 2/3] drm/xe/display: Enable remapped display
>page tables
>
>Enable usage of remapped display page tables where needed.

Looks reasonable.

Reviewed-by: Michael J. Ruhl <michael.j.ruhl at intel.com>

M

>Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
>---
> drivers/gpu/drm/xe/display/xe_fb_pin.c | 21 +++++++++++++++------
> 1 file changed, 15 insertions(+), 6 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c
>b/drivers/gpu/drm/xe/display/xe_fb_pin.c
>index 8a1cb6c28eb0..e8e38091c8e6 100644
>--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
>+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
>@@ -88,6 +88,9 @@ static int __xe_pin_fb_vma_dpt(struct intel_framebuffer
>*fb,
>
> 	if (view->type == I915_GTT_VIEW_NORMAL)
> 		dpt_size = ALIGN(size / XE_PAGE_SIZE * 8, XE_PAGE_SIZE);
>+	else if  (view->type == I915_GTT_VIEW_REMAPPED)
>+		dpt_size = ALIGN(intel_remapped_info_size(&fb-
>>remapped_view.gtt.remapped) * 8,
>+				 XE_PAGE_SIZE);
> 	else
> 		/* display uses 4K tiles instead of bytes here, convert to
>entries.. */
> 		dpt_size = ALIGN(intel_rotation_info_size(&view->rotated) * 8,
>@@ -119,6 +122,18 @@ static int __xe_pin_fb_vma_dpt(struct
>intel_framebuffer *fb,
>
> 			iosys_map_wr(&dpt->vmap, x * 8, u64, pte);
> 		}
>+	} else if (view->type == I915_GTT_VIEW_REMAPPED) {
>+		const struct intel_remapped_info *remap_info = &view-
>>remapped;
>+		u32 i, dpt_ofs = 0;
>+
>+		for (i = 0; i < ARRAY_SIZE(remap_info->plane); i++)
>+			write_dpt_remapped(bo, &dpt->vmap, &dpt_ofs,
>+					   remap_info->plane[i].offset,
>+					   remap_info->plane[i].width,
>+					   remap_info->plane[i].height,
>+					   remap_info->plane[i].src_stride,
>+					   remap_info->plane[i].dst_stride);
>+
> 	} else {
> 		const struct intel_rotation_info *rot_info = &view->rotated;
> 		u32 i, dpt_ofs = 0;
>@@ -240,12 +255,6 @@ static struct i915_vma *__xe_pin_fb_vma(struct
>intel_framebuffer *fb,
> 	if (!vma)
> 		return ERR_PTR(-ENODEV);
>
>-	/* Remapped view is only required on ADL-P, which xe doesn't support.
>*/
>-	if (XE_WARN_ON(view->type == I915_GTT_VIEW_REMAPPED)) {
>-		ret = -ENODEV;
>-		goto err;
>-	}
>-
> 	if (IS_DGFX(to_xe_device(bo->ttm.base.dev)) &&
> 	    intel_fb_rc_ccs_cc_plane(&fb->base) >= 0 &&
> 	    !(bo->flags & XE_BO_NEEDS_CPU_ACCESS)) {
>--
>2.25.1



More information about the Intel-xe mailing list