* [PATCH v10 01/10] drm/panic: Add a private field to struct drm_scanout_buffer
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 02/10] drm/i915/fbdev: Add intel_fbdev_get_map() Jocelyn Falempe
` (13 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
This allows driver to set some private data in get_scanout_buffer(),
and re-use them in set_pixel() callback.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v10:
* Added in v10, to avoid static variables
include/drm/drm_panic.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/drm/drm_panic.h b/include/drm/drm_panic.h
index 310c88c4d336..ac0e46b73436 100644
--- a/include/drm/drm_panic.h
+++ b/include/drm/drm_panic.h
@@ -72,6 +72,12 @@ struct drm_scanout_buffer {
void (*set_pixel)(struct drm_scanout_buffer *sb, unsigned int x,
unsigned int y, u32 color);
+ /**
+ * @private: private pointer that you can use in the callbacks
+ * set_pixel()
+ */
+ void *private;
+
};
#ifdef CONFIG_DRM_PANIC
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 02/10] drm/i915/fbdev: Add intel_fbdev_get_map()
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 01/10] drm/panic: Add a private field to struct drm_scanout_buffer Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes Jocelyn Falempe
` (12 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
The vaddr of the fbdev framebuffer is private to the struct
intel_fbdev, so this function is needed to access it for drm_panic.
Also the struct i915_vma is different between i915 and xe, so it
requires a few functions to access fbdev->vma->iomap.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v2:
* Add intel_fb_get_vaddr() and i915_vma_get_iomap() to build with Xe driver.
v4:
* rename to get_map(), and return the struct iosys_map mapping.
* implement the Xe variant.
drivers/gpu/drm/i915/display/intel_fb_pin.c | 5 +++++
drivers/gpu/drm/i915/display/intel_fb_pin.h | 2 ++
drivers/gpu/drm/i915/display/intel_fbdev.c | 5 +++++
drivers/gpu/drm/i915/display/intel_fbdev.h | 6 +++++-
drivers/gpu/drm/i915/i915_vma.h | 5 +++++
drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 +++++
6 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.c b/drivers/gpu/drm/i915/display/intel_fb_pin.c
index 98a61a7b0b93..b792e9b062d8 100644
--- a/drivers/gpu/drm/i915/display/intel_fb_pin.c
+++ b/drivers/gpu/drm/i915/display/intel_fb_pin.c
@@ -334,3 +334,8 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state)
intel_dpt_unpin_from_ggtt(fb->dpt_vm);
}
}
+
+void intel_fb_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/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h
index 01770dbba2e0..81ab79da1af7 100644
--- a/drivers/gpu/drm/i915/display/intel_fb_pin.h
+++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h
@@ -12,6 +12,7 @@ struct drm_framebuffer;
struct i915_vma;
struct intel_plane_state;
struct i915_gtt_view;
+struct iosys_map;
struct i915_vma *
intel_fb_pin_to_ggtt(const struct drm_framebuffer *fb,
@@ -27,5 +28,6 @@ void intel_fb_unpin_vma(struct i915_vma *vma, unsigned long flags);
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 2dc4029d71ed..7c4709d58aa3 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -512,3 +512,8 @@ 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)
+{
+ intel_fb_get_map(fbdev->vma, map);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.h b/drivers/gpu/drm/i915/display/intel_fbdev.h
index a15e3e222a0c..150cc5f45bb3 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.h
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.h
@@ -13,6 +13,7 @@ struct drm_fb_helper_surface_size;
struct intel_display;
struct intel_fbdev;
struct intel_framebuffer;
+struct iosys_map;
#ifdef CONFIG_DRM_FBDEV_EMULATION
int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper,
@@ -22,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);
#else
#define INTEL_FBDEV_DRIVER_OPS \
.fbdev_probe = NULL
@@ -39,6 +40,9 @@ 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)
+{
+}
#endif
#endif /* __INTEL_FBDEV_H__ */
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index 6a6be8048aa8..4ae610927fa7 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -353,6 +353,11 @@ static inline bool i915_node_color_differs(const struct drm_mm_node *node,
return drm_mm_node_allocated(node) && node->color != color;
}
+static inline void __iomem *i915_vma_get_iomap(struct i915_vma *vma)
+{
+ return READ_ONCE(vma->iomap);
+}
+
/**
* i915_vma_pin_iomap - calls ioremap_wc to map the GGTT VMA via the aperture
* @vma: VMA to iomap
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index 461ecdfdb742..ac9a5ba363b2 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -465,3 +465,8 @@ u64 intel_dpt_offset(struct i915_vma *dpt_vma)
{
return 0;
}
+
+void intel_fb_get_map(struct i915_vma *vma, struct iosys_map *map)
+{
+ *map = vma->bo->vmap;
+}
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 01/10] drm/panic: Add a private field to struct drm_scanout_buffer Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 02/10] drm/i915/fbdev: Add intel_fbdev_get_map() Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-07-19 18:23 ` Ville Syrjälä
2025-06-18 9:31 ` [PATCH v10 04/10] drm/i915/display: Add a disable_tiling() for skl planes Jocelyn Falempe
` (11 subsequent siblings)
14 siblings, 1 reply; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
drm_panic draws in linear framebuffer, so it's easier to re-use the
current framebuffer, and disable tiling in the panic handler, to show
the panic screen.
This assumes that the alignment restriction is always smaller in
linear than in tiled.
It also assumes that the linear framebuffer size is always smaller
than the tiled.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v7:
* Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
drivers/gpu/drm/i915/display/i9xx_plane.c | 23 +++++++++++++++++++
.../drm/i915/display/intel_display_types.h | 2 ++
2 files changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
index 8f15333a4b07..0807fae12450 100644
--- a/drivers/gpu/drm/i915/display/i9xx_plane.c
+++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
@@ -905,6 +905,27 @@ static const struct drm_plane_funcs i8xx_plane_funcs = {
.format_mod_supported_async = intel_plane_format_mod_supported_async,
};
+static void i9xx_disable_tiling(struct intel_plane *plane)
+{
+ struct intel_display *display = to_intel_display(plane);
+ enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
+ u32 dspcntr;
+ u32 reg;
+
+ dspcntr = intel_de_read_fw(display, DSPCNTR(display, i9xx_plane));
+ dspcntr &= ~DISP_TILED;
+ intel_de_write_fw(display, DSPCNTR(display, i9xx_plane), dspcntr);
+
+ if (DISPLAY_VER(display) >= 4) {
+ reg = intel_de_read_fw(display, DSPSURF(display, i9xx_plane));
+ intel_de_write_fw(display, DSPSURF(display, i9xx_plane), reg);
+
+ } else {
+ reg = intel_de_read_fw(display, DSPADDR(display, i9xx_plane));
+ intel_de_write_fw(display, DSPADDR(display, i9xx_plane), reg);
+ }
+}
+
struct intel_plane *
intel_primary_plane_create(struct intel_display *display, enum pipe pipe)
{
@@ -1047,6 +1068,8 @@ intel_primary_plane_create(struct intel_display *display, enum pipe pipe)
}
}
+ plane->disable_tiling = i9xx_disable_tiling;
+
modifiers = intel_fb_plane_get_modifiers(display, INTEL_PLANE_CAP_TILING_X);
if (DISPLAY_VER(display) >= 5 || display->platform.g4x)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index ed4d743fc7c5..3654d88e9c5f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1517,6 +1517,8 @@ struct intel_plane {
bool async_flip);
void (*enable_flip_done)(struct intel_plane *plane);
void (*disable_flip_done)(struct intel_plane *plane);
+ /* For drm_panic */
+ void (*disable_tiling)(struct intel_plane *plane);
};
#define to_intel_atomic_state(x) container_of(x, struct intel_atomic_state, base)
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* Re: [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes
2025-06-18 9:31 ` [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes Jocelyn Falempe
@ 2025-07-19 18:23 ` Ville Syrjälä
2025-07-19 18:30 ` Ville Syrjälä
2025-07-28 11:19 ` Jocelyn Falempe
0 siblings, 2 replies; 24+ messages in thread
From: Ville Syrjälä @ 2025-07-19 18:23 UTC (permalink / raw)
To: Jocelyn Falempe
Cc: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, David Airlie, Simona Vetter, Christian Koenig,
Huang Rui, Matthew Auld, Matthew Brost, Maxime Ripard,
Thomas Zimmermann, intel-gfx, intel-xe, dri-devel, linux-kernel
On Wed, Jun 18, 2025 at 11:31:21AM +0200, Jocelyn Falempe wrote:
> drm_panic draws in linear framebuffer, so it's easier to re-use the
> current framebuffer, and disable tiling in the panic handler, to show
> the panic screen.
> This assumes that the alignment restriction is always smaller in
> linear than in tiled.
> It also assumes that the linear framebuffer size is always smaller
> than the tiled.
>
> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
> ---
>
> v7:
> * Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
>
> drivers/gpu/drm/i915/display/i9xx_plane.c | 23 +++++++++++++++++++
> .../drm/i915/display/intel_display_types.h | 2 ++
> 2 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
> index 8f15333a4b07..0807fae12450 100644
> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> @@ -905,6 +905,27 @@ static const struct drm_plane_funcs i8xx_plane_funcs = {
> .format_mod_supported_async = intel_plane_format_mod_supported_async,
> };
>
> +static void i9xx_disable_tiling(struct intel_plane *plane)
> +{
> + struct intel_display *display = to_intel_display(plane);
> + enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
> + u32 dspcntr;
> + u32 reg;
> +
> + dspcntr = intel_de_read_fw(display, DSPCNTR(display, i9xx_plane));
> + dspcntr &= ~DISP_TILED;
> + intel_de_write_fw(display, DSPCNTR(display, i9xx_plane), dspcntr);
> +
> + if (DISPLAY_VER(display) >= 4) {
> + reg = intel_de_read_fw(display, DSPSURF(display, i9xx_plane));
> + intel_de_write_fw(display, DSPSURF(display, i9xx_plane), reg);
> +
> + } else {
> + reg = intel_de_read_fw(display, DSPADDR(display, i9xx_plane));
> + intel_de_write_fw(display, DSPADDR(display, i9xx_plane), reg);
> + }
> +}
I thought I already shot this down before, but apparently this
got merged now :(
Just to reiterate why we don't want these 'disable tiling' hacks:
- different tiling formats have different stride/alignment/watermark
requirements so one can't safely change from one tiling to another
- this completely fails to account for the TILEOFF vs. LINOFF stuff
- etc.
So IMO these hacks must be removed and instead the code must learn how
to propetly write the tiled data. igt has all the code for that btw
(twice over IIRC) so shouldn't be that hard.
I suppose the only hack we need to keep is to disable compression,
mainly because (IIRC) on flat CCS systems the CPU doesn't have access
to the AUX data to clear it manually.
I also wonder if there are actual igts for this? I think what is needed
is a test that sets random things (different panning, rotation, pixel
foramts, etc.) and triggers the dumper. Not quite sure how the test
could validate that the output is correct though. CRCs might be a bit
tricky since you need an identical reference image.
/me off to summer vacation. Good luck
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes
2025-07-19 18:23 ` Ville Syrjälä
@ 2025-07-19 18:30 ` Ville Syrjälä
2025-07-28 11:19 ` Jocelyn Falempe
1 sibling, 0 replies; 24+ messages in thread
From: Ville Syrjälä @ 2025-07-19 18:30 UTC (permalink / raw)
To: Jocelyn Falempe
Cc: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, David Airlie, Simona Vetter, Christian Koenig,
Huang Rui, Matthew Auld, Matthew Brost, Maxime Ripard,
Thomas Zimmermann, intel-gfx, intel-xe, dri-devel, linux-kernel
On Sat, Jul 19, 2025 at 09:23:04PM +0300, Ville Syrjälä wrote:
> On Wed, Jun 18, 2025 at 11:31:21AM +0200, Jocelyn Falempe wrote:
> > drm_panic draws in linear framebuffer, so it's easier to re-use the
> > current framebuffer, and disable tiling in the panic handler, to show
> > the panic screen.
> > This assumes that the alignment restriction is always smaller in
> > linear than in tiled.
> > It also assumes that the linear framebuffer size is always smaller
> > than the tiled.
> >
> > Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
> > ---
> >
> > v7:
> > * Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
> >
> > drivers/gpu/drm/i915/display/i9xx_plane.c | 23 +++++++++++++++++++
> > .../drm/i915/display/intel_display_types.h | 2 ++
> > 2 files changed, 25 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
> > index 8f15333a4b07..0807fae12450 100644
> > --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> > +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> > @@ -905,6 +905,27 @@ static const struct drm_plane_funcs i8xx_plane_funcs = {
> > .format_mod_supported_async = intel_plane_format_mod_supported_async,
> > };
> >
> > +static void i9xx_disable_tiling(struct intel_plane *plane)
> > +{
> > + struct intel_display *display = to_intel_display(plane);
> > + enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
> > + u32 dspcntr;
> > + u32 reg;
> > +
> > + dspcntr = intel_de_read_fw(display, DSPCNTR(display, i9xx_plane));
> > + dspcntr &= ~DISP_TILED;
> > + intel_de_write_fw(display, DSPCNTR(display, i9xx_plane), dspcntr);
> > +
> > + if (DISPLAY_VER(display) >= 4) {
> > + reg = intel_de_read_fw(display, DSPSURF(display, i9xx_plane));
> > + intel_de_write_fw(display, DSPSURF(display, i9xx_plane), reg);
> > +
> > + } else {
> > + reg = intel_de_read_fw(display, DSPADDR(display, i9xx_plane));
> > + intel_de_write_fw(display, DSPADDR(display, i9xx_plane), reg);
> > + }
> > +}
>
> I thought I already shot this down before, but apparently this
> got merged now :(
>
> Just to reiterate why we don't want these 'disable tiling' hacks:
> - different tiling formats have different stride/alignment/watermark
> requirements so one can't safely change from one tiling to another
> - this completely fails to account for the TILEOFF vs. LINOFF stuff
Oh yeah, and rotation support of course is one really big difference
between different tiling formats.
> - etc.
>
> So IMO these hacks must be removed and instead the code must learn how
> to propetly write the tiled data. igt has all the code for that btw
> (twice over IIRC) so shouldn't be that hard.
>
> I suppose the only hack we need to keep is to disable compression,
> mainly because (IIRC) on flat CCS systems the CPU doesn't have access
> to the AUX data to clear it manually.
>
> I also wonder if there are actual igts for this? I think what is needed
> is a test that sets random things (different panning, rotation, pixel
> foramts, etc.) and triggers the dumper. Not quite sure how the test
> could validate that the output is correct though. CRCs might be a bit
> tricky since you need an identical reference image.
>
> /me off to summer vacation. Good luck
>
> --
> Ville Syrjälä
> Intel
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes
2025-07-19 18:23 ` Ville Syrjälä
2025-07-19 18:30 ` Ville Syrjälä
@ 2025-07-28 11:19 ` Jocelyn Falempe
1 sibling, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-07-28 11:19 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, David Airlie, Simona Vetter, Christian Koenig,
Huang Rui, Matthew Auld, Matthew Brost, Maxime Ripard,
Thomas Zimmermann, intel-gfx, intel-xe, dri-devel, linux-kernel
On 19/07/2025 20:23, Ville Syrjälä wrote:
> On Wed, Jun 18, 2025 at 11:31:21AM +0200, Jocelyn Falempe wrote:
>> drm_panic draws in linear framebuffer, so it's easier to re-use the
>> current framebuffer, and disable tiling in the panic handler, to show
>> the panic screen.
>> This assumes that the alignment restriction is always smaller in
>> linear than in tiled.
>> It also assumes that the linear framebuffer size is always smaller
>> than the tiled.
>>
>> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
>> ---
>>
>> v7:
>> * Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
>>
>> drivers/gpu/drm/i915/display/i9xx_plane.c | 23 +++++++++++++++++++
>> .../drm/i915/display/intel_display_types.h | 2 ++
>> 2 files changed, 25 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
>> index 8f15333a4b07..0807fae12450 100644
>> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
>> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
>> @@ -905,6 +905,27 @@ static const struct drm_plane_funcs i8xx_plane_funcs = {
>> .format_mod_supported_async = intel_plane_format_mod_supported_async,
>> };
>>
>> +static void i9xx_disable_tiling(struct intel_plane *plane)
>> +{
>> + struct intel_display *display = to_intel_display(plane);
>> + enum i9xx_plane_id i9xx_plane = plane->i9xx_plane;
>> + u32 dspcntr;
>> + u32 reg;
>> +
>> + dspcntr = intel_de_read_fw(display, DSPCNTR(display, i9xx_plane));
>> + dspcntr &= ~DISP_TILED;
>> + intel_de_write_fw(display, DSPCNTR(display, i9xx_plane), dspcntr);
>> +
>> + if (DISPLAY_VER(display) >= 4) {
>> + reg = intel_de_read_fw(display, DSPSURF(display, i9xx_plane));
>> + intel_de_write_fw(display, DSPSURF(display, i9xx_plane), reg);
>> +
>> + } else {
>> + reg = intel_de_read_fw(display, DSPADDR(display, i9xx_plane));
>> + intel_de_write_fw(display, DSPADDR(display, i9xx_plane), reg);
>> + }
>> +}
>
> I thought I already shot this down before, but apparently this
> got merged now :(
Sorry for that. I replied to that thread, but I didn't get answer [1]
>
> Just to reiterate why we don't want these 'disable tiling' hacks:
> - different tiling formats have different stride/alignment/watermark
> requirements so one can't safely change from one tiling to another
I agree that going from one tiling format to another is not safe. But
from my understanding, going from tiling to linear should be possible.
Do you have an example, where the stride/alignment/watermark requirement
in tiled would be incompatible in Linear (for the same resolution)?
> - this completely fails to account for the TILEOFF vs. LINOFF stuff
Pardon my ignorance, can you explain what it is, and how it can break or
make the output unreadable?
> - etc.
>
> So IMO these hacks must be removed and instead the code must learn how
> to propetly write the tiled data. igt has all the code for that btw
> (twice over IIRC) so shouldn't be that hard.
Regarding the tiling format, I usually test on hardware to check that
the image is correct. But I have only a few of them, and as the format
is platform dependent, and sometime also depends on the memory
configuration. For me it looks very hard to get it right.
I've done it only for Y-tile and 4-tile, but only when DPT is enabled
(which means it's only the few latest generations).
>
> I suppose the only hack we need to keep is to disable compression,
> mainly because (IIRC) on flat CCS systems the CPU doesn't have access
> to the AUX data to clear it manually.
>
> I also wonder if there are actual igts for this? I think what is needed
> is a test that sets random things (different panning, rotation, pixel
> foramts, etc.) and triggers the dumper. Not quite sure how the test
> could validate that the output is correct though. CRCs might be a bit
> tricky since you need an identical reference image.
No, I didn't write igts for this yet. I test by triggering a kernel
panic, as it's the only way to make sure it works.
Also I didn't consider rotation yet, I think if the panic screen is not
rotated, it's still useful.
>
> /me off to summer vacation. Good luck
>
Sorry for that, my goal is just to have drm panic working on intel GPU.
Enjoy your vacation, and let's find a solution when you're back.
[1]
https://lore.kernel.org/intel-gfx/72fa1da6-caaa-41c9-aef1-4e780bde6acf@redhat.com/
Best regards,
--
Jocelyn
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v10 04/10] drm/i915/display: Add a disable_tiling() for skl planes
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (2 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 03/10] drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic() Jocelyn Falempe
` (10 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
drm_panic draws in linear framebuffer, so it's easier to re-use the
current framebuffer, and disable tiling in the panic handler, to show
the panic screen.
This assumes that the alignment restriction is always smaller in
linear than in tiled.
It also assumes that the linear framebuffer size is always smaller
than the tiled.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v7:
* Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
.../drm/i915/display/skl_universal_plane.c | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 2aa64482d44b..ef09ef7b101f 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -2792,6 +2792,25 @@ static u8 tgl_plane_caps(struct intel_display *display,
return caps;
}
+static void skl_disable_tiling(struct intel_plane *plane)
+{
+ struct intel_plane_state *state = to_intel_plane_state(plane->base.state);
+ struct intel_display *display = to_intel_display(plane);
+ u32 stride = state->view.color_plane[0].scanout_stride / 64;
+ u32 plane_ctl;
+
+ plane_ctl = intel_de_read(display, PLANE_CTL(plane->pipe, plane->id));
+ plane_ctl &= ~PLANE_CTL_TILED_MASK;
+
+ intel_de_write_fw(display, PLANE_STRIDE(plane->pipe, plane->id),
+ PLANE_STRIDE_(stride));
+
+ intel_de_write_fw(display, PLANE_CTL(plane->pipe, plane->id), plane_ctl);
+
+ intel_de_write_fw(display, PLANE_SURF(plane->pipe, plane->id),
+ skl_plane_surf(state, 0));
+}
+
struct intel_plane *
skl_universal_plane_create(struct intel_display *display,
enum pipe pipe, enum plane_id plane_id)
@@ -2838,6 +2857,7 @@ skl_universal_plane_create(struct intel_display *display,
plane->max_height = skl_plane_max_height;
plane->min_cdclk = skl_plane_min_cdclk;
}
+ plane->disable_tiling = skl_disable_tiling;
if (DISPLAY_VER(display) >= 13)
plane->max_stride = adl_plane_max_stride;
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic()
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (3 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 04/10] drm/i915/display: Add a disable_tiling() for skl planes Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 13:55 ` Christian König
2025-06-18 9:31 ` [PATCH v10 06/10] drm/i915: Add intel_bo_panic_setup and intel_bo_panic_finish Jocelyn Falempe
` (9 subsequent siblings)
14 siblings, 1 reply; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
If the ttm bo is backed by pages, then it's possible to safely kmap
one page at a time, using kmap_try_from_panic().
Unfortunately there is no way to do the same with ioremap, so it
only supports the kmap case.
This is needed for proper drm_panic support with xe driver.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v8:
* Added in v8
v9:
* Fix comment in ttm_bo_kmap_try_from_panic(), this can *only* be called
from the panic handler (Christian König)
drivers/gpu/drm/ttm/ttm_bo_util.c | 27 +++++++++++++++++++++++++++
include/drm/ttm/ttm_bo.h | 1 +
2 files changed, 28 insertions(+)
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
index 15cab9bda17f..6912e6dfda25 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_util.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
@@ -377,6 +377,33 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
return (!map->virtual) ? -ENOMEM : 0;
}
+/**
+ *
+ * ttm_bo_kmap_try_from_panic
+ *
+ * @bo: The buffer object
+ * @page: The page to map
+ *
+ * Sets up a kernel virtual mapping using kmap_local_page_try_from_panic().
+ * This should only be called from the panic handler, if you make sure the bo
+ * is the one being displayed, so is properly allocated, and protected.
+ *
+ * Returns the vaddr, that you can use to write to the bo, and that you should
+ * pass to kunmap_local() when you're done with this page, or NULL if the bo
+ * is in iomem.
+ */
+void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page)
+{
+ if (page + 1 > PFN_UP(bo->resource->size))
+ return NULL;
+
+ if (!bo->resource->bus.is_iomem && bo->ttm->pages && bo->ttm->pages[page])
+ return kmap_local_page_try_from_panic(bo->ttm->pages[page]);
+
+ return NULL;
+}
+EXPORT_SYMBOL(ttm_bo_kmap_try_from_panic);
+
/**
* ttm_bo_kmap
*
diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
index cf027558b6db..8c0ce3fa077f 100644
--- a/include/drm/ttm/ttm_bo.h
+++ b/include/drm/ttm/ttm_bo.h
@@ -429,6 +429,7 @@ int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo,
int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
unsigned long num_pages, struct ttm_bo_kmap_obj *map);
void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map);
+void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page);
int ttm_bo_vmap(struct ttm_buffer_object *bo, struct iosys_map *map);
void ttm_bo_vunmap(struct ttm_buffer_object *bo, struct iosys_map *map);
int ttm_bo_mmap_obj(struct vm_area_struct *vma, struct ttm_buffer_object *bo);
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* Re: [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic()
2025-06-18 9:31 ` [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic() Jocelyn Falempe
@ 2025-06-18 13:55 ` Christian König
2025-06-18 15:38 ` Jocelyn Falempe
2025-06-27 10:05 ` Maarten Lankhorst
0 siblings, 2 replies; 24+ messages in thread
From: Christian König @ 2025-06-18 13:55 UTC (permalink / raw)
To: Jocelyn Falempe, Maarten Lankhorst, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Ville Syrjälä,
David Airlie, Simona Vetter, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
On 6/18/25 11:31, Jocelyn Falempe wrote:
> If the ttm bo is backed by pages, then it's possible to safely kmap
> one page at a time, using kmap_try_from_panic().
> Unfortunately there is no way to do the same with ioremap, so it
> only supports the kmap case.
> This is needed for proper drm_panic support with xe driver.
>
> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Preferred through drm-misc-next, but feel free to merge it through every branch you want if it makes thinks easier for you.
Regards,
Christian.
> ---
>
> v8:
> * Added in v8
>
> v9:
> * Fix comment in ttm_bo_kmap_try_from_panic(), this can *only* be called
> from the panic handler (Christian König)
>
> drivers/gpu/drm/ttm/ttm_bo_util.c | 27 +++++++++++++++++++++++++++
> include/drm/ttm/ttm_bo.h | 1 +
> 2 files changed, 28 insertions(+)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
> index 15cab9bda17f..6912e6dfda25 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
> @@ -377,6 +377,33 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
> return (!map->virtual) ? -ENOMEM : 0;
> }
>
> +/**
> + *
> + * ttm_bo_kmap_try_from_panic
> + *
> + * @bo: The buffer object
> + * @page: The page to map
> + *
> + * Sets up a kernel virtual mapping using kmap_local_page_try_from_panic().
> + * This should only be called from the panic handler, if you make sure the bo
> + * is the one being displayed, so is properly allocated, and protected.
> + *
> + * Returns the vaddr, that you can use to write to the bo, and that you should
> + * pass to kunmap_local() when you're done with this page, or NULL if the bo
> + * is in iomem.
> + */
> +void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page)
> +{
> + if (page + 1 > PFN_UP(bo->resource->size))
> + return NULL;
> +
> + if (!bo->resource->bus.is_iomem && bo->ttm->pages && bo->ttm->pages[page])
> + return kmap_local_page_try_from_panic(bo->ttm->pages[page]);
> +
> + return NULL;
> +}
> +EXPORT_SYMBOL(ttm_bo_kmap_try_from_panic);
> +
> /**
> * ttm_bo_kmap
> *
> diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
> index cf027558b6db..8c0ce3fa077f 100644
> --- a/include/drm/ttm/ttm_bo.h
> +++ b/include/drm/ttm/ttm_bo.h
> @@ -429,6 +429,7 @@ int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo,
> int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
> unsigned long num_pages, struct ttm_bo_kmap_obj *map);
> void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map);
> +void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page);
> int ttm_bo_vmap(struct ttm_buffer_object *bo, struct iosys_map *map);
> void ttm_bo_vunmap(struct ttm_buffer_object *bo, struct iosys_map *map);
> int ttm_bo_mmap_obj(struct vm_area_struct *vma, struct ttm_buffer_object *bo);
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic()
2025-06-18 13:55 ` Christian König
@ 2025-06-18 15:38 ` Jocelyn Falempe
2025-06-27 10:05 ` Maarten Lankhorst
1 sibling, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 15:38 UTC (permalink / raw)
To: Christian König, Maarten Lankhorst, Jani Nikula,
Rodrigo Vivi, Joonas Lahtinen, Tvrtko Ursulin,
Ville Syrjälä, David Airlie, Simona Vetter, Huang Rui,
Matthew Auld, Matthew Brost, Maxime Ripard, Thomas Zimmermann,
intel-gfx, intel-xe, dri-devel, linux-kernel
On 18/06/2025 15:55, Christian König wrote:
>
>
> On 6/18/25 11:31, Jocelyn Falempe wrote:
>> If the ttm bo is backed by pages, then it's possible to safely kmap
>> one page at a time, using kmap_try_from_panic().
>> Unfortunately there is no way to do the same with ioremap, so it
>> only supports the kmap case.
>> This is needed for proper drm_panic support with xe driver.
>>
>> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
>
> Reviewed-by: Christian König <christian.koenig@amd.com>
>
> Preferred through drm-misc-next, but feel free to merge it through every branch you want if it makes thinks easier for you.
Thanks, I will see if I can get the whole series through drm-intel-next,
or if I can merge #1 and #5 first in drm-misc-next.
Best regards,
--
Jocelyn
>
> Regards,
> Christian.
>
>> ---
>>
>> v8:
>> * Added in v8
>>
>> v9:
>> * Fix comment in ttm_bo_kmap_try_from_panic(), this can *only* be called
>> from the panic handler (Christian König)
>>
>> drivers/gpu/drm/ttm/ttm_bo_util.c | 27 +++++++++++++++++++++++++++
>> include/drm/ttm/ttm_bo.h | 1 +
>> 2 files changed, 28 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
>> index 15cab9bda17f..6912e6dfda25 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
>> @@ -377,6 +377,33 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
>> return (!map->virtual) ? -ENOMEM : 0;
>> }
>>
>> +/**
>> + *
>> + * ttm_bo_kmap_try_from_panic
>> + *
>> + * @bo: The buffer object
>> + * @page: The page to map
>> + *
>> + * Sets up a kernel virtual mapping using kmap_local_page_try_from_panic().
>> + * This should only be called from the panic handler, if you make sure the bo
>> + * is the one being displayed, so is properly allocated, and protected.
>> + *
>> + * Returns the vaddr, that you can use to write to the bo, and that you should
>> + * pass to kunmap_local() when you're done with this page, or NULL if the bo
>> + * is in iomem.
>> + */
>> +void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page)
>> +{
>> + if (page + 1 > PFN_UP(bo->resource->size))
>> + return NULL;
>> +
>> + if (!bo->resource->bus.is_iomem && bo->ttm->pages && bo->ttm->pages[page])
>> + return kmap_local_page_try_from_panic(bo->ttm->pages[page]);
>> +
>> + return NULL;
>> +}
>> +EXPORT_SYMBOL(ttm_bo_kmap_try_from_panic);
>> +
>> /**
>> * ttm_bo_kmap
>> *
>> diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
>> index cf027558b6db..8c0ce3fa077f 100644
>> --- a/include/drm/ttm/ttm_bo.h
>> +++ b/include/drm/ttm/ttm_bo.h
>> @@ -429,6 +429,7 @@ int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo,
>> int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
>> unsigned long num_pages, struct ttm_bo_kmap_obj *map);
>> void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map);
>> +void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page);
>> int ttm_bo_vmap(struct ttm_buffer_object *bo, struct iosys_map *map);
>> void ttm_bo_vunmap(struct ttm_buffer_object *bo, struct iosys_map *map);
>> int ttm_bo_mmap_obj(struct vm_area_struct *vma, struct ttm_buffer_object *bo);
>
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic()
2025-06-18 13:55 ` Christian König
2025-06-18 15:38 ` Jocelyn Falempe
@ 2025-06-27 10:05 ` Maarten Lankhorst
1 sibling, 0 replies; 24+ messages in thread
From: Maarten Lankhorst @ 2025-06-27 10:05 UTC (permalink / raw)
To: Christian König, Jocelyn Falempe, Jani Nikula, Rodrigo Vivi,
Joonas Lahtinen, Tvrtko Ursulin, Ville Syrjälä,
David Airlie, Simona Vetter, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Hey,
On 2025-06-18 15:55, Christian König wrote:
>
>
> On 6/18/25 11:31, Jocelyn Falempe wrote:
>> If the ttm bo is backed by pages, then it's possible to safely kmap
>> one page at a time, using kmap_try_from_panic().
>> Unfortunately there is no way to do the same with ioremap, so it
>> only supports the kmap case.
>> This is needed for proper drm_panic support with xe driver.
>>
>> Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
>
> Reviewed-by: Christian König <christian.koenig@amd.com>
>
> Preferred through drm-misc-next, but feel free to merge it through every branch you want if it makes thinks easier for you.
>
Thanks for the ack there. I had to merge this patch through drm-intel-next-queued because of a rework affecting the series.
Kind regards,
~Maarten
> Regards,
> Christian.
>
>> ---
>>
>> v8:
>> * Added in v8
>>
>> v9:
>> * Fix comment in ttm_bo_kmap_try_from_panic(), this can *only* be called
>> from the panic handler (Christian König)
>>
>> drivers/gpu/drm/ttm/ttm_bo_util.c | 27 +++++++++++++++++++++++++++
>> include/drm/ttm/ttm_bo.h | 1 +
>> 2 files changed, 28 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
>> index 15cab9bda17f..6912e6dfda25 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
>> @@ -377,6 +377,33 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
>> return (!map->virtual) ? -ENOMEM : 0;
>> }
>>
>> +/**
>> + *
>> + * ttm_bo_kmap_try_from_panic
>> + *
>> + * @bo: The buffer object
>> + * @page: The page to map
>> + *
>> + * Sets up a kernel virtual mapping using kmap_local_page_try_from_panic().
>> + * This should only be called from the panic handler, if you make sure the bo
>> + * is the one being displayed, so is properly allocated, and protected.
>> + *
>> + * Returns the vaddr, that you can use to write to the bo, and that you should
>> + * pass to kunmap_local() when you're done with this page, or NULL if the bo
>> + * is in iomem.
>> + */
>> +void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page)
>> +{
>> + if (page + 1 > PFN_UP(bo->resource->size))
>> + return NULL;
>> +
>> + if (!bo->resource->bus.is_iomem && bo->ttm->pages && bo->ttm->pages[page])
>> + return kmap_local_page_try_from_panic(bo->ttm->pages[page]);
>> +
>> + return NULL;
>> +}
>> +EXPORT_SYMBOL(ttm_bo_kmap_try_from_panic);
>> +
>> /**
>> * ttm_bo_kmap
>> *
>> diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
>> index cf027558b6db..8c0ce3fa077f 100644
>> --- a/include/drm/ttm/ttm_bo.h
>> +++ b/include/drm/ttm/ttm_bo.h
>> @@ -429,6 +429,7 @@ int ttm_bo_init_validate(struct ttm_device *bdev, struct ttm_buffer_object *bo,
>> int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
>> unsigned long num_pages, struct ttm_bo_kmap_obj *map);
>> void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map);
>> +void *ttm_bo_kmap_try_from_panic(struct ttm_buffer_object *bo, unsigned long page);
>> int ttm_bo_vmap(struct ttm_buffer_object *bo, struct iosys_map *map);
>> void ttm_bo_vunmap(struct ttm_buffer_object *bo, struct iosys_map *map);
>> int ttm_bo_mmap_obj(struct vm_area_struct *vma, struct ttm_buffer_object *bo);
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v10 06/10] drm/i915: Add intel_bo_panic_setup and intel_bo_panic_finish
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (4 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 05/10] drm/ttm: Add ttm_bo_kmap_try_from_panic() Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 07/10] drm/i915/display: Add drm_panic support Jocelyn Falempe
` (8 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
Implement both functions for i915 and xe, they prepare the work for
drm_panic support.
They both use kmap_try_from_panic(), and map one page at a time, to
write the panic screen on the framebuffer.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v5:
* Use iosys_map for intel_bo_panic_map().
v7:
* Return int for i915_gem_object_panic_map() (Ville Syrjälä)
v8:
* Complete rewrite, to use kmap_try_from_panic() which is safe
to call from a panic handler.
v9:
* Fix missing kfree() for i915_panic_pages in i915_gem_object_panic_finish()
Also change i915_panic_pages allocation to kmalloc, as kvmalloc is not
safe to call from the panic handler.
v10:
* Replace static variables with new fields in struct intel_framebuffer
(Maarten Lankhorst)
* Add error handling if i915_gem_object_panic_pages() returns NULL
* Declare struct drm_scanout_buffer instead of including <drm/drm_panic.h>
in intel_bo.h
drivers/gpu/drm/i915/display/intel_bo.c | 12 +++
drivers/gpu/drm/i915/display/intel_bo.h | 4 +
.../drm/i915/display/intel_display_types.h | 8 ++
drivers/gpu/drm/i915/gem/i915_gem_object.h | 5 +
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 98 +++++++++++++++++++
drivers/gpu/drm/xe/display/intel_bo.c | 58 +++++++++++
6 files changed, 185 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_bo.c b/drivers/gpu/drm/i915/display/intel_bo.c
index fbd16d7b58d9..4e8ffeec6180 100644
--- a/drivers/gpu/drm/i915/display/intel_bo.c
+++ b/drivers/gpu/drm/i915/display/intel_bo.c
@@ -1,6 +1,8 @@
// SPDX-License-Identifier: MIT
/* Copyright © 2024 Intel Corporation */
+#include <drm/drm_panic.h>
+#include "display/intel_display_types.h"
#include "gem/i915_gem_mman.h"
#include "gem/i915_gem_object.h"
#include "gem/i915_gem_object_frontbuffer.h"
@@ -57,3 +59,13 @@ void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj)
{
i915_debugfs_describe_obj(m, to_intel_bo(obj));
}
+
+int intel_bo_panic_setup(struct drm_scanout_buffer *sb)
+{
+ return i915_gem_object_panic_setup(sb);
+}
+
+void intel_bo_panic_finish(struct intel_framebuffer *fb)
+{
+ return i915_gem_object_panic_finish(fb);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_bo.h b/drivers/gpu/drm/i915/display/intel_bo.h
index ea7a2253aaa5..a1a6a5329f91 100644
--- a/drivers/gpu/drm/i915/display/intel_bo.h
+++ b/drivers/gpu/drm/i915/display/intel_bo.h
@@ -7,6 +7,8 @@
#include <linux/types.h>
struct drm_gem_object;
+struct drm_scanout_buffer;
+struct intel_framebuffer;
struct seq_file;
struct vm_area_struct;
@@ -23,5 +25,7 @@ struct intel_frontbuffer *intel_bo_set_frontbuffer(struct drm_gem_object *obj,
struct intel_frontbuffer *front);
void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj);
+int intel_bo_panic_setup(struct drm_scanout_buffer *sb);
+void intel_bo_panic_finish(struct intel_framebuffer *fb);
#endif /* __INTEL_BO__ */
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 3654d88e9c5f..6d6d2d948886 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -130,6 +130,12 @@ struct intel_fb_view {
} color_plane[4];
};
+struct intel_panic_data {
+ struct page **pages;
+ int page;
+ void *vaddr;
+};
+
struct intel_framebuffer {
struct drm_framebuffer base;
struct intel_frontbuffer *frontbuffer;
@@ -145,6 +151,8 @@ struct intel_framebuffer {
unsigned int min_alignment;
unsigned int vtd_guard;
+
+ struct intel_panic_data panic;
};
enum intel_hotplug_state {
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h
index c34f41605b46..0fd8faa174ad 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h
@@ -16,7 +16,9 @@
#include "i915_gem_ww.h"
#include "i915_vma_types.h"
+struct drm_scanout_buffer;
enum intel_region_id;
+struct intel_framebuffer;
#define obj_to_i915(obj__) to_i915((obj__)->base.dev)
@@ -691,6 +693,9 @@ i915_gem_object_unpin_pages(struct drm_i915_gem_object *obj)
int __i915_gem_object_put_pages(struct drm_i915_gem_object *obj);
int i915_gem_object_truncate(struct drm_i915_gem_object *obj);
+int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb);
+void i915_gem_object_panic_finish(struct intel_framebuffer *fb);
+
/**
* i915_gem_object_pin_map - return a contiguous mapping of the entire object
* @obj: the object to map into kernel address space
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index 7f83f8bdc8fb..0bcf4647a2a0 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -4,8 +4,11 @@
*/
#include <drm/drm_cache.h>
+#include <drm/drm_panic.h>
#include <linux/vmalloc.h>
+#include "display/intel_fb.h"
+#include "display/intel_display_types.h"
#include "gt/intel_gt.h"
#include "gt/intel_tlb.h"
@@ -354,6 +357,101 @@ static void *i915_gem_object_map_pfn(struct drm_i915_gem_object *obj,
return vaddr ?: ERR_PTR(-ENOMEM);
}
+static void i915_panic_kunmap(struct intel_panic_data *panic)
+{
+ if (panic->vaddr) {
+ drm_clflush_virt_range(panic->vaddr, PAGE_SIZE);
+ kunmap_local(panic->vaddr);
+ panic->vaddr = NULL;
+ }
+}
+
+static struct page **i915_gem_object_panic_pages(struct drm_i915_gem_object *obj)
+{
+ unsigned long n_pages = obj->base.size >> PAGE_SHIFT, i;
+ struct page *page;
+ struct page **pages;
+ struct sgt_iter iter;
+
+ /* For a 3840x2160 32 bits Framebuffer, this should require ~64K */
+ pages = kmalloc_array(n_pages, sizeof(*pages), GFP_ATOMIC);
+ if (!pages)
+ return NULL;
+
+ i = 0;
+ for_each_sgt_page(page, iter, obj->mm.pages)
+ pages[i++] = page;
+ return pages;
+}
+
+/*
+ * The scanout buffer pages are not mapped, so for each pixel,
+ * use kmap_local_page_try_from_panic() to map the page, and write the pixel.
+ * Try to keep the map from the previous pixel, to avoid too much map/unmap.
+ */
+static void i915_gem_object_panic_page_set_pixel(struct drm_scanout_buffer *sb, unsigned int x,
+ unsigned int y, u32 color)
+{
+ unsigned int new_page;
+ unsigned int offset;
+ struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
+
+ offset = y * sb->pitch[0] + x * sb->format->cpp[0];
+
+ new_page = offset >> PAGE_SHIFT;
+ offset = offset % PAGE_SIZE;
+ if (new_page != fb->panic.page) {
+ i915_panic_kunmap(&fb->panic);
+ fb->panic.page = new_page;
+ fb->panic.vaddr =
+ kmap_local_page_try_from_panic(fb->panic.pages[fb->panic.page]);
+ }
+ if (fb->panic.vaddr) {
+ u32 *pix = fb->panic.vaddr + offset;
+ *pix = color;
+ }
+}
+
+/*
+ * Setup the gem framebuffer for drm_panic access.
+ * Use current vaddr if it exists, or setup a list of pages.
+ * pfn is not supported yet.
+ */
+int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb)
+{
+ enum i915_map_type has_type;
+ struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
+ struct drm_i915_gem_object *obj = to_intel_bo(intel_fb_bo(&fb->base));
+ void *ptr;
+
+ ptr = page_unpack_bits(obj->mm.mapping, &has_type);
+ if (ptr) {
+ if (i915_gem_object_has_iomem(obj))
+ iosys_map_set_vaddr_iomem(&sb->map[0], (void __iomem *)ptr);
+ else
+ iosys_map_set_vaddr(&sb->map[0], ptr);
+
+ return 0;
+ }
+ if (i915_gem_object_has_struct_page(obj)) {
+ fb->panic.pages = i915_gem_object_panic_pages(obj);
+ if (!fb->panic.pages)
+ return -ENOMEM;
+ fb->panic.page = -1;
+ sb->set_pixel = i915_gem_object_panic_page_set_pixel;
+ return 0;
+ }
+ return -EOPNOTSUPP;
+}
+
+void i915_gem_object_panic_finish(struct intel_framebuffer *fb)
+{
+ i915_panic_kunmap(&fb->panic);
+ fb->panic.page = -1;
+ kfree(fb->panic.pages);
+ fb->panic.pages = NULL;
+}
+
/* get, pin, and map the pages of the object into kernel space */
void *i915_gem_object_pin_map(struct drm_i915_gem_object *obj,
enum i915_map_type type)
diff --git a/drivers/gpu/drm/xe/display/intel_bo.c b/drivers/gpu/drm/xe/display/intel_bo.c
index 27437c22bd70..8a6de2dda88c 100644
--- a/drivers/gpu/drm/xe/display/intel_bo.c
+++ b/drivers/gpu/drm/xe/display/intel_bo.c
@@ -1,7 +1,12 @@
// SPDX-License-Identifier: MIT
/* Copyright © 2024 Intel Corporation */
+#include <drm/drm_cache.h>
#include <drm/drm_gem.h>
+#include <drm/drm_panic.h>
+
+#include "intel_fb.h"
+#include "intel_display_types.h"
#include "xe_bo.h"
#include "intel_bo.h"
@@ -59,3 +64,56 @@ void intel_bo_describe(struct seq_file *m, struct drm_gem_object *obj)
{
/* FIXME */
}
+
+static void xe_panic_kunmap(struct intel_panic_data *panic)
+{
+ if (panic->vaddr) {
+ drm_clflush_virt_range(panic->vaddr, PAGE_SIZE);
+ kunmap_local(panic->vaddr);
+ panic->vaddr = NULL;
+ }
+}
+
+/*
+ * The scanout buffer pages are not mapped, so for each pixel,
+ * use kmap_local_page_try_from_panic() to map the page, and write the pixel.
+ * Try to keep the map from the previous pixel, to avoid too much map/unmap.
+ */
+static void xe_panic_page_set_pixel(struct drm_scanout_buffer *sb, unsigned int x,
+ unsigned int y, u32 color)
+{
+ struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
+ struct xe_bo *bo = gem_to_xe_bo(intel_fb_bo(&fb->base));
+ unsigned int new_page;
+ unsigned int offset;
+
+ offset = y * sb->pitch[0] + x * sb->format->cpp[0];
+
+ new_page = offset >> PAGE_SHIFT;
+ offset = offset % PAGE_SIZE;
+ if (new_page != fb->panic.page) {
+ xe_panic_kunmap(&fb->panic);
+ fb->panic.page = new_page;
+ fb->panic.vaddr = ttm_bo_kmap_try_from_panic(&bo->ttm,
+ fb->panic.page);
+ }
+ if (fb->panic.vaddr) {
+ u32 *pix = fb->panic.vaddr + offset;
+ *pix = color;
+ }
+}
+
+int intel_bo_panic_setup(struct drm_scanout_buffer *sb)
+{
+ struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
+
+ fb->panic.page = -1;
+ sb->set_pixel = xe_panic_page_set_pixel;
+ return 0;
+}
+
+void intel_bo_panic_finish(struct intel_framebuffer *fb)
+{
+ xe_panic_kunmap(&fb->panic);
+ fb->panic.page = -1;
+}
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 07/10] drm/i915/display: Add drm_panic support
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (5 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 06/10] drm/i915: Add intel_bo_panic_setup and intel_bo_panic_finish Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 08/10] drm/i915/display: Add drm_panic support for Y-tiling with DPT Jocelyn Falempe
` (7 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
This adds drm_panic support for a wide range of Intel GPU. I've
tested it only on 4 laptops, Haswell (with 128MB of eDRAM),
Comet Lake, Raptor Lake, and Lunar Lake.
For hardware using DPT, it's not possible to disable tiling, as you
will need to reconfigure the way the GPU is accessing the
framebuffer, so this will be handled by the following patches.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v4:
* Add support for Xe driver.
v6:
* Use struct intel_display instead of drm_i915_private for intel_atomic_plane.c
v7:
* Fix mismatch {} in intel_panic_flush() (Jani Nikula)
v8:
* Use intel_bo_panic_setup() and intel_bo_panic_finish().
v10:
* Use struct intel_framebuffer to store the panic variables (Maarten Lankhorst)
.../gpu/drm/i915/display/intel_atomic_plane.c | 83 ++++++++++++++++++-
1 file changed, 82 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 15ede7678636..9e1c9d1e015f 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -33,19 +33,23 @@
#include <linux/dma-fence-chain.h>
#include <linux/dma-resv.h>
+#include <linux/iosys-map.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_blend.h>
#include <drm/drm_damage_helper.h>
+#include <drm/drm_cache.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_gem.h>
#include <drm/drm_gem_atomic_helper.h>
+#include <drm/drm_panic.h>
#include "gem/i915_gem_object.h"
#include "i915_scheduler_types.h"
#include "i915_vma.h"
#include "i9xx_plane_regs.h"
#include "intel_atomic_plane.h"
+#include "intel_bo.h"
#include "intel_cdclk.h"
#include "intel_cursor.h"
#include "intel_display_rps.h"
@@ -53,6 +57,7 @@
#include "intel_display_types.h"
#include "intel_fb.h"
#include "intel_fb_pin.h"
+#include "intel_fbdev.h"
#include "skl_scaler.h"
#include "skl_universal_plane.h"
#include "skl_watermark.h"
@@ -1266,14 +1271,90 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
intel_plane_unpin_fb(old_plane_state);
}
+static void intel_panic_flush(struct drm_plane *plane)
+{
+ struct intel_plane_state *plane_state = to_intel_plane_state(plane->state);
+ struct intel_plane *iplane = to_intel_plane(plane);
+ struct intel_display *display = to_intel_display(iplane);
+ struct drm_framebuffer *fb = plane_state->hw.fb;
+ struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
+
+ intel_bo_panic_finish(intel_fb);
+
+ /* Flush the cache and don't disable tiling if it's the fbdev framebuffer.*/
+ if (intel_fb == intel_fbdev_framebuffer(display->fbdev.fbdev)) {
+ struct iosys_map map;
+
+ intel_fbdev_get_map(display->fbdev.fbdev, &map);
+ drm_clflush_virt_range(map.vaddr, fb->pitches[0] * fb->height);
+ return;
+ }
+
+ if (fb->modifier && iplane->disable_tiling)
+ iplane->disable_tiling(iplane);
+}
+
+static int intel_get_scanout_buffer(struct drm_plane *plane,
+ struct drm_scanout_buffer *sb)
+{
+ struct intel_plane_state *plane_state;
+ struct drm_gem_object *obj;
+ struct drm_framebuffer *fb;
+ struct intel_framebuffer *intel_fb;
+ struct intel_display *display = to_intel_display(plane->dev);
+
+ if (!plane->state || !plane->state->fb || !plane->state->visible)
+ return -ENODEV;
+
+ plane_state = to_intel_plane_state(plane->state);
+ fb = plane_state->hw.fb;
+ intel_fb = to_intel_framebuffer(fb);
+
+ obj = intel_fb_bo(fb);
+ if (!obj)
+ return -ENODEV;
+
+ if (intel_fb == intel_fbdev_framebuffer(display->fbdev.fbdev)) {
+ intel_fbdev_get_map(display->fbdev.fbdev, &sb->map[0]);
+ } else {
+ int ret;
+ /* Can't disable tiling if DPT is in use */
+ if (intel_fb_uses_dpt(fb))
+ return -EOPNOTSUPP;
+ sb->private = intel_fb;
+ ret = intel_bo_panic_setup(sb);
+ if (ret)
+ return ret;
+ }
+ sb->width = fb->width;
+ sb->height = fb->height;
+ /* Use the generic linear format, because tiling, RC, CCS, CC
+ * will be disabled in disable_tiling()
+ */
+ sb->format = drm_format_info(fb->format->format);
+ sb->pitch[0] = fb->pitches[0];
+
+ return 0;
+}
+
static const struct drm_plane_helper_funcs intel_plane_helper_funcs = {
.prepare_fb = intel_prepare_plane_fb,
.cleanup_fb = intel_cleanup_plane_fb,
};
+static const struct drm_plane_helper_funcs intel_primary_plane_helper_funcs = {
+ .prepare_fb = intel_prepare_plane_fb,
+ .cleanup_fb = intel_cleanup_plane_fb,
+ .get_scanout_buffer = intel_get_scanout_buffer,
+ .panic_flush = intel_panic_flush,
+};
+
void intel_plane_helper_add(struct intel_plane *plane)
{
- drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
+ if (plane->base.type == DRM_PLANE_TYPE_PRIMARY)
+ drm_plane_helper_add(&plane->base, &intel_primary_plane_helper_funcs);
+ else
+ drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
}
void intel_plane_init_cursor_vblank_work(struct intel_plane_state *old_plane_state,
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 08/10] drm/i915/display: Add drm_panic support for Y-tiling with DPT
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (6 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 07/10] drm/i915/display: Add drm_panic support Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 09/10] drm/i915/display: Add drm_panic support for 4-tiling " Jocelyn Falempe
` (6 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
On Alder Lake and later, it's not possible to disable tiling when DPT
is enabled.
So this commit implements Y-Tiling support, to still be able to draw
the panic screen.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v8:
* Pass the tiling function to intel_bo_panic_setup()
.../gpu/drm/i915/display/intel_atomic_plane.c | 64 ++++++++++++++++++-
.../drm/i915/display/intel_display_types.h | 1 +
.../drm/i915/display/skl_universal_plane.c | 15 +++--
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 16 ++++-
drivers/gpu/drm/xe/display/intel_bo.c | 5 +-
5 files changed, 93 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 9e1c9d1e015f..044328d83df9 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -1271,6 +1271,32 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
intel_plane_unpin_fb(old_plane_state);
}
+/* Handle Y-tiling, only if DPT is enabled (otherwise disabling tiling is easier)
+ * All DPT hardware have 128-bytes width tiling, so Y-tile dimension is 32x32
+ * pixels for 32bits pixels.
+ */
+#define YTILE_WIDTH 32
+#define YTILE_HEIGHT 32
+#define YTILE_SIZE (YTILE_WIDTH * YTILE_HEIGHT * 4)
+
+static unsigned int intel_ytile_get_offset(unsigned int width, unsigned int x, unsigned int y)
+{
+ u32 offset;
+ unsigned int swizzle;
+ unsigned int width_in_blocks = DIV_ROUND_UP(width, 32);
+
+ /* Block offset */
+ offset = ((y / YTILE_HEIGHT) * width_in_blocks + (x / YTILE_WIDTH)) * YTILE_SIZE;
+
+ x = x % YTILE_WIDTH;
+ y = y % YTILE_HEIGHT;
+
+ /* bit order inside a block is x4 x3 x2 y4 y3 y2 y1 y0 x1 x0 */
+ swizzle = (x & 3) | ((y & 0x1f) << 2) | ((x & 0x1c) << 5);
+ offset += swizzle * 4;
+ return offset;
+}
+
static void intel_panic_flush(struct drm_plane *plane)
{
struct intel_plane_state *plane_state = to_intel_plane_state(plane->state);
@@ -1294,6 +1320,35 @@ static void intel_panic_flush(struct drm_plane *plane)
iplane->disable_tiling(iplane);
}
+static unsigned int (*intel_get_tiling_func(u64 fb_modifier))(unsigned int width,
+ unsigned int x,
+ unsigned int y)
+{
+ switch (fb_modifier) {
+ case I915_FORMAT_MOD_Y_TILED:
+ case I915_FORMAT_MOD_Y_TILED_CCS:
+ case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
+ case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
+ case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
+ return intel_ytile_get_offset;
+ case I915_FORMAT_MOD_4_TILED:
+ case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
+ case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
+ case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
+ case I915_FORMAT_MOD_4_TILED_MTL_RC_CCS:
+ case I915_FORMAT_MOD_4_TILED_MTL_RC_CCS_CC:
+ case I915_FORMAT_MOD_4_TILED_MTL_MC_CCS:
+ case I915_FORMAT_MOD_4_TILED_BMG_CCS:
+ case I915_FORMAT_MOD_4_TILED_LNL_CCS:
+ case I915_FORMAT_MOD_X_TILED:
+ case I915_FORMAT_MOD_Yf_TILED:
+ case I915_FORMAT_MOD_Yf_TILED_CCS:
+ default:
+ /* Not supported yet */
+ return NULL;
+ }
+}
+
static int intel_get_scanout_buffer(struct drm_plane *plane,
struct drm_scanout_buffer *sb)
{
@@ -1319,8 +1374,13 @@ static int intel_get_scanout_buffer(struct drm_plane *plane,
} else {
int ret;
/* Can't disable tiling if DPT is in use */
- if (intel_fb_uses_dpt(fb))
- return -EOPNOTSUPP;
+ if (intel_fb_uses_dpt(fb)) {
+ if (fb->format->cpp[0] != 4)
+ return -EOPNOTSUPP;
+ intel_fb->panic.tiling = intel_get_tiling_func(fb->modifier);
+ if (!intel_fb->panic.tiling)
+ return -EOPNOTSUPP;
+ }
sb->private = intel_fb;
ret = intel_bo_panic_setup(sb);
if (ret)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 6d6d2d948886..8db6a8c0686c 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -134,6 +134,7 @@ struct intel_panic_data {
struct page **pages;
int page;
void *vaddr;
+ unsigned int (*tiling)(unsigned int x, unsigned int y, unsigned int width);
};
struct intel_framebuffer {
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index ef09ef7b101f..623eff23d9bc 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -2796,15 +2796,22 @@ static void skl_disable_tiling(struct intel_plane *plane)
{
struct intel_plane_state *state = to_intel_plane_state(plane->base.state);
struct intel_display *display = to_intel_display(plane);
- u32 stride = state->view.color_plane[0].scanout_stride / 64;
+ const struct drm_framebuffer *fb = state->hw.fb;
u32 plane_ctl;
plane_ctl = intel_de_read(display, PLANE_CTL(plane->pipe, plane->id));
- plane_ctl &= ~PLANE_CTL_TILED_MASK;
- intel_de_write_fw(display, PLANE_STRIDE(plane->pipe, plane->id),
- PLANE_STRIDE_(stride));
+ if (intel_fb_uses_dpt(fb)) {
+ /* if DPT is enabled, keep tiling, but disable compression */
+ plane_ctl &= ~PLANE_CTL_RENDER_DECOMPRESSION_ENABLE;
+ } else {
+ /* if DPT is not supported, disable tiling, and update stride */
+ u32 stride = state->view.color_plane[0].scanout_stride / 64;
+ plane_ctl &= ~PLANE_CTL_TILED_MASK;
+ intel_de_write_fw(display, PLANE_STRIDE(plane->pipe, plane->id),
+ PLANE_STRIDE_(stride));
+ }
intel_de_write_fw(display, PLANE_CTL(plane->pipe, plane->id), plane_ctl);
intel_de_write_fw(display, PLANE_SURF(plane->pipe, plane->id),
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pages.c b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
index 0bcf4647a2a0..bf7cd7555777 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pages.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pages.c
@@ -384,6 +384,15 @@ static struct page **i915_gem_object_panic_pages(struct drm_i915_gem_object *obj
return pages;
}
+static void i915_gem_object_panic_map_set_pixel(struct drm_scanout_buffer *sb, unsigned int x,
+ unsigned int y, u32 color)
+{
+ struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
+ unsigned int offset = fb->panic.tiling(sb->width, x, y);
+
+ iosys_map_wr(&sb->map[0], offset, u32, color);
+}
+
/*
* The scanout buffer pages are not mapped, so for each pixel,
* use kmap_local_page_try_from_panic() to map the page, and write the pixel.
@@ -396,7 +405,10 @@ static void i915_gem_object_panic_page_set_pixel(struct drm_scanout_buffer *sb,
unsigned int offset;
struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private;
- offset = y * sb->pitch[0] + x * sb->format->cpp[0];
+ if (fb->panic.tiling)
+ offset = fb->panic.tiling(sb->width, x, y);
+ else
+ offset = y * sb->pitch[0] + x * sb->format->cpp[0];
new_page = offset >> PAGE_SHIFT;
offset = offset % PAGE_SIZE;
@@ -431,6 +443,8 @@ int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb)
else
iosys_map_set_vaddr(&sb->map[0], ptr);
+ if (fb->panic.tiling)
+ sb->set_pixel = i915_gem_object_panic_map_set_pixel;
return 0;
}
if (i915_gem_object_has_struct_page(obj)) {
diff --git a/drivers/gpu/drm/xe/display/intel_bo.c b/drivers/gpu/drm/xe/display/intel_bo.c
index 8a6de2dda88c..26db10fc2f48 100644
--- a/drivers/gpu/drm/xe/display/intel_bo.c
+++ b/drivers/gpu/drm/xe/display/intel_bo.c
@@ -87,7 +87,10 @@ static void xe_panic_page_set_pixel(struct drm_scanout_buffer *sb, unsigned int
unsigned int new_page;
unsigned int offset;
- offset = y * sb->pitch[0] + x * sb->format->cpp[0];
+ if (fb->panic.tiling)
+ offset = fb->panic.tiling(sb->width, x, y);
+ else
+ offset = y * sb->pitch[0] + x * sb->format->cpp[0];
new_page = offset >> PAGE_SHIFT;
offset = offset % PAGE_SIZE;
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 09/10] drm/i915/display: Add drm_panic support for 4-tiling with DPT
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (7 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 08/10] drm/i915/display: Add drm_panic support for Y-tiling with DPT Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 9:31 ` [PATCH v10 10/10] drm/i915/psr: Add intel_psr2_panic_force_full_update Jocelyn Falempe
` (5 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
On Alder Lake and later, it's not possible to disable tiling when DPT
is enabled.
So this commit implements 4-Tiling support, to still be able to draw
the panic screen.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
.../gpu/drm/i915/display/intel_atomic_plane.c | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 044328d83df9..086195a11af9 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -1297,6 +1297,25 @@ static unsigned int intel_ytile_get_offset(unsigned int width, unsigned int x, u
return offset;
}
+static unsigned int intel_4tile_get_offset(unsigned int width, unsigned int x, unsigned int y)
+{
+ u32 offset;
+ unsigned int swizzle;
+ unsigned int width_in_blocks = DIV_ROUND_UP(width, 32);
+
+ /* Block offset */
+ offset = ((y / YTILE_HEIGHT) * width_in_blocks + (x / YTILE_WIDTH)) * YTILE_SIZE;
+
+ x = x % YTILE_WIDTH;
+ y = y % YTILE_HEIGHT;
+
+ /* bit order inside a block is y4 y3 x4 y2 x3 x2 y1 y0 x1 x0 */
+ swizzle = (x & 3) | ((y & 3) << 2) | ((x & 0xc) << 2) | (y & 4) << 4 |
+ ((x & 0x10) << 3) | ((y & 0x18) << 5);
+ offset += swizzle * 4;
+ return offset;
+}
+
static void intel_panic_flush(struct drm_plane *plane)
{
struct intel_plane_state *plane_state = to_intel_plane_state(plane->state);
@@ -1340,6 +1359,7 @@ static unsigned int (*intel_get_tiling_func(u64 fb_modifier))(unsigned int width
case I915_FORMAT_MOD_4_TILED_MTL_MC_CCS:
case I915_FORMAT_MOD_4_TILED_BMG_CCS:
case I915_FORMAT_MOD_4_TILED_LNL_CCS:
+ return intel_4tile_get_offset;
case I915_FORMAT_MOD_X_TILED:
case I915_FORMAT_MOD_Yf_TILED:
case I915_FORMAT_MOD_Yf_TILED_CCS:
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH v10 10/10] drm/i915/psr: Add intel_psr2_panic_force_full_update
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (8 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 09/10] drm/i915/display: Add drm_panic support for 4-tiling " Jocelyn Falempe
@ 2025-06-18 9:31 ` Jocelyn Falempe
2025-06-18 10:10 ` ✓ CI.KUnit: success for drm/i915: Add drm_panic support (rev10) Patchwork
` (4 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-18 9:31 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Cc: Jocelyn Falempe
When the panic handler is called, configure the psr to send the full
framebuffer to the monitor, otherwise the panic screen is only
partially visible.
Signed-off-by: Jocelyn Falempe <jfalempe@redhat.com>
---
v8:
* Added in v8
.../gpu/drm/i915/display/intel_atomic_plane.c | 7 +++++++
drivers/gpu/drm/i915/display/intel_psr.c | 20 +++++++++++++++++++
drivers/gpu/drm/i915/display/intel_psr.h | 2 ++
3 files changed, 29 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 086195a11af9..82669367647a 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -58,6 +58,7 @@
#include "intel_fb.h"
#include "intel_fb_pin.h"
#include "intel_fbdev.h"
+#include "intel_psr.h"
#include "skl_scaler.h"
#include "skl_universal_plane.h"
#include "skl_watermark.h"
@@ -1319,6 +1320,7 @@ static unsigned int intel_4tile_get_offset(unsigned int width, unsigned int x, u
static void intel_panic_flush(struct drm_plane *plane)
{
struct intel_plane_state *plane_state = to_intel_plane_state(plane->state);
+ struct intel_crtc_state *crtc_state = to_intel_crtc_state(plane->state->crtc->state);
struct intel_plane *iplane = to_intel_plane(plane);
struct intel_display *display = to_intel_display(iplane);
struct drm_framebuffer *fb = plane_state->hw.fb;
@@ -1326,6 +1328,11 @@ static void intel_panic_flush(struct drm_plane *plane)
intel_bo_panic_finish(intel_fb);
+ if (crtc_state->enable_psr2_sel_fetch) {
+ /* Force a full update for psr2 */
+ intel_psr2_panic_force_full_update(display, crtc_state);
+ }
+
/* Flush the cache and don't disable tiling if it's the fbdev framebuffer.*/
if (intel_fb == intel_fbdev_framebuffer(display->fbdev.fbdev)) {
struct iosys_map map;
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 8bee2f592ae7..73bdc54d7831 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2889,6 +2889,26 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
return 0;
}
+void intel_psr2_panic_force_full_update(struct intel_display *display,
+ struct intel_crtc_state *crtc_state)
+{
+ struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
+ enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+ u32 val = man_trk_ctl_enable_bit_get(display);
+
+ /* SF partial frame enable has to be set even on full update */
+ val |= man_trk_ctl_partial_frame_bit_get(display);
+ val |= man_trk_ctl_continuos_full_frame(display);
+
+ /* Directly write the register */
+ intel_de_write_fw(display, PSR2_MAN_TRK_CTL(display, cpu_transcoder), val);
+
+ if (!crtc_state->enable_psr2_su_region_et)
+ return;
+
+ intel_de_write_fw(display, PIPE_SRCSZ_ERLY_TPT(crtc->pipe), 0);
+}
+
void intel_psr_pre_plane_update(struct intel_atomic_state *state,
struct intel_crtc *crtc)
{
diff --git a/drivers/gpu/drm/i915/display/intel_psr.h b/drivers/gpu/drm/i915/display/intel_psr.h
index 0cf53184f13f..9b061a22361f 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.h
+++ b/drivers/gpu/drm/i915/display/intel_psr.h
@@ -57,6 +57,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
struct intel_crtc *crtc);
void intel_psr2_program_trans_man_trk_ctl(struct intel_dsb *dsb,
const struct intel_crtc_state *crtc_state);
+void intel_psr2_panic_force_full_update(struct intel_display *display,
+ struct intel_crtc_state *crtc_state);
void intel_psr_pause(struct intel_dp *intel_dp);
void intel_psr_resume(struct intel_dp *intel_dp);
bool intel_psr_needs_vblank_notification(const struct intel_crtc_state *crtc_state);
--
2.49.0
^ permalink raw reply related [flat|nested] 24+ messages in thread* ✓ CI.KUnit: success for drm/i915: Add drm_panic support (rev10)
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (9 preceding siblings ...)
2025-06-18 9:31 ` [PATCH v10 10/10] drm/i915/psr: Add intel_psr2_panic_force_full_update Jocelyn Falempe
@ 2025-06-18 10:10 ` Patchwork
2025-06-18 10:25 ` ✗ CI.checksparse: warning " Patchwork
` (3 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-06-18 10:10 UTC (permalink / raw)
To: Jocelyn Falempe; +Cc: intel-xe
== Series Details ==
Series: drm/i915: Add drm_panic support (rev10)
URL : https://patchwork.freedesktop.org/series/141937/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[10:08:54] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:08:59] 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
[10:09:25] Starting KUnit Kernel (1/1)...
[10:09:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:09:26] ================== guc_buf (11 subtests) ===================
[10:09:26] [PASSED] test_smallest
[10:09:26] [PASSED] test_largest
[10:09:26] [PASSED] test_granular
[10:09:26] [PASSED] test_unique
[10:09:26] [PASSED] test_overlap
[10:09:26] [PASSED] test_reusable
[10:09:26] [PASSED] test_too_big
[10:09:26] [PASSED] test_flush
[10:09:26] [PASSED] test_lookup
[10:09:26] [PASSED] test_data
[10:09:26] [PASSED] test_class
[10:09:26] ===================== [PASSED] guc_buf =====================
[10:09:26] =================== guc_dbm (7 subtests) ===================
[10:09:26] [PASSED] test_empty
[10:09:26] [PASSED] test_default
[10:09:26] ======================== test_size ========================
[10:09:26] [PASSED] 4
[10:09:26] [PASSED] 8
[10:09:26] [PASSED] 32
[10:09:26] [PASSED] 256
[10:09:26] ==================== [PASSED] test_size ====================
[10:09:26] ======================= test_reuse ========================
[10:09:26] [PASSED] 4
[10:09:26] [PASSED] 8
[10:09:26] [PASSED] 32
[10:09:26] [PASSED] 256
[10:09:26] =================== [PASSED] test_reuse ====================
[10:09:26] =================== test_range_overlap ====================
[10:09:26] [PASSED] 4
[10:09:26] [PASSED] 8
[10:09:26] [PASSED] 32
[10:09:26] [PASSED] 256
[10:09:26] =============== [PASSED] test_range_overlap ================
[10:09:26] =================== test_range_compact ====================
[10:09:26] [PASSED] 4
[10:09:26] [PASSED] 8
[10:09:26] [PASSED] 32
[10:09:26] [PASSED] 256
[10:09:26] =============== [PASSED] test_range_compact ================
[10:09:26] ==================== test_range_spare =====================
[10:09:26] [PASSED] 4
[10:09:26] [PASSED] 8
[10:09:26] [PASSED] 32
[10:09:26] [PASSED] 256
[10:09:26] ================ [PASSED] test_range_spare =================
[10:09:26] ===================== [PASSED] guc_dbm =====================
[10:09:26] =================== guc_idm (6 subtests) ===================
[10:09:26] [PASSED] bad_init
[10:09:26] [PASSED] no_init
[10:09:26] [PASSED] init_fini
[10:09:26] [PASSED] check_used
[10:09:26] [PASSED] check_quota
[10:09:26] [PASSED] check_all
[10:09:26] ===================== [PASSED] guc_idm =====================
[10:09:26] ================== no_relay (3 subtests) ===================
[10:09:26] [PASSED] xe_drops_guc2pf_if_not_ready
[10:09:26] [PASSED] xe_drops_guc2vf_if_not_ready
[10:09:26] [PASSED] xe_rejects_send_if_not_ready
[10:09:26] ==================== [PASSED] no_relay =====================
[10:09:26] ================== pf_relay (14 subtests) ==================
[10:09:26] [PASSED] pf_rejects_guc2pf_too_short
[10:09:26] [PASSED] pf_rejects_guc2pf_too_long
[10:09:26] [PASSED] pf_rejects_guc2pf_no_payload
[10:09:26] [PASSED] pf_fails_no_payload
[10:09:26] [PASSED] pf_fails_bad_origin
[10:09:26] [PASSED] pf_fails_bad_type
[10:09:26] [PASSED] pf_txn_reports_error
[10:09:26] [PASSED] pf_txn_sends_pf2guc
[10:09:26] [PASSED] pf_sends_pf2guc
[10:09:26] [SKIPPED] pf_loopback_nop
[10:09:26] [SKIPPED] pf_loopback_echo
[10:09:26] [SKIPPED] pf_loopback_fail
[10:09:26] [SKIPPED] pf_loopback_busy
[10:09:26] [SKIPPED] pf_loopback_retry
[10:09:26] ==================== [PASSED] pf_relay =====================
[10:09:26] ================== vf_relay (3 subtests) ===================
[10:09:26] [PASSED] vf_rejects_guc2vf_too_short
[10:09:26] [PASSED] vf_rejects_guc2vf_too_long
[10:09:26] [PASSED] vf_rejects_guc2vf_no_payload
[10:09:26] ==================== [PASSED] vf_relay =====================
[10:09:26] ================= pf_service (11 subtests) =================
[10:09:26] [PASSED] pf_negotiate_any
[10:09:26] [PASSED] pf_negotiate_base_match
[10:09:26] [PASSED] pf_negotiate_base_newer
[10:09:26] [PASSED] pf_negotiate_base_next
[10:09:26] [SKIPPED] pf_negotiate_base_older
[10:09:26] [PASSED] pf_negotiate_base_prev
[10:09:26] [PASSED] pf_negotiate_latest_match
[10:09:26] [PASSED] pf_negotiate_latest_newer
[10:09:26] [PASSED] pf_negotiate_latest_next
[10:09:26] [SKIPPED] pf_negotiate_latest_older
[10:09:26] [SKIPPED] pf_negotiate_latest_prev
[10:09:26] =================== [PASSED] pf_service ====================
[10:09:26] ===================== lmtt (1 subtest) =====================
[10:09:26] ======================== test_ops =========================
[10:09:26] [PASSED] 2-level
[10:09:26] [PASSED] multi-level
[10:09:26] ==================== [PASSED] test_ops =====================
[10:09:26] ====================== [PASSED] lmtt =======================
[10:09:26] =================== xe_mocs (2 subtests) ===================
[10:09:26] ================ xe_live_mocs_kernel_kunit ================
[10:09:26] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[10:09:26] ================ xe_live_mocs_reset_kunit =================
[10:09:26] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[10:09:26] ==================== [SKIPPED] xe_mocs =====================
[10:09:26] ================= xe_migrate (2 subtests) ==================
[10:09:26] ================= xe_migrate_sanity_kunit =================
[10:09:26] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[10:09:26] ================== xe_validate_ccs_kunit ==================
[10:09:26] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[10:09:26] =================== [SKIPPED] xe_migrate ===================
[10:09:26] ================== xe_dma_buf (1 subtest) ==================
[10:09:26] ==================== xe_dma_buf_kunit =====================
[10:09:26] ================ [SKIPPED] xe_dma_buf_kunit ================
[10:09:26] =================== [SKIPPED] xe_dma_buf ===================
[10:09:26] ================= xe_bo_shrink (1 subtest) =================
[10:09:26] =================== xe_bo_shrink_kunit ====================
[10:09:26] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[10:09:26] ================== [SKIPPED] xe_bo_shrink ==================
[10:09:26] ==================== xe_bo (2 subtests) ====================
[10:09:26] ================== xe_ccs_migrate_kunit ===================
[10:09:26] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[10:09:26] ==================== xe_bo_evict_kunit ====================
[10:09:26] =============== [SKIPPED] xe_bo_evict_kunit ================
[10:09:26] ===================== [SKIPPED] xe_bo ======================
[10:09:26] ==================== args (11 subtests) ====================
[10:09:26] [PASSED] count_args_test
[10:09:26] [PASSED] call_args_example
[10:09:26] [PASSED] call_args_test
[10:09:26] [PASSED] drop_first_arg_example
[10:09:26] [PASSED] drop_first_arg_test
[10:09:26] [PASSED] first_arg_example
[10:09:26] [PASSED] first_arg_test
[10:09:26] [PASSED] last_arg_example
[10:09:26] [PASSED] last_arg_test
[10:09:26] [PASSED] pick_arg_example
[10:09:26] [PASSED] sep_comma_example
[10:09:26] ====================== [PASSED] args =======================
[10:09:26] =================== xe_pci (2 subtests) ====================
[10:09:26] ==================== check_graphics_ip ====================
[10:09:26] [PASSED] 12.70 Xe_LPG
[10:09:26] [PASSED] 12.71 Xe_LPG
[10:09:26] [PASSED] 12.74 Xe_LPG+
[10:09:26] [PASSED] 20.01 Xe2_HPG
[10:09:26] [PASSED] 20.02 Xe2_HPG
[10:09:26] [PASSED] 20.04 Xe2_LPG
[10:09:26] [PASSED] 30.00 Xe3_LPG
[10:09:26] [PASSED] 30.01 Xe3_LPG
[10:09:26] ================ [PASSED] check_graphics_ip ================
[10:09:26] ===================== check_media_ip ======================
[10:09:26] [PASSED] 13.00 Xe_LPM+
[10:09:26] [PASSED] 13.01 Xe2_HPM
[10:09:26] [PASSED] 20.00 Xe2_LPM
[10:09:26] [PASSED] 30.00 Xe3_LPM
[10:09:26] ================= [PASSED] check_media_ip ==================
stty: 'standard input': Inappropriate ioctl for device
[10:09:26] ===================== [PASSED] xe_pci ======================
[10:09:26] =================== xe_rtp (2 subtests) ====================
[10:09:26] =============== xe_rtp_process_to_sr_tests ================
[10:09:26] [PASSED] coalesce-same-reg
[10:09:26] [PASSED] no-match-no-add
[10:09:26] [PASSED] match-or
[10:09:26] [PASSED] match-or-xfail
[10:09:26] [PASSED] no-match-no-add-multiple-rules
[10:09:26] [PASSED] two-regs-two-entries
[10:09:26] [PASSED] clr-one-set-other
[10:09:26] [PASSED] set-field
[10:09:26] [PASSED] conflict-duplicate
[10:09:26] [PASSED] conflict-not-disjoint
[10:09:26] [PASSED] conflict-reg-type
[10:09:26] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[10:09:26] ================== xe_rtp_process_tests ===================
[10:09:26] [PASSED] active1
[10:09:26] [PASSED] active2
[10:09:26] [PASSED] active-inactive
[10:09:26] [PASSED] inactive-active
[10:09:26] [PASSED] inactive-1st_or_active-inactive
[10:09:26] [PASSED] inactive-2nd_or_active-inactive
[10:09:26] [PASSED] inactive-last_or_active-inactive
[10:09:26] [PASSED] inactive-no_or_active-inactive
[10:09:26] ============== [PASSED] xe_rtp_process_tests ===============
[10:09:26] ===================== [PASSED] xe_rtp ======================
[10:09:26] ==================== xe_wa (1 subtest) =====================
[10:09:26] ======================== xe_wa_gt =========================
[10:09:26] [PASSED] TIGERLAKE (B0)
[10:09:26] [PASSED] DG1 (A0)
[10:09:26] [PASSED] DG1 (B0)
[10:09:26] [PASSED] ALDERLAKE_S (A0)
[10:09:26] [PASSED] ALDERLAKE_S (B0)
[10:09:26] [PASSED] ALDERLAKE_S (C0)
[10:09:26] [PASSED] ALDERLAKE_S (D0)
[10:09:26] [PASSED] ALDERLAKE_P (A0)
[10:09:26] [PASSED] ALDERLAKE_P (B0)
[10:09:26] [PASSED] ALDERLAKE_P (C0)
[10:09:26] [PASSED] ALDERLAKE_S_RPLS (D0)
[10:09:26] [PASSED] ALDERLAKE_P_RPLU (E0)
[10:09:26] [PASSED] DG2_G10 (C0)
[10:09:26] [PASSED] DG2_G11 (B1)
[10:09:26] [PASSED] DG2_G12 (A1)
[10:09:26] [PASSED] METEORLAKE (g:A0, m:A0)
[10:09:26] [PASSED] METEORLAKE (g:A0, m:A0)
[10:09:26] [PASSED] METEORLAKE (g:A0, m:A0)
[10:09:26] [PASSED] LUNARLAKE (g:A0, m:A0)
[10:09:26] [PASSED] LUNARLAKE (g:B0, m:A0)
[10:09:26] [PASSED] BATTLEMAGE (g:A0, m:A1)
[10:09:26] ==================== [PASSED] xe_wa_gt =====================
[10:09:26] ====================== [PASSED] xe_wa ======================
[10:09:26] ============================================================
[10:09:26] Testing complete. Ran 143 tests: passed: 127, skipped: 16
[10:09:26] Elapsed time: 31.386s total, 4.227s configuring, 26.843s building, 0.301s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[10:09:26] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:09:28] 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
[10:09:49] Starting KUnit Kernel (1/1)...
[10:09:49] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:09:49] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[10:09:49] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[10:09:49] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[10:09:49] =========== drm_validate_clone_mode (2 subtests) ===========
[10:09:49] ============== drm_test_check_in_clone_mode ===============
[10:09:49] [PASSED] in_clone_mode
[10:09:49] [PASSED] not_in_clone_mode
[10:09:49] ========== [PASSED] drm_test_check_in_clone_mode ===========
[10:09:49] =============== drm_test_check_valid_clones ===============
[10:09:49] [PASSED] not_in_clone_mode
[10:09:49] [PASSED] valid_clone
[10:09:49] [PASSED] invalid_clone
[10:09:49] =========== [PASSED] drm_test_check_valid_clones ===========
[10:09:49] ============= [PASSED] drm_validate_clone_mode =============
[10:09:49] ============= drm_validate_modeset (1 subtest) =============
[10:09:49] [PASSED] drm_test_check_connector_changed_modeset
[10:09:49] ============== [PASSED] drm_validate_modeset ===============
[10:09:49] ====== drm_test_bridge_get_current_state (2 subtests) ======
[10:09:49] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[10:09:49] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[10:09:49] ======== [PASSED] drm_test_bridge_get_current_state ========
[10:09:49] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[10:09:49] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[10:09:49] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[10:09:49] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[10:09:49] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[10:09:49] ============== drm_bridge_alloc (2 subtests) ===============
[10:09:49] [PASSED] drm_test_drm_bridge_alloc_basic
[10:09:49] [PASSED] drm_test_drm_bridge_alloc_get_put
[10:09:49] ================ [PASSED] drm_bridge_alloc =================
[10:09:49] ================== drm_buddy (7 subtests) ==================
[10:09:49] [PASSED] drm_test_buddy_alloc_limit
[10:09:49] [PASSED] drm_test_buddy_alloc_optimistic
[10:09:49] [PASSED] drm_test_buddy_alloc_pessimistic
[10:09:49] [PASSED] drm_test_buddy_alloc_pathological
[10:09:49] [PASSED] drm_test_buddy_alloc_contiguous
[10:09:49] [PASSED] drm_test_buddy_alloc_clear
[10:09:49] [PASSED] drm_test_buddy_alloc_range_bias
[10:09:49] ==================== [PASSED] drm_buddy ====================
[10:09:49] ============= drm_cmdline_parser (40 subtests) =============
[10:09:49] [PASSED] drm_test_cmdline_force_d_only
[10:09:49] [PASSED] drm_test_cmdline_force_D_only_dvi
[10:09:49] [PASSED] drm_test_cmdline_force_D_only_hdmi
[10:09:49] [PASSED] drm_test_cmdline_force_D_only_not_digital
[10:09:49] [PASSED] drm_test_cmdline_force_e_only
[10:09:49] [PASSED] drm_test_cmdline_res
[10:09:49] [PASSED] drm_test_cmdline_res_vesa
[10:09:49] [PASSED] drm_test_cmdline_res_vesa_rblank
[10:09:49] [PASSED] drm_test_cmdline_res_rblank
[10:09:49] [PASSED] drm_test_cmdline_res_bpp
[10:09:49] [PASSED] drm_test_cmdline_res_refresh
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[10:09:49] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[10:09:49] [PASSED] drm_test_cmdline_res_margins_force_on
[10:09:49] [PASSED] drm_test_cmdline_res_vesa_margins
[10:09:49] [PASSED] drm_test_cmdline_name
[10:09:49] [PASSED] drm_test_cmdline_name_bpp
[10:09:49] [PASSED] drm_test_cmdline_name_option
[10:09:49] [PASSED] drm_test_cmdline_name_bpp_option
[10:09:49] [PASSED] drm_test_cmdline_rotate_0
[10:09:49] [PASSED] drm_test_cmdline_rotate_90
[10:09:49] [PASSED] drm_test_cmdline_rotate_180
[10:09:49] [PASSED] drm_test_cmdline_rotate_270
[10:09:49] [PASSED] drm_test_cmdline_hmirror
[10:09:49] [PASSED] drm_test_cmdline_vmirror
[10:09:49] [PASSED] drm_test_cmdline_margin_options
[10:09:49] [PASSED] drm_test_cmdline_multiple_options
[10:09:49] [PASSED] drm_test_cmdline_bpp_extra_and_option
[10:09:49] [PASSED] drm_test_cmdline_extra_and_option
[10:09:49] [PASSED] drm_test_cmdline_freestanding_options
[10:09:49] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[10:09:49] [PASSED] drm_test_cmdline_panel_orientation
[10:09:49] ================ drm_test_cmdline_invalid =================
[10:09:49] [PASSED] margin_only
[10:09:49] [PASSED] interlace_only
[10:09:49] [PASSED] res_missing_x
[10:09:49] [PASSED] res_missing_y
[10:09:49] [PASSED] res_bad_y
[10:09:49] [PASSED] res_missing_y_bpp
[10:09:49] [PASSED] res_bad_bpp
[10:09:49] [PASSED] res_bad_refresh
[10:09:49] [PASSED] res_bpp_refresh_force_on_off
[10:09:49] [PASSED] res_invalid_mode
[10:09:49] [PASSED] res_bpp_wrong_place_mode
[10:09:49] [PASSED] name_bpp_refresh
[10:09:49] [PASSED] name_refresh
[10:09:49] [PASSED] name_refresh_wrong_mode
[10:09:49] [PASSED] name_refresh_invalid_mode
[10:09:49] [PASSED] rotate_multiple
[10:09:49] [PASSED] rotate_invalid_val
[10:09:49] [PASSED] rotate_truncated
[10:09:49] [PASSED] invalid_option
[10:09:49] [PASSED] invalid_tv_option
[10:09:49] [PASSED] truncated_tv_option
[10:09:49] ============ [PASSED] drm_test_cmdline_invalid =============
[10:09:49] =============== drm_test_cmdline_tv_options ===============
[10:09:49] [PASSED] NTSC
[10:09:49] [PASSED] NTSC_443
[10:09:49] [PASSED] NTSC_J
[10:09:49] [PASSED] PAL
[10:09:49] [PASSED] PAL_M
[10:09:49] [PASSED] PAL_N
[10:09:49] [PASSED] SECAM
[10:09:49] [PASSED] MONO_525
[10:09:49] [PASSED] MONO_625
[10:09:49] =========== [PASSED] drm_test_cmdline_tv_options ===========
[10:09:49] =============== [PASSED] drm_cmdline_parser ================
[10:09:49] ========== drmm_connector_hdmi_init (20 subtests) ==========
[10:09:49] [PASSED] drm_test_connector_hdmi_init_valid
[10:09:49] [PASSED] drm_test_connector_hdmi_init_bpc_8
[10:09:49] [PASSED] drm_test_connector_hdmi_init_bpc_10
[10:09:49] [PASSED] drm_test_connector_hdmi_init_bpc_12
[10:09:49] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[10:09:49] [PASSED] drm_test_connector_hdmi_init_bpc_null
[10:09:49] [PASSED] drm_test_connector_hdmi_init_formats_empty
[10:09:49] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[10:09:49] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:09:49] [PASSED] supported_formats=0x9 yuv420_allowed=1
[10:09:49] [PASSED] supported_formats=0x9 yuv420_allowed=0
[10:09:49] [PASSED] supported_formats=0x3 yuv420_allowed=1
[10:09:49] [PASSED] supported_formats=0x3 yuv420_allowed=0
[10:09:49] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[10:09:49] [PASSED] drm_test_connector_hdmi_init_null_ddc
[10:09:49] [PASSED] drm_test_connector_hdmi_init_null_product
[10:09:49] [PASSED] drm_test_connector_hdmi_init_null_vendor
[10:09:49] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[10:09:49] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[10:09:49] [PASSED] drm_test_connector_hdmi_init_product_valid
[10:09:49] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[10:09:49] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[10:09:49] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[10:09:49] ========= drm_test_connector_hdmi_init_type_valid =========
[10:09:49] [PASSED] HDMI-A
[10:09:49] [PASSED] HDMI-B
[10:09:49] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[10:09:49] ======== drm_test_connector_hdmi_init_type_invalid ========
[10:09:49] [PASSED] Unknown
[10:09:49] [PASSED] VGA
[10:09:49] [PASSED] DVI-I
[10:09:49] [PASSED] DVI-D
[10:09:49] [PASSED] DVI-A
[10:09:49] [PASSED] Composite
[10:09:49] [PASSED] SVIDEO
[10:09:49] [PASSED] LVDS
[10:09:49] [PASSED] Component
[10:09:49] [PASSED] DIN
[10:09:49] [PASSED] DP
[10:09:49] [PASSED] TV
[10:09:49] [PASSED] eDP
[10:09:49] [PASSED] Virtual
[10:09:49] [PASSED] DSI
[10:09:49] [PASSED] DPI
[10:09:49] [PASSED] Writeback
[10:09:49] [PASSED] SPI
[10:09:49] [PASSED] USB
[10:09:49] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[10:09:49] ============ [PASSED] drmm_connector_hdmi_init =============
[10:09:49] ============= drmm_connector_init (3 subtests) =============
[10:09:49] [PASSED] drm_test_drmm_connector_init
[10:09:49] [PASSED] drm_test_drmm_connector_init_null_ddc
[10:09:49] ========= drm_test_drmm_connector_init_type_valid =========
[10:09:49] [PASSED] Unknown
[10:09:49] [PASSED] VGA
[10:09:49] [PASSED] DVI-I
[10:09:49] [PASSED] DVI-D
[10:09:49] [PASSED] DVI-A
[10:09:49] [PASSED] Composite
[10:09:49] [PASSED] SVIDEO
[10:09:49] [PASSED] LVDS
[10:09:49] [PASSED] Component
[10:09:49] [PASSED] DIN
[10:09:49] [PASSED] DP
[10:09:49] [PASSED] HDMI-A
[10:09:49] [PASSED] HDMI-B
[10:09:49] [PASSED] TV
[10:09:49] [PASSED] eDP
[10:09:49] [PASSED] Virtual
[10:09:49] [PASSED] DSI
[10:09:49] [PASSED] DPI
[10:09:49] [PASSED] Writeback
[10:09:49] [PASSED] SPI
[10:09:49] [PASSED] USB
[10:09:49] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[10:09:49] =============== [PASSED] drmm_connector_init ===============
[10:09:49] ========= drm_connector_dynamic_init (6 subtests) ==========
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_init
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_init_properties
[10:09:49] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[10:09:49] [PASSED] Unknown
[10:09:49] [PASSED] VGA
[10:09:49] [PASSED] DVI-I
[10:09:49] [PASSED] DVI-D
[10:09:49] [PASSED] DVI-A
[10:09:49] [PASSED] Composite
[10:09:49] [PASSED] SVIDEO
[10:09:49] [PASSED] LVDS
[10:09:49] [PASSED] Component
[10:09:49] [PASSED] DIN
[10:09:49] [PASSED] DP
[10:09:49] [PASSED] HDMI-A
[10:09:49] [PASSED] HDMI-B
[10:09:49] [PASSED] TV
[10:09:49] [PASSED] eDP
[10:09:49] [PASSED] Virtual
[10:09:49] [PASSED] DSI
[10:09:49] [PASSED] DPI
[10:09:49] [PASSED] Writeback
[10:09:49] [PASSED] SPI
[10:09:49] [PASSED] USB
[10:09:49] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[10:09:49] ======== drm_test_drm_connector_dynamic_init_name =========
[10:09:49] [PASSED] Unknown
[10:09:49] [PASSED] VGA
[10:09:49] [PASSED] DVI-I
[10:09:49] [PASSED] DVI-D
[10:09:49] [PASSED] DVI-A
[10:09:49] [PASSED] Composite
[10:09:49] [PASSED] SVIDEO
[10:09:49] [PASSED] LVDS
[10:09:49] [PASSED] Component
[10:09:49] [PASSED] DIN
[10:09:49] [PASSED] DP
[10:09:49] [PASSED] HDMI-A
[10:09:49] [PASSED] HDMI-B
[10:09:49] [PASSED] TV
[10:09:49] [PASSED] eDP
[10:09:49] [PASSED] Virtual
[10:09:49] [PASSED] DSI
[10:09:49] [PASSED] DPI
[10:09:49] [PASSED] Writeback
[10:09:49] [PASSED] SPI
[10:09:49] [PASSED] USB
[10:09:49] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[10:09:49] =========== [PASSED] drm_connector_dynamic_init ============
[10:09:49] ==== drm_connector_dynamic_register_early (4 subtests) =====
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[10:09:49] ====== [PASSED] drm_connector_dynamic_register_early =======
[10:09:49] ======= drm_connector_dynamic_register (7 subtests) ========
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[10:09:49] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[10:09:49] ========= [PASSED] drm_connector_dynamic_register ==========
[10:09:49] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[10:09:49] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[10:09:49] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[10:09:49] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[10:09:49] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[10:09:49] ========== drm_test_get_tv_mode_from_name_valid ===========
[10:09:49] [PASSED] NTSC
[10:09:49] [PASSED] NTSC-443
[10:09:49] [PASSED] NTSC-J
[10:09:49] [PASSED] PAL
[10:09:49] [PASSED] PAL-M
[10:09:49] [PASSED] PAL-N
[10:09:49] [PASSED] SECAM
[10:09:49] [PASSED] Mono
[10:09:49] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[10:09:49] [PASSED] drm_test_get_tv_mode_from_name_truncated
[10:09:49] ============ [PASSED] drm_get_tv_mode_from_name ============
[10:09:49] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[10:09:49] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[10:09:49] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[10:09:49] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[10:09:49] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[10:09:49] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[10:09:49] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[10:09:49] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[10:09:49] [PASSED] VIC 96
[10:09:49] [PASSED] VIC 97
[10:09:49] [PASSED] VIC 101
[10:09:49] [PASSED] VIC 102
[10:09:49] [PASSED] VIC 106
[10:09:49] [PASSED] VIC 107
[10:09:49] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[10:09:49] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[10:09:49] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[10:09:49] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[10:09:49] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[10:09:49] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[10:09:49] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[10:09:49] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[10:09:49] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[10:09:49] [PASSED] Automatic
[10:09:49] [PASSED] Full
[10:09:49] [PASSED] Limited 16:235
[10:09:49] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[10:09:49] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[10:09:49] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[10:09:49] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[10:09:49] === drm_test_drm_hdmi_connector_get_output_format_name ====
[10:09:49] [PASSED] RGB
[10:09:49] [PASSED] YUV 4:2:0
[10:09:49] [PASSED] YUV 4:2:2
[10:09:49] [PASSED] YUV 4:4:4
[10:09:49] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[10:09:49] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[10:09:49] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[10:09:49] ============= drm_damage_helper (21 subtests) ==============
[10:09:49] [PASSED] drm_test_damage_iter_no_damage
[10:09:49] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[10:09:49] [PASSED] drm_test_damage_iter_no_damage_src_moved
[10:09:49] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[10:09:49] [PASSED] drm_test_damage_iter_no_damage_not_visible
[10:09:49] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[10:09:49] [PASSED] drm_test_damage_iter_no_damage_no_fb
[10:09:49] [PASSED] drm_test_damage_iter_simple_damage
[10:09:49] [PASSED] drm_test_damage_iter_single_damage
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_outside_src
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_src_moved
[10:09:49] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[10:09:49] [PASSED] drm_test_damage_iter_damage
[10:09:49] [PASSED] drm_test_damage_iter_damage_one_intersect
[10:09:49] [PASSED] drm_test_damage_iter_damage_one_outside
[10:09:49] [PASSED] drm_test_damage_iter_damage_src_moved
[10:09:49] [PASSED] drm_test_damage_iter_damage_not_visible
[10:09:49] ================ [PASSED] drm_damage_helper ================
[10:09:49] ============== drm_dp_mst_helper (3 subtests) ==============
[10:09:49] ============== drm_test_dp_mst_calc_pbn_mode ==============
[10:09:49] [PASSED] Clock 154000 BPP 30 DSC disabled
[10:09:49] [PASSED] Clock 234000 BPP 30 DSC disabled
[10:09:49] [PASSED] Clock 297000 BPP 24 DSC disabled
[10:09:49] [PASSED] Clock 332880 BPP 24 DSC enabled
[10:09:49] [PASSED] Clock 324540 BPP 24 DSC enabled
[10:09:49] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[10:09:49] ============== drm_test_dp_mst_calc_pbn_div ===============
[10:09:49] [PASSED] Link rate 2000000 lane count 4
[10:09:49] [PASSED] Link rate 2000000 lane count 2
[10:09:49] [PASSED] Link rate 2000000 lane count 1
[10:09:49] [PASSED] Link rate 1350000 lane count 4
[10:09:49] [PASSED] Link rate 1350000 lane count 2
[10:09:49] [PASSED] Link rate 1350000 lane count 1
[10:09:49] [PASSED] Link rate 1000000 lane count 4
[10:09:49] [PASSED] Link rate 1000000 lane count 2
[10:09:49] [PASSED] Link rate 1000000 lane count 1
[10:09:49] [PASSED] Link rate 810000 lane count 4
[10:09:49] [PASSED] Link rate 810000 lane count 2
[10:09:49] [PASSED] Link rate 810000 lane count 1
[10:09:49] [PASSED] Link rate 540000 lane count 4
[10:09:49] [PASSED] Link rate 540000 lane count 2
[10:09:49] [PASSED] Link rate 540000 lane count 1
[10:09:49] [PASSED] Link rate 270000 lane count 4
[10:09:49] [PASSED] Link rate 270000 lane count 2
[10:09:49] [PASSED] Link rate 270000 lane count 1
[10:09:49] [PASSED] Link rate 162000 lane count 4
[10:09:49] [PASSED] Link rate 162000 lane count 2
[10:09:49] [PASSED] Link rate 162000 lane count 1
[10:09:49] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[10:09:49] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[10:09:49] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[10:09:49] [PASSED] DP_POWER_UP_PHY with port number
[10:09:49] [PASSED] DP_POWER_DOWN_PHY with port number
[10:09:49] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[10:09:49] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[10:09:49] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[10:09:49] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[10:09:49] [PASSED] DP_QUERY_PAYLOAD with port number
[10:09:49] [PASSED] DP_QUERY_PAYLOAD with VCPI
[10:09:49] [PASSED] DP_REMOTE_DPCD_READ with port number
[10:09:49] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[10:09:49] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[10:09:49] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[10:09:49] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[10:09:49] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[10:09:49] [PASSED] DP_REMOTE_I2C_READ with port number
[10:09:49] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[10:09:49] [PASSED] DP_REMOTE_I2C_READ with transactions array
[10:09:49] [PASSED] DP_REMOTE_I2C_WRITE with port number
[10:09:49] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[10:09:49] [PASSED] DP_REMOTE_I2C_WRITE with data array
[10:09:49] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[10:09:49] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[10:09:49] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[10:09:49] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[10:09:49] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[10:09:49] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[10:09:49] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[10:09:49] ================ [PASSED] drm_dp_mst_helper ================
[10:09:49] ================== drm_exec (7 subtests) ===================
[10:09:49] [PASSED] sanitycheck
[10:09:49] [PASSED] test_lock
[10:09:49] [PASSED] test_lock_unlock
[10:09:49] [PASSED] test_duplicates
[10:09:49] [PASSED] test_prepare
[10:09:49] [PASSED] test_prepare_array
[10:09:49] [PASSED] test_multiple_loops
[10:09:49] ==================== [PASSED] drm_exec =====================
[10:09:49] =========== drm_format_helper_test (17 subtests) ===========
[10:09:49] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[10:09:49] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[10:09:49] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[10:09:49] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[10:09:49] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[10:09:49] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[10:09:49] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[10:09:49] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[10:09:49] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[10:09:49] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[10:09:49] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[10:09:49] ============== drm_test_fb_xrgb8888_to_mono ===============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[10:09:49] ==================== drm_test_fb_swab =====================
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ================ [PASSED] drm_test_fb_swab =================
[10:09:49] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[10:09:49] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[10:09:49] [PASSED] single_pixel_source_buffer
[10:09:49] [PASSED] single_pixel_clip_rectangle
[10:09:49] [PASSED] well_known_colors
[10:09:49] [PASSED] destination_pitch
[10:09:49] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[10:09:49] ================= drm_test_fb_clip_offset =================
[10:09:49] [PASSED] pass through
[10:09:49] [PASSED] horizontal offset
[10:09:49] [PASSED] vertical offset
[10:09:49] [PASSED] horizontal and vertical offset
[10:09:49] [PASSED] horizontal offset (custom pitch)
[10:09:49] [PASSED] vertical offset (custom pitch)
[10:09:49] [PASSED] horizontal and vertical offset (custom pitch)
[10:09:49] ============= [PASSED] drm_test_fb_clip_offset =============
[10:09:49] =================== drm_test_fb_memcpy ====================
[10:09:49] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[10:09:49] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[10:09:49] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[10:09:49] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[10:09:49] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[10:09:49] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[10:09:49] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[10:09:49] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[10:09:49] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[10:09:49] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[10:09:49] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[10:09:49] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[10:09:49] =============== [PASSED] drm_test_fb_memcpy ================
[10:09:49] ============= [PASSED] drm_format_helper_test ==============
[10:09:49] ================= drm_format (18 subtests) =================
[10:09:49] [PASSED] drm_test_format_block_width_invalid
[10:09:49] [PASSED] drm_test_format_block_width_one_plane
[10:09:49] [PASSED] drm_test_format_block_width_two_plane
[10:09:49] [PASSED] drm_test_format_block_width_three_plane
[10:09:49] [PASSED] drm_test_format_block_width_tiled
[10:09:49] [PASSED] drm_test_format_block_height_invalid
[10:09:49] [PASSED] drm_test_format_block_height_one_plane
[10:09:49] [PASSED] drm_test_format_block_height_two_plane
[10:09:49] [PASSED] drm_test_format_block_height_three_plane
[10:09:49] [PASSED] drm_test_format_block_height_tiled
[10:09:49] [PASSED] drm_test_format_min_pitch_invalid
[10:09:49] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[10:09:49] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[10:09:49] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[10:09:49] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[10:09:49] [PASSED] drm_test_format_min_pitch_two_plane
[10:09:49] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[10:09:49] [PASSED] drm_test_format_min_pitch_tiled
[10:09:49] =================== [PASSED] drm_format ====================
[10:09:49] ============== drm_framebuffer (10 subtests) ===============
[10:09:49] ========== drm_test_framebuffer_check_src_coords ==========
[10:09:49] [PASSED] Success: source fits into fb
[10:09:49] [PASSED] Fail: overflowing fb with x-axis coordinate
[10:09:49] [PASSED] Fail: overflowing fb with y-axis coordinate
[10:09:49] [PASSED] Fail: overflowing fb with source width
[10:09:49] [PASSED] Fail: overflowing fb with source height
[10:09:49] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[10:09:49] [PASSED] drm_test_framebuffer_cleanup
[10:09:49] =============== drm_test_framebuffer_create ===============
[10:09:49] [PASSED] ABGR8888 normal sizes
[10:09:49] [PASSED] ABGR8888 max sizes
[10:09:49] [PASSED] ABGR8888 pitch greater than min required
[10:09:49] [PASSED] ABGR8888 pitch less than min required
[10:09:49] [PASSED] ABGR8888 Invalid width
[10:09:49] [PASSED] ABGR8888 Invalid buffer handle
[10:09:49] [PASSED] No pixel format
[10:09:49] [PASSED] ABGR8888 Width 0
[10:09:49] [PASSED] ABGR8888 Height 0
[10:09:49] [PASSED] ABGR8888 Out of bound height * pitch combination
[10:09:49] [PASSED] ABGR8888 Large buffer offset
[10:09:49] [PASSED] ABGR8888 Buffer offset for inexistent plane
[10:09:49] [PASSED] ABGR8888 Invalid flag
[10:09:49] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[10:09:49] [PASSED] ABGR8888 Valid buffer modifier
[10:09:49] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[10:09:49] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] NV12 Normal sizes
[10:09:49] [PASSED] NV12 Max sizes
[10:09:49] [PASSED] NV12 Invalid pitch
[10:09:49] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[10:09:49] [PASSED] NV12 different modifier per-plane
[10:09:49] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[10:09:49] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] NV12 Modifier for inexistent plane
[10:09:49] [PASSED] NV12 Handle for inexistent plane
[10:09:49] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[10:09:49] [PASSED] YVU420 Normal sizes
[10:09:49] [PASSED] YVU420 Max sizes
[10:09:49] [PASSED] YVU420 Invalid pitch
[10:09:49] [PASSED] YVU420 Different pitches
[10:09:49] [PASSED] YVU420 Different buffer offsets/pitches
[10:09:49] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[10:09:49] [PASSED] YVU420 Valid modifier
[10:09:49] [PASSED] YVU420 Different modifiers per plane
[10:09:49] [PASSED] YVU420 Modifier for inexistent plane
[10:09:49] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[10:09:49] [PASSED] X0L2 Normal sizes
[10:09:49] [PASSED] X0L2 Max sizes
[10:09:49] [PASSED] X0L2 Invalid pitch
[10:09:49] [PASSED] X0L2 Pitch greater than minimum required
[10:09:49] [PASSED] X0L2 Handle for inexistent plane
[10:09:49] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[10:09:49] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[10:09:49] [PASSED] X0L2 Valid modifier
[10:09:49] [PASSED] X0L2 Modifier for inexistent plane
[10:09:49] =========== [PASSED] drm_test_framebuffer_create ===========
[10:09:49] [PASSED] drm_test_framebuffer_free
[10:09:49] [PASSED] drm_test_framebuffer_init
[10:09:49] [PASSED] drm_test_framebuffer_init_bad_format
[10:09:49] [PASSED] drm_test_framebuffer_init_dev_mismatch
[10:09:49] [PASSED] drm_test_framebuffer_lookup
[10:09:49] [PASSED] drm_test_framebuffer_lookup_inexistent
[10:09:49] [PASSED] drm_test_framebuffer_modifiers_not_supported
[10:09:49] ================= [PASSED] drm_framebuffer =================
[10:09:49] ================ drm_gem_shmem (8 subtests) ================
[10:09:49] [PASSED] drm_gem_shmem_test_obj_create
[10:09:49] [PASSED] drm_gem_shmem_test_obj_create_private
[10:09:49] [PASSED] drm_gem_shmem_test_pin_pages
[10:09:49] [PASSED] drm_gem_shmem_test_vmap
[10:09:49] [PASSED] drm_gem_shmem_test_get_pages_sgt
[10:09:49] [PASSED] drm_gem_shmem_test_get_sg_table
[10:09:49] [PASSED] drm_gem_shmem_test_madvise
[10:09:49] [PASSED] drm_gem_shmem_test_purge
[10:09:49] ================== [PASSED] drm_gem_shmem ==================
[10:09:49] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[10:09:49] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[10:09:49] [PASSED] Automatic
[10:09:49] [PASSED] Full
[10:09:49] [PASSED] Limited 16:235
[10:09:49] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[10:09:49] [PASSED] drm_test_check_disable_connector
[10:09:49] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[10:09:49] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[10:09:49] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[10:09:49] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[10:09:49] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[10:09:49] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[10:09:49] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[10:09:49] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[10:09:49] [PASSED] drm_test_check_output_bpc_dvi
[10:09:49] [PASSED] drm_test_check_output_bpc_format_vic_1
[10:09:49] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[10:09:49] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[10:09:49] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[10:09:49] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[10:09:49] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[10:09:49] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[10:09:49] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[10:09:49] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[10:09:49] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[10:09:49] [PASSED] drm_test_check_broadcast_rgb_value
[10:09:49] [PASSED] drm_test_check_bpc_8_value
[10:09:49] [PASSED] drm_test_check_bpc_10_value
[10:09:49] [PASSED] drm_test_check_bpc_12_value
[10:09:49] [PASSED] drm_test_check_format_value
[10:09:49] [PASSED] drm_test_check_tmds_char_value
[10:09:49] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[10:09:49] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[10:09:49] [PASSED] drm_test_check_mode_valid
[10:09:49] [PASSED] drm_test_check_mode_valid_reject
[10:09:49] [PASSED] drm_test_check_mode_valid_reject_rate
[10:09:49] [PASSED] drm_test_check_mode_valid_reject_max_clock
[10:09:49] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[10:09:49] ================= drm_managed (2 subtests) =================
[10:09:49] [PASSED] drm_test_managed_release_action
[10:09:49] [PASSED] drm_test_managed_run_action
[10:09:49] =================== [PASSED] drm_managed ===================
[10:09:49] =================== drm_mm (6 subtests) ====================
[10:09:49] [PASSED] drm_test_mm_init
[10:09:49] [PASSED] drm_test_mm_debug
[10:09:49] [PASSED] drm_test_mm_align32
[10:09:49] [PASSED] drm_test_mm_align64
[10:09:49] [PASSED] drm_test_mm_lowest
[10:09:49] [PASSED] drm_test_mm_highest
[10:09:49] ===================== [PASSED] drm_mm ======================
[10:09:49] ============= drm_modes_analog_tv (5 subtests) =============
[10:09:49] [PASSED] drm_test_modes_analog_tv_mono_576i
[10:09:49] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[10:09:49] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[10:09:49] [PASSED] drm_test_modes_analog_tv_pal_576i
[10:09:49] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[10:09:49] =============== [PASSED] drm_modes_analog_tv ===============
[10:09:49] ============== drm_plane_helper (2 subtests) ===============
[10:09:49] =============== drm_test_check_plane_state ================
[10:09:49] [PASSED] clipping_simple
[10:09:49] [PASSED] clipping_rotate_reflect
[10:09:49] [PASSED] positioning_simple
[10:09:49] [PASSED] upscaling
[10:09:49] [PASSED] downscaling
[10:09:49] [PASSED] rounding1
[10:09:49] [PASSED] rounding2
[10:09:49] [PASSED] rounding3
[10:09:49] [PASSED] rounding4
[10:09:49] =========== [PASSED] drm_test_check_plane_state ============
[10:09:49] =========== drm_test_check_invalid_plane_state ============
[10:09:49] [PASSED] positioning_invalid
[10:09:49] [PASSED] upscaling_invalid
[10:09:49] [PASSED] downscaling_invalid
[10:09:49] ======= [PASSED] drm_test_check_invalid_plane_state ========
[10:09:49] ================ [PASSED] drm_plane_helper =================
[10:09:49] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[10:09:49] ====== drm_test_connector_helper_tv_get_modes_check =======
[10:09:49] [PASSED] None
[10:09:49] [PASSED] PAL
[10:09:49] [PASSED] NTSC
[10:09:49] [PASSED] Both, NTSC Default
[10:09:49] [PASSED] Both, PAL Default
[10:09:49] [PASSED] Both, NTSC Default, with PAL on command-line
[10:09:49] [PASSED] Both, PAL Default, with NTSC on command-line
[10:09:49] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[10:09:49] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[10:09:49] ================== drm_rect (9 subtests) ===================
[10:09:49] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[10:09:49] [PASSED] drm_test_rect_clip_scaled_not_clipped
[10:09:49] [PASSED] drm_test_rect_clip_scaled_clipped
[10:09:49] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[10:09:49] ================= drm_test_rect_intersect =================
[10:09:49] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[10:09:49] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[10:09:49] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[10:09:49] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[10:09:49] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[10:09:49] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[10:09:49] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[10:09:49] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[10:09:49] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[10:09:49] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[10:09:49] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[10:09:49] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[10:09:49] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[10:09:49] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[10:09:49] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[10:09:49] ============= [PASSED] drm_test_rect_intersect =============
[10:09:49] ================ drm_test_rect_calc_hscale ================
[10:09:49] [PASSED] normal use
[10:09:49] [PASSED] out of max range
[10:09:49] [PASSED] out of min range
[10:09:49] [PASSED] zero dst
[10:09:49] [PASSED] negative src
[10:09:49] [PASSED] negative dst
[10:09:49] ============ [PASSED] drm_test_rect_calc_hscale ============
[10:09:49] ================ drm_test_rect_calc_vscale ================
[10:09:49] [PASSED] normal use
[10:09:49] [PASSED] out of max range
[10:09:49] [PASSED] out of min range
[10:09:49] [PASSED] zero dst
[10:09:49] [PASSED] negative src
[10:09:49] [PASSED] negative dst
[10:09:49] ============ [PASSED] drm_test_rect_calc_vscale ============
[10:09:49] ================== drm_test_rect_rotate ===================
[10:09:49] [PASSED] reflect-x
[10:09:49] [PASSED] reflect-y
[10:09:49] [PASSED] rotate-0
[10:09:49] [PASSED] rotate-90
[10:09:49] [PASSED] rotate-180
[10:09:49] [PASSED] rotate-270
stty: 'standard input': Inappropriate ioctl for device
[10:09:49] ============== [PASSED] drm_test_rect_rotate ===============
[10:09:49] ================ drm_test_rect_rotate_inv =================
[10:09:49] [PASSED] reflect-x
[10:09:49] [PASSED] reflect-y
[10:09:49] [PASSED] rotate-0
[10:09:49] [PASSED] rotate-90
[10:09:49] [PASSED] rotate-180
[10:09:49] [PASSED] rotate-270
[10:09:49] ============ [PASSED] drm_test_rect_rotate_inv =============
[10:09:49] ==================== [PASSED] drm_rect =====================
[10:09:49] ============ drm_sysfb_modeset_test (1 subtest) ============
[10:09:49] ============ drm_test_sysfb_build_fourcc_list =============
[10:09:49] [PASSED] no native formats
[10:09:49] [PASSED] XRGB8888 as native format
[10:09:49] [PASSED] remove duplicates
[10:09:49] [PASSED] convert alpha formats
[10:09:49] [PASSED] random formats
[10:09:49] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[10:09:49] ============= [PASSED] drm_sysfb_modeset_test ==============
[10:09:49] ============================================================
[10:09:49] Testing complete. Ran 616 tests: passed: 616
[10:09:49] Elapsed time: 23.213s total, 1.701s configuring, 21.344s building, 0.145s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[10:09:49] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[10:09:51] 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
[10:09:59] Starting KUnit Kernel (1/1)...
[10:09:59] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[10:09:59] ================= ttm_device (5 subtests) ==================
[10:09:59] [PASSED] ttm_device_init_basic
[10:09:59] [PASSED] ttm_device_init_multiple
[10:09:59] [PASSED] ttm_device_fini_basic
[10:09:59] [PASSED] ttm_device_init_no_vma_man
[10:09:59] ================== ttm_device_init_pools ==================
[10:09:59] [PASSED] No DMA allocations, no DMA32 required
[10:09:59] [PASSED] DMA allocations, DMA32 required
[10:09:59] [PASSED] No DMA allocations, DMA32 required
[10:09:59] [PASSED] DMA allocations, no DMA32 required
[10:09:59] ============== [PASSED] ttm_device_init_pools ==============
[10:09:59] =================== [PASSED] ttm_device ====================
[10:09:59] ================== ttm_pool (8 subtests) ===================
[10:09:59] ================== ttm_pool_alloc_basic ===================
[10:09:59] [PASSED] One page
[10:09:59] [PASSED] More than one page
[10:09:59] [PASSED] Above the allocation limit
[10:09:59] [PASSED] One page, with coherent DMA mappings enabled
[10:09:59] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:09:59] ============== [PASSED] ttm_pool_alloc_basic ===============
[10:09:59] ============== ttm_pool_alloc_basic_dma_addr ==============
[10:09:59] [PASSED] One page
[10:09:59] [PASSED] More than one page
[10:09:59] [PASSED] Above the allocation limit
[10:09:59] [PASSED] One page, with coherent DMA mappings enabled
[10:09:59] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[10:09:59] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[10:09:59] [PASSED] ttm_pool_alloc_order_caching_match
[10:09:59] [PASSED] ttm_pool_alloc_caching_mismatch
[10:09:59] [PASSED] ttm_pool_alloc_order_mismatch
[10:09:59] [PASSED] ttm_pool_free_dma_alloc
[10:09:59] [PASSED] ttm_pool_free_no_dma_alloc
[10:09:59] [PASSED] ttm_pool_fini_basic
[10:09:59] ==================== [PASSED] ttm_pool =====================
[10:09:59] ================ ttm_resource (8 subtests) =================
[10:09:59] ================= ttm_resource_init_basic =================
[10:09:59] [PASSED] Init resource in TTM_PL_SYSTEM
[10:09:59] [PASSED] Init resource in TTM_PL_VRAM
[10:09:59] [PASSED] Init resource in a private placement
[10:09:59] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[10:09:59] ============= [PASSED] ttm_resource_init_basic =============
[10:09:59] [PASSED] ttm_resource_init_pinned
[10:09:59] [PASSED] ttm_resource_fini_basic
[10:09:59] [PASSED] ttm_resource_manager_init_basic
[10:09:59] [PASSED] ttm_resource_manager_usage_basic
[10:09:59] [PASSED] ttm_resource_manager_set_used_basic
[10:09:59] [PASSED] ttm_sys_man_alloc_basic
[10:09:59] [PASSED] ttm_sys_man_free_basic
[10:09:59] ================== [PASSED] ttm_resource ===================
[10:09:59] =================== ttm_tt (15 subtests) ===================
[10:09:59] ==================== ttm_tt_init_basic ====================
[10:09:59] [PASSED] Page-aligned size
[10:09:59] [PASSED] Extra pages requested
[10:09:59] ================ [PASSED] ttm_tt_init_basic ================
[10:09:59] [PASSED] ttm_tt_init_misaligned
[10:09:59] [PASSED] ttm_tt_fini_basic
[10:09:59] [PASSED] ttm_tt_fini_sg
[10:09:59] [PASSED] ttm_tt_fini_shmem
[10:09:59] [PASSED] ttm_tt_create_basic
[10:09:59] [PASSED] ttm_tt_create_invalid_bo_type
[10:09:59] [PASSED] ttm_tt_create_ttm_exists
[10:09:59] [PASSED] ttm_tt_create_failed
[10:09:59] [PASSED] ttm_tt_destroy_basic
[10:09:59] [PASSED] ttm_tt_populate_null_ttm
[10:09:59] [PASSED] ttm_tt_populate_populated_ttm
[10:09:59] [PASSED] ttm_tt_unpopulate_basic
[10:09:59] [PASSED] ttm_tt_unpopulate_empty_ttm
[10:09:59] [PASSED] ttm_tt_swapin_basic
[10:09:59] ===================== [PASSED] ttm_tt ======================
[10:09:59] =================== ttm_bo (14 subtests) ===================
[10:09:59] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[10:09:59] [PASSED] Cannot be interrupted and sleeps
[10:09:59] [PASSED] Cannot be interrupted, locks straight away
[10:09:59] [PASSED] Can be interrupted, sleeps
[10:09:59] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[10:09:59] [PASSED] ttm_bo_reserve_locked_no_sleep
[10:09:59] [PASSED] ttm_bo_reserve_no_wait_ticket
[10:09:59] [PASSED] ttm_bo_reserve_double_resv
[10:09:59] [PASSED] ttm_bo_reserve_interrupted
[10:09:59] [PASSED] ttm_bo_reserve_deadlock
[10:09:59] [PASSED] ttm_bo_unreserve_basic
[10:09:59] [PASSED] ttm_bo_unreserve_pinned
[10:09:59] [PASSED] ttm_bo_unreserve_bulk
[10:09:59] [PASSED] ttm_bo_put_basic
[10:09:59] [PASSED] ttm_bo_put_shared_resv
[10:09:59] [PASSED] ttm_bo_pin_basic
[10:09:59] [PASSED] ttm_bo_pin_unpin_resource
[10:09:59] [PASSED] ttm_bo_multiple_pin_one_unpin
[10:09:59] ===================== [PASSED] ttm_bo ======================
[10:09:59] ============== ttm_bo_validate (22 subtests) ===============
[10:09:59] ============== ttm_bo_init_reserved_sys_man ===============
[10:09:59] [PASSED] Buffer object for userspace
[10:09:59] [PASSED] Kernel buffer object
[10:09:59] [PASSED] Shared buffer object
[10:09:59] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[10:09:59] ============== ttm_bo_init_reserved_mock_man ==============
[10:09:59] [PASSED] Buffer object for userspace
[10:09:59] [PASSED] Kernel buffer object
[10:09:59] [PASSED] Shared buffer object
[10:09:59] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[10:09:59] [PASSED] ttm_bo_init_reserved_resv
[10:09:59] ================== ttm_bo_validate_basic ==================
[10:09:59] [PASSED] Buffer object for userspace
[10:09:59] [PASSED] Kernel buffer object
[10:09:59] [PASSED] Shared buffer object
[10:09:59] ============== [PASSED] ttm_bo_validate_basic ==============
[10:09:59] [PASSED] ttm_bo_validate_invalid_placement
[10:09:59] ============= ttm_bo_validate_same_placement ==============
[10:09:59] [PASSED] System manager
[10:09:59] [PASSED] VRAM manager
[10:09:59] ========= [PASSED] ttm_bo_validate_same_placement ==========
[10:09:59] [PASSED] ttm_bo_validate_failed_alloc
[10:09:59] [PASSED] ttm_bo_validate_pinned
[10:09:59] [PASSED] ttm_bo_validate_busy_placement
[10:09:59] ================ ttm_bo_validate_multihop =================
[10:09:59] [PASSED] Buffer object for userspace
[10:09:59] [PASSED] Kernel buffer object
[10:09:59] [PASSED] Shared buffer object
[10:09:59] ============ [PASSED] ttm_bo_validate_multihop =============
[10:09:59] ========== ttm_bo_validate_no_placement_signaled ==========
[10:09:59] [PASSED] Buffer object in system domain, no page vector
[10:09:59] [PASSED] Buffer object in system domain with an existing page vector
[10:09:59] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[10:09:59] ======== ttm_bo_validate_no_placement_not_signaled ========
[10:09:59] [PASSED] Buffer object for userspace
[10:09:59] [PASSED] Kernel buffer object
[10:09:59] [PASSED] Shared buffer object
[10:09:59] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[10:09:59] [PASSED] ttm_bo_validate_move_fence_signaled
[10:09:59] ========= ttm_bo_validate_move_fence_not_signaled =========
[10:09:59] [PASSED] Waits for GPU
[10:09:59] [PASSED] Tries to lock straight away
[10:09:59] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[10:09:59] [PASSED] ttm_bo_validate_swapout
[10:09:59] [PASSED] ttm_bo_validate_happy_evict
[10:09:59] [PASSED] ttm_bo_validate_all_pinned_evict
[10:09:59] [PASSED] ttm_bo_validate_allowed_only_evict
[10:09:59] [PASSED] ttm_bo_validate_deleted_evict
[10:09:59] [PASSED] ttm_bo_validate_busy_domain_evict
[10:09:59] [PASSED] ttm_bo_validate_evict_gutting
[10:09:59] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[10:09:59] ================= [PASSED] ttm_bo_validate =================
[10:09:59] ============================================================
[10:09:59] Testing complete. Ran 102 tests: passed: 102
[10:09:59] Elapsed time: 10.156s total, 1.666s configuring, 7.824s building, 0.569s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 24+ messages in thread* ✗ CI.checksparse: warning for drm/i915: Add drm_panic support (rev10)
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (10 preceding siblings ...)
2025-06-18 10:10 ` ✓ CI.KUnit: success for drm/i915: Add drm_panic support (rev10) Patchwork
@ 2025-06-18 10:25 ` Patchwork
2025-06-18 10:47 ` ✓ Xe.CI.BAT: success " Patchwork
` (2 subsequent siblings)
14 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-06-18 10:25 UTC (permalink / raw)
To: Jocelyn Falempe; +Cc: intel-xe
== Series Details ==
Series: drm/i915: Add drm_panic support (rev10)
URL : https://patchwork.freedesktop.org/series/141937/
State : warning
== Summary ==
+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast 55cbd02fa784e94b4f658c1e547371ac804c62a9
Sparse version: 0.6.4 (Ubuntu: 0.6.4-4ubuntu3)
Fast mode used, each commit won't be checked separately.
+drivers/gpu/drm/drm_drv.c:452:6: warning: context imbalance in 'drm_dev_enter' - different lock contexts for basic block
+drivers/gpu/drm/drm_drv.c: note: in included file (through include/linux/notifier.h, arch/x86/include/asm/uprobes.h, include/linux/uprobes.h, include/linux/mm_types.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
+drivers/gpu/drm/i915/display/intel_display_types.h:2006:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2006:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2006:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2006:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2006:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2006:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_display_types.h:2019:24: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/display/intel_hdcp.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_hotplug.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_panel.c:505:30: warning: symbol 'dummy_panel_funcs' was not declared. Should it be static?
+drivers/gpu/drm/i915/display/intel_pps.c: note: in included file:
+drivers/gpu/drm/i915/display/intel_snps_hdmi_pll.c:106:17: warning: cast truncates bits from constant value (e8d4a51000 becomes d4a51000)
+drivers/gpu/drm/i915/gt/intel_reset.c:1572:12: warning: context imbalance in '_intel_gt_reset_lock' - different lock contexts for basic block
+drivers/gpu/drm/i915/gt/intel_sseu.c:598:17: error: too long token expansion
+drivers/gpu/drm/i915/i915_active.c:1063:16: warning: context imbalance in '__i915_active_fence_set' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: error: incompatible types in comparison expression (different address spaces):
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: expected struct list_head const *list
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: got struct list_head [noderef] __rcu *pos
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: struct list_head [noderef] __rcu *
+drivers/gpu/drm/i915/i915_drm_client.c:92:9: warning: incorrect type in argument 1 (different address spaces)
+drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:492:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:500:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:505:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:543:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:551:16: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:556:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:600:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:603:15: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:607:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/i915_irq.c:614:9: warning: unreplaced symbol '<noident>'
+drivers/gpu/drm/i915/intel_uncore.c:1927:1: warning: context imbalance in 'fwtable_read8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1928:1: warning: context imbalance in 'fwtable_read16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1929:1: warning: context imbalance in 'fwtable_read32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1930:1: warning: context imbalance in 'fwtable_read64' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1995:1: warning: context imbalance in 'gen6_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1996:1: warning: context imbalance in 'gen6_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:1997:1: warning: context imbalance in 'gen6_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2017:1: warning: context imbalance in 'fwtable_write8' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2018:1: warning: context imbalance in 'fwtable_write16' - unexpected unlock
+drivers/gpu/drm/i915/intel_uncore.c:2019:1: warning: context imbalance in 'fwtable_write32' - unexpected unlock
+drivers/gpu/drm/i915/intel_wakeref.c:145:19: warning: context imbalance in 'wakeref_auto_timeout' - unexpected unlock
+drivers/gpu/drm/ttm/ttm_bo.c:1197:31: warning: symbol 'ttm_swap_ops' was not declared. Should it be static?
+drivers/gpu/drm/ttm/ttm_bo_util.c:328:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:328:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:328:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:331:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:331:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:331:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:334:38: expected void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:334:38: got void [noderef] __iomem *
+drivers/gpu/drm/ttm/ttm_bo_util.c:334:38: warning: incorrect type in assignment (different address spaces)
+drivers/gpu/drm/ttm/ttm_bo_util.c:467:28: expected void volatile [noderef] __iomem *addr
+drivers/gpu/drm/ttm/ttm_bo_util.c:467:28: got void *virtual
+drivers/gpu/drm/ttm/ttm_bo_util.c:467:28: warning: incorrect type in argument 1 (different address spaces)
+./include/linux/srcu.h:400:9: warning: context imbalance in 'drm_dev_exit' - unexpected unlock
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 24+ messages in thread* ✓ Xe.CI.BAT: success for drm/i915: Add drm_panic support (rev10)
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (11 preceding siblings ...)
2025-06-18 10:25 ` ✗ CI.checksparse: warning " Patchwork
@ 2025-06-18 10:47 ` Patchwork
2025-06-18 22:25 ` ✗ Xe.CI.Full: failure " Patchwork
2025-06-23 7:40 ` [PATCH v10 00/10] drm/i915: Add drm_panic support Maarten Lankhorst
14 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-06-18 10:47 UTC (permalink / raw)
To: Jocelyn Falempe; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 951 bytes --]
== Series Details ==
Series: drm/i915: Add drm_panic support (rev10)
URL : https://patchwork.freedesktop.org/series/141937/
State : success
== Summary ==
CI Bug Log - changes from xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9_BAT -> xe-pw-141937v10_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (9 -> 8)
------------------------------
Missing (1): bat-adlp-vm
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9 -> xe-pw-141937v10
IGT_8415: bd8a24cf051c1efb81c76cf58a56151990a4a8ea @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9: 55cbd02fa784e94b4f658c1e547371ac804c62a9
xe-pw-141937v10: 141937v10
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/index.html
[-- Attachment #2: Type: text/html, Size: 1500 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread* ✗ Xe.CI.Full: failure for drm/i915: Add drm_panic support (rev10)
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (12 preceding siblings ...)
2025-06-18 10:47 ` ✓ Xe.CI.BAT: success " Patchwork
@ 2025-06-18 22:25 ` Patchwork
2025-06-23 7:40 ` [PATCH v10 00/10] drm/i915: Add drm_panic support Maarten Lankhorst
14 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-06-18 22:25 UTC (permalink / raw)
To: Jocelyn Falempe; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 73406 bytes --]
== Series Details ==
Series: drm/i915: Add drm_panic support (rev10)
URL : https://patchwork.freedesktop.org/series/141937/
State : failure
== Summary ==
CI Bug Log - changes from xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9_FULL -> xe-pw-141937v10_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with xe-pw-141937v10_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in xe-pw-141937v10_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-141937v10_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@xe_pm@s4-d3hot-basic-exec:
- shard-bmg: [PASS][1] -> [ABORT][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-5/igt@xe_pm@s4-d3hot-basic-exec.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@xe_pm@s4-d3hot-basic-exec.html
* igt@xe_wedged@wedged-mode-toggle:
- shard-dg2-set2: NOTRUN -> [ABORT][3]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_wedged@wedged-mode-toggle.html
#### Warnings ####
* igt@xe_pm@s4-basic:
- shard-lnl: [ABORT][4] ([Intel XE#1794]) -> [DMESG-WARN][5]
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-lnl-2/igt@xe_pm@s4-basic.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@xe_pm@s4-basic.html
Known issues
------------
Here are the changes found in xe-pw-141937v10_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@async-flip-with-page-flip-events-tiled@pipe-d-dp-4-4-rc-ccs-cc:
- shard-dg2-set2: NOTRUN -> [SKIP][6] ([Intel XE#3767]) +15 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_async_flips@async-flip-with-page-flip-events-tiled@pipe-d-dp-4-4-rc-ccs-cc.html
* igt@kms_async_flips@invalid-async-flip-atomic:
- shard-dg2-set2: NOTRUN -> [SKIP][7] ([Intel XE#3768])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_async_flips@invalid-async-flip-atomic.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-lnl: NOTRUN -> [SKIP][8] ([Intel XE#1407])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#3658])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
* igt@kms_big_fb@x-tiled-16bpp-rotate-270:
- shard-dg2-set2: NOTRUN -> [SKIP][10] ([Intel XE#316]) +2 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
* igt@kms_big_fb@x-tiled-64bpp-rotate-270:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2327]) +2 other tests skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_big_fb@x-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-270:
- shard-adlp: NOTRUN -> [SKIP][12] ([Intel XE#316]) +1 other test skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_big_fb@y-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-overflow:
- shard-bmg: NOTRUN -> [SKIP][13] ([Intel XE#610])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#1124]) +7 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-dg2-set2: NOTRUN -> [SKIP][15] ([Intel XE#1124]) +12 other tests skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-0:
- shard-lnl: NOTRUN -> [SKIP][16] ([Intel XE#1124]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_big_fb@yf-tiled-16bpp-rotate-0.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#1467])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#610])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
- shard-adlp: NOTRUN -> [SKIP][19] ([Intel XE#1124]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p:
- shard-bmg: [PASS][20] -> [SKIP][21] ([Intel XE#2314] / [Intel XE#2894])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-4/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html
* igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#2314] / [Intel XE#2894])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
- shard-dg2-set2: NOTRUN -> [SKIP][23] ([Intel XE#2191]) +1 other test skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
* igt@kms_bw@linear-tiling-1-displays-1920x1080p:
- shard-dg2-set2: NOTRUN -> [SKIP][24] ([Intel XE#367]) +3 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_bw@linear-tiling-1-displays-1920x1080p.html
* igt@kms_bw@linear-tiling-1-displays-2160x1440p:
- shard-adlp: NOTRUN -> [SKIP][25] ([Intel XE#367]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_bw@linear-tiling-1-displays-2160x1440p.html
* igt@kms_bw@linear-tiling-4-displays-2560x1440p:
- shard-lnl: NOTRUN -> [SKIP][26] ([Intel XE#1512]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_bw@linear-tiling-4-displays-2560x1440p.html
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#367])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_bw@linear-tiling-4-displays-2560x1440p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2887]) +12 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][29] ([Intel XE#2887]) +4 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-a-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][30] ([Intel XE#787]) +132 other tests skip
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-a-dp-4.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][31] ([Intel XE#787]) +14 other tests skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][32] ([Intel XE#455] / [Intel XE#787]) +9 other tests skip
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs@pipe-d-hdmi-a-1.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs:
- shard-lnl: NOTRUN -> [SKIP][33] ([Intel XE#3432])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html
* igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][34] ([Intel XE#455] / [Intel XE#787]) +37 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_ccs@missing-ccs-buffer-4-tiled-mtl-mc-ccs@pipe-d-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [PASS][35] -> [INCOMPLETE][36] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124] / [Intel XE#4345])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4:
- shard-dg2-set2: [PASS][37] -> [INCOMPLETE][38] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#3124])
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-a-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [PASS][39] -> [INCOMPLETE][40] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4:
- shard-dg2-set2: [PASS][41] -> [INCOMPLETE][42] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4.html
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-a-dp-4.html
* igt@kms_cdclk@plane-scaling@pipe-b-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][43] ([Intel XE#4416]) +3 other tests skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_cdclk@plane-scaling@pipe-b-dp-4.html
* igt@kms_chamelium_audio@dp-audio:
- shard-dg2-set2: NOTRUN -> [SKIP][44] ([Intel XE#373]) +17 other tests skip
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_chamelium_audio@dp-audio.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-adlp: NOTRUN -> [SKIP][45] ([Intel XE#373]) +3 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_color@ctm-0-25:
- shard-dg2-set2: NOTRUN -> [SKIP][46] ([Intel XE#306]) +1 other test skip
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_chamelium_color@ctm-0-25.html
* igt@kms_chamelium_color@ctm-blue-to-red:
- shard-bmg: NOTRUN -> [SKIP][47] ([Intel XE#2325])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_chamelium_color@ctm-blue-to-red.html
* igt@kms_chamelium_color@ctm-negative:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#306]) +1 other test skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_chamelium_color@ctm-negative.html
* igt@kms_chamelium_frames@vga-frame-dump:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#2252]) +6 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_chamelium_frames@vga-frame-dump.html
* igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#373])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html
* igt@kms_content_protection@atomic-dpms:
- shard-dg2-set2: NOTRUN -> [FAIL][51] ([Intel XE#1178]) +1 other test fail
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#2390])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_content_protection@dp-mst-lic-type-1.html
- shard-dg2-set2: NOTRUN -> [SKIP][53] ([Intel XE#307])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@type1:
- shard-bmg: NOTRUN -> [SKIP][54] ([Intel XE#2341])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_content_protection@type1.html
* igt@kms_cursor_crc@cursor-offscreen-512x170:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#2321])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_cursor_crc@cursor-offscreen-512x170.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-dg2-set2: NOTRUN -> [SKIP][56] ([Intel XE#308]) +4 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-random-512x512:
- shard-adlp: NOTRUN -> [SKIP][57] ([Intel XE#308])
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_cursor_crc@cursor-random-512x512.html
* igt@kms_cursor_crc@cursor-rapid-movement-64x21:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#1424])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_cursor_crc@cursor-rapid-movement-64x21.html
* igt@kms_cursor_crc@cursor-rapid-movement-max-size:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#2320]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic:
- shard-bmg: [PASS][60] -> [SKIP][61] ([Intel XE#2291]) +4 other tests skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@kms_cursor_legacy@2x-flip-vs-cursor-atomic.html
* igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
- shard-adlp: NOTRUN -> [SKIP][62] ([Intel XE#309]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#309])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic:
- shard-bmg: [PASS][64] -> [FAIL][65] ([Intel XE#4633])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-5/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
* igt@kms_dirtyfb@psr-dirtyfb-ioctl:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#1508])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-bmg: NOTRUN -> [SKIP][67] ([Intel XE#4354]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-dg2-set2: NOTRUN -> [SKIP][68] ([Intel XE#4356]) +1 other test skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-adlp: NOTRUN -> [SKIP][69] ([Intel XE#4331])
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_dp_linktrain_fallback@dsc-fallback.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
- shard-adlp: NOTRUN -> [SKIP][70] ([Intel XE#4422]) +1 other test skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
* igt@kms_fbcon_fbt@psr:
- shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#776])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_fbcon_fbt@psr.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-dg2-set2: NOTRUN -> [SKIP][72] ([Intel XE#776]) +1 other test skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_feature_discovery@display-4x:
- shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#1138])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_feature_discovery@display-4x.html
- shard-dg2-set2: NOTRUN -> [SKIP][74] ([Intel XE#1138])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_feature_discovery@display-4x.html
* igt@kms_feature_discovery@dp-mst:
- shard-dg2-set2: NOTRUN -> [SKIP][75] ([Intel XE#1137])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_feature_discovery@dp-mst.html
* igt@kms_flip@2x-flip-vs-panning-interruptible:
- shard-adlp: NOTRUN -> [SKIP][76] ([Intel XE#310]) +2 other tests skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_flip@2x-flip-vs-panning-interruptible.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][77] -> [SKIP][78] ([Intel XE#2316]) +5 other tests skip
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-1/igt@kms_flip@2x-nonexisting-fb.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-5/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-lnl: NOTRUN -> [SKIP][79] ([Intel XE#1421])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@2x-wf_vblank-ts-check@ac-dp2-hdmi-a3:
- shard-bmg: NOTRUN -> [FAIL][80] ([Intel XE#2882]) +3 other tests fail
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_flip@2x-wf_vblank-ts-check@ac-dp2-hdmi-a3.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-bmg: NOTRUN -> [FAIL][81] ([Intel XE#3321]) +1 other test fail
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4:
- shard-dg2-set2: NOTRUN -> [FAIL][82] ([Intel XE#301]) +7 other tests fail
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp4.html
* igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6:
- shard-dg2-set2: [PASS][83] -> [FAIL][84] ([Intel XE#301]) +2 other tests fail
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6.html
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a6.html
* igt@kms_flip@flip-vs-expired-vblank@d-dp4:
- shard-dg2-set2: [PASS][85] -> [FAIL][86] ([Intel XE#301] / [Intel XE#3321])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank@d-dp4.html
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank@d-dp4.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
- shard-bmg: NOTRUN -> [SKIP][87] ([Intel XE#2380]) +1 other test skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#1397] / [Intel XE#1745])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][89] ([Intel XE#1397])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][90] ([Intel XE#2293] / [Intel XE#2380])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][91] ([Intel XE#2293])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling:
- shard-lnl: NOTRUN -> [SKIP][92] ([Intel XE#1401] / [Intel XE#1745])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][93] ([Intel XE#1401])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-dg2-set2: NOTRUN -> [SKIP][94] ([Intel XE#455]) +24 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt:
- shard-adlp: NOTRUN -> [SKIP][95] ([Intel XE#656]) +9 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
- shard-adlp: NOTRUN -> [DMESG-FAIL][96] ([Intel XE#4543])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][97] ([Intel XE#4141]) +7 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-tiling-y:
- shard-bmg: NOTRUN -> [SKIP][98] ([Intel XE#2352])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
- shard-dg2-set2: NOTRUN -> [SKIP][99] ([Intel XE#651]) +42 other tests skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt:
- shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#651]) +4 other tests skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-indfb-msflip-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render:
- shard-adlp: NOTRUN -> [SKIP][101] ([Intel XE#651]) +3 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-suspend:
- shard-bmg: NOTRUN -> [SKIP][102] ([Intel XE#2311]) +16 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc:
- shard-adlp: NOTRUN -> [SKIP][103] ([Intel XE#653]) +3 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][104] ([Intel XE#653]) +42 other tests skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2313]) +19 other tests skip
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@plane-fbc-rte:
- shard-dg2-set2: NOTRUN -> [SKIP][106] ([Intel XE#1158])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
- shard-bmg: NOTRUN -> [SKIP][107] ([Intel XE#2350])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][108] ([Intel XE#656]) +10 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_hdmi_inject@inject-audio:
- shard-lnl: NOTRUN -> [SKIP][109] ([Intel XE#1470] / [Intel XE#2853])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_joiner@basic-big-joiner:
- shard-dg2-set2: NOTRUN -> [SKIP][110] ([Intel XE#346])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_joiner@basic-big-joiner.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][111] ([Intel XE#2934])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_joiner@basic-max-non-joiner:
- shard-adlp: NOTRUN -> [SKIP][112] ([Intel XE#4298])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_joiner@basic-max-non-joiner.html
* igt@kms_joiner@basic-ultra-joiner:
- shard-dg2-set2: NOTRUN -> [SKIP][113] ([Intel XE#2927])
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_joiner@basic-ultra-joiner.html
* igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
- shard-dg2-set2: NOTRUN -> [SKIP][114] ([Intel XE#356])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html
* igt@kms_panel_fitting@legacy:
- shard-adlp: NOTRUN -> [SKIP][115] ([Intel XE#455]) +8 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_panel_fitting@legacy.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-adlp: NOTRUN -> [SKIP][116] ([Intel XE#4596])
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_plane_multiple@tiling-y:
- shard-dg2-set2: NOTRUN -> [SKIP][117] ([Intel XE#5020])
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_plane_multiple@tiling-y.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-bmg: [PASS][118] -> [SKIP][119] ([Intel XE#2571])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-4/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
- shard-lnl: NOTRUN -> [SKIP][120] ([Intel XE#2763]) +3 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
* igt@kms_pm_backlight@brightness-with-dpms:
- shard-dg2-set2: NOTRUN -> [SKIP][121] ([Intel XE#2938])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_pm_backlight@brightness-with-dpms.html
* igt@kms_pm_backlight@fade:
- shard-dg2-set2: NOTRUN -> [SKIP][122] ([Intel XE#870]) +1 other test skip
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_pm_backlight@fade.html
* igt@kms_pm_dc@dc5-retention-flops:
- shard-dg2-set2: NOTRUN -> [SKIP][123] ([Intel XE#3309])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@kms_pm_dc@dc5-retention-flops.html
* igt@kms_pm_dc@deep-pkgc:
- shard-adlp: NOTRUN -> [SKIP][124] ([Intel XE#2007])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_pm_dc@deep-pkgc.html
* igt@kms_pm_rpm@dpms-lpsp:
- shard-bmg: NOTRUN -> [SKIP][125] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_pm_rpm@dpms-lpsp.html
* igt@kms_pm_rpm@modeset-non-lpsp:
- shard-lnl: NOTRUN -> [SKIP][126] ([Intel XE#1439] / [Intel XE#3141])
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_pm_rpm@modeset-non-lpsp.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
- shard-adlp: NOTRUN -> [SKIP][127] ([Intel XE#1489]) +2 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][128] ([Intel XE#1489]) +9 other tests skip
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
- shard-lnl: NOTRUN -> [SKIP][129] ([Intel XE#2893]) +1 other test skip
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#1489]) +3 other tests skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][131] ([Intel XE#2387]) +1 other test skip
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_psr2_su@frontbuffer-xrgb8888.html
- shard-dg2-set2: NOTRUN -> [SKIP][132] ([Intel XE#1122])
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@fbc-psr2-primary-blt@edp-1:
- shard-lnl: NOTRUN -> [SKIP][133] ([Intel XE#4609])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_psr@fbc-psr2-primary-blt@edp-1.html
* igt@kms_psr@fbc-psr2-sprite-plane-move:
- shard-dg2-set2: NOTRUN -> [SKIP][134] ([Intel XE#2850] / [Intel XE#929]) +20 other tests skip
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_psr@fbc-psr2-sprite-plane-move.html
* igt@kms_psr@pr-basic:
- shard-lnl: NOTRUN -> [SKIP][135] ([Intel XE#1406]) +1 other test skip
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@kms_psr@pr-basic.html
* igt@kms_psr@psr-basic:
- shard-bmg: NOTRUN -> [SKIP][136] ([Intel XE#2234] / [Intel XE#2850]) +7 other tests skip
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_psr@psr-basic.html
* igt@kms_psr@psr2-no-drrs:
- shard-adlp: NOTRUN -> [SKIP][137] ([Intel XE#2850] / [Intel XE#929]) +5 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@kms_psr@psr2-no-drrs.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-adlp: NOTRUN -> [SKIP][138] ([Intel XE#2939])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_rotation_crc@bad-tiling:
- shard-dg2-set2: NOTRUN -> [SKIP][139] ([Intel XE#3414]) +1 other test skip
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@kms_rotation_crc@bad-tiling.html
- shard-bmg: NOTRUN -> [SKIP][140] ([Intel XE#3414] / [Intel XE#3904])
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_rotation_crc@bad-tiling.html
* igt@kms_scaling_modes@scaling-mode-full:
- shard-bmg: NOTRUN -> [SKIP][141] ([Intel XE#2413])
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@kms_scaling_modes@scaling-mode-full.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-bmg: [PASS][142] -> [SKIP][143] ([Intel XE#1435])
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-4/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* igt@kms_vblank@ts-continuation-suspend:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][144] ([Intel XE#4488]) +1 other test incomplete
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@kms_vblank@ts-continuation-suspend.html
* igt@kms_vrr@max-min:
- shard-bmg: NOTRUN -> [SKIP][145] ([Intel XE#1499])
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_vrr@max-min.html
* igt@xe_copy_basic@mem-copy-linear-0x369:
- shard-dg2-set2: NOTRUN -> [SKIP][146] ([Intel XE#1123])
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_copy_basic@mem-copy-linear-0x369.html
* igt@xe_copy_basic@mem-copy-linear-0xfd:
- shard-adlp: NOTRUN -> [SKIP][147] ([Intel XE#1123])
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_copy_basic@mem-copy-linear-0xfd.html
* igt@xe_copy_basic@mem-set-linear-0x3fff:
- shard-dg2-set2: NOTRUN -> [SKIP][148] ([Intel XE#1126]) +1 other test skip
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@xe_copy_basic@mem-set-linear-0x3fff.html
* igt@xe_create@multigpu-create-massive-size:
- shard-bmg: NOTRUN -> [SKIP][149] ([Intel XE#2504])
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@xe_create@multigpu-create-massive-size.html
* igt@xe_eu_stall@invalid-gt-id:
- shard-dg2-set2: NOTRUN -> [SKIP][150] ([Intel XE#4497])
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_eu_stall@invalid-gt-id.html
* igt@xe_eu_stall@invalid-sampling-rate:
- shard-adlp: NOTRUN -> [SKIP][151] ([Intel XE#4497])
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_eu_stall@invalid-sampling-rate.html
* igt@xe_eudebug@basic-exec-queues:
- shard-lnl: NOTRUN -> [SKIP][152] ([Intel XE#4837])
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@xe_eudebug@basic-exec-queues.html
* igt@xe_eudebug@discovery-empty:
- shard-adlp: NOTRUN -> [SKIP][153] ([Intel XE#4837]) +5 other tests skip
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_eudebug@discovery-empty.html
* igt@xe_eudebug@vma-ufence-faultable:
- shard-dg2-set2: NOTRUN -> [SKIP][154] ([Intel XE#4837]) +20 other tests skip
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_eudebug@vma-ufence-faultable.html
* igt@xe_eudebug_online@set-breakpoint-sigint-debugger:
- shard-bmg: NOTRUN -> [SKIP][155] ([Intel XE#4837]) +7 other tests skip
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@xe_eudebug_online@set-breakpoint-sigint-debugger.html
* igt@xe_evict@evict-small-cm:
- shard-adlp: NOTRUN -> [SKIP][156] ([Intel XE#261] / [Intel XE#688]) +1 other test skip
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@xe_evict@evict-small-cm.html
* igt@xe_evict_ccs@evict-overcommit-simple:
- shard-adlp: NOTRUN -> [SKIP][157] ([Intel XE#688])
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@xe_evict_ccs@evict-overcommit-simple.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind:
- shard-adlp: NOTRUN -> [SKIP][158] ([Intel XE#1392])
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-basic-defer-bind.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind:
- shard-bmg: NOTRUN -> [SKIP][159] ([Intel XE#2322]) +4 other tests skip
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html
* igt@xe_exec_basic@multigpu-no-exec-rebind:
- shard-lnl: NOTRUN -> [SKIP][160] ([Intel XE#1392])
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@xe_exec_basic@multigpu-no-exec-rebind.html
* igt@xe_exec_capture@reset:
- shard-dg2-set2: NOTRUN -> [FAIL][161] ([Intel XE#5016])
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_exec_capture@reset.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-imm:
- shard-adlp: NOTRUN -> [SKIP][162] ([Intel XE#288]) +8 other tests skip
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-imm.html
* igt@xe_exec_fault_mode@twice-userptr-rebind-imm:
- shard-dg2-set2: NOTRUN -> [SKIP][163] ([Intel XE#288]) +33 other tests skip
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_exec_fault_mode@twice-userptr-rebind-imm.html
* igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence:
- shard-dg2-set2: NOTRUN -> [SKIP][164] ([Intel XE#2360])
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_exec_mix_modes@exec-simple-batch-store-dma-fence.html
* igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset:
- shard-bmg: NOTRUN -> [SKIP][165] ([Intel XE#4943]) +11 other tests skip
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@xe_exec_system_allocator@many-execqueues-mmap-huge-nomemset.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-free-huge:
- shard-lnl: NOTRUN -> [SKIP][166] ([Intel XE#4943]) +4 other tests skip
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-free-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck:
- shard-dg2-set2: NOTRUN -> [SKIP][167] ([Intel XE#4915]) +372 other tests skip
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck.html
* igt@xe_exec_system_allocator@twice-large-new-race:
- shard-adlp: NOTRUN -> [SKIP][168] ([Intel XE#4915]) +78 other tests skip
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-4/igt@xe_exec_system_allocator@twice-large-new-race.html
* igt@xe_fault_injection@inject-fault-probe-function-xe_add_hw_engine_class_defaults:
- shard-lnl: NOTRUN -> [ABORT][169] ([Intel XE#4757])
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@xe_fault_injection@inject-fault-probe-function-xe_add_hw_engine_class_defaults.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv:
- shard-adlp: NOTRUN -> [TIMEOUT][170] ([Intel XE#4911])
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_fault_injection@probe-fail-guc-xe_guc_mmio_send_recv.html
* igt@xe_huc_copy@huc_copy:
- shard-dg2-set2: NOTRUN -> [SKIP][171] ([Intel XE#255])
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_eudebug:
- shard-lnl: NOTRUN -> [SKIP][172] ([Intel XE#2833])
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@xe_live_ktest@xe_eudebug.html
* igt@xe_mmap@small-bar:
- shard-bmg: NOTRUN -> [SKIP][173] ([Intel XE#586])
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@xe_mmap@small-bar.html
- shard-dg2-set2: NOTRUN -> [SKIP][174] ([Intel XE#512])
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_mmap@small-bar.html
* igt@xe_oa@enable-disable:
- shard-adlp: NOTRUN -> [SKIP][175] ([Intel XE#2541] / [Intel XE#3573])
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_oa@enable-disable.html
* igt@xe_oa@missing-sample-flags:
- shard-dg2-set2: NOTRUN -> [SKIP][176] ([Intel XE#2541] / [Intel XE#3573]) +9 other tests skip
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_oa@missing-sample-flags.html
* igt@xe_pat@pat-index-xelp:
- shard-bmg: NOTRUN -> [SKIP][177] ([Intel XE#2245])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@xe_pat@pat-index-xelp.html
* igt@xe_pat@pat-index-xelpg:
- shard-dg2-set2: NOTRUN -> [SKIP][178] ([Intel XE#979])
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_pat@pat-index-xelpg.html
* igt@xe_pm@d3cold-mmap-system:
- shard-dg2-set2: NOTRUN -> [SKIP][179] ([Intel XE#2284] / [Intel XE#366])
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@xe_pm@d3cold-mmap-system.html
* igt@xe_pm@d3cold-mocs:
- shard-bmg: NOTRUN -> [SKIP][180] ([Intel XE#2284]) +1 other test skip
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@xe_pm@d3cold-mocs.html
- shard-dg2-set2: NOTRUN -> [SKIP][181] ([Intel XE#2284])
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_pm@d3cold-mocs.html
* igt@xe_pm@s2idle-multiple-execs:
- shard-adlp: [PASS][182] -> [DMESG-WARN][183] ([Intel XE#2953] / [Intel XE#4173]) +2 other tests dmesg-warn
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-6/igt@xe_pm@s2idle-multiple-execs.html
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-8/igt@xe_pm@s2idle-multiple-execs.html
* igt@xe_pm@s4-basic-exec:
- shard-adlp: [PASS][184] -> [ABORT][185] ([Intel XE#1794])
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-4/igt@xe_pm@s4-basic-exec.html
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-9/igt@xe_pm@s4-basic-exec.html
* igt@xe_pxp@pxp-termination-key-update-post-rpm:
- shard-dg2-set2: NOTRUN -> [SKIP][186] ([Intel XE#4733]) +2 other tests skip
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_pxp@pxp-termination-key-update-post-rpm.html
- shard-bmg: NOTRUN -> [SKIP][187] ([Intel XE#4733]) +1 other test skip
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-4/igt@xe_pxp@pxp-termination-key-update-post-rpm.html
* igt@xe_query@multigpu-query-gt-list:
- shard-lnl: NOTRUN -> [SKIP][188] ([Intel XE#944])
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-7/igt@xe_query@multigpu-query-gt-list.html
* igt@xe_query@multigpu-query-invalid-cs-cycles:
- shard-bmg: NOTRUN -> [SKIP][189] ([Intel XE#944])
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@xe_query@multigpu-query-invalid-cs-cycles.html
* igt@xe_query@multigpu-query-uc-fw-version-guc:
- shard-dg2-set2: NOTRUN -> [SKIP][190] ([Intel XE#944]) +5 other tests skip
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-436/igt@xe_query@multigpu-query-uc-fw-version-guc.html
* igt@xe_render_copy@render-stress-2-copies:
- shard-dg2-set2: NOTRUN -> [SKIP][191] ([Intel XE#4814]) +1 other test skip
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-435/igt@xe_render_copy@render-stress-2-copies.html
* igt@xe_sriov_auto_provisioning@exclusive-ranges:
- shard-dg2-set2: NOTRUN -> [SKIP][192] ([Intel XE#4130])
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@xe_sriov_auto_provisioning@exclusive-ranges.html
* igt@xe_sriov_auto_provisioning@selfconfig-basic:
- shard-bmg: NOTRUN -> [SKIP][193] ([Intel XE#4130])
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@xe_sriov_auto_provisioning@selfconfig-basic.html
- shard-lnl: NOTRUN -> [SKIP][194] ([Intel XE#4130])
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@xe_sriov_auto_provisioning@selfconfig-basic.html
* igt@xe_sriov_flr@flr-twice:
- shard-bmg: NOTRUN -> [SKIP][195] ([Intel XE#4273])
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@xe_sriov_flr@flr-twice.html
#### Possible fixes ####
* igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1:
- shard-lnl: [FAIL][196] ([Intel XE#911]) -> [PASS][197] +3 other tests pass
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-lnl-7/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-2/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
* igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
- shard-adlp: [FAIL][198] ([Intel XE#3908]) -> [PASS][199] +1 other test pass
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-1/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-8/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
- shard-bmg: [SKIP][200] ([Intel XE#2291]) -> [PASS][201]
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-5/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
* igt@kms_feature_discovery@display-2x:
- shard-bmg: [SKIP][202] ([Intel XE#2373]) -> [PASS][203]
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-5/igt@kms_feature_discovery@display-2x.html
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_feature_discovery@display-2x.html
* igt@kms_flip@2x-flip-vs-dpms:
- shard-bmg: [SKIP][204] ([Intel XE#2316]) -> [PASS][205] +2 other tests pass
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms.html
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_flip@2x-flip-vs-dpms.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4:
- shard-dg2-set2: [FAIL][206] ([Intel XE#301]) -> [PASS][207] +1 other test pass
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-435/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4.html
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4.html
* igt@kms_flip@flip-vs-absolute-wf_vblank:
- shard-bmg: [FAIL][208] ([Intel XE#2882]) -> [PASS][209]
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-4/igt@kms_flip@flip-vs-absolute-wf_vblank.html
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@kms_flip@flip-vs-absolute-wf_vblank.html
* igt@kms_flip@flip-vs-expired-vblank@c-dp4:
- shard-dg2-set2: [FAIL][210] ([Intel XE#301] / [Intel XE#3321]) -> [PASS][211] +1 other test pass
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank@c-dp4.html
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-466/igt@kms_flip@flip-vs-expired-vblank@c-dp4.html
* igt@kms_flip@flip-vs-suspend:
- shard-bmg: [INCOMPLETE][212] ([Intel XE#2049] / [Intel XE#2597]) -> [PASS][213] +1 other test pass
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-3/igt@kms_flip@flip-vs-suspend.html
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_flip@flip-vs-suspend.html
* igt@kms_flip@plain-flip-ts-check@b-edp1:
- shard-lnl: [FAIL][214] ([Intel XE#886]) -> [PASS][215] +2 other tests pass
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-lnl-6/igt@kms_flip@plain-flip-ts-check@b-edp1.html
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_flip@plain-flip-ts-check@b-edp1.html
* igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers:
- shard-adlp: [DMESG-WARN][216] ([Intel XE#2953] / [Intel XE#4173]) -> [PASS][217] +8 other tests pass
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-6/igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers.html
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-8/igt@kms_plane_scaling@plane-upscale-20x20-with-modifiers.html
* igt@kms_pm_dc@dc5-dpms:
- shard-lnl: [FAIL][218] ([Intel XE#718]) -> [PASS][219]
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-lnl-6/igt@kms_pm_dc@dc5-dpms.html
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-6/igt@kms_pm_dc@dc5-dpms.html
* igt@kms_pm_dc@dc6-dpms:
- shard-adlp: [FAIL][220] ([Intel XE#718]) -> [PASS][221]
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-6/igt@kms_pm_dc@dc6-dpms.html
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-8/igt@kms_pm_dc@dc6-dpms.html
* igt@xe_exec_reset@parallel-gt-reset:
- shard-dg2-set2: [DMESG-WARN][222] ([Intel XE#3876]) -> [PASS][223]
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-436/igt@xe_exec_reset@parallel-gt-reset.html
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@xe_exec_reset@parallel-gt-reset.html
* igt@xe_pm@s3-vm-bind-unbind-all:
- shard-adlp: [DMESG-WARN][224] ([Intel XE#2953] / [Intel XE#4173] / [Intel XE#569]) -> [PASS][225]
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-8/igt@xe_pm@s3-vm-bind-unbind-all.html
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-2/igt@xe_pm@s3-vm-bind-unbind-all.html
* igt@xe_pm@s4-vm-bind-prefetch:
- shard-bmg: [ABORT][226] -> [PASS][227]
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-6/igt@xe_pm@s4-vm-bind-prefetch.html
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@xe_pm@s4-vm-bind-prefetch.html
* igt@xe_pm@s4-vm-bind-unbind-all:
- shard-adlp: [ABORT][228] ([Intel XE#1794]) -> [PASS][229] +1 other test pass
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-adlp-9/igt@xe_pm@s4-vm-bind-unbind-all.html
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-adlp-1/igt@xe_pm@s4-vm-bind-unbind-all.html
#### Warnings ####
* igt@kms_content_protection@uevent:
- shard-dg2-set2: [INCOMPLETE][230] ([Intel XE#4842]) -> [FAIL][231] ([Intel XE#1188]) +1 other test fail
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-dg2-436/igt@kms_content_protection@uevent.html
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-dg2-434/igt@kms_content_protection@uevent.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt:
- shard-bmg: [SKIP][232] ([Intel XE#2312]) -> [SKIP][233] ([Intel XE#2311]) +7 other tests skip
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt.html
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-8/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-indfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][234] ([Intel XE#4141]) -> [SKIP][235] ([Intel XE#2312]) +11 other tests skip
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move:
- shard-bmg: [SKIP][236] ([Intel XE#2311]) -> [SKIP][237] ([Intel XE#2312]) +21 other tests skip
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move.html
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt:
- shard-bmg: [SKIP][238] ([Intel XE#2312]) -> [SKIP][239] ([Intel XE#2313]) +3 other tests skip
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt.html
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][240] ([Intel XE#2313]) -> [SKIP][241] ([Intel XE#2312]) +17 other tests skip
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][242] ([Intel XE#2426]) -> [SKIP][243] ([Intel XE#2509])
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-new-bo-map:
- shard-lnl: [FAIL][244] -> [FAIL][245] ([Intel XE#5018])
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9/shard-lnl-1/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-new-bo-map.html
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/shard-lnl-4/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-new-bo-map.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1126]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1126
[Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
[Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
[Intel XE#1158]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1158
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1188]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1188
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
[Intel XE#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
[Intel XE#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
[Intel XE#2007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2007
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
[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#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[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#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[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#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
[Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
[Intel XE#2360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2360
[Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
[Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2504
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2541]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2541
[Intel XE#255]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/255
[Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2833]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2833
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2853]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2853
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2882]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2882
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2927
[Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
[Intel XE#2938]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2938
[Intel XE#2939]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2939
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#3124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3124
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#3309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3309
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/346
[Intel XE#356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/356
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3767]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3767
[Intel XE#3768]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3768
[Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#3908]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3908
[Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
[Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
[Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
[Intel XE#4416]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4416
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4488
[Intel XE#4497]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4497
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4757]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4757
[Intel XE#4814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4814
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4842]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4842
[Intel XE#4911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4911
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5016]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5016
[Intel XE#5018]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5018
[Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
[Intel XE#512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/512
[Intel XE#5172]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5172
[Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
[Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/886
[Intel XE#911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/911
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#979]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/979
Build changes
-------------
* Linux: xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9 -> xe-pw-141937v10
IGT_8415: bd8a24cf051c1efb81c76cf58a56151990a4a8ea @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-3272-55cbd02fa784e94b4f658c1e547371ac804c62a9: 55cbd02fa784e94b4f658c1e547371ac804c62a9
xe-pw-141937v10: 141937v10
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-141937v10/index.html
[-- Attachment #2: Type: text/html, Size: 84742 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 00/10] drm/i915: Add drm_panic support
2025-06-18 9:31 [PATCH v10 00/10] drm/i915: Add drm_panic support Jocelyn Falempe
` (13 preceding siblings ...)
2025-06-18 22:25 ` ✗ Xe.CI.Full: failure " Patchwork
@ 2025-06-23 7:40 ` Maarten Lankhorst
2025-06-23 10:10 ` Jocelyn Falempe
14 siblings, 1 reply; 24+ messages in thread
From: Maarten Lankhorst @ 2025-06-23 7:40 UTC (permalink / raw)
To: Jocelyn Falempe, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Hey,
Thanks for the series. I didn't see you on irc so I wanted to ask if you are planning to send a v11 with
the changes from void * to struct intel_panic_data and adding the VRAM support?
Other than that, I think the series looks good and I'll be able to test it on my battlemage.
Best regards,
~Maarten
On 2025-06-18 11:31, Jocelyn Falempe wrote:
> This adds drm_panic support for i915 and xe driver.
>
> I've tested it on the 4 intel laptops I have at my disposal.
> * Haswell with 128MB of eDRAM.
> * Comet Lake i7-10850H
> * Raptor Lake i7-1370P (with DPT, and Y-tiling).
> * Lunar Lake Ultra 5 228V (with DPT, and 4-tiling, and using the Xe driver.
>
> I tested panic in both fbdev console and gnome desktop.
> I think it won't work yet on discrete GPU, but that can be added later.
>
> Best regards,
>
> v2:
> * Add the proper abstractions to build also for Xe.
> * Fix dim checkpatch issues.
>
> v3:
> * Add support for Y-tiled framebuffer when DPT is enabled.
>
> v4:
> * Add support for Xe driver, which shares most of the code.
> * Add support for 4-tiled framebuffer found in newest GPU.
>
> v5:
> * Rebase on top of git@gitlab.freedesktop.org:drm/i915/kernel.git drm-intel-next
> * Use struct intel_display instead of drm_i915_private.
> * Use iosys_map for intel_bo_panic_map().
>
> v6:
> * Rebase on top of git@gitlab.freedesktop.org:drm/i915/kernel.git drm-intel-next
> * Use struct intel_display instead of drm_i915_private for intel_atomic_plane.c
>
> v7:
> * Fix mismatch {} in intel_panic_flush() (Jani Nikula)
> * Return int for i915_gem_object_panic_map() (Ville Syrjälä)
> * Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
>
> v8:
> * Use kmap_try_from_panic() instead of vmap, to access the framebuffer.
> * Add ttm_bo_kmap_try_from_panic() for the xe driver, that uses ttm.
> * Replace intel_bo_panic_map() with a setup() and finish() function,
> to allow mapping only one page of teh framebuffer at a time.
> * Configure psr to send the full framebuffer update.
>
> v9:
> * Fix comment in ttm_bo_kmap_try_from_panic(), this can *only* be called
> from the panic handler (Christian König)
> * Fix missing kfree() for i915_panic_pages in i915_gem_object_panic_finish()
> Also change i915_panic_pages allocation to kmalloc, as kvmalloc is not
> safe to call from the panic handler.
> * Fix dim checkpatch warnings.
>
> v10:
> * Add a private field to struct drm_scanout_buffer
> * Replace static variables with new fields in struct intel_framebuffer
> (Maarten Lankhorst)
> * Add error handling if i915_gem_object_panic_pages() returns NULL
> * Declare struct drm_scanout_buffer instead of including <drm/drm_panic.h>
> in intel_bo.h
>
> Jocelyn Falempe (10):
> drm/panic: Add a private field to struct drm_scanout_buffer
> drm/i915/fbdev: Add intel_fbdev_get_map()
> drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes
> drm/i915/display: Add a disable_tiling() for skl planes
> drm/ttm: Add ttm_bo_kmap_try_from_panic()
> drm/i915: Add intel_bo_panic_setup and intel_bo_panic_finish
> drm/i915/display: Add drm_panic support
> drm/i915/display: Add drm_panic support for Y-tiling with DPT
> drm/i915/display: Add drm_panic support for 4-tiling with DPT
> drm/i915/psr: Add intel_psr2_panic_force_full_update
>
> drivers/gpu/drm/i915/display/i9xx_plane.c | 23 +++
> .../gpu/drm/i915/display/intel_atomic_plane.c | 170 +++++++++++++++++-
> drivers/gpu/drm/i915/display/intel_bo.c | 12 ++
> drivers/gpu/drm/i915/display/intel_bo.h | 4 +
> .../drm/i915/display/intel_display_types.h | 11 ++
> drivers/gpu/drm/i915/display/intel_fb_pin.c | 5 +
> drivers/gpu/drm/i915/display/intel_fb_pin.h | 2 +
> drivers/gpu/drm/i915/display/intel_fbdev.c | 5 +
> drivers/gpu/drm/i915/display/intel_fbdev.h | 6 +-
> drivers/gpu/drm/i915/display/intel_psr.c | 20 +++
> drivers/gpu/drm/i915/display/intel_psr.h | 2 +
> .../drm/i915/display/skl_universal_plane.c | 27 +++
> drivers/gpu/drm/i915/gem/i915_gem_object.h | 5 +
> drivers/gpu/drm/i915/gem/i915_gem_pages.c | 112 ++++++++++++
> drivers/gpu/drm/i915/i915_vma.h | 5 +
> drivers/gpu/drm/ttm/ttm_bo_util.c | 27 +++
> drivers/gpu/drm/xe/display/intel_bo.c | 61 +++++++
> drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 +
> include/drm/drm_panic.h | 6 +
> include/drm/ttm/ttm_bo.h | 1 +
> 20 files changed, 507 insertions(+), 2 deletions(-)
>
>
> base-commit: b2f7e30d2e4a34fcee8111d713bef4f29dc23c77
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 00/10] drm/i915: Add drm_panic support
2025-06-23 7:40 ` [PATCH v10 00/10] drm/i915: Add drm_panic support Maarten Lankhorst
@ 2025-06-23 10:10 ` Jocelyn Falempe
2025-06-23 12:02 ` Maarten Lankhorst
0 siblings, 1 reply; 24+ messages in thread
From: Jocelyn Falempe @ 2025-06-23 10:10 UTC (permalink / raw)
To: Maarten Lankhorst, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
On 23/06/2025 09:40, Maarten Lankhorst wrote:
> Hey,
>
> Thanks for the series. I didn't see you on irc so I wanted to ask if you are planning to send a v11 with
> the changes from void * to struct intel_panic_data and adding the VRAM support?
Yes, I'm preparing a v11, and I'm considering to do something like this,
to allocate the panic data with the struct intel_framebuffer:
struct xe_framebuffer {
struct intel_framebuffer base;
struct xe_panic_data panic;
};
struct intel_framebuffer *intel_bo_alloc_framebuffer(void)
{
struct xe_framebuffer *xe_fb;
xe_fb = kmalloc(sizeof(struct xe_framebuffer), GFP_KERNEL);
return &xe_fb->base;
}
(And the same for i915).
That should allow you to add battlemage support.
>
>
> Other than that, I think the series looks good and I'll be able to test it on my battlemage.
>
Thanks
Best regards,
--
Jocelyn
> Best regards,
> ~Maarten
>
> On 2025-06-18 11:31, Jocelyn Falempe wrote:
>> This adds drm_panic support for i915 and xe driver.
>>
>> I've tested it on the 4 intel laptops I have at my disposal.
>> * Haswell with 128MB of eDRAM.
>> * Comet Lake i7-10850H
>> * Raptor Lake i7-1370P (with DPT, and Y-tiling).
>> * Lunar Lake Ultra 5 228V (with DPT, and 4-tiling, and using the Xe driver.
>>
>> I tested panic in both fbdev console and gnome desktop.
>> I think it won't work yet on discrete GPU, but that can be added later.
>>
>> Best regards,
>>
>> v2:
>> * Add the proper abstractions to build also for Xe.
>> * Fix dim checkpatch issues.
>>
>> v3:
>> * Add support for Y-tiled framebuffer when DPT is enabled.
>>
>> v4:
>> * Add support for Xe driver, which shares most of the code.
>> * Add support for 4-tiled framebuffer found in newest GPU.
>>
>> v5:
>> * Rebase on top of git@gitlab.freedesktop.org:drm/i915/kernel.git drm-intel-next
>> * Use struct intel_display instead of drm_i915_private.
>> * Use iosys_map for intel_bo_panic_map().
>>
>> v6:
>> * Rebase on top of git@gitlab.freedesktop.org:drm/i915/kernel.git drm-intel-next
>> * Use struct intel_display instead of drm_i915_private for intel_atomic_plane.c
>>
>> v7:
>> * Fix mismatch {} in intel_panic_flush() (Jani Nikula)
>> * Return int for i915_gem_object_panic_map() (Ville Syrjälä)
>> * Reword commit message about alignment/size when disabling tiling (Ville Syrjälä)
>>
>> v8:
>> * Use kmap_try_from_panic() instead of vmap, to access the framebuffer.
>> * Add ttm_bo_kmap_try_from_panic() for the xe driver, that uses ttm.
>> * Replace intel_bo_panic_map() with a setup() and finish() function,
>> to allow mapping only one page of teh framebuffer at a time.
>> * Configure psr to send the full framebuffer update.
>>
>> v9:
>> * Fix comment in ttm_bo_kmap_try_from_panic(), this can *only* be called
>> from the panic handler (Christian König)
>> * Fix missing kfree() for i915_panic_pages in i915_gem_object_panic_finish()
>> Also change i915_panic_pages allocation to kmalloc, as kvmalloc is not
>> safe to call from the panic handler.
>> * Fix dim checkpatch warnings.
>>
>> v10:
>> * Add a private field to struct drm_scanout_buffer
>> * Replace static variables with new fields in struct intel_framebuffer
>> (Maarten Lankhorst)
>> * Add error handling if i915_gem_object_panic_pages() returns NULL
>> * Declare struct drm_scanout_buffer instead of including <drm/drm_panic.h>
>> in intel_bo.h
>>
>> Jocelyn Falempe (10):
>> drm/panic: Add a private field to struct drm_scanout_buffer
>> drm/i915/fbdev: Add intel_fbdev_get_map()
>> drm/i915/display/i9xx: Add a disable_tiling() for i9xx planes
>> drm/i915/display: Add a disable_tiling() for skl planes
>> drm/ttm: Add ttm_bo_kmap_try_from_panic()
>> drm/i915: Add intel_bo_panic_setup and intel_bo_panic_finish
>> drm/i915/display: Add drm_panic support
>> drm/i915/display: Add drm_panic support for Y-tiling with DPT
>> drm/i915/display: Add drm_panic support for 4-tiling with DPT
>> drm/i915/psr: Add intel_psr2_panic_force_full_update
>>
>> drivers/gpu/drm/i915/display/i9xx_plane.c | 23 +++
>> .../gpu/drm/i915/display/intel_atomic_plane.c | 170 +++++++++++++++++-
>> drivers/gpu/drm/i915/display/intel_bo.c | 12 ++
>> drivers/gpu/drm/i915/display/intel_bo.h | 4 +
>> .../drm/i915/display/intel_display_types.h | 11 ++
>> drivers/gpu/drm/i915/display/intel_fb_pin.c | 5 +
>> drivers/gpu/drm/i915/display/intel_fb_pin.h | 2 +
>> drivers/gpu/drm/i915/display/intel_fbdev.c | 5 +
>> drivers/gpu/drm/i915/display/intel_fbdev.h | 6 +-
>> drivers/gpu/drm/i915/display/intel_psr.c | 20 +++
>> drivers/gpu/drm/i915/display/intel_psr.h | 2 +
>> .../drm/i915/display/skl_universal_plane.c | 27 +++
>> drivers/gpu/drm/i915/gem/i915_gem_object.h | 5 +
>> drivers/gpu/drm/i915/gem/i915_gem_pages.c | 112 ++++++++++++
>> drivers/gpu/drm/i915/i915_vma.h | 5 +
>> drivers/gpu/drm/ttm/ttm_bo_util.c | 27 +++
>> drivers/gpu/drm/xe/display/intel_bo.c | 61 +++++++
>> drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 +
>> include/drm/drm_panic.h | 6 +
>> include/drm/ttm/ttm_bo.h | 1 +
>> 20 files changed, 507 insertions(+), 2 deletions(-)
>>
>>
>> base-commit: b2f7e30d2e4a34fcee8111d713bef4f29dc23c77
>
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH v10 00/10] drm/i915: Add drm_panic support
2025-06-23 10:10 ` Jocelyn Falempe
@ 2025-06-23 12:02 ` Maarten Lankhorst
0 siblings, 0 replies; 24+ messages in thread
From: Maarten Lankhorst @ 2025-06-23 12:02 UTC (permalink / raw)
To: Jocelyn Falempe, Jani Nikula, Rodrigo Vivi, Joonas Lahtinen,
Tvrtko Ursulin, Ville Syrjälä, David Airlie,
Simona Vetter, Christian Koenig, Huang Rui, Matthew Auld,
Matthew Brost, Maxime Ripard, Thomas Zimmermann, intel-gfx,
intel-xe, dri-devel, linux-kernel
Hey,
On 2025-06-23 12:10, Jocelyn Falempe wrote:
> On 23/06/2025 09:40, Maarten Lankhorst wrote:
>> Hey,
>>
>> Thanks for the series. I didn't see you on irc so I wanted to ask if you are planning to send a v11 with
>> the changes from void * to struct intel_panic_data and adding the VRAM support?
>
> Yes, I'm preparing a v11, and I'm considering to do something like this, to allocate the panic data with the struct intel_framebuffer:
>
> struct xe_framebuffer {
> struct intel_framebuffer base;
> struct xe_panic_data panic;
> };
>
> struct intel_framebuffer *intel_bo_alloc_framebuffer(void)
> {
> struct xe_framebuffer *xe_fb;
>
> xe_fb = kmalloc(sizeof(struct xe_framebuffer), GFP_KERNEL);
> return &xe_fb->base;
> }
>
> (And the same for i915).
> That should allow you to add battlemage support.
>
>>
>>
>> Other than that, I think the series looks good and I'll be able to test it on my battlemage.
>>
A private member is fine, but if you can get signoff from the i915 people for the xe_fb slpit, I would really like that for other things too. :)
Kind regards,
~Maarten
^ permalink raw reply [flat|nested] 24+ messages in thread