* [PATCH v2 01/16] drm/i915: Introduce intel_parent_fb_pin_get_map()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 02/16] drm/i915: Move intel_fb_pin_params to the parent interface Ville Syrjala
` (18 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Introduce the "fb_pin" parent interface, as the first trivial step
move the *_get_map() stuff there.
The whole "fb_pin" as an interface might not really make sense,
and perhaps this (and other stuff) should just be collected into
some kind of "bo" interface. But let's go with "fb_pin" for now
to match where things are implemented, and possibly restructure
it later.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_fb_pin.h | 1 -
drivers/gpu/drm/i915/display/intel_fbdev.c | 7 +++++--
drivers/gpu/drm/i915/display/intel_fbdev.h | 4 ++--
drivers/gpu/drm/i915/display/intel_parent.c | 7 +++++++
drivers/gpu/drm/i915/display/intel_parent.h | 5 +++++
drivers/gpu/drm/i915/display/intel_plane.c | 4 ++--
drivers/gpu/drm/i915/i915_driver.c | 2 ++
drivers/gpu/drm/i915/i915_fb_pin.c | 8 +++++++-
drivers/gpu/drm/i915/i915_fb_pin.h | 9 +++++++++
drivers/gpu/drm/xe/display/xe_display.c | 2 ++
drivers/gpu/drm/xe/display/xe_fb_pin.c | 8 +++++++-
drivers/gpu/drm/xe/display/xe_fb_pin.h | 9 +++++++++
include/drm/intel/display_parent_interface.h | 8 ++++++++
13 files changed, 65 insertions(+), 9 deletions(-)
create mode 100644 drivers/gpu/drm/i915/i915_fb_pin.h
create mode 100644 drivers/gpu/drm/xe/display/xe_fb_pin.h
diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h
index 5825503c38ea..805e23067004 100644
--- a/drivers/gpu/drm/i915/display/intel_fb_pin.h
+++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h
@@ -35,6 +35,5 @@ void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id);
int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state);
void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state);
-void intel_fb_get_map(struct i915_vma *vma, struct iosys_map *map);
#endif
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 9ab0ac49abb7..ce4082da30e8 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -55,6 +55,7 @@
#include "intel_fb_pin.h"
#include "intel_fbdev.h"
#include "intel_frontbuffer.h"
+#include "intel_parent.h"
#include "intel_plane.h"
struct intel_fbdev {
@@ -563,7 +564,9 @@ struct i915_vma *intel_fbdev_vma_pointer(struct intel_fbdev *fbdev)
return fbdev ? fbdev->vma : NULL;
}
-void intel_fbdev_get_map(struct intel_fbdev *fbdev, struct iosys_map *map)
+void intel_fbdev_get_map(struct intel_display *display, struct iosys_map *map)
{
- intel_fb_get_map(fbdev->vma, map);
+ struct intel_fbdev *fbdev = display->fbdev.fbdev;
+
+ intel_parent_fb_pin_get_map(display, fbdev->vma, map);
}
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.h b/drivers/gpu/drm/i915/display/intel_fbdev.h
index 150cc5f45bb3..edaf5d16a456 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.h
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.h
@@ -23,7 +23,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
void intel_fbdev_setup(struct intel_display *display);
struct intel_framebuffer *intel_fbdev_framebuffer(struct intel_fbdev *fbdev);
struct i915_vma *intel_fbdev_vma_pointer(struct intel_fbdev *fbdev);
-void intel_fbdev_get_map(struct intel_fbdev *fbdev, struct iosys_map *map);
+void intel_fbdev_get_map(struct intel_display *display, struct iosys_map *map);
#else
#define INTEL_FBDEV_DRIVER_OPS \
.fbdev_probe = NULL
@@ -40,7 +40,7 @@ static inline struct i915_vma *intel_fbdev_vma_pointer(struct intel_fbdev *fbdev
return NULL;
}
-static inline void intel_fbdev_get_map(struct intel_fbdev *fbdev, struct iosys_map *map)
+static inline void intel_fbdev_get_map(struct intel_display *display, struct iosys_map *map)
{
}
#endif
diff --git a/drivers/gpu/drm/i915/display/intel_parent.c b/drivers/gpu/drm/i915/display/intel_parent.c
index 67b21a42d354..070cc60f49b3 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.c
+++ b/drivers/gpu/drm/i915/display/intel_parent.c
@@ -52,6 +52,13 @@ void intel_parent_dpt_resume(struct intel_display *display, struct intel_dpt *dp
display->parent->dpt->resume(dpt);
}
+/* fb_pin */
+void intel_parent_fb_pin_get_map(struct intel_display *display,
+ struct i915_vma *vma, struct iosys_map *map)
+{
+ return display->parent->fb_pin->get_map(vma, map);
+}
+
/* frontbuffer */
struct intel_frontbuffer *intel_parent_frontbuffer_get(struct intel_display *display, struct drm_gem_object *obj)
{
diff --git a/drivers/gpu/drm/i915/display/intel_parent.h b/drivers/gpu/drm/i915/display/intel_parent.h
index 5f0c835b9416..2b9e829e7f47 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.h
+++ b/drivers/gpu/drm/i915/display/intel_parent.h
@@ -18,6 +18,7 @@ struct intel_frontbuffer;
struct intel_hdcp_gsc_context;
struct intel_panic;
struct intel_stolen_node;
+struct iosys_map;
/* dpt */
struct intel_dpt *intel_parent_dpt_create(struct intel_display *display,
@@ -26,6 +27,10 @@ void intel_parent_dpt_destroy(struct intel_display *display, struct intel_dpt *d
void intel_parent_dpt_suspend(struct intel_display *display, struct intel_dpt *dpt);
void intel_parent_dpt_resume(struct intel_display *display, struct intel_dpt *dpt);
+/* fb_pin */
+void intel_parent_fb_pin_get_map(struct intel_display *display,
+ struct i915_vma *vma, struct iosys_map *map);
+
/* frontbuffer */
struct intel_frontbuffer *intel_parent_frontbuffer_get(struct intel_display *display, struct drm_gem_object *obj);
void intel_parent_frontbuffer_ref(struct intel_display *display, struct intel_frontbuffer *front);
diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c
index c181a7d063ec..8264b66812a5 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -1404,7 +1404,7 @@ static void intel_panic_flush(struct drm_plane *_plane)
if (fb == intel_fbdev_framebuffer(display->fbdev.fbdev)) {
struct iosys_map map;
- intel_fbdev_get_map(display->fbdev.fbdev, &map);
+ intel_fbdev_get_map(display, &map);
drm_clflush_virt_range(map.vaddr, fb->base.pitches[0] * fb->base.height);
return;
}
@@ -1462,7 +1462,7 @@ static int intel_get_scanout_buffer(struct drm_plane *plane,
return -ENODEV;
if (fb == intel_fbdev_framebuffer(display->fbdev.fbdev)) {
- intel_fbdev_get_map(display->fbdev.fbdev, &sb->map[0]);
+ intel_fbdev_get_map(display, &sb->map[0]);
} else {
int ret;
/* Can't disable tiling if DPT is in use */
diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index a4bd4f8e18b2..f06b2e8cf7d4 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -99,6 +99,7 @@
#include "i915_drv.h"
#include "i915_dsb_buffer.h"
#include "i915_edram.h"
+#include "i915_fb_pin.h"
#include "i915_file_private.h"
#include "i915_getparam.h"
#include "i915_gmch.h"
@@ -768,6 +769,7 @@ static const struct intel_display_parent_interface parent = {
.bo = &i915_display_bo_interface,
.dpt = &i915_display_dpt_interface,
.dsb = &i915_display_dsb_interface,
+ .fb_pin = &i915_display_fb_pin_interface,
.frontbuffer = &i915_display_frontbuffer_interface,
.hdcp = &i915_display_hdcp_interface,
.initial_plane = &i915_display_initial_plane_interface,
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index b0e121462ca3..b800b55530a5 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -8,6 +8,7 @@
*/
#include <drm/drm_print.h>
+#include <drm/intel/display_parent_interface.h>
#include "display/intel_display_core.h"
#include "display/intel_display_types.h"
@@ -18,6 +19,7 @@
#include "gem/i915_gem_domain.h"
#include "gem/i915_gem_object.h"
+#include "i915_fb_pin.h"
#include "i915_dpt.h"
#include "i915_drv.h"
#include "i915_vma.h"
@@ -352,7 +354,11 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
}
}
-void intel_fb_get_map(struct i915_vma *vma, struct iosys_map *map)
+static void i915_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
{
iosys_map_set_vaddr_iomem(map, i915_vma_get_iomap(vma));
}
+
+const struct intel_display_fb_pin_interface i915_display_fb_pin_interface = {
+ .get_map = i915_fb_pin_get_map,
+};
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.h b/drivers/gpu/drm/i915/i915_fb_pin.h
new file mode 100644
index 000000000000..18c6c0b61ab8
--- /dev/null
+++ b/drivers/gpu/drm/i915/i915_fb_pin.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2026 Intel Corporation */
+
+#ifndef __I915_FB_PIN_H__
+#define __I915_FB_PIN_H__
+
+extern const struct intel_display_fb_pin_interface i915_display_fb_pin_interface;
+
+#endif /* __I915_FB_PIN_H__ */
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 0747044f7c2a..aa73023b7398 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -40,6 +40,7 @@
#include "xe_display_pcode.h"
#include "xe_display_rpm.h"
#include "xe_dsb_buffer.h"
+#include "xe_fb_pin.h"
#include "xe_frontbuffer.h"
#include "xe_hdcp_gsc.h"
#include "xe_initial_plane.h"
@@ -553,6 +554,7 @@ static bool has_auxccs(struct drm_device *drm)
static const struct intel_display_parent_interface parent = {
.bo = &xe_display_bo_interface,
.dsb = &xe_display_dsb_interface,
+ .fb_pin = &xe_display_fb_pin_interface,
.frontbuffer = &xe_display_frontbuffer_interface,
.hdcp = &xe_display_hdcp_interface,
.initial_plane = &xe_display_initial_plane_interface,
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 8d0067f908c5..1039058a7ed6 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -3,6 +3,7 @@
* Copyright © 2021 Intel Corporation
*/
+#include <drm/intel/display_parent_interface.h>
#include <drm/ttm/ttm_bo.h>
#include "intel_display_core.h"
@@ -13,6 +14,7 @@
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_display_vma.h"
+#include "xe_fb_pin.h"
#include "xe_ggtt.h"
#include "xe_pat.h"
#include "xe_pm.h"
@@ -506,7 +508,11 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
old_plane_state->ggtt_vma = NULL;
}
-void intel_fb_get_map(struct i915_vma *vma, struct iosys_map *map)
+static void xe_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
{
*map = vma->bo->vmap;
}
+
+const struct intel_display_fb_pin_interface xe_display_fb_pin_interface = {
+ .get_map = xe_fb_pin_get_map,
+};
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.h b/drivers/gpu/drm/xe/display/xe_fb_pin.h
new file mode 100644
index 000000000000..8a42d4009f5d
--- /dev/null
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: MIT */
+/* Copyright © 2026 Intel Corporation */
+
+#ifndef __XE_FB_PIN_H__
+#define __XE_FB_PIN_H__
+
+extern const struct intel_display_fb_pin_interface xe_display_fb_pin_interface;
+
+#endif /* __XE_FB_PIN_H__ */
diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h
index 270dc028bec2..ee2e9572bfca 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -24,6 +24,7 @@ struct intel_hdcp_gsc_context;
struct intel_initial_plane_config;
struct intel_panic;
struct intel_stolen_node;
+struct iosys_map;
struct ref_tracker;
struct seq_file;
struct vm_area_struct;
@@ -69,6 +70,10 @@ struct intel_display_dsb_interface {
void (*flush_map)(struct intel_dsb_buffer *dsb_buf);
};
+struct intel_display_fb_pin_interface {
+ void (*get_map)(struct i915_vma *vma, struct iosys_map *map);
+};
+
struct intel_display_frontbuffer_interface {
struct intel_frontbuffer *(*get)(struct drm_gem_object *obj);
void (*ref)(struct intel_frontbuffer *front);
@@ -211,6 +216,9 @@ struct intel_display_parent_interface {
/** @dsb: DSB buffer interface */
const struct intel_display_dsb_interface *dsb;
+ /** @fb_pin: Framebuffer pin interface */
+ const struct intel_display_fb_pin_interface *fb_pin;
+
/** @frontbuffer: Frontbuffer interface */
const struct intel_display_frontbuffer_interface *frontbuffer;
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 02/16] drm/i915: Move intel_fb_pin_params to the parent interface
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 01/16] drm/i915: Introduce intel_parent_fb_pin_get_map() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 03/16] drm/i915: Move the i915_dpt_offset()==0 assert Ville Syrjala
` (17 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
strut intel_fb_pin_params will be an important part of the fb_pin
interface, so move the definition to the parent interface file.
Or maybe we should have a separate header for this kind of stuff
since the users of the parent interface will need the struct
definition but not the parent interface vfunc struct definitions?
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_fb_pin.h | 12 +-----------
drivers/gpu/drm/i915/display/intel_fbdev.c | 1 +
include/drm/intel/display_parent_interface.h | 12 ++++++++++++
3 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h
index 805e23067004..84530f20d7d1 100644
--- a/drivers/gpu/drm/i915/display/intel_fb_pin.h
+++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h
@@ -10,21 +10,11 @@
struct drm_gem_object;
struct i915_vma;
+struct intel_fb_pin_params;
struct intel_plane_state;
struct i915_gtt_view;
struct iosys_map;
-struct intel_fb_pin_params {
- const struct i915_gtt_view *view;
- unsigned int alignment;
- unsigned int phys_alignment;
- unsigned int vtd_guard;
- bool needs_cpu_lmem_access;
- bool needs_low_address;
- bool needs_physical;
- bool needs_fence;
-};
-
struct i915_vma *
intel_fb_pin_to_ggtt(struct drm_gem_object *obj,
const struct intel_fb_pin_params *pin_params,
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index ce4082da30e8..aa2701795caa 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -38,6 +38,7 @@
#include <linux/vga_switcheroo.h>
#include <drm/clients/drm_client_setup.h>
+#include <drm/intel/display_parent_interface.h>
#include <drm/drm_crtc.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_fb_helper.h>
diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h
index ee2e9572bfca..b363d6a85dfe 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -16,6 +16,7 @@ struct drm_mode_fb_cmd2;
struct drm_plane_state;
struct drm_scanout_buffer;
struct fb_info;
+struct i915_gtt_view;
struct i915_vma;
struct intel_dpt;
struct intel_dsb_buffer;
@@ -29,6 +30,17 @@ struct ref_tracker;
struct seq_file;
struct vm_area_struct;
+struct intel_fb_pin_params {
+ const struct i915_gtt_view *view;
+ unsigned int alignment;
+ unsigned int phys_alignment;
+ unsigned int vtd_guard;
+ bool needs_cpu_lmem_access;
+ bool needs_low_address;
+ bool needs_physical;
+ bool needs_fence;
+};
+
/* Keep struct definitions sorted */
struct intel_display_bo_interface {
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 03/16] drm/i915: Move the i915_dpt_offset()==0 assert
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 01/16] drm/i915: Introduce intel_parent_fb_pin_get_map() Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 02/16] drm/i915: Move intel_fb_pin_params to the parent interface Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 04/16] drm/i915: Reorganize intel_plane_pin_fb() a bit Ville Syrjala
` (16 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Move the i915_dpt_offset() check into the lower level
intel_fb_pin_to_dpt() function. Clears out some of the unnecessary
junk from the higher level code, making it easier to introduce
the new fb_pin parent interface.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_fb_pin.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index b800b55530a5..400ad8768c11 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -101,6 +101,12 @@ intel_fb_pin_to_dpt(struct drm_gem_object *_obj, struct intel_dpt *dpt,
i915_gem_object_flush_if_display(obj);
i915_vma_get(vma);
+
+ /*
+ * The DPT object contains only one vma, and there is no VT-d
+ * guard, so the VMA's offset within the DPT is always 0.
+ */
+ drm_WARN_ON(&i915->drm, i915_dpt_offset(vma));
err:
atomic_dec(&i915->pending_fb_pin);
@@ -255,7 +261,6 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
const struct intel_plane_state *old_plane_state)
{
struct intel_display *display = to_intel_display(plane_state);
- struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
const struct intel_framebuffer *fb =
to_intel_framebuffer(plane_state->hw.fb);
@@ -304,12 +309,6 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
plane_state->dpt_vma = vma;
WARN_ON(plane_state->ggtt_vma == plane_state->dpt_vma);
-
- /*
- * The DPT object contains only one vma, and there is no VT-d
- * guard, so the VMA's offset within the DPT is always 0.
- */
- drm_WARN_ON(&i915->drm, i915_dpt_offset(plane_state->dpt_vma));
}
/*
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 04/16] drm/i915: Reorganize intel_plane_pin_fb() a bit
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (2 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 03/16] drm/i915: Move the i915_dpt_offset()==0 assert Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 05/16] drm/i915: Introduce i915_fb_pin_dpt_(un)pin() Ville Syrjala
` (15 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Move most of the plane state stuff out from the inner parts
of intel_plane_pin_fb(). The plan is to take those inner parts and
abstract them into the new fb_pin parent interface, and we don't
want any plane_state stuff there.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_fb_pin.c | 67 +++++++++++++++---------------
1 file changed, 33 insertions(+), 34 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index 400ad8768c11..bc2e185b4573 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -264,7 +264,10 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
const struct intel_framebuffer *fb =
to_intel_framebuffer(plane_state->hw.fb);
- struct i915_vma *vma;
+ struct i915_vma *ggtt_vma = NULL;
+ struct i915_vma *dpt_vma = NULL;
+ int fence_id = -1;
+ u32 offset;
if (!intel_fb_uses_dpt(&fb->base)) {
struct intel_fb_pin_params pin_params = {
@@ -277,15 +280,25 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
.needs_physical = intel_plane_needs_physical(plane),
.needs_fence = intel_plane_needs_fence(display),
};
- int fence_id = -1;
- vma = intel_fb_pin_to_ggtt(intel_fb_bo(&fb->base), &pin_params,
- intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
- if (IS_ERR(vma))
- return PTR_ERR(vma);
+ ggtt_vma = intel_fb_pin_to_ggtt(intel_fb_bo(&fb->base), &pin_params,
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
+
+ /*
+ * Pre-populate the dma address before we enter the vblank
+ * evade critical section as i915_gem_object_get_dma_address()
+ * will trigger might_sleep() even if it won't actually sleep,
+ * which is the case when the fb has already been pinned.
+ */
+ if (intel_plane_needs_physical(plane)) {
+ struct drm_i915_gem_object *obj = to_intel_bo(intel_fb_bo(&fb->base));
- plane_state->ggtt_vma = vma;
- plane_state->fence_id = fence_id;
+ offset = i915_gem_object_get_dma_address(obj, 0);
+ } else {
+ offset = i915_ggtt_offset(ggtt_vma);
+ }
} else {
struct intel_fb_pin_params pin_params = {
.view = &plane_state->view.gtt,
@@ -293,39 +306,25 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
.needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
};
- vma = i915_dpt_pin_to_ggtt(fb->dpt, pin_params.alignment / 512);
- if (IS_ERR(vma))
- return PTR_ERR(vma);
-
- plane_state->ggtt_vma = vma;
+ ggtt_vma = i915_dpt_pin_to_ggtt(fb->dpt, pin_params.alignment / 512);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
- vma = intel_fb_pin_to_dpt(intel_fb_bo(&fb->base), fb->dpt, &pin_params);
- if (IS_ERR(vma)) {
+ dpt_vma = intel_fb_pin_to_dpt(intel_fb_bo(&fb->base), fb->dpt, &pin_params);
+ if (IS_ERR(dpt_vma)) {
i915_dpt_unpin_from_ggtt(fb->dpt);
- plane_state->ggtt_vma = NULL;
- return PTR_ERR(vma);
+ return PTR_ERR(dpt_vma);
}
- plane_state->dpt_vma = vma;
+ WARN_ON(ggtt_vma == dpt_vma);
- WARN_ON(plane_state->ggtt_vma == plane_state->dpt_vma);
+ offset = i915_ggtt_offset(ggtt_vma);
}
- /*
- * Pre-populate the dma address before we enter the vblank
- * evade critical section as i915_gem_object_get_dma_address()
- * will trigger might_sleep() even if it won't actually sleep,
- * which is the case when the fb has already been pinned.
- */
- if (intel_plane_needs_physical(plane)) {
- struct drm_i915_gem_object *obj = to_intel_bo(intel_fb_bo(&fb->base));
-
- plane_state->surf = i915_gem_object_get_dma_address(obj, 0) +
- plane->surf_offset(plane_state);
- } else {
- plane_state->surf = i915_ggtt_offset(plane_state->ggtt_vma) +
- plane->surf_offset(plane_state);
- }
+ plane_state->dpt_vma = dpt_vma;
+ plane_state->ggtt_vma = ggtt_vma;
+ plane_state->fence_id = fence_id;
+ plane_state->surf = offset + plane->surf_offset(plane_state);
return 0;
}
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 05/16] drm/i915: Introduce i915_fb_pin_dpt_(un)pin()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (3 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 04/16] drm/i915: Reorganize intel_plane_pin_fb() a bit Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 06/16] drm/i915: Introduce i915_fb_pin_ggtt_(un)pin() Ville Syrjala
` (14 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the inner DPT parts of intel_plane_(un)pin() into the
i915_fb_pin_dpt_(un)pin(). These will become part of the new
fb_pin parent interface.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_fb_pin.c | 76 ++++++++++++++++++++++--------
1 file changed, 56 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index bc2e185b4573..0019f570d843 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -257,6 +257,49 @@ intel_plane_fb_vtd_guard(const struct intel_plane_state *plane_state)
plane_state->hw.rotation);
}
+static int i915_fb_pin_dpt_pin(struct drm_gem_object *obj, struct intel_dpt *dpt,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_dpt_vma,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset)
+{
+ struct i915_vma *ggtt_vma, *dpt_vma;
+
+ WARN_ON(!dpt);
+
+ ggtt_vma = i915_dpt_pin_to_ggtt(dpt, pin_params->alignment / 512);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
+
+ dpt_vma = intel_fb_pin_to_dpt(obj, dpt, pin_params);
+ if (IS_ERR(dpt_vma)) {
+ i915_dpt_unpin_from_ggtt(dpt);
+ return PTR_ERR(dpt_vma);
+ }
+
+ drm_WARN_ON(obj->dev, ggtt_vma == dpt_vma);
+
+ *out_ggtt_vma = ggtt_vma;
+ *out_dpt_vma = dpt_vma;
+
+ *out_offset = i915_ggtt_offset(ggtt_vma);
+
+ return 0;
+}
+
+static void i915_fb_pin_dpt_unpin(struct intel_dpt *dpt,
+ struct i915_vma *dpt_vma,
+ struct i915_vma *ggtt_vma)
+{
+ WARN_ON(!dpt);
+ WARN_ON(!!dpt_vma != !!ggtt_vma);
+
+ if (dpt_vma)
+ intel_fb_unpin_vma(dpt_vma, -1);
+ if (ggtt_vma)
+ i915_dpt_unpin_from_ggtt(dpt);
+}
+
int intel_plane_pin_fb(struct intel_plane_state *plane_state,
const struct intel_plane_state *old_plane_state)
{
@@ -268,6 +311,7 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
struct i915_vma *dpt_vma = NULL;
int fence_id = -1;
u32 offset;
+ int ret;
if (!intel_fb_uses_dpt(&fb->base)) {
struct intel_fb_pin_params pin_params = {
@@ -306,19 +350,11 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
.needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
};
- ggtt_vma = i915_dpt_pin_to_ggtt(fb->dpt, pin_params.alignment / 512);
- if (IS_ERR(ggtt_vma))
- return PTR_ERR(ggtt_vma);
-
- dpt_vma = intel_fb_pin_to_dpt(intel_fb_bo(&fb->base), fb->dpt, &pin_params);
- if (IS_ERR(dpt_vma)) {
- i915_dpt_unpin_from_ggtt(fb->dpt);
- return PTR_ERR(dpt_vma);
- }
-
- WARN_ON(ggtt_vma == dpt_vma);
-
- offset = i915_ggtt_offset(ggtt_vma);
+ ret = i915_fb_pin_dpt_pin(intel_fb_bo(&fb->base), fb->dpt,
+ &pin_params, &dpt_vma,
+ &ggtt_vma, &offset);
+ if (ret)
+ return ret;
}
plane_state->dpt_vma = dpt_vma;
@@ -333,22 +369,22 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
{
const struct intel_framebuffer *fb =
to_intel_framebuffer(old_plane_state->hw.fb);
- struct i915_vma *vma;
if (!intel_fb_uses_dpt(&fb->base)) {
+ struct i915_vma *vma;
+
vma = fetch_and_zero(&old_plane_state->ggtt_vma);
if (vma) {
intel_fb_unpin_vma(vma, old_plane_state->fence_id);
old_plane_state->fence_id = -1;
}
} else {
- vma = fetch_and_zero(&old_plane_state->dpt_vma);
- if (vma)
- intel_fb_unpin_vma(vma, -1);
+ i915_fb_pin_dpt_unpin(fb->dpt,
+ old_plane_state->dpt_vma,
+ old_plane_state->ggtt_vma);
- vma = fetch_and_zero(&old_plane_state->ggtt_vma);
- if (vma)
- i915_dpt_unpin_from_ggtt(fb->dpt);
+ old_plane_state->dpt_vma = NULL;
+ old_plane_state->ggtt_vma = NULL;
}
}
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 06/16] drm/i915: Introduce i915_fb_pin_ggtt_(un)pin()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (4 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 05/16] drm/i915: Introduce i915_fb_pin_dpt_(un)pin() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 07/16] drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma() Ville Syrjala
` (13 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the inner DPT parts of intel_plane_(un)pin() into the
i915_fb_pin_ggtt_(un)pin(). These will become part of the new
fb_pin parent interface.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/i915_fb_pin.c | 68 +++++++++++++++++++-----------
1 file changed, 44 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index 0019f570d843..e14d2c1fb81f 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -257,6 +257,41 @@ intel_plane_fb_vtd_guard(const struct intel_plane_state *plane_state)
plane_state->hw.rotation);
}
+static int i915_fb_pin_ggtt_pin(struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id)
+{
+ struct i915_vma *ggtt_vma;
+
+ ggtt_vma = intel_fb_pin_to_ggtt(obj, pin_params, out_fence_id);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
+
+ *out_ggtt_vma = ggtt_vma;
+
+ /*
+ * Pre-populate the dma address before we enter the vblank
+ * evade critical section as i915_gem_object_get_dma_address()
+ * will trigger might_sleep() even if it won't actually sleep,
+ * which is the case when the fb has already been pinned.
+ */
+ if (pin_params->needs_physical)
+ *out_offset = i915_gem_object_get_dma_address(to_intel_bo(obj), 0);
+ else
+ *out_offset = i915_ggtt_offset(ggtt_vma);
+
+ return 0;
+}
+
+static void i915_fb_pin_ggtt_unpin(struct i915_vma *ggtt_vma,
+ int fence_id)
+{
+ if (ggtt_vma)
+ intel_fb_unpin_vma(ggtt_vma, fence_id);
+}
+
static int i915_fb_pin_dpt_pin(struct drm_gem_object *obj, struct intel_dpt *dpt,
const struct intel_fb_pin_params *pin_params,
struct i915_vma **out_dpt_vma,
@@ -325,24 +360,11 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
.needs_fence = intel_plane_needs_fence(display),
};
- ggtt_vma = intel_fb_pin_to_ggtt(intel_fb_bo(&fb->base), &pin_params,
- intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
- if (IS_ERR(ggtt_vma))
- return PTR_ERR(ggtt_vma);
-
- /*
- * Pre-populate the dma address before we enter the vblank
- * evade critical section as i915_gem_object_get_dma_address()
- * will trigger might_sleep() even if it won't actually sleep,
- * which is the case when the fb has already been pinned.
- */
- if (intel_plane_needs_physical(plane)) {
- struct drm_i915_gem_object *obj = to_intel_bo(intel_fb_bo(&fb->base));
-
- offset = i915_gem_object_get_dma_address(obj, 0);
- } else {
- offset = i915_ggtt_offset(ggtt_vma);
- }
+ ret = i915_fb_pin_ggtt_pin(intel_fb_bo(&fb->base),
+ &pin_params, &ggtt_vma, &offset,
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
+ if (ret)
+ return ret;
} else {
struct intel_fb_pin_params pin_params = {
.view = &plane_state->view.gtt,
@@ -371,13 +393,11 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
to_intel_framebuffer(old_plane_state->hw.fb);
if (!intel_fb_uses_dpt(&fb->base)) {
- struct i915_vma *vma;
+ i915_fb_pin_ggtt_unpin(old_plane_state->ggtt_vma,
+ old_plane_state->fence_id);
- vma = fetch_and_zero(&old_plane_state->ggtt_vma);
- if (vma) {
- intel_fb_unpin_vma(vma, old_plane_state->fence_id);
- old_plane_state->fence_id = -1;
- }
+ old_plane_state->ggtt_vma = NULL;
+ old_plane_state->fence_id = -1;
} else {
i915_fb_pin_dpt_unpin(fb->dpt,
old_plane_state->dpt_vma,
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 07/16] drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (5 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 06/16] drm/i915: Introduce i915_fb_pin_ggtt_(un)pin() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 08/16] drm/xe: Kill the fbdev vma reuse hack Ville Syrjala
` (12 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
No need to bother the higher level pinning code with the
FORCE_WC assert. Move it into the lower level function.
This also introduces the check to intel_fb_pin_to_ggtt(), which
(for the moment) is still used for the fbdev bo setup. But this
is all display stuff we're talking about here so having the check
is correct everywhere.
v2: Pimp the commit message a bit (Jani)
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 1039058a7ed6..cb987b844385 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -329,6 +329,9 @@ static struct i915_vma *__xe_pin_fb_vma(struct drm_gem_object *obj, bool is_dpt,
struct drm_exec exec;
int ret = 0;
+ /* We reject creating !SCANOUT fb's, so this is weird.. */
+ drm_WARN_ON(bo->ttm.base.dev, !(bo->flags & XE_BO_FLAG_FORCE_WC));
+
if (!vma)
return ERR_PTR(-ENODEV);
@@ -474,7 +477,6 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
{
struct drm_framebuffer *fb = new_plane_state->hw.fb;
struct drm_gem_object *obj = intel_fb_bo(fb);
- struct xe_bo *bo = gem_to_xe_bo(obj);
struct i915_vma *vma;
struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
struct intel_fb_pin_params pin_params = {
@@ -486,9 +488,6 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
if (reuse_vma(new_plane_state, old_plane_state))
return 0;
- /* We reject creating !SCANOUT fb's, so this is weird.. */
- drm_WARN_ON(bo->ttm.base.dev, !(bo->flags & XE_BO_FLAG_FORCE_WC));
-
vma = __xe_pin_fb_vma(obj, intel_fb_uses_dpt(fb), &pin_params);
if (IS_ERR(vma))
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 08/16] drm/xe: Kill the fbdev vma reuse hack
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (6 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 07/16] drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 09/16] drm/xe: Reorganize intel_plane_pin_fb() a bit Ville Syrjala
` (11 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
This fbdev vma reuse hacks is a massive layering violation. It
really does not belong in the fb pinning code. And it's in the
way of properly abstracting this stuff, so kill it.
I don't think this hack even does anything useful because the
normal view will just use bo->ggtt_node when present, and the
fbdev bo will be permanenly pinned with xe_bo_create_pin_map_at_novm()
which does set up bo->ggtt_node. So we should never end up
rebuilding the PTEs for the fbdev bo, even without the reuse hack.
v2: Pimp the commit message a a bit (Jani)
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index cb987b844385..bab9b015ff8d 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -10,7 +10,6 @@
#include "intel_display_types.h"
#include "intel_fb.h"
#include "intel_fb_pin.h"
-#include "intel_fbdev.h"
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_display_vma.h"
@@ -432,10 +431,7 @@ void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
static bool reuse_vma(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state)
{
- struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb);
struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
- struct xe_device *xe = to_xe_device(fb->base.dev);
- struct intel_display *display = xe->display;
struct i915_vma *vma;
if (old_plane_state->hw.fb == new_plane_state->hw.fb &&
@@ -446,12 +442,6 @@ static bool reuse_vma(struct intel_plane_state *new_plane_state,
goto found;
}
- if (fb == intel_fbdev_framebuffer(display->fbdev.fbdev)) {
- vma = intel_fbdev_vma_pointer(display->fbdev.fbdev);
- if (vma)
- goto found;
- }
-
return false;
found:
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 09/16] drm/xe: Reorganize intel_plane_pin_fb() a bit
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (7 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 08/16] drm/xe: Kill the fbdev vma reuse hack Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 10/16] drm/xe: Introduce xe_fb_pin_dpt_(un)pin() Ville Syrjala
` (10 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Move most of the plane state stuff out from the inner parts
of intel_plane_pin_fb(). The plan is to take those inner parts and
abstract them into the new fb_pin parent interface, and we don't
want any plane_state stuff there.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index bab9b015ff8d..cddb0f3c7da0 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -467,26 +467,30 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
{
struct drm_framebuffer *fb = new_plane_state->hw.fb;
struct drm_gem_object *obj = intel_fb_bo(fb);
- struct i915_vma *vma;
struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
struct intel_fb_pin_params pin_params = {
.view = &new_plane_state->view.gtt,
.alignment = intel_plane_fb_min_alignment(new_plane_state),
.needs_cpu_lmem_access = intel_fb_needs_cpu_access(fb),
};
+ struct i915_vma *ggtt_vma = NULL;
+ struct i915_vma *dpt_vma = NULL;
+ int fence_id = -1;
+ u32 offset;
if (reuse_vma(new_plane_state, old_plane_state))
return 0;
- vma = __xe_pin_fb_vma(obj, intel_fb_uses_dpt(fb), &pin_params);
-
- if (IS_ERR(vma))
- return PTR_ERR(vma);
+ ggtt_vma = __xe_pin_fb_vma(obj, intel_fb_uses_dpt(fb), &pin_params);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
- new_plane_state->ggtt_vma = vma;
+ offset = xe_ggtt_node_addr(ggtt_vma->node);
- new_plane_state->surf = xe_ggtt_node_addr(new_plane_state->ggtt_vma->node) +
- plane->surf_offset(new_plane_state);
+ new_plane_state->dpt_vma = dpt_vma;
+ new_plane_state->ggtt_vma = ggtt_vma;
+ new_plane_state->fence_id = fence_id;
+ new_plane_state->surf = offset + plane->surf_offset(new_plane_state);
return 0;
}
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 10/16] drm/xe: Introduce xe_fb_pin_dpt_(un)pin()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (8 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 09/16] drm/xe: Reorganize intel_plane_pin_fb() a bit Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 11/16] drm/xe: Introduce xe_fb_pin_ggtt_(un)pin() Ville Syrjala
` (9 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the inner DPT parts of intel_plane_(un)pin() into the
xe_fb_pin_dpt_(un)pin(). These will become part of the new
fb_pin parent interface.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 67 ++++++++++++++++++++++----
1 file changed, 58 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index cddb0f3c7da0..0257fafdb0df 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -428,6 +428,36 @@ void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
__xe_unpin_fb_vma(vma);
}
+static int xe_fb_pin_dpt_pin(struct drm_gem_object *obj, struct intel_dpt *dpt,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_dpt_vma,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset)
+{
+ struct i915_vma *ggtt_vma;
+
+ WARN_ON(dpt);
+
+ ggtt_vma = __xe_pin_fb_vma(obj, true, pin_params);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
+
+ *out_dpt_vma = NULL; /* not used on xe */
+ *out_ggtt_vma = ggtt_vma;
+ *out_offset = xe_ggtt_node_addr(ggtt_vma->node);
+
+ return 0;
+}
+
+static void xe_fb_pin_dpt_unpin(struct intel_dpt *dpt,
+ struct i915_vma *dpt_vma,
+ struct i915_vma *ggtt_vma)
+{
+ WARN_ON(dpt || dpt_vma);
+
+ __xe_unpin_fb_vma(ggtt_vma);
+}
+
static bool reuse_vma(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state)
{
@@ -465,27 +495,35 @@ intel_plane_fb_min_alignment(const struct intel_plane_state *plane_state)
int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state)
{
- struct drm_framebuffer *fb = new_plane_state->hw.fb;
- struct drm_gem_object *obj = intel_fb_bo(fb);
+ struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb);
+ struct drm_gem_object *obj = intel_fb_bo(&fb->base);
struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
struct intel_fb_pin_params pin_params = {
.view = &new_plane_state->view.gtt,
.alignment = intel_plane_fb_min_alignment(new_plane_state),
- .needs_cpu_lmem_access = intel_fb_needs_cpu_access(fb),
+ .needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
};
struct i915_vma *ggtt_vma = NULL;
struct i915_vma *dpt_vma = NULL;
int fence_id = -1;
u32 offset;
+ int ret;
if (reuse_vma(new_plane_state, old_plane_state))
return 0;
- ggtt_vma = __xe_pin_fb_vma(obj, intel_fb_uses_dpt(fb), &pin_params);
- if (IS_ERR(ggtt_vma))
- return PTR_ERR(ggtt_vma);
+ if (!intel_fb_uses_dpt(&fb->base)) {
+ ggtt_vma = __xe_pin_fb_vma(obj, false, &pin_params);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
- offset = xe_ggtt_node_addr(ggtt_vma->node);
+ offset = xe_ggtt_node_addr(ggtt_vma->node);
+ } else {
+ ret = xe_fb_pin_dpt_pin(obj, fb->dpt, &pin_params,
+ &dpt_vma, &ggtt_vma, &offset);
+ if (ret)
+ return ret;
+ }
new_plane_state->dpt_vma = dpt_vma;
new_plane_state->ggtt_vma = ggtt_vma;
@@ -497,8 +535,19 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
{
- __xe_unpin_fb_vma(old_plane_state->ggtt_vma);
- old_plane_state->ggtt_vma = NULL;
+ const struct intel_framebuffer *fb = to_intel_framebuffer(old_plane_state->hw.fb);
+
+ if (!intel_fb_uses_dpt(&fb->base)) {
+ __xe_unpin_fb_vma(old_plane_state->ggtt_vma);
+
+ old_plane_state->ggtt_vma = NULL;
+ } else {
+ xe_fb_pin_dpt_unpin(fb->dpt, old_plane_state->dpt_vma,
+ old_plane_state->ggtt_vma);
+
+ old_plane_state->dpt_vma = NULL;
+ old_plane_state->ggtt_vma = NULL;
+ }
}
static void xe_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 11/16] drm/xe: Introduce xe_fb_pin_ggtt_(un)pin()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (9 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 10/16] drm/xe: Introduce xe_fb_pin_dpt_(un)pin() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 12/16] drm/xe: Restructure reuse_vma() Ville Syrjala
` (8 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Extract the inner DPT parts of intel_plane_(un)pin() into the
xe_fb_pin_ggtt_(un)pin(). These will become part of the new
fb_pin parent interface.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 41 ++++++++++++++++++++++----
1 file changed, 35 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 0257fafdb0df..1db72c73f11e 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -428,6 +428,34 @@ void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
__xe_unpin_fb_vma(vma);
}
+static int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id)
+{
+ struct i915_vma *ggtt_vma;
+
+ ggtt_vma = __xe_pin_fb_vma(obj, false, pin_params);
+ if (IS_ERR(ggtt_vma))
+ return PTR_ERR(ggtt_vma);
+
+ *out_ggtt_vma = ggtt_vma;
+ *out_offset = xe_ggtt_node_addr(ggtt_vma->node);
+ if (out_fence_id)
+ *out_fence_id = -1;
+
+ return 0;
+}
+
+static void xe_fb_pin_ggtt_unpin(struct i915_vma *ggtt_vma,
+ int fence_id)
+{
+ WARN_ON(fence_id >= 0);
+
+ __xe_unpin_fb_vma(ggtt_vma);
+}
+
static int xe_fb_pin_dpt_pin(struct drm_gem_object *obj, struct intel_dpt *dpt,
const struct intel_fb_pin_params *pin_params,
struct i915_vma **out_dpt_vma,
@@ -513,11 +541,10 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
return 0;
if (!intel_fb_uses_dpt(&fb->base)) {
- ggtt_vma = __xe_pin_fb_vma(obj, false, &pin_params);
- if (IS_ERR(ggtt_vma))
- return PTR_ERR(ggtt_vma);
-
- offset = xe_ggtt_node_addr(ggtt_vma->node);
+ ret = xe_fb_pin_ggtt_pin(obj, &pin_params,
+ &ggtt_vma, &offset, NULL);
+ if (ret)
+ return ret;
} else {
ret = xe_fb_pin_dpt_pin(obj, fb->dpt, &pin_params,
&dpt_vma, &ggtt_vma, &offset);
@@ -538,9 +565,11 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
const struct intel_framebuffer *fb = to_intel_framebuffer(old_plane_state->hw.fb);
if (!intel_fb_uses_dpt(&fb->base)) {
- __xe_unpin_fb_vma(old_plane_state->ggtt_vma);
+ xe_fb_pin_ggtt_unpin(old_plane_state->ggtt_vma,
+ old_plane_state->fence_id);
old_plane_state->ggtt_vma = NULL;
+ old_plane_state->fence_id = -1;
} else {
xe_fb_pin_dpt_unpin(fb->dpt, old_plane_state->dpt_vma,
old_plane_state->ggtt_vma);
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 12/16] drm/xe: Restructure reuse_vma()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (10 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 11/16] drm/xe: Introduce xe_fb_pin_ggtt_(un)pin() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 13/16] drm/i915: Introduce the main fb_pin parent interface Ville Syrjala
` (7 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Restructure reuse_vma() into a form that doesn't need the plane
state structs, and rename the result to xe_fb_pin_reuse_vma().
This will become the new fb_pin parent interface.
v2: Fix memcmp() arguments
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 48 ++++++++++++++------------
1 file changed, 25 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 1db72c73f11e..33100dba39ab 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -486,30 +486,24 @@ static void xe_fb_pin_dpt_unpin(struct intel_dpt *dpt,
__xe_unpin_fb_vma(ggtt_vma);
}
-static bool reuse_vma(struct intel_plane_state *new_plane_state,
- const struct intel_plane_state *old_plane_state)
+static struct i915_vma *
+xe_fb_pin_reuse_vma(struct i915_vma *old_ggtt_vma,
+ struct drm_gem_object *old_obj,
+ const struct i915_gtt_view *old_view,
+ struct drm_gem_object *new_obj,
+ const struct i915_gtt_view *new_view,
+ u32 *out_offset)
{
- struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
- struct i915_vma *vma;
-
- if (old_plane_state->hw.fb == new_plane_state->hw.fb &&
- !memcmp(&old_plane_state->view.gtt,
- &new_plane_state->view.gtt,
- sizeof(new_plane_state->view.gtt))) {
- vma = old_plane_state->ggtt_vma;
- goto found;
- }
-
- return false;
+ if (old_ggtt_vma && old_obj == new_obj &&
+ !memcmp(old_view, new_view, sizeof(*new_view))) {
+ refcount_inc(&old_ggtt_vma->ref);
-found:
- refcount_inc(&vma->ref);
- new_plane_state->ggtt_vma = vma;
+ *out_offset = xe_ggtt_node_addr(old_ggtt_vma->node);
- new_plane_state->surf = xe_ggtt_node_addr(new_plane_state->ggtt_vma->node) +
- plane->surf_offset(new_plane_state);
+ return old_ggtt_vma;
+ }
- return true;
+ return NULL;
}
static unsigned int
@@ -523,7 +517,8 @@ intel_plane_fb_min_alignment(const struct intel_plane_state *plane_state)
int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state)
{
- struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb);
+ const struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb);
+ const struct intel_framebuffer *old_fb = to_intel_framebuffer(old_plane_state->hw.fb);
struct drm_gem_object *obj = intel_fb_bo(&fb->base);
struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
struct intel_fb_pin_params pin_params = {
@@ -537,8 +532,14 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
u32 offset;
int ret;
- if (reuse_vma(new_plane_state, old_plane_state))
- return 0;
+ ggtt_vma = xe_fb_pin_reuse_vma(old_plane_state->ggtt_vma,
+ intel_fb_bo(&old_fb->base),
+ &old_plane_state->view.gtt,
+ intel_fb_bo(&fb->base),
+ &new_plane_state->view.gtt,
+ &offset);
+ if (ggtt_vma)
+ goto got_vma;
if (!intel_fb_uses_dpt(&fb->base)) {
ret = xe_fb_pin_ggtt_pin(obj, &pin_params,
@@ -552,6 +553,7 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
return ret;
}
+got_vma:
new_plane_state->dpt_vma = dpt_vma;
new_plane_state->ggtt_vma = ggtt_vma;
new_plane_state->fence_id = fence_id;
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 13/16] drm/i915: Introduce the main fb_pin parent interface
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (11 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 12/16] drm/xe: Restructure reuse_vma() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 14/16] drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin() Ville Syrjala
` (6 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Introduce the main part of the new fb_pin parent interface:
- intel_parent_fb_pin_ggtt_(un)pin()
- intel_parent_fb_pin_dpt_(un)pin()
- intel_parent_fb_pin_reuse_vma()
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_parent.c | 53 ++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_parent.h | 29 +++++++++++
drivers/gpu/drm/i915/i915_fb_pin.c | 29 +++++++----
drivers/gpu/drm/xe/display/xe_fb_pin.c | 40 +++++++++------
include/drm/intel/display_parent_interface.h | 22 ++++++++
5 files changed, 148 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_parent.c b/drivers/gpu/drm/i915/display/intel_parent.c
index 070cc60f49b3..a5816561be40 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.c
+++ b/drivers/gpu/drm/i915/display/intel_parent.c
@@ -53,6 +53,59 @@ void intel_parent_dpt_resume(struct intel_display *display, struct intel_dpt *dp
}
/* fb_pin */
+int intel_parent_fb_pin_ggtt_pin(struct intel_display *display,
+ struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id)
+{
+ return display->parent->fb_pin->ggtt_pin(obj, pin_params,
+ out_ggtt_vma, out_offset, out_fence_id);
+}
+
+void intel_parent_fb_pin_ggtt_unpin(struct intel_display *display,
+ struct i915_vma *ggtt_vma,
+ int fence_id)
+{
+ return display->parent->fb_pin->ggtt_unpin(ggtt_vma, fence_id);
+}
+
+int intel_parent_fb_pin_dpt_pin(struct intel_display *display,
+ struct drm_gem_object *obj,
+ struct intel_dpt *dpt,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_dpt_vma,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset)
+{
+ return display->parent->fb_pin->dpt_pin(obj, dpt, pin_params,
+ out_dpt_vma, out_ggtt_vma, out_offset);
+}
+
+void intel_parent_fb_pin_dpt_unpin(struct intel_display *display,
+ struct intel_dpt *dpt,
+ struct i915_vma *dpt_vma,
+ struct i915_vma *ggtt_vma)
+{
+ return display->parent->fb_pin->dpt_unpin(dpt, dpt_vma, ggtt_vma);
+}
+
+struct i915_vma *intel_parent_fb_pin_reuse_vma(struct intel_display *display,
+ struct i915_vma *old_ggtt_vma,
+ struct drm_gem_object *old_obj,
+ const struct i915_gtt_view *old_view,
+ struct drm_gem_object *new_obj,
+ const struct i915_gtt_view *new_view,
+ u32 *out_offset)
+{
+ if (!display->parent->fb_pin->reuse_vma)
+ return NULL;
+
+ return display->parent->fb_pin->reuse_vma(old_ggtt_vma, old_obj, old_view,
+ new_obj, new_view, out_offset);
+}
+
void intel_parent_fb_pin_get_map(struct intel_display *display,
struct i915_vma *vma, struct iosys_map *map)
{
diff --git a/drivers/gpu/drm/i915/display/intel_parent.h b/drivers/gpu/drm/i915/display/intel_parent.h
index 2b9e829e7f47..27e35f891a6b 100644
--- a/drivers/gpu/drm/i915/display/intel_parent.h
+++ b/drivers/gpu/drm/i915/display/intel_parent.h
@@ -11,9 +11,11 @@ struct dma_fence;
struct drm_file;
struct drm_gem_object;
struct drm_scanout_buffer;
+struct i915_gtt_view;
struct i915_vma;
struct intel_display;
struct intel_dpt;
+struct intel_fb_pin_params;
struct intel_frontbuffer;
struct intel_hdcp_gsc_context;
struct intel_panic;
@@ -28,6 +30,33 @@ void intel_parent_dpt_suspend(struct intel_display *display, struct intel_dpt *d
void intel_parent_dpt_resume(struct intel_display *display, struct intel_dpt *dpt);
/* fb_pin */
+int intel_parent_fb_pin_ggtt_pin(struct intel_display *display,
+ struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id);
+void intel_parent_fb_pin_ggtt_unpin(struct intel_display *display,
+ struct i915_vma *ggtt_vma,
+ int fence_id);
+int intel_parent_fb_pin_dpt_pin(struct intel_display *display,
+ struct drm_gem_object *obj,
+ struct intel_dpt *dpt,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_dpt_vma,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset);
+void intel_parent_fb_pin_dpt_unpin(struct intel_display *display,
+ struct intel_dpt *dpt,
+ struct i915_vma *dpt_vma,
+ struct i915_vma *ggtt_vma);
+struct i915_vma *intel_parent_fb_pin_reuse_vma(struct intel_display *display,
+ struct i915_vma *old_ggtt_vma,
+ struct drm_gem_object *old_obj,
+ const struct i915_gtt_view *old_view,
+ struct drm_gem_object *new_obj,
+ const struct i915_gtt_view *new_view,
+ u32 *out_offset);
void intel_parent_fb_pin_get_map(struct intel_display *display,
struct i915_vma *vma, struct iosys_map *map);
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index e14d2c1fb81f..1f08e364d569 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -14,6 +14,7 @@
#include "display/intel_display_types.h"
#include "display/intel_fb.h"
#include "display/intel_fb_pin.h"
+#include "display/intel_parent.h"
#include "display/intel_plane.h"
#include "gem/i915_gem_domain.h"
@@ -360,9 +361,9 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
.needs_fence = intel_plane_needs_fence(display),
};
- ret = i915_fb_pin_ggtt_pin(intel_fb_bo(&fb->base),
- &pin_params, &ggtt_vma, &offset,
- intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
+ ret = intel_parent_fb_pin_ggtt_pin(display, intel_fb_bo(&fb->base),
+ &pin_params, &ggtt_vma, &offset,
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
if (ret)
return ret;
} else {
@@ -372,9 +373,9 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
.needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
};
- ret = i915_fb_pin_dpt_pin(intel_fb_bo(&fb->base), fb->dpt,
- &pin_params, &dpt_vma,
- &ggtt_vma, &offset);
+ ret = intel_parent_fb_pin_dpt_pin(display, intel_fb_bo(&fb->base),
+ fb->dpt, &pin_params,
+ &dpt_vma, &ggtt_vma, &offset);
if (ret)
return ret;
}
@@ -389,19 +390,21 @@ int intel_plane_pin_fb(struct intel_plane_state *plane_state,
void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
{
+ struct intel_display *display = to_intel_display(old_plane_state);
const struct intel_framebuffer *fb =
to_intel_framebuffer(old_plane_state->hw.fb);
if (!intel_fb_uses_dpt(&fb->base)) {
- i915_fb_pin_ggtt_unpin(old_plane_state->ggtt_vma,
- old_plane_state->fence_id);
+ intel_parent_fb_pin_ggtt_unpin(display,
+ old_plane_state->ggtt_vma,
+ old_plane_state->fence_id);
old_plane_state->ggtt_vma = NULL;
old_plane_state->fence_id = -1;
} else {
- i915_fb_pin_dpt_unpin(fb->dpt,
- old_plane_state->dpt_vma,
- old_plane_state->ggtt_vma);
+ intel_parent_fb_pin_dpt_unpin(display, fb->dpt,
+ old_plane_state->dpt_vma,
+ old_plane_state->ggtt_vma);
old_plane_state->dpt_vma = NULL;
old_plane_state->ggtt_vma = NULL;
@@ -414,5 +417,9 @@ static void i915_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
}
const struct intel_display_fb_pin_interface i915_display_fb_pin_interface = {
+ .ggtt_pin = i915_fb_pin_ggtt_pin,
+ .ggtt_unpin = i915_fb_pin_ggtt_unpin,
+ .dpt_pin = i915_fb_pin_dpt_pin,
+ .dpt_unpin = i915_fb_pin_dpt_unpin,
.get_map = i915_fb_pin_get_map,
};
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 33100dba39ab..7b1347b02831 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -10,6 +10,7 @@
#include "intel_display_types.h"
#include "intel_fb.h"
#include "intel_fb_pin.h"
+#include "intel_parent.h"
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_display_vma.h"
@@ -517,6 +518,7 @@ intel_plane_fb_min_alignment(const struct intel_plane_state *plane_state)
int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state)
{
+ struct intel_display *display = to_intel_display(new_plane_state);
const struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb);
const struct intel_framebuffer *old_fb = to_intel_framebuffer(old_plane_state->hw.fb);
struct drm_gem_object *obj = intel_fb_bo(&fb->base);
@@ -532,23 +534,25 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
u32 offset;
int ret;
- ggtt_vma = xe_fb_pin_reuse_vma(old_plane_state->ggtt_vma,
- intel_fb_bo(&old_fb->base),
- &old_plane_state->view.gtt,
- intel_fb_bo(&fb->base),
- &new_plane_state->view.gtt,
- &offset);
+ ggtt_vma = intel_parent_fb_pin_reuse_vma(display,
+ old_plane_state->ggtt_vma,
+ intel_fb_bo(&old_fb->base),
+ &old_plane_state->view.gtt,
+ intel_fb_bo(&fb->base),
+ &new_plane_state->view.gtt,
+ &offset);
if (ggtt_vma)
goto got_vma;
if (!intel_fb_uses_dpt(&fb->base)) {
- ret = xe_fb_pin_ggtt_pin(obj, &pin_params,
- &ggtt_vma, &offset, NULL);
+ ret = intel_parent_fb_pin_ggtt_pin(display, obj, &pin_params,
+ &ggtt_vma, &offset, NULL);
if (ret)
return ret;
} else {
- ret = xe_fb_pin_dpt_pin(obj, fb->dpt, &pin_params,
- &dpt_vma, &ggtt_vma, &offset);
+ ret = intel_parent_fb_pin_dpt_pin(display, obj, fb->dpt,
+ &pin_params, &dpt_vma,
+ &ggtt_vma, &offset);
if (ret)
return ret;
}
@@ -564,17 +568,20 @@ int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
{
+ struct intel_display *display = to_intel_display(old_plane_state);
const struct intel_framebuffer *fb = to_intel_framebuffer(old_plane_state->hw.fb);
if (!intel_fb_uses_dpt(&fb->base)) {
- xe_fb_pin_ggtt_unpin(old_plane_state->ggtt_vma,
- old_plane_state->fence_id);
+ intel_parent_fb_pin_ggtt_unpin(display,
+ old_plane_state->ggtt_vma,
+ old_plane_state->fence_id);
old_plane_state->ggtt_vma = NULL;
old_plane_state->fence_id = -1;
} else {
- xe_fb_pin_dpt_unpin(fb->dpt, old_plane_state->dpt_vma,
- old_plane_state->ggtt_vma);
+ intel_parent_fb_pin_dpt_unpin(display, fb->dpt,
+ old_plane_state->dpt_vma,
+ old_plane_state->ggtt_vma);
old_plane_state->dpt_vma = NULL;
old_plane_state->ggtt_vma = NULL;
@@ -587,5 +594,10 @@ static void xe_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
}
const struct intel_display_fb_pin_interface xe_display_fb_pin_interface = {
+ .ggtt_pin = xe_fb_pin_ggtt_pin,
+ .ggtt_unpin = xe_fb_pin_ggtt_unpin,
+ .dpt_pin = xe_fb_pin_dpt_pin,
+ .dpt_unpin = xe_fb_pin_dpt_unpin,
+ .reuse_vma = xe_fb_pin_reuse_vma,
.get_map = xe_fb_pin_get_map,
};
diff --git a/include/drm/intel/display_parent_interface.h b/include/drm/intel/display_parent_interface.h
index b363d6a85dfe..39991afeb173 100644
--- a/include/drm/intel/display_parent_interface.h
+++ b/include/drm/intel/display_parent_interface.h
@@ -83,6 +83,28 @@ struct intel_display_dsb_interface {
};
struct intel_display_fb_pin_interface {
+ int (*ggtt_pin)(struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id);
+ void (*ggtt_unpin)(struct i915_vma *ggtt_vma,
+ int fence_id);
+ int (*dpt_pin)(struct drm_gem_object *obj,
+ struct intel_dpt *dpt,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_dpt_vma,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset);
+ void (*dpt_unpin)(struct intel_dpt *dpt,
+ struct i915_vma *dpt_vma,
+ struct i915_vma *ggtt_vma);
+ struct i915_vma *(*reuse_vma)(struct i915_vma *old_ggtt_vma,
+ struct drm_gem_object *old_obj,
+ const struct i915_gtt_view *old_view,
+ struct drm_gem_object *new_obj,
+ const struct i915_gtt_view *new_view,
+ u32 *out_offset);
void (*get_map)(struct i915_vma *vma, struct iosys_map *map);
};
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 14/16] drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin()
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (12 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 13/16] drm/i915: Introduce the main fb_pin parent interface Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 15/16] drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin Ville Syrjala
` (5 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Replace the intel_fb_pin_to_ggtt() and intel_fb_unpin_vma() with the
new abstract parent interface (intel_parent_fb_pin_ggtt_(un)pin()).
xe no longer needs intel_fb_unpin_vma(), and in i915 it now
becomes and internal function to i915_fb_pin.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_fb_pin.h | 2 --
drivers/gpu/drm/i915/display/intel_fbdev.c | 14 +++++++-------
drivers/gpu/drm/i915/i915_fb_pin.c | 2 +-
drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 -----
4 files changed, 8 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h
index 84530f20d7d1..6ff17d3e2cf5 100644
--- a/drivers/gpu/drm/i915/display/intel_fb_pin.h
+++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h
@@ -20,8 +20,6 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *obj,
const struct intel_fb_pin_params *pin_params,
int *out_fence_id);
-void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id);
-
int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
const struct intel_plane_state *old_plane_state);
void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state);
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index aa2701795caa..8463f88149a5 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -53,7 +53,6 @@
#include "intel_display_rpm.h"
#include "intel_display_types.h"
#include "intel_fb.h"
-#include "intel_fb_pin.h"
#include "intel_fbdev.h"
#include "intel_frontbuffer.h"
#include "intel_parent.h"
@@ -133,6 +132,7 @@ static int intel_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma)
static void intel_fbdev_fb_destroy(struct fb_info *info)
{
struct drm_fb_helper *fb_helper = info->par;
+ struct intel_display *display = to_intel_display(fb_helper->client.dev);
struct intel_fbdev *ifbdev = to_intel_fbdev(fb_helper);
drm_fb_helper_fini(fb_helper);
@@ -142,7 +142,7 @@ static void intel_fbdev_fb_destroy(struct fb_info *info)
* the info->screen_base mmaping. Leaking the VMA is simpler than
* trying to rectify all the possible error paths leading here.
*/
- intel_fb_unpin_vma(ifbdev->vma, -1);
+ intel_parent_fb_pin_ggtt_unpin(display, ifbdev->vma, -1);
drm_framebuffer_remove(fb_helper->fb);
drm_client_release(&fb_helper->client);
@@ -274,6 +274,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
struct i915_vma *vma;
bool prealloc = false;
struct drm_gem_object *obj;
+ u32 offset;
int ret;
ifbdev->fb = NULL;
@@ -321,11 +322,10 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
DRM_MODE_ROTATE_0);
pin_params.needs_low_address = intel_plane_needs_low_address(display);
- vma = intel_fb_pin_to_ggtt(obj, &pin_params, NULL);
- if (IS_ERR(vma)) {
- ret = PTR_ERR(vma);
+ ret = intel_parent_fb_pin_ggtt_pin(display, obj, &pin_params,
+ &vma, &offset, NULL);
+ if (ret)
goto out_unlock;
- }
helper->funcs = &intel_fb_helper_funcs;
helper->fb = &fb->base;
@@ -356,7 +356,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
return 0;
out_unpin:
- intel_fb_unpin_vma(vma, -1);
+ intel_parent_fb_pin_ggtt_unpin(display, vma, -1);
out_unlock:
intel_display_rpm_put(display, wakeref);
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index 1f08e364d569..cedefee46fbf 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -222,7 +222,7 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *_obj,
return vma;
}
-void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
+static void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
{
if (fence_id >= 0)
i915_vma_unpin_fence(vma);
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 7b1347b02831..3247b0683987 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -424,11 +424,6 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *obj,
return __xe_pin_fb_vma(obj, false, pin_params);
}
-void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
-{
- __xe_unpin_fb_vma(vma);
-}
-
static int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj,
const struct intel_fb_pin_params *pin_params,
struct i915_vma **out_ggtt_vma,
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 15/16] drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (13 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 14/16] drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin() Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:34 ` [PATCH v2 16/16] drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations Ville Syrjala
` (4 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Use xe_fb_pin_ggtt_pin() instead of intel_fb_pin_to_ggtt() for
the initial FB pin. We want to get rid of intel_fb_pin_to_ggtt()
and just use the new fb_pin parent interface.
This still isn't quite the final solution since we bypass the
actual parent interface and call the implementation directly.
But sorting that out will require more cleanup to the initial
FB code.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 21 +++++--------------
drivers/gpu/drm/xe/display/xe_fb_pin.h | 12 +++++++++++
drivers/gpu/drm/xe/display/xe_initial_plane.c | 18 ++++++++++------
3 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 3247b0683987..a8f72de0cf3a 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -413,22 +413,11 @@ static void __xe_unpin_fb_vma(struct i915_vma *vma)
kfree(vma);
}
-struct i915_vma *
-intel_fb_pin_to_ggtt(struct drm_gem_object *obj,
- const struct intel_fb_pin_params *pin_params,
- int *out_fence_id)
-{
- if (out_fence_id)
- *out_fence_id = -1;
-
- return __xe_pin_fb_vma(obj, false, pin_params);
-}
-
-static int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj,
- const struct intel_fb_pin_params *pin_params,
- struct i915_vma **out_ggtt_vma,
- u32 *out_offset,
- int *out_fence_id)
+int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id)
{
struct i915_vma *ggtt_vma;
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.h b/drivers/gpu/drm/xe/display/xe_fb_pin.h
index 8a42d4009f5d..20dd8a99a25f 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.h
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.h
@@ -4,6 +4,18 @@
#ifndef __XE_FB_PIN_H__
#define __XE_FB_PIN_H__
+#include <linux/types.h>
+
+struct drm_gem_object;
+struct i915_vma;
+struct intel_fb_pin_params;
+
+int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj,
+ const struct intel_fb_pin_params *pin_params,
+ struct i915_vma **out_ggtt_vma,
+ u32 *out_offset,
+ int *out_fence_id);
+
extern const struct intel_display_fb_pin_interface xe_display_fb_pin_interface;
#endif /* __XE_FB_PIN_H__ */
diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c b/drivers/gpu/drm/xe/display/xe_initial_plane.c
index 8e3c0c4b81fe..02b46cc3b6df 100644
--- a/drivers/gpu/drm/xe/display/xe_initial_plane.c
+++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c
@@ -7,12 +7,16 @@
#include "regs/xe_gtt_defs.h"
-#include "intel_display_types.h"
+/* FIXME move intel_remapped_info_size() & co. */
#include "intel_fb.h"
-#include "intel_fb_pin.h"
+
+/* FIXME move intel_initial_plane_config */
+#include "intel_display_types.h"
+
#include "xe_bo.h"
#include "xe_display_bo.h"
#include "xe_display_vma.h"
+#include "xe_fb_pin.h"
#include "xe_ggtt.h"
#include "xe_mmio.h"
#include "xe_vram_types.h"
@@ -137,14 +141,16 @@ xe_initial_plane_setup(struct drm_plane_state *_plane_state,
struct intel_fb_pin_params pin_params = {
.view = &plane_state->view.gtt,
};
+ u32 offset;
+ int ret;
- vma = intel_fb_pin_to_ggtt(intel_fb_bo(fb), &pin_params, NULL);
- if (IS_ERR(vma))
- return PTR_ERR(vma);
+ ret = xe_fb_pin_ggtt_pin(intel_fb_bo(fb), &pin_params, &vma, &offset, NULL);
+ if (ret)
+ return ret;
plane_state->ggtt_vma = vma;
- plane_state->surf = xe_ggtt_node_addr(plane_state->ggtt_vma->node);
+ plane_state->surf = offset;
plane_config->vma = vma;
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v2 16/16] drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (14 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 15/16] drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin Ville Syrjala
@ 2026-05-08 14:34 ` Ville Syrjala
2026-05-08 14:41 ` ✗ CI.checkpatch: warning for drm/i915: Introduce 'fb_pin' parent interface (rev3) Patchwork
` (3 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Ville Syrjala @ 2026-05-08 14:34 UTC (permalink / raw)
To: intel-gfx; +Cc: intel-xe, Jani Nikula
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Currently i915 and xe each implement their own versions of
intel_plane_(un)pin(). Now that we have the fb_pin parent
interface we can consolidate this to a single implementation.
The result is a mixture of the i915 and xe implementations.
The reuse_vma() hack comes from xe (and i915 doesn't implement
that part of the parent interface, and the pin_params are
taken from i915 since the platforms supported by i915 need
more things.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_cursor.c | 1 -
drivers/gpu/drm/i915/display/intel_fb_pin.h | 27 -----
drivers/gpu/drm/i915/display/intel_plane.c | 118 +++++++++++++++++++-
drivers/gpu/drm/i915/display/intel_plane.h | 3 +
drivers/gpu/drm/i915/i915_fb_pin.c | 116 +------------------
drivers/gpu/drm/xe/display/xe_fb_pin.c | 90 +--------------
6 files changed, 126 insertions(+), 229 deletions(-)
delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_pin.h
diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index 18d1014de361..52347668f27d 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -21,7 +21,6 @@
#include "intel_display_utils.h"
#include "intel_display_wa.h"
#include "intel_fb.h"
-#include "intel_fb_pin.h"
#include "intel_frontbuffer.h"
#include "intel_plane.h"
#include "intel_psr.h"
diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h
deleted file mode 100644
index 6ff17d3e2cf5..000000000000
--- a/drivers/gpu/drm/i915/display/intel_fb_pin.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* SPDX-License-Identifier: MIT */
-/*
- * Copyright © 2021 Intel Corporation
- */
-
-#ifndef __INTEL_FB_PIN_H__
-#define __INTEL_FB_PIN_H__
-
-#include <linux/types.h>
-
-struct drm_gem_object;
-struct i915_vma;
-struct intel_fb_pin_params;
-struct intel_plane_state;
-struct i915_gtt_view;
-struct iosys_map;
-
-struct i915_vma *
-intel_fb_pin_to_ggtt(struct drm_gem_object *obj,
- const struct intel_fb_pin_params *pin_params,
- int *out_fence_id);
-
-int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
- const struct intel_plane_state *old_plane_state);
-void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state);
-
-#endif
diff --git a/drivers/gpu/drm/i915/display/intel_plane.c b/drivers/gpu/drm/i915/display/intel_plane.c
index 8264b66812a5..aa4095276a4f 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_plane.c
@@ -44,6 +44,7 @@
#include <drm/drm_gem_atomic_helper.h>
#include <drm/drm_panic.h>
#include <drm/drm_print.h>
+#include <drm/intel/display_parent_interface.h>
#include "i9xx_plane_regs.h"
#include "intel_cdclk.h"
@@ -53,7 +54,6 @@
#include "intel_display_trace.h"
#include "intel_display_types.h"
#include "intel_fb.h"
-#include "intel_fb_pin.h"
#include "intel_fbdev.h"
#include "intel_parent.h"
#include "intel_plane.h"
@@ -1191,6 +1191,122 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
return 0;
}
+static unsigned int
+intel_plane_fb_min_alignment(const struct intel_plane_state *plane_state)
+{
+ const struct intel_framebuffer *fb = to_intel_framebuffer(plane_state->hw.fb);
+
+ return fb->min_alignment;
+}
+
+static unsigned int
+intel_plane_fb_min_phys_alignment(const struct intel_plane_state *plane_state)
+{
+ struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
+ const struct drm_framebuffer *fb = plane_state->hw.fb;
+
+ if (!intel_plane_needs_physical(plane))
+ return 0;
+
+ return plane->min_alignment(plane, fb, 0);
+}
+
+static unsigned int
+intel_plane_fb_vtd_guard(const struct intel_plane_state *plane_state)
+{
+ return intel_fb_view_vtd_guard(plane_state->hw.fb,
+ &plane_state->view,
+ plane_state->hw.rotation);
+}
+
+int intel_plane_pin_fb(struct intel_plane_state *plane_state,
+ const struct intel_plane_state *old_plane_state)
+{
+ struct intel_display *display = to_intel_display(plane_state);
+ struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
+ const struct intel_framebuffer *fb =
+ to_intel_framebuffer(plane_state->hw.fb);
+ const struct intel_framebuffer *old_fb =
+ to_intel_framebuffer(old_plane_state->hw.fb);
+ struct i915_vma *ggtt_vma = NULL;
+ struct i915_vma *dpt_vma = NULL;
+ int fence_id = -1;
+ u32 offset = 0;
+ int ret;
+
+ /* hack for xe since it can't keep track of vmas properly */
+ ggtt_vma = intel_parent_fb_pin_reuse_vma(display,
+ old_plane_state->ggtt_vma,
+ intel_fb_bo(&old_fb->base),
+ &old_plane_state->view.gtt,
+ intel_fb_bo(&fb->base),
+ &plane_state->view.gtt,
+ &offset);
+ if (ggtt_vma)
+ goto got_vma;
+
+ if (!intel_fb_uses_dpt(&fb->base)) {
+ struct intel_fb_pin_params pin_params = {
+ .view = &plane_state->view.gtt,
+ .alignment = intel_plane_fb_min_alignment(plane_state),
+ .phys_alignment = intel_plane_fb_min_phys_alignment(plane_state),
+ .vtd_guard = intel_plane_fb_vtd_guard(plane_state),
+ .needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
+ .needs_low_address = intel_plane_needs_low_address(display),
+ .needs_physical = intel_plane_needs_physical(plane),
+ .needs_fence = intel_plane_needs_fence(display),
+ };
+
+ ret = intel_parent_fb_pin_ggtt_pin(display, intel_fb_bo(&fb->base),
+ &pin_params, &ggtt_vma, &offset,
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
+ } else {
+ struct intel_fb_pin_params pin_params = {
+ .view = &plane_state->view.gtt,
+ .alignment = intel_plane_fb_min_alignment(plane_state),
+ .needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
+ };
+
+ ret = intel_parent_fb_pin_dpt_pin(display, intel_fb_bo(&fb->base),
+ fb->dpt, &pin_params,
+ &dpt_vma, &ggtt_vma, &offset);
+ }
+ if (ret)
+ return ret;
+
+got_vma:
+ plane_state->dpt_vma = dpt_vma;
+ plane_state->ggtt_vma = ggtt_vma;
+ plane_state->fence_id = fence_id;
+
+ plane_state->surf = offset + plane->surf_offset(plane_state);
+
+ return 0;
+}
+
+void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
+{
+ struct intel_display *display = to_intel_display(old_plane_state);
+ const struct intel_framebuffer *fb =
+ to_intel_framebuffer(old_plane_state->hw.fb);
+
+ if (!intel_fb_uses_dpt(&fb->base)) {
+ intel_parent_fb_pin_ggtt_unpin(display,
+ old_plane_state->ggtt_vma,
+ old_plane_state->fence_id);
+
+ old_plane_state->ggtt_vma = NULL;
+ old_plane_state->fence_id = -1;
+ } else {
+ intel_parent_fb_pin_dpt_unpin(display, fb->dpt,
+ old_plane_state->dpt_vma,
+ old_plane_state->ggtt_vma);
+
+ old_plane_state->dpt_vma = NULL;
+ old_plane_state->ggtt_vma = NULL;
+ }
+}
+
static int add_dma_resv_fences(struct dma_resv *resv,
struct drm_plane_state *new_plane_state)
{
diff --git a/drivers/gpu/drm/i915/display/intel_plane.h b/drivers/gpu/drm/i915/display/intel_plane.h
index 7b5456f56f42..a6338bba72d9 100644
--- a/drivers/gpu/drm/i915/display/intel_plane.h
+++ b/drivers/gpu/drm/i915/display/intel_plane.h
@@ -92,5 +92,8 @@ int intel_plane_atomic_check(struct intel_atomic_state *state);
bool intel_plane_format_mod_supported_async(struct drm_plane *plane,
u32 format,
u64 modifier);
+int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
+ const struct intel_plane_state *old_plane_state);
+void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state);
#endif /* __INTEL_PLANE_H__ */
diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c
index cedefee46fbf..1034cb767e9f 100644
--- a/drivers/gpu/drm/i915/i915_fb_pin.c
+++ b/drivers/gpu/drm/i915/i915_fb_pin.c
@@ -3,20 +3,9 @@
* Copyright © 2021 Intel Corporation
*/
-/**
- * DOC: display pinning helpers
- */
-
#include <drm/drm_print.h>
#include <drm/intel/display_parent_interface.h>
-#include "display/intel_display_core.h"
-#include "display/intel_display_types.h"
-#include "display/intel_fb.h"
-#include "display/intel_fb_pin.h"
-#include "display/intel_parent.h"
-#include "display/intel_plane.h"
-
#include "gem/i915_gem_domain.h"
#include "gem/i915_gem_object.h"
@@ -114,7 +103,7 @@ intel_fb_pin_to_dpt(struct drm_gem_object *_obj, struct intel_dpt *dpt,
return vma;
}
-struct i915_vma *
+static struct i915_vma *
intel_fb_pin_to_ggtt(struct drm_gem_object *_obj,
const struct intel_fb_pin_params *pin_params,
int *out_fence_id)
@@ -230,34 +219,6 @@ static void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id)
i915_vma_put(vma);
}
-static unsigned int
-intel_plane_fb_min_alignment(const struct intel_plane_state *plane_state)
-{
- const struct intel_framebuffer *fb = to_intel_framebuffer(plane_state->hw.fb);
-
- return fb->min_alignment;
-}
-
-static unsigned int
-intel_plane_fb_min_phys_alignment(const struct intel_plane_state *plane_state)
-{
- struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
- const struct drm_framebuffer *fb = plane_state->hw.fb;
-
- if (!intel_plane_needs_physical(plane))
- return 0;
-
- return plane->min_alignment(plane, fb, 0);
-}
-
-static unsigned int
-intel_plane_fb_vtd_guard(const struct intel_plane_state *plane_state)
-{
- return intel_fb_view_vtd_guard(plane_state->hw.fb,
- &plane_state->view,
- plane_state->hw.rotation);
-}
-
static int i915_fb_pin_ggtt_pin(struct drm_gem_object *obj,
const struct intel_fb_pin_params *pin_params,
struct i915_vma **out_ggtt_vma,
@@ -336,81 +297,6 @@ static void i915_fb_pin_dpt_unpin(struct intel_dpt *dpt,
i915_dpt_unpin_from_ggtt(dpt);
}
-int intel_plane_pin_fb(struct intel_plane_state *plane_state,
- const struct intel_plane_state *old_plane_state)
-{
- struct intel_display *display = to_intel_display(plane_state);
- struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
- const struct intel_framebuffer *fb =
- to_intel_framebuffer(plane_state->hw.fb);
- struct i915_vma *ggtt_vma = NULL;
- struct i915_vma *dpt_vma = NULL;
- int fence_id = -1;
- u32 offset;
- int ret;
-
- if (!intel_fb_uses_dpt(&fb->base)) {
- struct intel_fb_pin_params pin_params = {
- .view = &plane_state->view.gtt,
- .alignment = intel_plane_fb_min_alignment(plane_state),
- .phys_alignment = intel_plane_fb_min_phys_alignment(plane_state),
- .vtd_guard = intel_plane_fb_vtd_guard(plane_state),
- .needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
- .needs_low_address = intel_plane_needs_low_address(display),
- .needs_physical = intel_plane_needs_physical(plane),
- .needs_fence = intel_plane_needs_fence(display),
- };
-
- ret = intel_parent_fb_pin_ggtt_pin(display, intel_fb_bo(&fb->base),
- &pin_params, &ggtt_vma, &offset,
- intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
- if (ret)
- return ret;
- } else {
- struct intel_fb_pin_params pin_params = {
- .view = &plane_state->view.gtt,
- .alignment = intel_plane_fb_min_alignment(plane_state),
- .needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
- };
-
- ret = intel_parent_fb_pin_dpt_pin(display, intel_fb_bo(&fb->base),
- fb->dpt, &pin_params,
- &dpt_vma, &ggtt_vma, &offset);
- if (ret)
- return ret;
- }
-
- plane_state->dpt_vma = dpt_vma;
- plane_state->ggtt_vma = ggtt_vma;
- plane_state->fence_id = fence_id;
- plane_state->surf = offset + plane->surf_offset(plane_state);
-
- return 0;
-}
-
-void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
-{
- struct intel_display *display = to_intel_display(old_plane_state);
- const struct intel_framebuffer *fb =
- to_intel_framebuffer(old_plane_state->hw.fb);
-
- if (!intel_fb_uses_dpt(&fb->base)) {
- intel_parent_fb_pin_ggtt_unpin(display,
- old_plane_state->ggtt_vma,
- old_plane_state->fence_id);
-
- old_plane_state->ggtt_vma = NULL;
- old_plane_state->fence_id = -1;
- } else {
- intel_parent_fb_pin_dpt_unpin(display, fb->dpt,
- old_plane_state->dpt_vma,
- old_plane_state->ggtt_vma);
-
- old_plane_state->dpt_vma = NULL;
- old_plane_state->ggtt_vma = NULL;
- }
-}
-
static void i915_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
{
iosys_map_set_vaddr_iomem(map, i915_vma_get_iomap(vma));
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index a8f72de0cf3a..f93c98bec5b5 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -6,11 +6,12 @@
#include <drm/intel/display_parent_interface.h>
#include <drm/ttm/ttm_bo.h>
-#include "intel_display_core.h"
-#include "intel_display_types.h"
+/* FIXME move the types to parent interface? */
+#include "i915_gtt_view_types.h"
+
+/* FIXME move intel_remapped_info_size() & co. to parent interface? */
#include "intel_fb.h"
-#include "intel_fb_pin.h"
-#include "intel_parent.h"
+
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_display_vma.h"
@@ -491,87 +492,6 @@ xe_fb_pin_reuse_vma(struct i915_vma *old_ggtt_vma,
return NULL;
}
-static unsigned int
-intel_plane_fb_min_alignment(const struct intel_plane_state *plane_state)
-{
- const struct intel_framebuffer *fb = to_intel_framebuffer(plane_state->hw.fb);
-
- return fb->min_alignment;
-}
-
-int intel_plane_pin_fb(struct intel_plane_state *new_plane_state,
- const struct intel_plane_state *old_plane_state)
-{
- struct intel_display *display = to_intel_display(new_plane_state);
- const struct intel_framebuffer *fb = to_intel_framebuffer(new_plane_state->hw.fb);
- const struct intel_framebuffer *old_fb = to_intel_framebuffer(old_plane_state->hw.fb);
- struct drm_gem_object *obj = intel_fb_bo(&fb->base);
- struct intel_plane *plane = to_intel_plane(new_plane_state->uapi.plane);
- struct intel_fb_pin_params pin_params = {
- .view = &new_plane_state->view.gtt,
- .alignment = intel_plane_fb_min_alignment(new_plane_state),
- .needs_cpu_lmem_access = intel_fb_needs_cpu_access(&fb->base),
- };
- struct i915_vma *ggtt_vma = NULL;
- struct i915_vma *dpt_vma = NULL;
- int fence_id = -1;
- u32 offset;
- int ret;
-
- ggtt_vma = intel_parent_fb_pin_reuse_vma(display,
- old_plane_state->ggtt_vma,
- intel_fb_bo(&old_fb->base),
- &old_plane_state->view.gtt,
- intel_fb_bo(&fb->base),
- &new_plane_state->view.gtt,
- &offset);
- if (ggtt_vma)
- goto got_vma;
-
- if (!intel_fb_uses_dpt(&fb->base)) {
- ret = intel_parent_fb_pin_ggtt_pin(display, obj, &pin_params,
- &ggtt_vma, &offset, NULL);
- if (ret)
- return ret;
- } else {
- ret = intel_parent_fb_pin_dpt_pin(display, obj, fb->dpt,
- &pin_params, &dpt_vma,
- &ggtt_vma, &offset);
- if (ret)
- return ret;
- }
-
-got_vma:
- new_plane_state->dpt_vma = dpt_vma;
- new_plane_state->ggtt_vma = ggtt_vma;
- new_plane_state->fence_id = fence_id;
- new_plane_state->surf = offset + plane->surf_offset(new_plane_state);
-
- return 0;
-}
-
-void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
-{
- struct intel_display *display = to_intel_display(old_plane_state);
- const struct intel_framebuffer *fb = to_intel_framebuffer(old_plane_state->hw.fb);
-
- if (!intel_fb_uses_dpt(&fb->base)) {
- intel_parent_fb_pin_ggtt_unpin(display,
- old_plane_state->ggtt_vma,
- old_plane_state->fence_id);
-
- old_plane_state->ggtt_vma = NULL;
- old_plane_state->fence_id = -1;
- } else {
- intel_parent_fb_pin_dpt_unpin(display, fb->dpt,
- old_plane_state->dpt_vma,
- old_plane_state->ggtt_vma);
-
- old_plane_state->dpt_vma = NULL;
- old_plane_state->ggtt_vma = NULL;
- }
-}
-
static void xe_fb_pin_get_map(struct i915_vma *vma, struct iosys_map *map)
{
*map = vma->bo->vmap;
--
2.52.0
^ permalink raw reply related [flat|nested] 21+ messages in thread* ✗ CI.checkpatch: warning for drm/i915: Introduce 'fb_pin' parent interface (rev3)
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (15 preceding siblings ...)
2026-05-08 14:34 ` [PATCH v2 16/16] drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations Ville Syrjala
@ 2026-05-08 14:41 ` Patchwork
2026-05-08 14:42 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-05-08 14:41 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
== Series Details ==
Series: drm/i915: Introduce 'fb_pin' parent interface (rev3)
URL : https://patchwork.freedesktop.org/series/165375/
State : warning
== Summary ==
+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 7b454b7e0cd58238633a9903b6942c2bb30a1609
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Fri May 8 17:34:26 2026 +0300
drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations
Currently i915 and xe each implement their own versions of
intel_plane_(un)pin(). Now that we have the fb_pin parent
interface we can consolidate this to a single implementation.
The result is a mixture of the i915 and xe implementations.
The reuse_vma() hack comes from xe (and i915 doesn't implement
that part of the parent interface, and the pin_params are
taken from i915 since the platforms supported by i915 need
more things.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+ /mt/dim checkpatch af196eb1d004764e417f682cdcc91cd2abd372b2 drm-intel
893f93d35024 drm/i915: Introduce intel_parent_fb_pin_get_map()
-:195: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#195:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 210 lines checked
580ab5ad82a5 drm/i915: Move intel_fb_pin_params to the parent interface
1694345256f4 drm/i915: Move the i915_dpt_offset()==0 assert
ae4af3c62f4a drm/i915: Reorganize intel_plane_pin_fb() a bit
-:44: WARNING:LONG_LINE: line length of 104 exceeds 100 columns
#44: FILE: drivers/gpu/drm/i915/i915_fb_pin.c:285:
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
total: 0 errors, 1 warnings, 0 checks, 94 lines checked
d7870d42f06a drm/i915: Introduce i915_fb_pin_dpt_(un)pin()
2663a9574ae4 drm/i915: Introduce i915_fb_pin_ggtt_(un)pin()
625053df57ee drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma()
c6cb8abdb767 drm/xe: Kill the fbdev vma reuse hack
43576781d704 drm/xe: Reorganize intel_plane_pin_fb() a bit
768939d4ed2c drm/xe: Introduce xe_fb_pin_dpt_(un)pin()
baf078f0a2fc drm/xe: Introduce xe_fb_pin_ggtt_(un)pin()
cd05abab35e8 drm/xe: Restructure reuse_vma()
e5644c7b97eb drm/i915: Introduce the main fb_pin parent interface
-:152: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#152: FILE: drivers/gpu/drm/i915/i915_fb_pin.c:366:
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
total: 0 errors, 1 warnings, 0 checks, 280 lines checked
50940f95ccc3 drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin()
30a81da11f68 drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin
7b454b7e0cd5 drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations
-:36: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#36:
deleted file mode 100644
-:160: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#160: FILE: drivers/gpu/drm/i915/display/intel_plane.c:1262:
+ intel_plane_uses_fence(plane_state) ? &fence_id : NULL);
total: 0 errors, 2 warnings, 0 checks, 397 lines checked
^ permalink raw reply [flat|nested] 21+ messages in thread* ✓ CI.KUnit: success for drm/i915: Introduce 'fb_pin' parent interface (rev3)
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (16 preceding siblings ...)
2026-05-08 14:41 ` ✗ CI.checkpatch: warning for drm/i915: Introduce 'fb_pin' parent interface (rev3) Patchwork
@ 2026-05-08 14:42 ` Patchwork
2026-05-08 15:44 ` ✓ Xe.CI.BAT: " Patchwork
2026-05-09 2:43 ` ✓ Xe.CI.FULL: " Patchwork
19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-05-08 14:42 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
== Series Details ==
Series: drm/i915: Introduce 'fb_pin' parent interface (rev3)
URL : https://patchwork.freedesktop.org/series/165375/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[14:41:14] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:41:18] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[14:41:49] Starting KUnit Kernel (1/1)...
[14:41:49] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:41:49] ================== guc_buf (11 subtests) ===================
[14:41:49] [PASSED] test_smallest
[14:41:49] [PASSED] test_largest
[14:41:50] [PASSED] test_granular
[14:41:50] [PASSED] test_unique
[14:41:50] [PASSED] test_overlap
[14:41:50] [PASSED] test_reusable
[14:41:50] [PASSED] test_too_big
[14:41:50] [PASSED] test_flush
[14:41:50] [PASSED] test_lookup
[14:41:50] [PASSED] test_data
[14:41:50] [PASSED] test_class
[14:41:50] ===================== [PASSED] guc_buf =====================
[14:41:50] =================== guc_dbm (7 subtests) ===================
[14:41:50] [PASSED] test_empty
[14:41:50] [PASSED] test_default
[14:41:50] ======================== test_size ========================
[14:41:50] [PASSED] 4
[14:41:50] [PASSED] 8
[14:41:50] [PASSED] 32
[14:41:50] [PASSED] 256
[14:41:50] ==================== [PASSED] test_size ====================
[14:41:50] ======================= test_reuse ========================
[14:41:50] [PASSED] 4
[14:41:50] [PASSED] 8
[14:41:50] [PASSED] 32
[14:41:50] [PASSED] 256
[14:41:50] =================== [PASSED] test_reuse ====================
[14:41:50] =================== test_range_overlap ====================
[14:41:50] [PASSED] 4
[14:41:50] [PASSED] 8
[14:41:50] [PASSED] 32
[14:41:50] [PASSED] 256
[14:41:50] =============== [PASSED] test_range_overlap ================
[14:41:50] =================== test_range_compact ====================
[14:41:50] [PASSED] 4
[14:41:50] [PASSED] 8
[14:41:50] [PASSED] 32
[14:41:50] [PASSED] 256
[14:41:50] =============== [PASSED] test_range_compact ================
[14:41:50] ==================== test_range_spare =====================
[14:41:50] [PASSED] 4
[14:41:50] [PASSED] 8
[14:41:50] [PASSED] 32
[14:41:50] [PASSED] 256
[14:41:50] ================ [PASSED] test_range_spare =================
[14:41:50] ===================== [PASSED] guc_dbm =====================
[14:41:50] =================== guc_idm (6 subtests) ===================
[14:41:50] [PASSED] bad_init
[14:41:50] [PASSED] no_init
[14:41:50] [PASSED] init_fini
[14:41:50] [PASSED] check_used
[14:41:50] [PASSED] check_quota
[14:41:50] [PASSED] check_all
[14:41:50] ===================== [PASSED] guc_idm =====================
[14:41:50] ================== no_relay (3 subtests) ===================
[14:41:50] [PASSED] xe_drops_guc2pf_if_not_ready
[14:41:50] [PASSED] xe_drops_guc2vf_if_not_ready
[14:41:50] [PASSED] xe_rejects_send_if_not_ready
[14:41:50] ==================== [PASSED] no_relay =====================
[14:41:50] ================== pf_relay (14 subtests) ==================
[14:41:50] [PASSED] pf_rejects_guc2pf_too_short
[14:41:50] [PASSED] pf_rejects_guc2pf_too_long
[14:41:50] [PASSED] pf_rejects_guc2pf_no_payload
[14:41:50] [PASSED] pf_fails_no_payload
[14:41:50] [PASSED] pf_fails_bad_origin
[14:41:50] [PASSED] pf_fails_bad_type
[14:41:50] [PASSED] pf_txn_reports_error
[14:41:50] [PASSED] pf_txn_sends_pf2guc
[14:41:50] [PASSED] pf_sends_pf2guc
[14:41:50] [SKIPPED] pf_loopback_nop
[14:41:50] [SKIPPED] pf_loopback_echo
[14:41:50] [SKIPPED] pf_loopback_fail
[14:41:50] [SKIPPED] pf_loopback_busy
[14:41:50] [SKIPPED] pf_loopback_retry
[14:41:50] ==================== [PASSED] pf_relay =====================
[14:41:50] ================== vf_relay (3 subtests) ===================
[14:41:50] [PASSED] vf_rejects_guc2vf_too_short
[14:41:50] [PASSED] vf_rejects_guc2vf_too_long
[14:41:50] [PASSED] vf_rejects_guc2vf_no_payload
[14:41:50] ==================== [PASSED] vf_relay =====================
[14:41:50] ================ pf_gt_config (9 subtests) =================
[14:41:50] [PASSED] fair_contexts_1vf
[14:41:50] [PASSED] fair_doorbells_1vf
[14:41:50] [PASSED] fair_ggtt_1vf
[14:41:50] ====================== fair_vram_1vf ======================
[14:41:50] [PASSED] 3.50 GiB
[14:41:50] [PASSED] 11.5 GiB
[14:41:50] [PASSED] 15.5 GiB
[14:41:50] [PASSED] 31.5 GiB
[14:41:50] [PASSED] 63.5 GiB
[14:41:50] [PASSED] 1.91 GiB
[14:41:50] ================== [PASSED] fair_vram_1vf ==================
[14:41:50] ================ fair_vram_1vf_admin_only =================
[14:41:50] [PASSED] 3.50 GiB
[14:41:50] [PASSED] 11.5 GiB
[14:41:50] [PASSED] 15.5 GiB
[14:41:50] [PASSED] 31.5 GiB
[14:41:50] [PASSED] 63.5 GiB
[14:41:50] [PASSED] 1.91 GiB
[14:41:50] ============ [PASSED] fair_vram_1vf_admin_only =============
[14:41:50] ====================== fair_contexts ======================
[14:41:50] [PASSED] 1 VF
[14:41:50] [PASSED] 2 VFs
[14:41:50] [PASSED] 3 VFs
[14:41:50] [PASSED] 4 VFs
[14:41:50] [PASSED] 5 VFs
[14:41:50] [PASSED] 6 VFs
[14:41:50] [PASSED] 7 VFs
[14:41:50] [PASSED] 8 VFs
[14:41:50] [PASSED] 9 VFs
[14:41:50] [PASSED] 10 VFs
[14:41:50] [PASSED] 11 VFs
[14:41:50] [PASSED] 12 VFs
[14:41:50] [PASSED] 13 VFs
[14:41:50] [PASSED] 14 VFs
[14:41:50] [PASSED] 15 VFs
[14:41:50] [PASSED] 16 VFs
[14:41:50] [PASSED] 17 VFs
[14:41:50] [PASSED] 18 VFs
[14:41:50] [PASSED] 19 VFs
[14:41:50] [PASSED] 20 VFs
[14:41:50] [PASSED] 21 VFs
[14:41:50] [PASSED] 22 VFs
[14:41:50] [PASSED] 23 VFs
[14:41:50] [PASSED] 24 VFs
[14:41:50] [PASSED] 25 VFs
[14:41:50] [PASSED] 26 VFs
[14:41:50] [PASSED] 27 VFs
[14:41:50] [PASSED] 28 VFs
[14:41:50] [PASSED] 29 VFs
[14:41:50] [PASSED] 30 VFs
[14:41:50] [PASSED] 31 VFs
[14:41:50] [PASSED] 32 VFs
[14:41:50] [PASSED] 33 VFs
[14:41:50] [PASSED] 34 VFs
[14:41:50] [PASSED] 35 VFs
[14:41:50] [PASSED] 36 VFs
[14:41:50] [PASSED] 37 VFs
[14:41:50] [PASSED] 38 VFs
[14:41:50] [PASSED] 39 VFs
[14:41:50] [PASSED] 40 VFs
[14:41:50] [PASSED] 41 VFs
[14:41:50] [PASSED] 42 VFs
[14:41:50] [PASSED] 43 VFs
[14:41:50] [PASSED] 44 VFs
[14:41:50] [PASSED] 45 VFs
[14:41:50] [PASSED] 46 VFs
[14:41:50] [PASSED] 47 VFs
[14:41:50] [PASSED] 48 VFs
[14:41:50] [PASSED] 49 VFs
[14:41:50] [PASSED] 50 VFs
[14:41:50] [PASSED] 51 VFs
[14:41:50] [PASSED] 52 VFs
[14:41:50] [PASSED] 53 VFs
[14:41:50] [PASSED] 54 VFs
[14:41:50] [PASSED] 55 VFs
[14:41:50] [PASSED] 56 VFs
[14:41:50] [PASSED] 57 VFs
[14:41:50] [PASSED] 58 VFs
[14:41:50] [PASSED] 59 VFs
[14:41:50] [PASSED] 60 VFs
[14:41:50] [PASSED] 61 VFs
[14:41:50] [PASSED] 62 VFs
[14:41:50] [PASSED] 63 VFs
[14:41:50] ================== [PASSED] fair_contexts ==================
[14:41:50] ===================== fair_doorbells ======================
[14:41:50] [PASSED] 1 VF
[14:41:50] [PASSED] 2 VFs
[14:41:50] [PASSED] 3 VFs
[14:41:50] [PASSED] 4 VFs
[14:41:50] [PASSED] 5 VFs
[14:41:50] [PASSED] 6 VFs
[14:41:50] [PASSED] 7 VFs
[14:41:50] [PASSED] 8 VFs
[14:41:50] [PASSED] 9 VFs
[14:41:50] [PASSED] 10 VFs
[14:41:50] [PASSED] 11 VFs
[14:41:50] [PASSED] 12 VFs
[14:41:50] [PASSED] 13 VFs
[14:41:50] [PASSED] 14 VFs
[14:41:50] [PASSED] 15 VFs
[14:41:50] [PASSED] 16 VFs
[14:41:50] [PASSED] 17 VFs
[14:41:50] [PASSED] 18 VFs
[14:41:50] [PASSED] 19 VFs
[14:41:50] [PASSED] 20 VFs
[14:41:50] [PASSED] 21 VFs
[14:41:50] [PASSED] 22 VFs
[14:41:50] [PASSED] 23 VFs
[14:41:50] [PASSED] 24 VFs
[14:41:50] [PASSED] 25 VFs
[14:41:50] [PASSED] 26 VFs
[14:41:50] [PASSED] 27 VFs
[14:41:50] [PASSED] 28 VFs
[14:41:50] [PASSED] 29 VFs
[14:41:50] [PASSED] 30 VFs
[14:41:50] [PASSED] 31 VFs
[14:41:50] [PASSED] 32 VFs
[14:41:50] [PASSED] 33 VFs
[14:41:50] [PASSED] 34 VFs
[14:41:50] [PASSED] 35 VFs
[14:41:50] [PASSED] 36 VFs
[14:41:50] [PASSED] 37 VFs
[14:41:50] [PASSED] 38 VFs
[14:41:50] [PASSED] 39 VFs
[14:41:50] [PASSED] 40 VFs
[14:41:50] [PASSED] 41 VFs
[14:41:50] [PASSED] 42 VFs
[14:41:50] [PASSED] 43 VFs
[14:41:50] [PASSED] 44 VFs
[14:41:50] [PASSED] 45 VFs
[14:41:50] [PASSED] 46 VFs
[14:41:50] [PASSED] 47 VFs
[14:41:50] [PASSED] 48 VFs
[14:41:50] [PASSED] 49 VFs
[14:41:50] [PASSED] 50 VFs
[14:41:50] [PASSED] 51 VFs
[14:41:50] [PASSED] 52 VFs
[14:41:50] [PASSED] 53 VFs
[14:41:50] [PASSED] 54 VFs
[14:41:50] [PASSED] 55 VFs
[14:41:50] [PASSED] 56 VFs
[14:41:50] [PASSED] 57 VFs
[14:41:50] [PASSED] 58 VFs
[14:41:50] [PASSED] 59 VFs
[14:41:50] [PASSED] 60 VFs
[14:41:50] [PASSED] 61 VFs
[14:41:50] [PASSED] 62 VFs
[14:41:50] [PASSED] 63 VFs
[14:41:50] ================= [PASSED] fair_doorbells ==================
[14:41:50] ======================== fair_ggtt ========================
[14:41:50] [PASSED] 1 VF
[14:41:50] [PASSED] 2 VFs
[14:41:50] [PASSED] 3 VFs
[14:41:50] [PASSED] 4 VFs
[14:41:50] [PASSED] 5 VFs
[14:41:50] [PASSED] 6 VFs
[14:41:50] [PASSED] 7 VFs
[14:41:50] [PASSED] 8 VFs
[14:41:50] [PASSED] 9 VFs
[14:41:50] [PASSED] 10 VFs
[14:41:50] [PASSED] 11 VFs
[14:41:50] [PASSED] 12 VFs
[14:41:50] [PASSED] 13 VFs
[14:41:50] [PASSED] 14 VFs
[14:41:50] [PASSED] 15 VFs
[14:41:50] [PASSED] 16 VFs
[14:41:50] [PASSED] 17 VFs
[14:41:50] [PASSED] 18 VFs
[14:41:50] [PASSED] 19 VFs
[14:41:50] [PASSED] 20 VFs
[14:41:50] [PASSED] 21 VFs
[14:41:50] [PASSED] 22 VFs
[14:41:50] [PASSED] 23 VFs
[14:41:50] [PASSED] 24 VFs
[14:41:50] [PASSED] 25 VFs
[14:41:50] [PASSED] 26 VFs
[14:41:50] [PASSED] 27 VFs
[14:41:50] [PASSED] 28 VFs
[14:41:50] [PASSED] 29 VFs
[14:41:50] [PASSED] 30 VFs
[14:41:50] [PASSED] 31 VFs
[14:41:50] [PASSED] 32 VFs
[14:41:50] [PASSED] 33 VFs
[14:41:50] [PASSED] 34 VFs
[14:41:50] [PASSED] 35 VFs
[14:41:50] [PASSED] 36 VFs
[14:41:50] [PASSED] 37 VFs
[14:41:50] [PASSED] 38 VFs
[14:41:50] [PASSED] 39 VFs
[14:41:50] [PASSED] 40 VFs
[14:41:50] [PASSED] 41 VFs
[14:41:50] [PASSED] 42 VFs
[14:41:50] [PASSED] 43 VFs
[14:41:50] [PASSED] 44 VFs
[14:41:50] [PASSED] 45 VFs
[14:41:50] [PASSED] 46 VFs
[14:41:50] [PASSED] 47 VFs
[14:41:50] [PASSED] 48 VFs
[14:41:50] [PASSED] 49 VFs
[14:41:50] [PASSED] 50 VFs
[14:41:50] [PASSED] 51 VFs
[14:41:50] [PASSED] 52 VFs
[14:41:50] [PASSED] 53 VFs
[14:41:50] [PASSED] 54 VFs
[14:41:50] [PASSED] 55 VFs
[14:41:50] [PASSED] 56 VFs
[14:41:50] [PASSED] 57 VFs
[14:41:50] [PASSED] 58 VFs
[14:41:50] [PASSED] 59 VFs
[14:41:50] [PASSED] 60 VFs
[14:41:50] [PASSED] 61 VFs
[14:41:50] [PASSED] 62 VFs
[14:41:50] [PASSED] 63 VFs
[14:41:50] ==================== [PASSED] fair_ggtt ====================
[14:41:50] ======================== fair_vram ========================
[14:41:50] [PASSED] 1 VF
[14:41:50] [PASSED] 2 VFs
[14:41:50] [PASSED] 3 VFs
[14:41:50] [PASSED] 4 VFs
[14:41:50] [PASSED] 5 VFs
[14:41:50] [PASSED] 6 VFs
[14:41:50] [PASSED] 7 VFs
[14:41:50] [PASSED] 8 VFs
[14:41:50] [PASSED] 9 VFs
[14:41:50] [PASSED] 10 VFs
[14:41:50] [PASSED] 11 VFs
[14:41:50] [PASSED] 12 VFs
[14:41:50] [PASSED] 13 VFs
[14:41:50] [PASSED] 14 VFs
[14:41:50] [PASSED] 15 VFs
[14:41:50] [PASSED] 16 VFs
[14:41:50] [PASSED] 17 VFs
[14:41:50] [PASSED] 18 VFs
[14:41:50] [PASSED] 19 VFs
[14:41:50] [PASSED] 20 VFs
[14:41:50] [PASSED] 21 VFs
[14:41:50] [PASSED] 22 VFs
[14:41:50] [PASSED] 23 VFs
[14:41:50] [PASSED] 24 VFs
[14:41:50] [PASSED] 25 VFs
[14:41:50] [PASSED] 26 VFs
[14:41:50] [PASSED] 27 VFs
[14:41:50] [PASSED] 28 VFs
[14:41:50] [PASSED] 29 VFs
[14:41:50] [PASSED] 30 VFs
[14:41:50] [PASSED] 31 VFs
[14:41:50] [PASSED] 32 VFs
[14:41:50] [PASSED] 33 VFs
[14:41:50] [PASSED] 34 VFs
[14:41:50] [PASSED] 35 VFs
[14:41:50] [PASSED] 36 VFs
[14:41:50] [PASSED] 37 VFs
[14:41:50] [PASSED] 38 VFs
[14:41:50] [PASSED] 39 VFs
[14:41:50] [PASSED] 40 VFs
[14:41:50] [PASSED] 41 VFs
[14:41:50] [PASSED] 42 VFs
[14:41:50] [PASSED] 43 VFs
[14:41:50] [PASSED] 44 VFs
[14:41:50] [PASSED] 45 VFs
[14:41:50] [PASSED] 46 VFs
[14:41:50] [PASSED] 47 VFs
[14:41:50] [PASSED] 48 VFs
[14:41:50] [PASSED] 49 VFs
[14:41:50] [PASSED] 50 VFs
[14:41:50] [PASSED] 51 VFs
[14:41:50] [PASSED] 52 VFs
[14:41:50] [PASSED] 53 VFs
[14:41:50] [PASSED] 54 VFs
[14:41:50] [PASSED] 55 VFs
[14:41:50] [PASSED] 56 VFs
[14:41:50] [PASSED] 57 VFs
[14:41:50] [PASSED] 58 VFs
[14:41:50] [PASSED] 59 VFs
[14:41:50] [PASSED] 60 VFs
[14:41:50] [PASSED] 61 VFs
[14:41:50] [PASSED] 62 VFs
[14:41:50] [PASSED] 63 VFs
[14:41:50] ==================== [PASSED] fair_vram ====================
[14:41:50] ================== [PASSED] pf_gt_config ===================
[14:41:50] ===================== lmtt (1 subtest) =====================
[14:41:50] ======================== test_ops =========================
[14:41:50] [PASSED] 2-level
[14:41:50] [PASSED] multi-level
[14:41:50] ==================== [PASSED] test_ops =====================
[14:41:50] ====================== [PASSED] lmtt =======================
[14:41:50] ================= pf_service (11 subtests) =================
[14:41:50] [PASSED] pf_negotiate_any
[14:41:50] [PASSED] pf_negotiate_base_match
[14:41:50] [PASSED] pf_negotiate_base_newer
[14:41:50] [PASSED] pf_negotiate_base_next
[14:41:50] [SKIPPED] pf_negotiate_base_older
[14:41:50] [PASSED] pf_negotiate_base_prev
[14:41:50] [PASSED] pf_negotiate_latest_match
[14:41:50] [PASSED] pf_negotiate_latest_newer
[14:41:50] [PASSED] pf_negotiate_latest_next
[14:41:50] [SKIPPED] pf_negotiate_latest_older
[14:41:50] [SKIPPED] pf_negotiate_latest_prev
[14:41:50] =================== [PASSED] pf_service ====================
[14:41:50] ================= xe_guc_g2g (2 subtests) ==================
[14:41:50] ============== xe_live_guc_g2g_kunit_default ==============
[14:41:50] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[14:41:50] ============== xe_live_guc_g2g_kunit_allmem ===============
[14:41:50] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[14:41:50] =================== [SKIPPED] xe_guc_g2g ===================
[14:41:50] =================== xe_mocs (2 subtests) ===================
[14:41:50] ================ xe_live_mocs_kernel_kunit ================
[14:41:50] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[14:41:50] ================ xe_live_mocs_reset_kunit =================
[14:41:50] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[14:41:50] ==================== [SKIPPED] xe_mocs =====================
[14:41:50] ================= xe_migrate (2 subtests) ==================
[14:41:50] ================= xe_migrate_sanity_kunit =================
[14:41:50] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[14:41:50] ================== xe_validate_ccs_kunit ==================
[14:41:50] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[14:41:50] =================== [SKIPPED] xe_migrate ===================
[14:41:50] ================== xe_dma_buf (1 subtest) ==================
[14:41:50] ==================== xe_dma_buf_kunit =====================
[14:41:50] ================ [SKIPPED] xe_dma_buf_kunit ================
[14:41:50] =================== [SKIPPED] xe_dma_buf ===================
[14:41:50] ================= xe_bo_shrink (1 subtest) =================
[14:41:50] =================== xe_bo_shrink_kunit ====================
[14:41:50] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[14:41:50] ================== [SKIPPED] xe_bo_shrink ==================
[14:41:50] ==================== xe_bo (2 subtests) ====================
[14:41:50] ================== xe_ccs_migrate_kunit ===================
[14:41:50] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[14:41:50] ==================== xe_bo_evict_kunit ====================
[14:41:50] =============== [SKIPPED] xe_bo_evict_kunit ================
[14:41:50] ===================== [SKIPPED] xe_bo ======================
[14:41:50] ==================== args (13 subtests) ====================
[14:41:50] [PASSED] count_args_test
[14:41:50] [PASSED] call_args_example
[14:41:50] [PASSED] call_args_test
[14:41:50] [PASSED] drop_first_arg_example
[14:41:50] [PASSED] drop_first_arg_test
[14:41:50] [PASSED] first_arg_example
[14:41:50] [PASSED] first_arg_test
[14:41:50] [PASSED] last_arg_example
[14:41:50] [PASSED] last_arg_test
[14:41:50] [PASSED] pick_arg_example
[14:41:50] [PASSED] if_args_example
[14:41:50] [PASSED] if_args_test
[14:41:50] [PASSED] sep_comma_example
[14:41:50] ====================== [PASSED] args =======================
[14:41:50] =================== xe_pci (3 subtests) ====================
[14:41:50] ==================== check_graphics_ip ====================
[14:41:50] [PASSED] 12.00 Xe_LP
[14:41:50] [PASSED] 12.10 Xe_LP+
[14:41:50] [PASSED] 12.55 Xe_HPG
[14:41:50] [PASSED] 12.60 Xe_HPC
[14:41:50] [PASSED] 12.70 Xe_LPG
[14:41:50] [PASSED] 12.71 Xe_LPG
[14:41:50] [PASSED] 12.74 Xe_LPG+
[14:41:50] [PASSED] 20.01 Xe2_HPG
[14:41:50] [PASSED] 20.02 Xe2_HPG
[14:41:50] [PASSED] 20.04 Xe2_LPG
[14:41:50] [PASSED] 30.00 Xe3_LPG
[14:41:50] [PASSED] 30.01 Xe3_LPG
[14:41:50] [PASSED] 30.03 Xe3_LPG
[14:41:50] [PASSED] 30.04 Xe3_LPG
[14:41:50] [PASSED] 30.05 Xe3_LPG
[14:41:50] [PASSED] 35.10 Xe3p_LPG
[14:41:50] [PASSED] 35.11 Xe3p_XPC
[14:41:50] ================ [PASSED] check_graphics_ip ================
[14:41:50] ===================== check_media_ip ======================
[14:41:50] [PASSED] 12.00 Xe_M
[14:41:50] [PASSED] 12.55 Xe_HPM
[14:41:50] [PASSED] 13.00 Xe_LPM+
[14:41:50] [PASSED] 13.01 Xe2_HPM
[14:41:50] [PASSED] 20.00 Xe2_LPM
[14:41:50] [PASSED] 30.00 Xe3_LPM
[14:41:50] [PASSED] 30.02 Xe3_LPM
[14:41:50] [PASSED] 35.00 Xe3p_LPM
[14:41:50] [PASSED] 35.03 Xe3p_HPM
[14:41:50] ================= [PASSED] check_media_ip ==================
[14:41:50] =================== check_platform_desc ===================
[14:41:50] [PASSED] 0x9A60 (TIGERLAKE)
[14:41:50] [PASSED] 0x9A68 (TIGERLAKE)
[14:41:50] [PASSED] 0x9A70 (TIGERLAKE)
[14:41:50] [PASSED] 0x9A40 (TIGERLAKE)
[14:41:50] [PASSED] 0x9A49 (TIGERLAKE)
[14:41:50] [PASSED] 0x9A59 (TIGERLAKE)
[14:41:50] [PASSED] 0x9A78 (TIGERLAKE)
[14:41:50] [PASSED] 0x9AC0 (TIGERLAKE)
[14:41:50] [PASSED] 0x9AC9 (TIGERLAKE)
[14:41:50] [PASSED] 0x9AD9 (TIGERLAKE)
[14:41:50] [PASSED] 0x9AF8 (TIGERLAKE)
[14:41:50] [PASSED] 0x4C80 (ROCKETLAKE)
[14:41:50] [PASSED] 0x4C8A (ROCKETLAKE)
[14:41:50] [PASSED] 0x4C8B (ROCKETLAKE)
[14:41:50] [PASSED] 0x4C8C (ROCKETLAKE)
[14:41:50] [PASSED] 0x4C90 (ROCKETLAKE)
[14:41:50] [PASSED] 0x4C9A (ROCKETLAKE)
[14:41:50] [PASSED] 0x4680 (ALDERLAKE_S)
[14:41:50] [PASSED] 0x4682 (ALDERLAKE_S)
[14:41:50] [PASSED] 0x4688 (ALDERLAKE_S)
[14:41:50] [PASSED] 0x468A (ALDERLAKE_S)
[14:41:50] [PASSED] 0x468B (ALDERLAKE_S)
[14:41:50] [PASSED] 0x4690 (ALDERLAKE_S)
[14:41:50] [PASSED] 0x4692 (ALDERLAKE_S)
[14:41:50] [PASSED] 0x4693 (ALDERLAKE_S)
[14:41:50] [PASSED] 0x46A0 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46A1 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46A2 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46A3 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46A6 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46A8 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46AA (ALDERLAKE_P)
[14:41:50] [PASSED] 0x462A (ALDERLAKE_P)
[14:41:50] [PASSED] 0x4626 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x4628 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46B0 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46B1 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46B2 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46B3 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46C0 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46C1 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46C2 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46C3 (ALDERLAKE_P)
[14:41:50] [PASSED] 0x46D0 (ALDERLAKE_N)
[14:41:50] [PASSED] 0x46D1 (ALDERLAKE_N)
[14:41:50] [PASSED] 0x46D2 (ALDERLAKE_N)
[14:41:50] [PASSED] 0x46D3 (ALDERLAKE_N)
[14:41:50] [PASSED] 0x46D4 (ALDERLAKE_N)
[14:41:50] [PASSED] 0xA721 (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7A1 (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7A9 (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7AC (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7AD (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA720 (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7A0 (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7A8 (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7AA (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA7AB (ALDERLAKE_P)
[14:41:50] [PASSED] 0xA780 (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA781 (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA782 (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA783 (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA788 (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA789 (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA78A (ALDERLAKE_S)
[14:41:50] [PASSED] 0xA78B (ALDERLAKE_S)
[14:41:50] [PASSED] 0x4905 (DG1)
[14:41:50] [PASSED] 0x4906 (DG1)
[14:41:50] [PASSED] 0x4907 (DG1)
[14:41:50] [PASSED] 0x4908 (DG1)
[14:41:50] [PASSED] 0x4909 (DG1)
[14:41:50] [PASSED] 0x56C0 (DG2)
[14:41:50] [PASSED] 0x56C2 (DG2)
[14:41:50] [PASSED] 0x56C1 (DG2)
[14:41:50] [PASSED] 0x7D51 (METEORLAKE)
[14:41:50] [PASSED] 0x7DD1 (METEORLAKE)
[14:41:50] [PASSED] 0x7D41 (METEORLAKE)
[14:41:50] [PASSED] 0x7D67 (METEORLAKE)
[14:41:50] [PASSED] 0xB640 (METEORLAKE)
[14:41:50] [PASSED] 0x56A0 (DG2)
[14:41:50] [PASSED] 0x56A1 (DG2)
[14:41:50] [PASSED] 0x56A2 (DG2)
[14:41:50] [PASSED] 0x56BE (DG2)
[14:41:50] [PASSED] 0x56BF (DG2)
[14:41:50] [PASSED] 0x5690 (DG2)
[14:41:50] [PASSED] 0x5691 (DG2)
[14:41:50] [PASSED] 0x5692 (DG2)
[14:41:50] [PASSED] 0x56A5 (DG2)
[14:41:50] [PASSED] 0x56A6 (DG2)
[14:41:50] [PASSED] 0x56B0 (DG2)
[14:41:50] [PASSED] 0x56B1 (DG2)
[14:41:50] [PASSED] 0x56BA (DG2)
[14:41:50] [PASSED] 0x56BB (DG2)
[14:41:50] [PASSED] 0x56BC (DG2)
[14:41:50] [PASSED] 0x56BD (DG2)
[14:41:50] [PASSED] 0x5693 (DG2)
[14:41:50] [PASSED] 0x5694 (DG2)
[14:41:50] [PASSED] 0x5695 (DG2)
[14:41:50] [PASSED] 0x56A3 (DG2)
[14:41:50] [PASSED] 0x56A4 (DG2)
[14:41:50] [PASSED] 0x56B2 (DG2)
[14:41:50] [PASSED] 0x56B3 (DG2)
[14:41:50] [PASSED] 0x5696 (DG2)
[14:41:50] [PASSED] 0x5697 (DG2)
[14:41:50] [PASSED] 0xB69 (PVC)
[14:41:50] [PASSED] 0xB6E (PVC)
[14:41:50] [PASSED] 0xBD4 (PVC)
[14:41:50] [PASSED] 0xBD5 (PVC)
[14:41:50] [PASSED] 0xBD6 (PVC)
[14:41:50] [PASSED] 0xBD7 (PVC)
[14:41:50] [PASSED] 0xBD8 (PVC)
[14:41:50] [PASSED] 0xBD9 (PVC)
[14:41:50] [PASSED] 0xBDA (PVC)
[14:41:50] [PASSED] 0xBDB (PVC)
[14:41:50] [PASSED] 0xBE0 (PVC)
[14:41:50] [PASSED] 0xBE1 (PVC)
[14:41:50] [PASSED] 0xBE5 (PVC)
[14:41:50] [PASSED] 0x7D40 (METEORLAKE)
[14:41:50] [PASSED] 0x7D45 (METEORLAKE)
[14:41:50] [PASSED] 0x7D55 (METEORLAKE)
[14:41:50] [PASSED] 0x7D60 (METEORLAKE)
[14:41:50] [PASSED] 0x7DD5 (METEORLAKE)
[14:41:50] [PASSED] 0x6420 (LUNARLAKE)
[14:41:50] [PASSED] 0x64A0 (LUNARLAKE)
[14:41:50] [PASSED] 0x64B0 (LUNARLAKE)
[14:41:50] [PASSED] 0xE202 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE209 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE20B (BATTLEMAGE)
[14:41:50] [PASSED] 0xE20C (BATTLEMAGE)
[14:41:50] [PASSED] 0xE20D (BATTLEMAGE)
[14:41:50] [PASSED] 0xE210 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE211 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE212 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE216 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE220 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE221 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE222 (BATTLEMAGE)
[14:41:50] [PASSED] 0xE223 (BATTLEMAGE)
[14:41:50] [PASSED] 0xB080 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB081 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB082 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB083 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB084 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB085 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB086 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB087 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB08F (PANTHERLAKE)
[14:41:50] [PASSED] 0xB090 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB0A0 (PANTHERLAKE)
[14:41:50] [PASSED] 0xB0B0 (PANTHERLAKE)
[14:41:50] [PASSED] 0xFD80 (PANTHERLAKE)
[14:41:50] [PASSED] 0xFD81 (PANTHERLAKE)
[14:41:50] [PASSED] 0xD740 (NOVALAKE_S)
[14:41:50] [PASSED] 0xD741 (NOVALAKE_S)
[14:41:50] [PASSED] 0xD742 (NOVALAKE_S)
[14:41:50] [PASSED] 0xD743 (NOVALAKE_S)
[14:41:50] [PASSED] 0xD744 (NOVALAKE_S)
[14:41:50] [PASSED] 0xD745 (NOVALAKE_S)
[14:41:50] [PASSED] 0x674C (CRESCENTISLAND)
[14:41:50] [PASSED] 0x674D (CRESCENTISLAND)
[14:41:50] [PASSED] 0x674E (CRESCENTISLAND)
[14:41:50] [PASSED] 0x674F (CRESCENTISLAND)
[14:41:50] [PASSED] 0x6750 (CRESCENTISLAND)
[14:41:50] [PASSED] 0xD750 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD751 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD752 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD753 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD754 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD755 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD756 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD757 (NOVALAKE_P)
[14:41:50] [PASSED] 0xD75F (NOVALAKE_P)
[14:41:50] =============== [PASSED] check_platform_desc ===============
[14:41:50] ===================== [PASSED] xe_pci ======================
[14:41:50] =================== xe_rtp (2 subtests) ====================
[14:41:50] =============== xe_rtp_process_to_sr_tests ================
[14:41:50] [PASSED] coalesce-same-reg
[14:41:50] [PASSED] no-match-no-add
[14:41:50] [PASSED] match-or
[14:41:50] [PASSED] match-or-xfail
[14:41:50] [PASSED] no-match-no-add-multiple-rules
[14:41:50] [PASSED] two-regs-two-entries
[14:41:50] [PASSED] clr-one-set-other
[14:41:50] [PASSED] set-field
[14:41:50] [PASSED] conflict-duplicate
[14:41:50] [PASSED] conflict-not-disjoint
[14:41:50] [PASSED] conflict-reg-type
[14:41:50] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[14:41:50] ================== xe_rtp_process_tests ===================
[14:41:50] [PASSED] active1
[14:41:50] [PASSED] active2
[14:41:50] [PASSED] active-inactive
[14:41:50] [PASSED] inactive-active
[14:41:50] [PASSED] inactive-1st_or_active-inactive
[14:41:50] [PASSED] inactive-2nd_or_active-inactive
[14:41:50] [PASSED] inactive-last_or_active-inactive
[14:41:50] [PASSED] inactive-no_or_active-inactive
[14:41:50] ============== [PASSED] xe_rtp_process_tests ===============
[14:41:50] ===================== [PASSED] xe_rtp ======================
[14:41:50] ==================== xe_wa (1 subtest) =====================
[14:41:50] ======================== xe_wa_gt =========================
[14:41:50] [PASSED] TIGERLAKE B0
[14:41:50] [PASSED] DG1 A0
[14:41:50] [PASSED] DG1 B0
[14:41:50] [PASSED] ALDERLAKE_S A0
[14:41:50] [PASSED] ALDERLAKE_S B0
[14:41:50] [PASSED] ALDERLAKE_S C0
[14:41:50] [PASSED] ALDERLAKE_S D0
[14:41:50] [PASSED] ALDERLAKE_P A0
[14:41:50] [PASSED] ALDERLAKE_P B0
[14:41:50] [PASSED] ALDERLAKE_P C0
[14:41:50] [PASSED] ALDERLAKE_S RPLS D0
[14:41:50] [PASSED] ALDERLAKE_P RPLU E0
[14:41:50] [PASSED] DG2 G10 C0
[14:41:50] [PASSED] DG2 G11 B1
[14:41:50] [PASSED] DG2 G12 A1
[14:41:50] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[14:41:50] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[14:41:50] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[14:41:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[14:41:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[14:41:50] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[14:41:50] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[14:41:50] ==================== [PASSED] xe_wa_gt =====================
[14:41:50] ====================== [PASSED] xe_wa ======================
[14:41:50] ============================================================
[14:41:50] Testing complete. Ran 601 tests: passed: 583, skipped: 18
[14:41:50] Elapsed time: 36.176s total, 4.336s configuring, 31.174s building, 0.644s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[14:41:50] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:41:52] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[14:42:16] Starting KUnit Kernel (1/1)...
[14:42:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:42:16] ============ drm_test_pick_cmdline (2 subtests) ============
[14:42:16] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[14:42:16] =============== drm_test_pick_cmdline_named ===============
[14:42:16] [PASSED] NTSC
[14:42:16] [PASSED] NTSC-J
[14:42:16] [PASSED] PAL
[14:42:16] [PASSED] PAL-M
[14:42:16] =========== [PASSED] drm_test_pick_cmdline_named ===========
[14:42:16] ============== [PASSED] drm_test_pick_cmdline ==============
[14:42:16] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[14:42:16] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[14:42:16] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[14:42:16] =========== drm_validate_clone_mode (2 subtests) ===========
[14:42:16] ============== drm_test_check_in_clone_mode ===============
[14:42:16] [PASSED] in_clone_mode
[14:42:16] [PASSED] not_in_clone_mode
[14:42:16] ========== [PASSED] drm_test_check_in_clone_mode ===========
[14:42:16] =============== drm_test_check_valid_clones ===============
[14:42:16] [PASSED] not_in_clone_mode
[14:42:16] [PASSED] valid_clone
[14:42:16] [PASSED] invalid_clone
[14:42:16] =========== [PASSED] drm_test_check_valid_clones ===========
[14:42:16] ============= [PASSED] drm_validate_clone_mode =============
[14:42:16] ============= drm_validate_modeset (1 subtest) =============
[14:42:16] [PASSED] drm_test_check_connector_changed_modeset
[14:42:16] ============== [PASSED] drm_validate_modeset ===============
[14:42:16] ====== drm_test_bridge_get_current_state (2 subtests) ======
[14:42:16] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[14:42:16] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[14:42:16] ======== [PASSED] drm_test_bridge_get_current_state ========
[14:42:16] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[14:42:16] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[14:42:16] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[14:42:16] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[14:42:16] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[14:42:16] ============== drm_bridge_alloc (2 subtests) ===============
[14:42:16] [PASSED] drm_test_drm_bridge_alloc_basic
[14:42:16] [PASSED] drm_test_drm_bridge_alloc_get_put
[14:42:16] ================ [PASSED] drm_bridge_alloc =================
[14:42:16] ============= drm_cmdline_parser (40 subtests) =============
[14:42:16] [PASSED] drm_test_cmdline_force_d_only
[14:42:16] [PASSED] drm_test_cmdline_force_D_only_dvi
[14:42:16] [PASSED] drm_test_cmdline_force_D_only_hdmi
[14:42:16] [PASSED] drm_test_cmdline_force_D_only_not_digital
[14:42:16] [PASSED] drm_test_cmdline_force_e_only
[14:42:16] [PASSED] drm_test_cmdline_res
[14:42:16] [PASSED] drm_test_cmdline_res_vesa
[14:42:16] [PASSED] drm_test_cmdline_res_vesa_rblank
[14:42:16] [PASSED] drm_test_cmdline_res_rblank
[14:42:16] [PASSED] drm_test_cmdline_res_bpp
[14:42:16] [PASSED] drm_test_cmdline_res_refresh
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[14:42:16] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[14:42:16] [PASSED] drm_test_cmdline_res_margins_force_on
[14:42:16] [PASSED] drm_test_cmdline_res_vesa_margins
[14:42:16] [PASSED] drm_test_cmdline_name
[14:42:16] [PASSED] drm_test_cmdline_name_bpp
[14:42:16] [PASSED] drm_test_cmdline_name_option
[14:42:16] [PASSED] drm_test_cmdline_name_bpp_option
[14:42:16] [PASSED] drm_test_cmdline_rotate_0
[14:42:16] [PASSED] drm_test_cmdline_rotate_90
[14:42:16] [PASSED] drm_test_cmdline_rotate_180
[14:42:16] [PASSED] drm_test_cmdline_rotate_270
[14:42:16] [PASSED] drm_test_cmdline_hmirror
[14:42:16] [PASSED] drm_test_cmdline_vmirror
[14:42:16] [PASSED] drm_test_cmdline_margin_options
[14:42:16] [PASSED] drm_test_cmdline_multiple_options
[14:42:16] [PASSED] drm_test_cmdline_bpp_extra_and_option
[14:42:16] [PASSED] drm_test_cmdline_extra_and_option
[14:42:16] [PASSED] drm_test_cmdline_freestanding_options
[14:42:16] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[14:42:16] [PASSED] drm_test_cmdline_panel_orientation
[14:42:16] ================ drm_test_cmdline_invalid =================
[14:42:16] [PASSED] margin_only
[14:42:16] [PASSED] interlace_only
[14:42:16] [PASSED] res_missing_x
[14:42:16] [PASSED] res_missing_y
[14:42:16] [PASSED] res_bad_y
[14:42:16] [PASSED] res_missing_y_bpp
[14:42:16] [PASSED] res_bad_bpp
[14:42:16] [PASSED] res_bad_refresh
[14:42:16] [PASSED] res_bpp_refresh_force_on_off
[14:42:16] [PASSED] res_invalid_mode
[14:42:16] [PASSED] res_bpp_wrong_place_mode
[14:42:16] [PASSED] name_bpp_refresh
[14:42:16] [PASSED] name_refresh
[14:42:16] [PASSED] name_refresh_wrong_mode
[14:42:16] [PASSED] name_refresh_invalid_mode
[14:42:16] [PASSED] rotate_multiple
[14:42:16] [PASSED] rotate_invalid_val
[14:42:16] [PASSED] rotate_truncated
[14:42:16] [PASSED] invalid_option
[14:42:16] [PASSED] invalid_tv_option
[14:42:16] [PASSED] truncated_tv_option
[14:42:16] ============ [PASSED] drm_test_cmdline_invalid =============
[14:42:16] =============== drm_test_cmdline_tv_options ===============
[14:42:16] [PASSED] NTSC
[14:42:16] [PASSED] NTSC_443
[14:42:16] [PASSED] NTSC_J
[14:42:16] [PASSED] PAL
[14:42:16] [PASSED] PAL_M
[14:42:16] [PASSED] PAL_N
[14:42:16] [PASSED] SECAM
[14:42:16] [PASSED] MONO_525
[14:42:16] [PASSED] MONO_625
[14:42:16] =========== [PASSED] drm_test_cmdline_tv_options ===========
[14:42:16] =============== [PASSED] drm_cmdline_parser ================
[14:42:16] ========== drmm_connector_hdmi_init (20 subtests) ==========
[14:42:16] [PASSED] drm_test_connector_hdmi_init_valid
[14:42:16] [PASSED] drm_test_connector_hdmi_init_bpc_8
[14:42:16] [PASSED] drm_test_connector_hdmi_init_bpc_10
[14:42:16] [PASSED] drm_test_connector_hdmi_init_bpc_12
[14:42:16] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[14:42:16] [PASSED] drm_test_connector_hdmi_init_bpc_null
[14:42:16] [PASSED] drm_test_connector_hdmi_init_formats_empty
[14:42:16] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[14:42:16] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:42:16] [PASSED] supported_formats=0x9 yuv420_allowed=1
[14:42:16] [PASSED] supported_formats=0x9 yuv420_allowed=0
[14:42:16] [PASSED] supported_formats=0x5 yuv420_allowed=1
[14:42:16] [PASSED] supported_formats=0x5 yuv420_allowed=0
[14:42:16] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:42:16] [PASSED] drm_test_connector_hdmi_init_null_ddc
[14:42:16] [PASSED] drm_test_connector_hdmi_init_null_product
[14:42:16] [PASSED] drm_test_connector_hdmi_init_null_vendor
[14:42:16] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[14:42:16] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[14:42:16] [PASSED] drm_test_connector_hdmi_init_product_valid
[14:42:16] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[14:42:16] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[14:42:16] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[14:42:16] ========= drm_test_connector_hdmi_init_type_valid =========
[14:42:16] [PASSED] HDMI-A
[14:42:16] [PASSED] HDMI-B
[14:42:16] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[14:42:16] ======== drm_test_connector_hdmi_init_type_invalid ========
[14:42:16] [PASSED] Unknown
[14:42:16] [PASSED] VGA
[14:42:16] [PASSED] DVI-I
[14:42:16] [PASSED] DVI-D
[14:42:16] [PASSED] DVI-A
[14:42:16] [PASSED] Composite
[14:42:16] [PASSED] SVIDEO
[14:42:16] [PASSED] LVDS
[14:42:16] [PASSED] Component
[14:42:16] [PASSED] DIN
[14:42:16] [PASSED] DP
[14:42:16] [PASSED] TV
[14:42:16] [PASSED] eDP
[14:42:16] [PASSED] Virtual
[14:42:16] [PASSED] DSI
[14:42:16] [PASSED] DPI
[14:42:16] [PASSED] Writeback
[14:42:16] [PASSED] SPI
[14:42:16] [PASSED] USB
[14:42:16] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[14:42:16] ============ [PASSED] drmm_connector_hdmi_init =============
[14:42:16] ============= drmm_connector_init (3 subtests) =============
[14:42:16] [PASSED] drm_test_drmm_connector_init
[14:42:16] [PASSED] drm_test_drmm_connector_init_null_ddc
[14:42:16] ========= drm_test_drmm_connector_init_type_valid =========
[14:42:16] [PASSED] Unknown
[14:42:16] [PASSED] VGA
[14:42:16] [PASSED] DVI-I
[14:42:16] [PASSED] DVI-D
[14:42:16] [PASSED] DVI-A
[14:42:16] [PASSED] Composite
[14:42:16] [PASSED] SVIDEO
[14:42:16] [PASSED] LVDS
[14:42:16] [PASSED] Component
[14:42:16] [PASSED] DIN
[14:42:16] [PASSED] DP
[14:42:16] [PASSED] HDMI-A
[14:42:16] [PASSED] HDMI-B
[14:42:16] [PASSED] TV
[14:42:16] [PASSED] eDP
[14:42:16] [PASSED] Virtual
[14:42:16] [PASSED] DSI
[14:42:16] [PASSED] DPI
[14:42:16] [PASSED] Writeback
[14:42:16] [PASSED] SPI
[14:42:16] [PASSED] USB
[14:42:16] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[14:42:16] =============== [PASSED] drmm_connector_init ===============
[14:42:16] ========= drm_connector_dynamic_init (6 subtests) ==========
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_init
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_init_properties
[14:42:16] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[14:42:16] [PASSED] Unknown
[14:42:16] [PASSED] VGA
[14:42:16] [PASSED] DVI-I
[14:42:16] [PASSED] DVI-D
[14:42:16] [PASSED] DVI-A
[14:42:16] [PASSED] Composite
[14:42:16] [PASSED] SVIDEO
[14:42:16] [PASSED] LVDS
[14:42:16] [PASSED] Component
[14:42:16] [PASSED] DIN
[14:42:16] [PASSED] DP
[14:42:16] [PASSED] HDMI-A
[14:42:16] [PASSED] HDMI-B
[14:42:16] [PASSED] TV
[14:42:16] [PASSED] eDP
[14:42:16] [PASSED] Virtual
[14:42:16] [PASSED] DSI
[14:42:16] [PASSED] DPI
[14:42:16] [PASSED] Writeback
[14:42:16] [PASSED] SPI
[14:42:16] [PASSED] USB
[14:42:16] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[14:42:16] ======== drm_test_drm_connector_dynamic_init_name =========
[14:42:16] [PASSED] Unknown
[14:42:16] [PASSED] VGA
[14:42:16] [PASSED] DVI-I
[14:42:16] [PASSED] DVI-D
[14:42:16] [PASSED] DVI-A
[14:42:16] [PASSED] Composite
[14:42:16] [PASSED] SVIDEO
[14:42:16] [PASSED] LVDS
[14:42:16] [PASSED] Component
[14:42:16] [PASSED] DIN
[14:42:16] [PASSED] DP
[14:42:16] [PASSED] HDMI-A
[14:42:16] [PASSED] HDMI-B
[14:42:16] [PASSED] TV
[14:42:16] [PASSED] eDP
[14:42:16] [PASSED] Virtual
[14:42:16] [PASSED] DSI
[14:42:16] [PASSED] DPI
[14:42:16] [PASSED] Writeback
[14:42:16] [PASSED] SPI
[14:42:16] [PASSED] USB
[14:42:16] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[14:42:16] =========== [PASSED] drm_connector_dynamic_init ============
[14:42:16] ==== drm_connector_dynamic_register_early (4 subtests) =====
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[14:42:16] ====== [PASSED] drm_connector_dynamic_register_early =======
[14:42:16] ======= drm_connector_dynamic_register (7 subtests) ========
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[14:42:16] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[14:42:16] ========= [PASSED] drm_connector_dynamic_register ==========
[14:42:16] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[14:42:16] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[14:42:16] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[14:42:16] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[14:42:16] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[14:42:16] ========== drm_test_get_tv_mode_from_name_valid ===========
[14:42:16] [PASSED] NTSC
[14:42:16] [PASSED] NTSC-443
[14:42:16] [PASSED] NTSC-J
[14:42:16] [PASSED] PAL
[14:42:16] [PASSED] PAL-M
[14:42:16] [PASSED] PAL-N
[14:42:16] [PASSED] SECAM
[14:42:16] [PASSED] Mono
[14:42:16] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[14:42:16] [PASSED] drm_test_get_tv_mode_from_name_truncated
[14:42:16] ============ [PASSED] drm_get_tv_mode_from_name ============
[14:42:16] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[14:42:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[14:42:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[14:42:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[14:42:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[14:42:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[14:42:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[14:42:16] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[14:42:16] [PASSED] VIC 96
[14:42:16] [PASSED] VIC 97
[14:42:16] [PASSED] VIC 101
[14:42:16] [PASSED] VIC 102
[14:42:16] [PASSED] VIC 106
[14:42:16] [PASSED] VIC 107
[14:42:16] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[14:42:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[14:42:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[14:42:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[14:42:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[14:42:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[14:42:16] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[14:42:16] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[14:42:16] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[14:42:16] [PASSED] Automatic
[14:42:16] [PASSED] Full
[14:42:16] [PASSED] Limited 16:235
[14:42:16] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[14:42:16] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[14:42:16] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[14:42:16] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[14:42:16] === drm_test_drm_hdmi_connector_get_output_format_name ====
[14:42:16] [PASSED] RGB
[14:42:16] [PASSED] YUV 4:2:0
[14:42:16] [PASSED] YUV 4:2:2
[14:42:16] [PASSED] YUV 4:4:4
[14:42:16] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[14:42:16] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[14:42:16] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[14:42:16] ============= drm_damage_helper (21 subtests) ==============
[14:42:16] [PASSED] drm_test_damage_iter_no_damage
[14:42:16] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[14:42:16] [PASSED] drm_test_damage_iter_no_damage_src_moved
[14:42:16] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[14:42:16] [PASSED] drm_test_damage_iter_no_damage_not_visible
[14:42:16] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[14:42:16] [PASSED] drm_test_damage_iter_no_damage_no_fb
[14:42:16] [PASSED] drm_test_damage_iter_simple_damage
[14:42:16] [PASSED] drm_test_damage_iter_single_damage
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_outside_src
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_src_moved
[14:42:16] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[14:42:16] [PASSED] drm_test_damage_iter_damage
[14:42:16] [PASSED] drm_test_damage_iter_damage_one_intersect
[14:42:16] [PASSED] drm_test_damage_iter_damage_one_outside
[14:42:16] [PASSED] drm_test_damage_iter_damage_src_moved
[14:42:16] [PASSED] drm_test_damage_iter_damage_not_visible
[14:42:16] ================ [PASSED] drm_damage_helper ================
[14:42:16] ============== drm_dp_mst_helper (3 subtests) ==============
[14:42:16] ============== drm_test_dp_mst_calc_pbn_mode ==============
[14:42:16] [PASSED] Clock 154000 BPP 30 DSC disabled
[14:42:16] [PASSED] Clock 234000 BPP 30 DSC disabled
[14:42:16] [PASSED] Clock 297000 BPP 24 DSC disabled
[14:42:16] [PASSED] Clock 332880 BPP 24 DSC enabled
[14:42:16] [PASSED] Clock 324540 BPP 24 DSC enabled
[14:42:16] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[14:42:16] ============== drm_test_dp_mst_calc_pbn_div ===============
[14:42:16] [PASSED] Link rate 2000000 lane count 4
[14:42:16] [PASSED] Link rate 2000000 lane count 2
[14:42:16] [PASSED] Link rate 2000000 lane count 1
[14:42:16] [PASSED] Link rate 1350000 lane count 4
[14:42:16] [PASSED] Link rate 1350000 lane count 2
[14:42:16] [PASSED] Link rate 1350000 lane count 1
[14:42:16] [PASSED] Link rate 1000000 lane count 4
[14:42:16] [PASSED] Link rate 1000000 lane count 2
[14:42:16] [PASSED] Link rate 1000000 lane count 1
[14:42:16] [PASSED] Link rate 810000 lane count 4
[14:42:16] [PASSED] Link rate 810000 lane count 2
[14:42:16] [PASSED] Link rate 810000 lane count 1
[14:42:16] [PASSED] Link rate 540000 lane count 4
[14:42:16] [PASSED] Link rate 540000 lane count 2
[14:42:16] [PASSED] Link rate 540000 lane count 1
[14:42:16] [PASSED] Link rate 270000 lane count 4
[14:42:16] [PASSED] Link rate 270000 lane count 2
[14:42:16] [PASSED] Link rate 270000 lane count 1
[14:42:16] [PASSED] Link rate 162000 lane count 4
[14:42:16] [PASSED] Link rate 162000 lane count 2
[14:42:16] [PASSED] Link rate 162000 lane count 1
[14:42:16] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[14:42:16] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[14:42:16] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[14:42:16] [PASSED] DP_POWER_UP_PHY with port number
[14:42:16] [PASSED] DP_POWER_DOWN_PHY with port number
[14:42:16] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[14:42:16] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[14:42:16] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[14:42:16] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[14:42:16] [PASSED] DP_QUERY_PAYLOAD with port number
[14:42:16] [PASSED] DP_QUERY_PAYLOAD with VCPI
[14:42:16] [PASSED] DP_REMOTE_DPCD_READ with port number
[14:42:16] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[14:42:16] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[14:42:16] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[14:42:16] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[14:42:16] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[14:42:16] [PASSED] DP_REMOTE_I2C_READ with port number
[14:42:16] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[14:42:16] [PASSED] DP_REMOTE_I2C_READ with transactions array
[14:42:16] [PASSED] DP_REMOTE_I2C_WRITE with port number
[14:42:16] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[14:42:16] [PASSED] DP_REMOTE_I2C_WRITE with data array
[14:42:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[14:42:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[14:42:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[14:42:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[14:42:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[14:42:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[14:42:16] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[14:42:16] ================ [PASSED] drm_dp_mst_helper ================
[14:42:16] ================== drm_exec (7 subtests) ===================
[14:42:16] [PASSED] sanitycheck
[14:42:16] [PASSED] test_lock
[14:42:16] [PASSED] test_lock_unlock
[14:42:16] [PASSED] test_duplicates
[14:42:16] [PASSED] test_prepare
[14:42:16] [PASSED] test_prepare_array
[14:42:16] [PASSED] test_multiple_loops
[14:42:16] ==================== [PASSED] drm_exec =====================
[14:42:16] =========== drm_format_helper_test (17 subtests) ===========
[14:42:16] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[14:42:16] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[14:42:16] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[14:42:16] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[14:42:16] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[14:42:16] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[14:42:16] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[14:42:16] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[14:42:16] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[14:42:16] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[14:42:16] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[14:42:16] ============== drm_test_fb_xrgb8888_to_mono ===============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[14:42:16] ==================== drm_test_fb_swab =====================
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ================ [PASSED] drm_test_fb_swab =================
[14:42:16] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[14:42:16] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[14:42:16] [PASSED] single_pixel_source_buffer
[14:42:16] [PASSED] single_pixel_clip_rectangle
[14:42:16] [PASSED] well_known_colors
[14:42:16] [PASSED] destination_pitch
[14:42:16] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[14:42:16] ================= drm_test_fb_clip_offset =================
[14:42:16] [PASSED] pass through
[14:42:16] [PASSED] horizontal offset
[14:42:16] [PASSED] vertical offset
[14:42:16] [PASSED] horizontal and vertical offset
[14:42:16] [PASSED] horizontal offset (custom pitch)
[14:42:16] [PASSED] vertical offset (custom pitch)
[14:42:16] [PASSED] horizontal and vertical offset (custom pitch)
[14:42:16] ============= [PASSED] drm_test_fb_clip_offset =============
[14:42:16] =================== drm_test_fb_memcpy ====================
[14:42:16] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[14:42:16] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[14:42:16] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[14:42:16] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[14:42:16] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[14:42:16] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[14:42:16] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[14:42:16] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[14:42:16] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[14:42:16] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[14:42:16] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[14:42:16] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[14:42:16] =============== [PASSED] drm_test_fb_memcpy ================
[14:42:16] ============= [PASSED] drm_format_helper_test ==============
[14:42:16] ================= drm_format (18 subtests) =================
[14:42:16] [PASSED] drm_test_format_block_width_invalid
[14:42:16] [PASSED] drm_test_format_block_width_one_plane
[14:42:16] [PASSED] drm_test_format_block_width_two_plane
[14:42:16] [PASSED] drm_test_format_block_width_three_plane
[14:42:16] [PASSED] drm_test_format_block_width_tiled
[14:42:16] [PASSED] drm_test_format_block_height_invalid
[14:42:16] [PASSED] drm_test_format_block_height_one_plane
[14:42:16] [PASSED] drm_test_format_block_height_two_plane
[14:42:16] [PASSED] drm_test_format_block_height_three_plane
[14:42:16] [PASSED] drm_test_format_block_height_tiled
[14:42:16] [PASSED] drm_test_format_min_pitch_invalid
[14:42:16] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[14:42:16] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[14:42:16] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[14:42:16] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[14:42:16] [PASSED] drm_test_format_min_pitch_two_plane
[14:42:16] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[14:42:16] [PASSED] drm_test_format_min_pitch_tiled
[14:42:16] =================== [PASSED] drm_format ====================
[14:42:16] ============== drm_framebuffer (10 subtests) ===============
[14:42:16] ========== drm_test_framebuffer_check_src_coords ==========
[14:42:16] [PASSED] Success: source fits into fb
[14:42:16] [PASSED] Fail: overflowing fb with x-axis coordinate
[14:42:16] [PASSED] Fail: overflowing fb with y-axis coordinate
[14:42:16] [PASSED] Fail: overflowing fb with source width
[14:42:16] [PASSED] Fail: overflowing fb with source height
[14:42:16] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[14:42:16] [PASSED] drm_test_framebuffer_cleanup
[14:42:16] =============== drm_test_framebuffer_create ===============
[14:42:16] [PASSED] ABGR8888 normal sizes
[14:42:16] [PASSED] ABGR8888 max sizes
[14:42:16] [PASSED] ABGR8888 pitch greater than min required
[14:42:16] [PASSED] ABGR8888 pitch less than min required
[14:42:16] [PASSED] ABGR8888 Invalid width
[14:42:16] [PASSED] ABGR8888 Invalid buffer handle
[14:42:16] [PASSED] No pixel format
[14:42:16] [PASSED] ABGR8888 Width 0
[14:42:16] [PASSED] ABGR8888 Height 0
[14:42:16] [PASSED] ABGR8888 Out of bound height * pitch combination
[14:42:16] [PASSED] ABGR8888 Large buffer offset
[14:42:16] [PASSED] ABGR8888 Buffer offset for inexistent plane
[14:42:16] [PASSED] ABGR8888 Invalid flag
[14:42:16] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[14:42:16] [PASSED] ABGR8888 Valid buffer modifier
[14:42:16] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[14:42:16] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] NV12 Normal sizes
[14:42:16] [PASSED] NV12 Max sizes
[14:42:16] [PASSED] NV12 Invalid pitch
[14:42:16] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[14:42:16] [PASSED] NV12 different modifier per-plane
[14:42:16] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[14:42:16] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] NV12 Modifier for inexistent plane
[14:42:16] [PASSED] NV12 Handle for inexistent plane
[14:42:16] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[14:42:16] [PASSED] YVU420 Normal sizes
[14:42:16] [PASSED] YVU420 Max sizes
[14:42:16] [PASSED] YVU420 Invalid pitch
[14:42:16] [PASSED] YVU420 Different pitches
[14:42:16] [PASSED] YVU420 Different buffer offsets/pitches
[14:42:16] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[14:42:16] [PASSED] YVU420 Valid modifier
[14:42:16] [PASSED] YVU420 Different modifiers per plane
[14:42:16] [PASSED] YVU420 Modifier for inexistent plane
[14:42:16] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[14:42:16] [PASSED] X0L2 Normal sizes
[14:42:16] [PASSED] X0L2 Max sizes
[14:42:16] [PASSED] X0L2 Invalid pitch
[14:42:16] [PASSED] X0L2 Pitch greater than minimum required
[14:42:16] [PASSED] X0L2 Handle for inexistent plane
[14:42:16] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[14:42:16] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[14:42:16] [PASSED] X0L2 Valid modifier
[14:42:16] [PASSED] X0L2 Modifier for inexistent plane
[14:42:16] =========== [PASSED] drm_test_framebuffer_create ===========
[14:42:16] [PASSED] drm_test_framebuffer_free
[14:42:16] [PASSED] drm_test_framebuffer_init
[14:42:16] [PASSED] drm_test_framebuffer_init_bad_format
[14:42:16] [PASSED] drm_test_framebuffer_init_dev_mismatch
[14:42:16] [PASSED] drm_test_framebuffer_lookup
[14:42:16] [PASSED] drm_test_framebuffer_lookup_inexistent
[14:42:16] [PASSED] drm_test_framebuffer_modifiers_not_supported
[14:42:16] ================= [PASSED] drm_framebuffer =================
[14:42:16] ================ drm_gem_shmem (8 subtests) ================
[14:42:16] [PASSED] drm_gem_shmem_test_obj_create
[14:42:16] [PASSED] drm_gem_shmem_test_obj_create_private
[14:42:16] [PASSED] drm_gem_shmem_test_pin_pages
[14:42:16] [PASSED] drm_gem_shmem_test_vmap
[14:42:16] [PASSED] drm_gem_shmem_test_get_sg_table
[14:42:16] [PASSED] drm_gem_shmem_test_get_pages_sgt
[14:42:16] [PASSED] drm_gem_shmem_test_madvise
[14:42:16] [PASSED] drm_gem_shmem_test_purge
[14:42:16] ================== [PASSED] drm_gem_shmem ==================
[14:42:16] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[14:42:16] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[14:42:16] [PASSED] Automatic
[14:42:16] [PASSED] Full
[14:42:16] [PASSED] Limited 16:235
[14:42:16] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[14:42:16] [PASSED] drm_test_check_disable_connector
[14:42:16] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[14:42:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[14:42:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[14:42:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[14:42:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[14:42:16] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[14:42:16] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[14:42:16] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[14:42:16] [PASSED] drm_test_check_output_bpc_dvi
[14:42:16] [PASSED] drm_test_check_output_bpc_format_vic_1
[14:42:16] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[14:42:16] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[14:42:16] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[14:42:16] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[14:42:16] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[14:42:16] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[14:42:16] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[14:42:16] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[14:42:16] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[14:42:16] [PASSED] drm_test_check_broadcast_rgb_value
[14:42:16] [PASSED] drm_test_check_bpc_8_value
[14:42:16] [PASSED] drm_test_check_bpc_10_value
[14:42:16] [PASSED] drm_test_check_bpc_12_value
[14:42:16] [PASSED] drm_test_check_format_value
[14:42:16] [PASSED] drm_test_check_tmds_char_value
[14:42:16] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[14:42:16] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[14:42:16] [PASSED] drm_test_check_mode_valid
[14:42:16] [PASSED] drm_test_check_mode_valid_reject
[14:42:16] [PASSED] drm_test_check_mode_valid_reject_rate
[14:42:16] [PASSED] drm_test_check_mode_valid_reject_max_clock
[14:42:16] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[14:42:16] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[14:42:16] [PASSED] drm_test_check_infoframes
[14:42:16] [PASSED] drm_test_check_reject_avi_infoframe
[14:42:16] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[14:42:16] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[14:42:16] [PASSED] drm_test_check_reject_audio_infoframe
[14:42:16] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[14:42:16] ================= drm_managed (2 subtests) =================
[14:42:16] [PASSED] drm_test_managed_release_action
[14:42:16] [PASSED] drm_test_managed_run_action
[14:42:16] =================== [PASSED] drm_managed ===================
[14:42:16] =================== drm_mm (6 subtests) ====================
[14:42:16] [PASSED] drm_test_mm_init
[14:42:16] [PASSED] drm_test_mm_debug
[14:42:16] [PASSED] drm_test_mm_align32
[14:42:16] [PASSED] drm_test_mm_align64
[14:42:16] [PASSED] drm_test_mm_lowest
[14:42:16] [PASSED] drm_test_mm_highest
[14:42:16] ===================== [PASSED] drm_mm ======================
[14:42:16] ============= drm_modes_analog_tv (5 subtests) =============
[14:42:16] [PASSED] drm_test_modes_analog_tv_mono_576i
[14:42:16] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[14:42:16] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[14:42:16] [PASSED] drm_test_modes_analog_tv_pal_576i
[14:42:16] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[14:42:16] =============== [PASSED] drm_modes_analog_tv ===============
[14:42:16] ============== drm_plane_helper (2 subtests) ===============
[14:42:16] =============== drm_test_check_plane_state ================
[14:42:16] [PASSED] clipping_simple
[14:42:16] [PASSED] clipping_rotate_reflect
[14:42:16] [PASSED] positioning_simple
[14:42:16] [PASSED] upscaling
[14:42:16] [PASSED] downscaling
[14:42:16] [PASSED] rounding1
[14:42:16] [PASSED] rounding2
[14:42:16] [PASSED] rounding3
[14:42:16] [PASSED] rounding4
[14:42:16] =========== [PASSED] drm_test_check_plane_state ============
[14:42:16] =========== drm_test_check_invalid_plane_state ============
[14:42:16] [PASSED] positioning_invalid
[14:42:16] [PASSED] upscaling_invalid
[14:42:16] [PASSED] downscaling_invalid
[14:42:16] ======= [PASSED] drm_test_check_invalid_plane_state ========
[14:42:16] ================ [PASSED] drm_plane_helper =================
[14:42:16] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[14:42:16] ====== drm_test_connector_helper_tv_get_modes_check =======
[14:42:16] [PASSED] None
[14:42:16] [PASSED] PAL
[14:42:16] [PASSED] NTSC
[14:42:16] [PASSED] Both, NTSC Default
[14:42:16] [PASSED] Both, PAL Default
[14:42:16] [PASSED] Both, NTSC Default, with PAL on command-line
[14:42:16] [PASSED] Both, PAL Default, with NTSC on command-line
[14:42:16] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[14:42:16] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[14:42:16] ================== drm_rect (9 subtests) ===================
[14:42:16] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[14:42:16] [PASSED] drm_test_rect_clip_scaled_not_clipped
[14:42:16] [PASSED] drm_test_rect_clip_scaled_clipped
[14:42:16] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[14:42:16] ================= drm_test_rect_intersect =================
[14:42:16] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[14:42:16] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[14:42:16] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[14:42:16] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[14:42:16] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[14:42:16] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[14:42:16] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[14:42:16] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[14:42:16] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[14:42:16] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[14:42:16] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[14:42:16] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[14:42:16] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[14:42:16] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[14:42:16] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[14:42:16] ============= [PASSED] drm_test_rect_intersect =============
[14:42:16] ================ drm_test_rect_calc_hscale ================
[14:42:16] [PASSED] normal use
[14:42:16] [PASSED] out of max range
[14:42:16] [PASSED] out of min range
[14:42:16] [PASSED] zero dst
[14:42:16] [PASSED] negative src
[14:42:16] [PASSED] negative dst
[14:42:16] ============ [PASSED] drm_test_rect_calc_hscale ============
[14:42:16] ================ drm_test_rect_calc_vscale ================
[14:42:16] [PASSED] normal use
[14:42:16] [PASSED] out of max range
[14:42:16] [PASSED] out of min range
[14:42:16] [PASSED] zero dst
[14:42:16] [PASSED] negative src
[14:42:16] [PASSED] negative dst
[14:42:16] ============ [PASSED] drm_test_rect_calc_vscale ============
[14:42:16] ================== drm_test_rect_rotate ===================
[14:42:16] [PASSED] reflect-x
[14:42:16] [PASSED] reflect-y
[14:42:16] [PASSED] rotate-0
[14:42:16] [PASSED] rotate-90
[14:42:16] [PASSED] rotate-180
[14:42:16] [PASSED] rotate-270
[14:42:16] ============== [PASSED] drm_test_rect_rotate ===============
[14:42:16] ================ drm_test_rect_rotate_inv =================
[14:42:16] [PASSED] reflect-x
[14:42:16] [PASSED] reflect-y
[14:42:16] [PASSED] rotate-0
[14:42:16] [PASSED] rotate-90
[14:42:16] [PASSED] rotate-180
[14:42:16] [PASSED] rotate-270
[14:42:16] ============ [PASSED] drm_test_rect_rotate_inv =============
[14:42:16] ==================== [PASSED] drm_rect =====================
[14:42:16] ============ drm_sysfb_modeset_test (1 subtest) ============
[14:42:16] ============ drm_test_sysfb_build_fourcc_list =============
[14:42:16] [PASSED] no native formats
[14:42:16] [PASSED] XRGB8888 as native format
[14:42:16] [PASSED] remove duplicates
[14:42:16] [PASSED] convert alpha formats
[14:42:16] [PASSED] random formats
[14:42:16] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[14:42:16] ============= [PASSED] drm_sysfb_modeset_test ==============
[14:42:16] ================== drm_fixp (2 subtests) ===================
[14:42:16] [PASSED] drm_test_int2fixp
[14:42:16] [PASSED] drm_test_sm2fixp
[14:42:16] ==================== [PASSED] drm_fixp =====================
[14:42:16] ============================================================
[14:42:16] Testing complete. Ran 621 tests: passed: 621
[14:42:16] Elapsed time: 25.929s total, 1.809s configuring, 23.951s building, 0.135s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[14:42:16] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:42:18] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[14:42:27] Starting KUnit Kernel (1/1)...
[14:42:27] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:42:27] ================= ttm_device (5 subtests) ==================
[14:42:27] [PASSED] ttm_device_init_basic
[14:42:27] [PASSED] ttm_device_init_multiple
[14:42:27] [PASSED] ttm_device_fini_basic
[14:42:27] [PASSED] ttm_device_init_no_vma_man
[14:42:27] ================== ttm_device_init_pools ==================
[14:42:27] [PASSED] No DMA allocations, no DMA32 required
[14:42:27] [PASSED] DMA allocations, DMA32 required
[14:42:27] [PASSED] No DMA allocations, DMA32 required
[14:42:27] [PASSED] DMA allocations, no DMA32 required
[14:42:27] ============== [PASSED] ttm_device_init_pools ==============
[14:42:27] =================== [PASSED] ttm_device ====================
[14:42:27] ================== ttm_pool (8 subtests) ===================
[14:42:27] ================== ttm_pool_alloc_basic ===================
[14:42:27] [PASSED] One page
[14:42:27] [PASSED] More than one page
[14:42:27] [PASSED] Above the allocation limit
[14:42:27] [PASSED] One page, with coherent DMA mappings enabled
[14:42:27] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:42:27] ============== [PASSED] ttm_pool_alloc_basic ===============
[14:42:27] ============== ttm_pool_alloc_basic_dma_addr ==============
[14:42:27] [PASSED] One page
[14:42:27] [PASSED] More than one page
[14:42:27] [PASSED] Above the allocation limit
[14:42:27] [PASSED] One page, with coherent DMA mappings enabled
[14:42:27] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:42:27] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[14:42:27] [PASSED] ttm_pool_alloc_order_caching_match
[14:42:27] [PASSED] ttm_pool_alloc_caching_mismatch
[14:42:27] [PASSED] ttm_pool_alloc_order_mismatch
[14:42:27] [PASSED] ttm_pool_free_dma_alloc
[14:42:27] [PASSED] ttm_pool_free_no_dma_alloc
[14:42:27] [PASSED] ttm_pool_fini_basic
[14:42:27] ==================== [PASSED] ttm_pool =====================
[14:42:27] ================ ttm_resource (8 subtests) =================
[14:42:27] ================= ttm_resource_init_basic =================
[14:42:27] [PASSED] Init resource in TTM_PL_SYSTEM
[14:42:27] [PASSED] Init resource in TTM_PL_VRAM
[14:42:27] [PASSED] Init resource in a private placement
[14:42:27] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[14:42:27] ============= [PASSED] ttm_resource_init_basic =============
[14:42:27] [PASSED] ttm_resource_init_pinned
[14:42:27] [PASSED] ttm_resource_fini_basic
[14:42:27] [PASSED] ttm_resource_manager_init_basic
[14:42:27] [PASSED] ttm_resource_manager_usage_basic
[14:42:27] [PASSED] ttm_resource_manager_set_used_basic
[14:42:27] [PASSED] ttm_sys_man_alloc_basic
[14:42:27] [PASSED] ttm_sys_man_free_basic
[14:42:27] ================== [PASSED] ttm_resource ===================
[14:42:27] =================== ttm_tt (15 subtests) ===================
[14:42:27] ==================== ttm_tt_init_basic ====================
[14:42:27] [PASSED] Page-aligned size
[14:42:27] [PASSED] Extra pages requested
[14:42:27] ================ [PASSED] ttm_tt_init_basic ================
[14:42:27] [PASSED] ttm_tt_init_misaligned
[14:42:27] [PASSED] ttm_tt_fini_basic
[14:42:27] [PASSED] ttm_tt_fini_sg
[14:42:27] [PASSED] ttm_tt_fini_shmem
[14:42:27] [PASSED] ttm_tt_create_basic
[14:42:27] [PASSED] ttm_tt_create_invalid_bo_type
[14:42:27] [PASSED] ttm_tt_create_ttm_exists
[14:42:27] [PASSED] ttm_tt_create_failed
[14:42:27] [PASSED] ttm_tt_destroy_basic
[14:42:27] [PASSED] ttm_tt_populate_null_ttm
[14:42:27] [PASSED] ttm_tt_populate_populated_ttm
[14:42:27] [PASSED] ttm_tt_unpopulate_basic
[14:42:27] [PASSED] ttm_tt_unpopulate_empty_ttm
[14:42:27] [PASSED] ttm_tt_swapin_basic
[14:42:27] ===================== [PASSED] ttm_tt ======================
[14:42:27] =================== ttm_bo (14 subtests) ===================
[14:42:27] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[14:42:27] [PASSED] Cannot be interrupted and sleeps
[14:42:27] [PASSED] Cannot be interrupted, locks straight away
[14:42:27] [PASSED] Can be interrupted, sleeps
[14:42:27] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[14:42:27] [PASSED] ttm_bo_reserve_locked_no_sleep
[14:42:27] [PASSED] ttm_bo_reserve_no_wait_ticket
[14:42:27] [PASSED] ttm_bo_reserve_double_resv
[14:42:27] [PASSED] ttm_bo_reserve_interrupted
[14:42:27] [PASSED] ttm_bo_reserve_deadlock
[14:42:27] [PASSED] ttm_bo_unreserve_basic
[14:42:27] [PASSED] ttm_bo_unreserve_pinned
[14:42:27] [PASSED] ttm_bo_unreserve_bulk
[14:42:27] [PASSED] ttm_bo_fini_basic
[14:42:27] [PASSED] ttm_bo_fini_shared_resv
[14:42:27] [PASSED] ttm_bo_pin_basic
[14:42:27] [PASSED] ttm_bo_pin_unpin_resource
[14:42:27] [PASSED] ttm_bo_multiple_pin_one_unpin
[14:42:27] ===================== [PASSED] ttm_bo ======================
[14:42:27] ============== ttm_bo_validate (22 subtests) ===============
[14:42:27] ============== ttm_bo_init_reserved_sys_man ===============
[14:42:27] [PASSED] Buffer object for userspace
[14:42:27] [PASSED] Kernel buffer object
[14:42:27] [PASSED] Shared buffer object
[14:42:27] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[14:42:27] ============== ttm_bo_init_reserved_mock_man ==============
[14:42:27] [PASSED] Buffer object for userspace
[14:42:27] [PASSED] Kernel buffer object
[14:42:27] [PASSED] Shared buffer object
[14:42:27] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[14:42:27] [PASSED] ttm_bo_init_reserved_resv
[14:42:27] ================== ttm_bo_validate_basic ==================
[14:42:27] [PASSED] Buffer object for userspace
[14:42:27] [PASSED] Kernel buffer object
[14:42:27] [PASSED] Shared buffer object
[14:42:27] ============== [PASSED] ttm_bo_validate_basic ==============
[14:42:27] [PASSED] ttm_bo_validate_invalid_placement
[14:42:27] ============= ttm_bo_validate_same_placement ==============
[14:42:27] [PASSED] System manager
[14:42:27] [PASSED] VRAM manager
[14:42:27] ========= [PASSED] ttm_bo_validate_same_placement ==========
[14:42:27] [PASSED] ttm_bo_validate_failed_alloc
[14:42:27] [PASSED] ttm_bo_validate_pinned
[14:42:27] [PASSED] ttm_bo_validate_busy_placement
[14:42:27] ================ ttm_bo_validate_multihop =================
[14:42:27] [PASSED] Buffer object for userspace
[14:42:27] [PASSED] Kernel buffer object
[14:42:27] [PASSED] Shared buffer object
[14:42:27] ============ [PASSED] ttm_bo_validate_multihop =============
[14:42:27] ========== ttm_bo_validate_no_placement_signaled ==========
[14:42:27] [PASSED] Buffer object in system domain, no page vector
[14:42:27] [PASSED] Buffer object in system domain with an existing page vector
[14:42:27] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[14:42:27] ======== ttm_bo_validate_no_placement_not_signaled ========
[14:42:27] [PASSED] Buffer object for userspace
[14:42:27] [PASSED] Kernel buffer object
[14:42:27] [PASSED] Shared buffer object
[14:42:27] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[14:42:27] [PASSED] ttm_bo_validate_move_fence_signaled
[14:42:27] ========= ttm_bo_validate_move_fence_not_signaled =========
[14:42:27] [PASSED] Waits for GPU
[14:42:27] [PASSED] Tries to lock straight away
[14:42:27] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[14:42:27] [PASSED] ttm_bo_validate_swapout
[14:42:27] [PASSED] ttm_bo_validate_happy_evict
[14:42:27] [PASSED] ttm_bo_validate_all_pinned_evict
[14:42:27] [PASSED] ttm_bo_validate_allowed_only_evict
[14:42:27] [PASSED] ttm_bo_validate_deleted_evict
[14:42:27] [PASSED] ttm_bo_validate_busy_domain_evict
[14:42:27] [PASSED] ttm_bo_validate_evict_gutting
[14:42:27] [PASSED] ttm_bo_validate_recrusive_evict
[14:42:27] ================= [PASSED] ttm_bo_validate =================
[14:42:27] ============================================================
[14:42:28] Testing complete. Ran 102 tests: passed: 102
[14:42:28] Elapsed time: 11.469s total, 1.745s configuring, 9.509s building, 0.186s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 21+ messages in thread* ✓ Xe.CI.BAT: success for drm/i915: Introduce 'fb_pin' parent interface (rev3)
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (17 preceding siblings ...)
2026-05-08 14:42 ` ✓ CI.KUnit: success " Patchwork
@ 2026-05-08 15:44 ` Patchwork
2026-05-09 2:43 ` ✓ Xe.CI.FULL: " Patchwork
19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-05-08 15:44 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 966 bytes --]
== Series Details ==
Series: drm/i915: Introduce 'fb_pin' parent interface (rev3)
URL : https://patchwork.freedesktop.org/series/165375/
State : success
== Summary ==
CI Bug Log - changes from xe-5026-9587f021f636503dfb438c670fb6eec71093224d_BAT -> xe-pw-165375v3_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 13)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-5026-9587f021f636503dfb438c670fb6eec71093224d -> xe-pw-165375v3
IGT_8900: 529869b7d0fba64ed67819111079ff269bc8159a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5026-9587f021f636503dfb438c670fb6eec71093224d: 9587f021f636503dfb438c670fb6eec71093224d
xe-pw-165375v3: 165375v3
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/index.html
[-- Attachment #2: Type: text/html, Size: 1524 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread* ✓ Xe.CI.FULL: success for drm/i915: Introduce 'fb_pin' parent interface (rev3)
2026-05-08 14:34 [PATCH v2 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
` (18 preceding siblings ...)
2026-05-08 15:44 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-05-09 2:43 ` Patchwork
19 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-05-09 2:43 UTC (permalink / raw)
To: Ville Syrjälä; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 32173 bytes --]
== Series Details ==
Series: drm/i915: Introduce 'fb_pin' parent interface (rev3)
URL : https://patchwork.freedesktop.org/series/165375/
State : success
== Summary ==
CI Bug Log - changes from xe-5026-9587f021f636503dfb438c670fb6eec71093224d_FULL -> xe-pw-165375v3_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-165375v3_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@x-tiled-16bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +1 other test skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2887]) +3 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_chamelium_edid@hdmi-edid-change-during-hibernate:
- shard-bmg: NOTRUN -> [SKIP][4] ([Intel XE#2252]) +1 other test skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_chamelium_edid@hdmi-edid-change-during-hibernate.html
* igt@kms_cursor_crc@cursor-sliding-32x32:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2320])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_cursor_crc@cursor-sliding-32x32.html
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2291]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
- shard-bmg: [PASS][7] -> [SKIP][8] ([Intel XE#2291]) +1 other test skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html
* igt@kms_display_modes@extended-mode-basic:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#4302])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-bmg: [PASS][10] -> [SKIP][11] ([Intel XE#1340])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [PASS][12] -> [SKIP][13] ([Intel XE#4354])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_dp_link_training@non-uhbr-sst.html
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_feature_discovery@psr1:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2374] / [Intel XE#6127])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_feature_discovery@psr1.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
- shard-bmg: [PASS][15] -> [SKIP][16] ([Intel XE#2316]) +2 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
* igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#2316])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1:
- shard-lnl: [PASS][18] -> [FAIL][19] ([Intel XE#301] / [Intel XE#3149]) +1 other test fail
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-edp1.html
* igt@kms_flip@modeset-vs-vblank-race-interruptible:
- shard-bmg: [PASS][20] -> [FAIL][21] ([Intel XE#3098]) +1 other test fail
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
- shard-lnl: [PASS][22] -> [FAIL][23] ([Intel XE#3098]) +1 other test fail
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-lnl-8/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-lnl-3/igt@kms_flip@modeset-vs-vblank-race-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#7178] / [Intel XE#7351])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2311]) +2 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-pri-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#4141])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbchdr-tiling-linear:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#7865]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbchdr-tiling-linear.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2313])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2312] / [Intel XE#7905]) +4 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-render:
- shard-bmg: [PASS][30] -> [SKIP][31] ([Intel XE#7865]) +4 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-render.html
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@hdr-1p-primscrn-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-onoff:
- shard-bmg: [PASS][32] -> [SKIP][33] ([Intel XE#7905]) +9 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-6/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-onoff.html
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-move:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#7905]) +8 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-spr-indfb-move.html
* igt@kms_hdr@static-toggle@pipe-a-hdmi-a-3-xrgb16161616f:
- shard-bmg: [PASS][35] -> [SKIP][36] ([Intel XE#7915]) +1 other test skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-5/igt@kms_hdr@static-toggle@pipe-a-hdmi-a-3-xrgb16161616f.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-7/igt@kms_hdr@static-toggle@pipe-a-hdmi-a-3-xrgb16161616f.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-bmg: [PASS][37] -> [SKIP][38] ([Intel XE#7086])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-bmg: [PASS][39] -> [SKIP][40] ([Intel XE#4596])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-x.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-bmg: [PASS][41] -> [SKIP][42] ([Intel XE#2571] / [Intel XE#7343])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_psr2_sf@pr-plane-move-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#1489]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_psr2_sf@pr-plane-move-sf-dmg-area.html
* igt@kms_psr@fbc-psr2-primary-blt:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_psr@fbc-psr2-primary-blt.html
* igt@kms_psr@psr2-primary-render:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#2234])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_psr@psr2-primary-render.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-90:
- shard-bmg: NOTRUN -> [SKIP][46] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-90.html
* igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#6503])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html
* igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1:
- shard-lnl: [PASS][48] -> [FAIL][49] ([Intel XE#2142]) +1 other test fail
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-lnl-1/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-lnl-5/igt@kms_vrr@seamless-rr-switch-virtual@pipe-a-edp-1.html
* igt@xe_eudebug@basic-vm-bind-metadata-discovery:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#7636]) +2 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_eudebug@basic-vm-bind-metadata-discovery.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: NOTRUN -> [INCOMPLETE][51] ([Intel XE#6321])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-mmap:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-mmap.html
* igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#7136])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm.html
* igt@xe_exec_multi_queue@max-queues-basic:
- shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#6874]) +3 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_exec_multi_queue@max-queues-basic.html
* igt@xe_exec_threads@threads-multi-queue-cm-basic:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#7138])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_exec_threads@threads-multi-queue-cm-basic.html
* igt@xe_peer2peer@write:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#2427] / [Intel XE#6953] / [Intel XE#7326] / [Intel XE#7353])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_peer2peer@write.html
* igt@xe_pm@s4-d3cold-basic-exec:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#2284] / [Intel XE#7370])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_pm@s4-d3cold-basic-exec.html
* igt@xe_pxp@pxp-stale-queue-post-suspend:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#4733] / [Intel XE#7417])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_pxp@pxp-stale-queue-post-suspend.html
* igt@xe_sriov_flr@flr-vf1-clear:
- shard-bmg: NOTRUN -> [FAIL][59] ([Intel XE#6569])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@xe_sriov_flr@flr-vf1-clear.html
* igt@xe_survivability@runtime-survivability:
- shard-bmg: [PASS][60] -> [DMESG-WARN][61] ([Intel XE#6627] / [Intel XE#7419])
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-8/igt@xe_survivability@runtime-survivability.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-8/igt@xe_survivability@runtime-survivability.html
#### Possible fixes ####
* igt@kms_async_flips@alternate-sync-async-flip:
- shard-bmg: [FAIL][62] ([Intel XE#3718] / [Intel XE#6078]) -> [PASS][63]
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-2/igt@kms_async_flips@alternate-sync-async-flip.html
* igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-2:
- shard-bmg: [FAIL][64] ([Intel XE#6078]) -> [PASS][65]
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-4/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-2.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-2/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-2.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
- shard-bmg: [FAIL][66] -> [PASS][67] +1 other test pass
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-1/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-10/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
* igt@kms_cursor_legacy@flip-vs-cursor-varying-size:
- shard-bmg: [DMESG-WARN][68] ([Intel XE#5354]) -> [PASS][69]
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-4/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-6/igt@kms_cursor_legacy@flip-vs-cursor-varying-size.html
* igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][70] ([Intel XE#7905]) -> [PASS][71]
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-onoff.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbchdr-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][72] ([Intel XE#1503]) -> [PASS][73]
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_hdr@invalid-hdr.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_hdr@invalid-hdr.html
* igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010:
- shard-bmg: [SKIP][74] ([Intel XE#7922]) -> [PASS][75] +1 other test pass
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_hdr@invalid-hdr@pipe-a-hdmi-a-3-xrgb2101010.html
* igt@kms_hdr@static-toggle-dpms:
- shard-bmg: [SKIP][76] ([Intel XE#1503] / [Intel XE#7915]) -> [PASS][77]
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_hdr@static-toggle-dpms.html
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_hdr@static-toggle-dpms@pipe-a-hdmi-a-3-xrgb2101010:
- shard-bmg: [SKIP][78] ([Intel XE#7915]) -> [PASS][79] +3 other tests pass
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_hdr@static-toggle-dpms@pipe-a-hdmi-a-3-xrgb2101010.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_hdr@static-toggle-dpms@pipe-a-hdmi-a-3-xrgb2101010.html
* igt@kms_pm_rpm@system-suspend-idle:
- shard-bmg: [DMESG-WARN][80] ([Intel XE#7725]) -> [PASS][81]
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_pm_rpm@system-suspend-idle.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_pm_rpm@system-suspend-idle.html
#### Warnings ####
* igt@kms_content_protection@atomic-hdcp14:
- shard-bmg: [FAIL][82] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) -> [SKIP][83] ([Intel XE#7642])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_content_protection@atomic-hdcp14.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_content_protection@atomic-hdcp14.html
* igt@kms_frontbuffer_tracking@drrshdr-2p-scndscrn-spr-indfb-draw-blt:
- shard-bmg: [SKIP][84] ([Intel XE#2311]) -> [SKIP][85] ([Intel XE#7905]) +8 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_frontbuffer_tracking@drrshdr-2p-scndscrn-spr-indfb-draw-blt.html
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@drrshdr-2p-scndscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][86] ([Intel XE#2312] / [Intel XE#7905]) -> [SKIP][87] ([Intel XE#4141])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][88] ([Intel XE#4141]) -> [SKIP][89] ([Intel XE#2312] / [Intel XE#7905]) +6 other tests skip
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][90] ([Intel XE#2311]) -> [SKIP][91] ([Intel XE#2312] / [Intel XE#7905]) +9 other tests skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-indfb-pgflip-blt:
- shard-bmg: [SKIP][92] ([Intel XE#7905]) -> [SKIP][93] ([Intel XE#2311])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-indfb-pgflip-blt.html
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render:
- shard-bmg: [SKIP][94] ([Intel XE#2313]) -> [SKIP][95] ([Intel XE#2312] / [Intel XE#7905]) +8 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][96] ([Intel XE#2312] / [Intel XE#7905]) -> [SKIP][97] ([Intel XE#2313])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen.html
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-pri-indfb-multidraw:
- shard-bmg: [SKIP][98] ([Intel XE#7905]) -> [SKIP][99] ([Intel XE#2313])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-pri-indfb-multidraw.html
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsrhdr-2p-pri-indfb-multidraw.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][100] ([Intel XE#2313]) -> [SKIP][101] ([Intel XE#7905]) +6 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-6/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-3/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][102] ([Intel XE#3544] / [Intel XE#7916]) -> [SKIP][103] ([Intel XE#3544] / [Intel XE#7915] / [Intel XE#7916])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-1/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-3-xrgb16161616f:
- shard-bmg: [SKIP][104] ([Intel XE#7916]) -> [SKIP][105] ([Intel XE#7915]) +1 other test skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-2/igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-3-xrgb16161616f.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-1/igt@kms_hdr@brightness-with-hdr@pipe-a-hdmi-a-3-xrgb16161616f.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][106] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][107] ([Intel XE#1729] / [Intel XE#7424])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5026-9587f021f636503dfb438c670fb6eec71093224d/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#2142]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2142
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2427]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2427
[Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3098
[Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6127
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
[Intel XE#6627]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6627
[Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
[Intel XE#6953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6953
[Intel XE#7086]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7086
[Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
[Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7326
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7353]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7353
[Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7419
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7725
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7915
[Intel XE#7916]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7916
[Intel XE#7922]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7922
Build changes
-------------
* Linux: xe-5026-9587f021f636503dfb438c670fb6eec71093224d -> xe-pw-165375v3
IGT_8900: 529869b7d0fba64ed67819111079ff269bc8159a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5026-9587f021f636503dfb438c670fb6eec71093224d: 9587f021f636503dfb438c670fb6eec71093224d
xe-pw-165375v3: 165375v3
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-165375v3/index.html
[-- Attachment #2: Type: text/html, Size: 36956 bytes --]
^ permalink raw reply [flat|nested] 21+ messages in thread