Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd
@ 2026-01-26 13:29 Vinod Govindapillai
  2026-01-26 13:43 ` Jani Nikula
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Vinod Govindapillai @ 2026-01-26 13:29 UTC (permalink / raw)
  To: intel-xe, intel-gfx; +Cc: vinod.govindapillai, uma.shankar, juha-pekka.heikkila

Pixel normalizer is enabled with normalization factor as 1.0 for
FP16 formats in order to support FBC for those formats in xe3p_lpd.
Previously pixel normalizer gets disabled during the plane disable
routine. But there could be plane format settings without explicitly
calling the plane disable in-between and we could endup keeping the
pixel normalizer enabled for formats which we don't require that.
This is causing crc mismatches in yuv formats and FIFO underruns in
planar formats like NV12.

Fix this by updating the pixel normalizer configuration based on the
pixel formats explicitly during the plane settings arm calls itself
- enable it for FP16 and disable it for other formats in HDR capable
planes. To avoid redundancies in these updates, normalization factor
between old and new plane states are compared before the update. The
function to check validity of the fp16 formats for fbc is now updated
to return the normalization factor as 1.0 in case of fp16 formats and
0 in other cases.

v2: avoid redundant pixel normalization setting updates

Fixes: 5298eea7ed20 ("drm/i915/xe3p_lpd: use pixel normalizer for fp16 formats for FBC")
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 .../drm/i915/display/intel_display_device.h   |  1 +
 .../drm/i915/display/intel_display_types.h    |  8 ++
 drivers/gpu/drm/i915/display/intel_fbc.c      | 17 +++-
 drivers/gpu/drm/i915/display/intel_fbc.h      |  4 +-
 .../drm/i915/display/skl_universal_plane.c    | 82 +++++++++++++++----
 5 files changed, 90 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
index 6c74d6b0cc48..126aa1eeeb6d 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.h
+++ b/drivers/gpu/drm/i915/display/intel_display_device.h
@@ -175,6 +175,7 @@ struct intel_display_platforms {
 #define HAS_DSC_MST(__display)		(DISPLAY_VER(__display) >= 12 && HAS_DSC(__display))
 #define HAS_FBC(__display)		(DISPLAY_RUNTIME_INFO(__display)->fbc_mask != 0)
 #define HAS_FBC_DIRTY_RECT(__display)	(DISPLAY_VER(__display) >= 30)
+#define HAS_FBC_FP16_FORMATS(__display)	(DISPLAY_VER(__display) >= 35)
 #define HAS_FBC_SYS_CACHE(__display)	(DISPLAY_VER(__display) >= 35 && !(__display)->platform.dgfx)
 #define HAS_FPGA_DBG_UNCLAIMED(__display)	(DISPLAY_INFO(__display)->has_fpga_dbg)
 #define HAS_FW_BLC(__display)		(DISPLAY_VER(__display) >= 3)
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 07b626d22748..f42f2609d837 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -685,6 +685,14 @@ struct intel_plane_state {
 	unsigned long flags;
 #define PLANE_HAS_FENCE BIT(0)
 
+	/* xe3p_lpd+ */
+	struct {
+		/* 0x3c00 (1.0) for fp16 formats and else disable (0) */
+		unsigned int factor;
+		/* update is needed if factor differs between old and new plane states */
+		bool needs_update;
+	} pixel_normalizer;
+
 	struct intel_fb_view view;
 
 	/* for legacy cursor fb unpin */
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index fef2f35ff1e9..dbedc8ea8cdf 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -60,6 +60,7 @@
 #include "intel_frontbuffer.h"
 #include "intel_parent.h"
 #include "intel_step.h"
+#include "skl_universal_plane_regs.h"
 
 #define for_each_fbc_id(__display, __fbc_id) \
 	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS; (__fbc_id)++) \
@@ -1202,13 +1203,21 @@ static bool xe3p_lpd_fbc_pixel_format_is_valid(const struct intel_plane_state *p
 	}
 }
 
-bool
-intel_fbc_is_enable_pixel_normalizer(const struct intel_plane_state *plane_state)
+unsigned int
+intel_fbc_normalization_factor(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state);
 
-	return DISPLAY_VER(display) >= 35 &&
-	       xe3p_lpd_fbc_fp16_format_is_valid(plane_state);
+	/*
+	 * In order to have FBC for fp16 formats pixel normalizer block must be
+	 * active. For FP16 formats, use normalization factor as 1.0 and enable
+	 * the block.
+	 */
+	if (HAS_FBC_FP16_FORMATS(display) &&
+	    xe3p_lpd_fbc_fp16_format_is_valid(plane_state))
+		return PLANE_PIXEL_NORMALIZE_NORM_FACTOR_1_0;
+
+	return 0;
 }
 
 static bool pixel_format_is_valid(const struct intel_plane_state *plane_state)
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
index f0255ddae2b6..b5888e98a659 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.h
+++ b/drivers/gpu/drm/i915/display/intel_fbc.h
@@ -56,7 +56,7 @@ void intel_fbc_prepare_dirty_rect(struct intel_atomic_state *state,
 				  struct intel_crtc *crtc);
 void intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
 				       struct intel_plane *plane);
-bool
-intel_fbc_is_enable_pixel_normalizer(const struct intel_plane_state *plane_state);
+unsigned int
+intel_fbc_normalization_factor(const struct intel_plane_state *plane_state);
 
 #endif /* __INTEL_FBC_H__ */
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index b3d41705448a..05c227913b8d 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -891,20 +891,49 @@ static void icl_plane_disable_sel_fetch_arm(struct intel_dsb *dsb,
 	intel_de_write_dsb(display, dsb, SEL_FETCH_PLANE_CTL(pipe, plane->id), 0);
 }
 
-static void x3p_lpd_plane_update_pixel_normalizer(struct intel_dsb *dsb,
-						  struct intel_plane *plane,
-						  bool enable)
+static void xe3p_lpd_plane_disable_pixel_normalizer(struct intel_dsb *dsb,
+						    struct intel_plane *plane)
 {
 	struct intel_display *display = to_intel_display(plane);
 	enum intel_fbc_id fbc_id = skl_fbc_id_for_pipe(plane->pipe);
-	u32 val;
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+
+	if (!HAS_FBC_FP16_FORMATS(display))
+		return;
+
+	if (!skl_plane_has_fbc(display, fbc_id, plane->id))
+		return;
+
+	if (!plane_state->pixel_normalizer.factor)
+		return;
+
+	intel_de_write_dsb(display, dsb,
+			   PLANE_PIXEL_NORMALIZE(plane->pipe, plane->id), 0);
+}
+
+static void xe3p_lpd_plane_update_pixel_normalizer(struct intel_dsb *dsb,
+						   struct intel_plane *plane)
+{
+	struct intel_display *display = to_intel_display(plane);
+	enum intel_fbc_id fbc_id = skl_fbc_id_for_pipe(plane->pipe);
+	const struct intel_plane_state *plane_state =
+		to_intel_plane_state(plane->base.state);
+	u32 val = 0;
+
+	if (!HAS_FBC_FP16_FORMATS(display))
+		return;
 
-	/* Only HDR planes have pixel normalizer and don't matter if no FBC */
+	/* Only HDR planes have pixel normalizer and don't matter if FBC is fused off */
 	if (!skl_plane_has_fbc(display, fbc_id, plane->id))
 		return;
 
-	val = enable ? PLANE_PIXEL_NORMALIZE_NORM_FACTOR(PLANE_PIXEL_NORMALIZE_NORM_FACTOR_1_0) |
-		       PLANE_PIXEL_NORMALIZE_ENABLE : 0;
+	if (!plane_state->pixel_normalizer.needs_update)
+		return;
+
+	if (plane_state->pixel_normalizer.factor)
+		val = PLANE_PIXEL_NORMALIZE_NORM_FACTOR(plane_state->pixel_normalizer.factor) |
+		      PLANE_PIXEL_NORMALIZE_ENABLE;
 
 	intel_de_write_dsb(display, dsb,
 			   PLANE_PIXEL_NORMALIZE(plane->pipe, plane->id), val);
@@ -926,8 +955,7 @@ icl_plane_disable_arm(struct intel_dsb *dsb,
 
 	icl_plane_disable_sel_fetch_arm(dsb, plane, crtc_state);
 
-	if (DISPLAY_VER(display) >= 35)
-		x3p_lpd_plane_update_pixel_normalizer(dsb, plane, false);
+	xe3p_lpd_plane_disable_pixel_normalizer(dsb, plane);
 
 	intel_de_write_dsb(display, dsb, PLANE_CTL(pipe, plane_id), 0);
 	intel_de_write_dsb(display, dsb, PLANE_SURF(pipe, plane_id), 0);
@@ -1674,13 +1702,7 @@ icl_plane_update_arm(struct intel_dsb *dsb,
 
 	intel_color_plane_commit_arm(dsb, plane_state);
 
-	/*
-	 * In order to have FBC for fp16 formats pixel normalizer block must be
-	 * active. Check if pixel normalizer block need to be enabled for FBC.
-	 * If needed, use normalization factor as 1.0 and enable the block.
-	 */
-	if (intel_fbc_is_enable_pixel_normalizer(plane_state))
-		x3p_lpd_plane_update_pixel_normalizer(dsb, plane, true);
+	xe3p_lpd_plane_update_pixel_normalizer(dsb, plane);
 
 	/*
 	 * The control register self-arms if the plane was previously
@@ -2350,6 +2372,32 @@ static void clip_damage(struct intel_plane_state *plane_state)
 	drm_rect_intersect(damage, &src);
 }
 
+static void check_pixel_normalizer(struct intel_plane_state *plane_state)
+{
+	struct intel_display *display = to_intel_display(plane_state);
+	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
+	struct intel_atomic_state *state =
+		to_intel_atomic_state(plane_state->uapi.state);
+	const struct intel_plane_state *old_plane_state =
+		intel_atomic_get_old_plane_state(state, plane);
+
+	if (!HAS_FBC_FP16_FORMATS(display))
+		return;
+
+	plane_state->pixel_normalizer.factor =
+		intel_fbc_normalization_factor(plane_state);
+
+	/*
+	 * In case of no old state to compare, better to force update the pixel
+	 * normalizer settings.
+	 */
+	plane_state->pixel_normalizer.needs_update = true;
+	if (old_plane_state && old_plane_state->hw.fb)
+		plane_state->pixel_normalizer.needs_update =
+			plane_state->pixel_normalizer.factor !=
+			intel_fbc_normalization_factor(old_plane_state);
+}
+
 static int skl_plane_check(struct intel_crtc_state *crtc_state,
 			   struct intel_plane_state *plane_state)
 {
@@ -2400,6 +2448,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
 
 	check_protection(plane_state);
 
+	check_pixel_normalizer(plane_state);
+
 	/* HW only has 8 bits pixel precision, disable plane if invisible */
 	if (!(plane_state->hw.alpha >> 8)) {
 		plane_state->uapi.visible = false;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd
  2026-01-26 13:29 [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd Vinod Govindapillai
@ 2026-01-26 13:43 ` Jani Nikula
  2026-01-26 14:26   ` Govindapillai, Vinod
  2026-01-26 13:44 ` ✓ CI.KUnit: success for drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2) Patchwork
  2026-01-26 15:30 ` ✗ Xe.CI.Full: failure " Patchwork
  2 siblings, 1 reply; 5+ messages in thread
From: Jani Nikula @ 2026-01-26 13:43 UTC (permalink / raw)
  To: Vinod Govindapillai, intel-xe, intel-gfx
  Cc: vinod.govindapillai, uma.shankar, juha-pekka.heikkila

On Mon, 26 Jan 2026, Vinod Govindapillai <vinod.govindapillai@intel.com> wrote:
> Pixel normalizer is enabled with normalization factor as 1.0 for
> FP16 formats in order to support FBC for those formats in xe3p_lpd.
> Previously pixel normalizer gets disabled during the plane disable
> routine. But there could be plane format settings without explicitly
> calling the plane disable in-between and we could endup keeping the
> pixel normalizer enabled for formats which we don't require that.
> This is causing crc mismatches in yuv formats and FIFO underruns in
> planar formats like NV12.
>
> Fix this by updating the pixel normalizer configuration based on the
> pixel formats explicitly during the plane settings arm calls itself
> - enable it for FP16 and disable it for other formats in HDR capable
> planes. To avoid redundancies in these updates, normalization factor
> between old and new plane states are compared before the update. The
> function to check validity of the fp16 formats for fbc is now updated
> to return the normalization factor as 1.0 in case of fp16 formats and
> 0 in other cases.
>
> v2: avoid redundant pixel normalization setting updates
>
> Fixes: 5298eea7ed20 ("drm/i915/xe3p_lpd: use pixel normalizer for fp16 formats for FBC")
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> ---
>  .../drm/i915/display/intel_display_device.h   |  1 +
>  .../drm/i915/display/intel_display_types.h    |  8 ++
>  drivers/gpu/drm/i915/display/intel_fbc.c      | 17 +++-
>  drivers/gpu/drm/i915/display/intel_fbc.h      |  4 +-
>  .../drm/i915/display/skl_universal_plane.c    | 82 +++++++++++++++----
>  5 files changed, 90 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
> index 6c74d6b0cc48..126aa1eeeb6d 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_device.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_device.h
> @@ -175,6 +175,7 @@ struct intel_display_platforms {
>  #define HAS_DSC_MST(__display)		(DISPLAY_VER(__display) >= 12 && HAS_DSC(__display))
>  #define HAS_FBC(__display)		(DISPLAY_RUNTIME_INFO(__display)->fbc_mask != 0)
>  #define HAS_FBC_DIRTY_RECT(__display)	(DISPLAY_VER(__display) >= 30)
> +#define HAS_FBC_FP16_FORMATS(__display)	(DISPLAY_VER(__display) >= 35)
>  #define HAS_FBC_SYS_CACHE(__display)	(DISPLAY_VER(__display) >= 35 && !(__display)->platform.dgfx)
>  #define HAS_FPGA_DBG_UNCLAIMED(__display)	(DISPLAY_INFO(__display)->has_fpga_dbg)
>  #define HAS_FW_BLC(__display)		(DISPLAY_VER(__display) >= 3)
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 07b626d22748..f42f2609d837 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -685,6 +685,14 @@ struct intel_plane_state {
>  	unsigned long flags;
>  #define PLANE_HAS_FENCE BIT(0)
>  
> +	/* xe3p_lpd+ */
> +	struct {
> +		/* 0x3c00 (1.0) for fp16 formats and else disable (0) */
> +		unsigned int factor;

What is the format of this number? What makes 0x3c00 mean 1.0?

> +		/* update is needed if factor differs between old and new plane states */
> +		bool needs_update;
> +	} pixel_normalizer;
> +
>  	struct intel_fb_view view;
>  
>  	/* for legacy cursor fb unpin */
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index fef2f35ff1e9..dbedc8ea8cdf 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -60,6 +60,7 @@
>  #include "intel_frontbuffer.h"
>  #include "intel_parent.h"
>  #include "intel_step.h"
> +#include "skl_universal_plane_regs.h"
>  
>  #define for_each_fbc_id(__display, __fbc_id) \
>  	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS; (__fbc_id)++) \
> @@ -1202,13 +1203,21 @@ static bool xe3p_lpd_fbc_pixel_format_is_valid(const struct intel_plane_state *p
>  	}
>  }
>  
> -bool
> -intel_fbc_is_enable_pixel_normalizer(const struct intel_plane_state *plane_state)
> +unsigned int
> +intel_fbc_normalization_factor(const struct intel_plane_state *plane_state)
>  {
>  	struct intel_display *display = to_intel_display(plane_state);
>  
> -	return DISPLAY_VER(display) >= 35 &&
> -	       xe3p_lpd_fbc_fp16_format_is_valid(plane_state);
> +	/*
> +	 * In order to have FBC for fp16 formats pixel normalizer block must be
> +	 * active. For FP16 formats, use normalization factor as 1.0 and enable
> +	 * the block.
> +	 */
> +	if (HAS_FBC_FP16_FORMATS(display) &&
> +	    xe3p_lpd_fbc_fp16_format_is_valid(plane_state))
> +		return PLANE_PIXEL_NORMALIZE_NORM_FACTOR_1_0;

Ditto here. I don't particularly like encoding register values to
function return values like this. Basically, including
skl_universal_plane_regs.h here feels wrong.


BR,
Jani.


> +
> +	return 0;
>  }
>  
>  static bool pixel_format_is_valid(const struct intel_plane_state *plane_state)
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
> index f0255ddae2b6..b5888e98a659 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.h
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.h
> @@ -56,7 +56,7 @@ void intel_fbc_prepare_dirty_rect(struct intel_atomic_state *state,
>  				  struct intel_crtc *crtc);
>  void intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
>  				       struct intel_plane *plane);
> -bool
> -intel_fbc_is_enable_pixel_normalizer(const struct intel_plane_state *plane_state);
> +unsigned int
> +intel_fbc_normalization_factor(const struct intel_plane_state *plane_state);
>  
>  #endif /* __INTEL_FBC_H__ */
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index b3d41705448a..05c227913b8d 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -891,20 +891,49 @@ static void icl_plane_disable_sel_fetch_arm(struct intel_dsb *dsb,
>  	intel_de_write_dsb(display, dsb, SEL_FETCH_PLANE_CTL(pipe, plane->id), 0);
>  }
>  
> -static void x3p_lpd_plane_update_pixel_normalizer(struct intel_dsb *dsb,
> -						  struct intel_plane *plane,
> -						  bool enable)
> +static void xe3p_lpd_plane_disable_pixel_normalizer(struct intel_dsb *dsb,
> +						    struct intel_plane *plane)
>  {
>  	struct intel_display *display = to_intel_display(plane);
>  	enum intel_fbc_id fbc_id = skl_fbc_id_for_pipe(plane->pipe);
> -	u32 val;
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +
> +	if (!HAS_FBC_FP16_FORMATS(display))
> +		return;
> +
> +	if (!skl_plane_has_fbc(display, fbc_id, plane->id))
> +		return;
> +
> +	if (!plane_state->pixel_normalizer.factor)
> +		return;
> +
> +	intel_de_write_dsb(display, dsb,
> +			   PLANE_PIXEL_NORMALIZE(plane->pipe, plane->id), 0);
> +}
> +
> +static void xe3p_lpd_plane_update_pixel_normalizer(struct intel_dsb *dsb,
> +						   struct intel_plane *plane)
> +{
> +	struct intel_display *display = to_intel_display(plane);
> +	enum intel_fbc_id fbc_id = skl_fbc_id_for_pipe(plane->pipe);
> +	const struct intel_plane_state *plane_state =
> +		to_intel_plane_state(plane->base.state);
> +	u32 val = 0;
> +
> +	if (!HAS_FBC_FP16_FORMATS(display))
> +		return;
>  
> -	/* Only HDR planes have pixel normalizer and don't matter if no FBC */
> +	/* Only HDR planes have pixel normalizer and don't matter if FBC is fused off */
>  	if (!skl_plane_has_fbc(display, fbc_id, plane->id))
>  		return;
>  
> -	val = enable ? PLANE_PIXEL_NORMALIZE_NORM_FACTOR(PLANE_PIXEL_NORMALIZE_NORM_FACTOR_1_0) |
> -		       PLANE_PIXEL_NORMALIZE_ENABLE : 0;
> +	if (!plane_state->pixel_normalizer.needs_update)
> +		return;
> +
> +	if (plane_state->pixel_normalizer.factor)
> +		val = PLANE_PIXEL_NORMALIZE_NORM_FACTOR(plane_state->pixel_normalizer.factor) |
> +		      PLANE_PIXEL_NORMALIZE_ENABLE;
>  
>  	intel_de_write_dsb(display, dsb,
>  			   PLANE_PIXEL_NORMALIZE(plane->pipe, plane->id), val);
> @@ -926,8 +955,7 @@ icl_plane_disable_arm(struct intel_dsb *dsb,
>  
>  	icl_plane_disable_sel_fetch_arm(dsb, plane, crtc_state);
>  
> -	if (DISPLAY_VER(display) >= 35)
> -		x3p_lpd_plane_update_pixel_normalizer(dsb, plane, false);
> +	xe3p_lpd_plane_disable_pixel_normalizer(dsb, plane);
>  
>  	intel_de_write_dsb(display, dsb, PLANE_CTL(pipe, plane_id), 0);
>  	intel_de_write_dsb(display, dsb, PLANE_SURF(pipe, plane_id), 0);
> @@ -1674,13 +1702,7 @@ icl_plane_update_arm(struct intel_dsb *dsb,
>  
>  	intel_color_plane_commit_arm(dsb, plane_state);
>  
> -	/*
> -	 * In order to have FBC for fp16 formats pixel normalizer block must be
> -	 * active. Check if pixel normalizer block need to be enabled for FBC.
> -	 * If needed, use normalization factor as 1.0 and enable the block.
> -	 */
> -	if (intel_fbc_is_enable_pixel_normalizer(plane_state))
> -		x3p_lpd_plane_update_pixel_normalizer(dsb, plane, true);
> +	xe3p_lpd_plane_update_pixel_normalizer(dsb, plane);
>  
>  	/*
>  	 * The control register self-arms if the plane was previously
> @@ -2350,6 +2372,32 @@ static void clip_damage(struct intel_plane_state *plane_state)
>  	drm_rect_intersect(damage, &src);
>  }
>  
> +static void check_pixel_normalizer(struct intel_plane_state *plane_state)
> +{
> +	struct intel_display *display = to_intel_display(plane_state);
> +	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
> +	struct intel_atomic_state *state =
> +		to_intel_atomic_state(plane_state->uapi.state);
> +	const struct intel_plane_state *old_plane_state =
> +		intel_atomic_get_old_plane_state(state, plane);
> +
> +	if (!HAS_FBC_FP16_FORMATS(display))
> +		return;
> +
> +	plane_state->pixel_normalizer.factor =
> +		intel_fbc_normalization_factor(plane_state);
> +
> +	/*
> +	 * In case of no old state to compare, better to force update the pixel
> +	 * normalizer settings.
> +	 */
> +	plane_state->pixel_normalizer.needs_update = true;
> +	if (old_plane_state && old_plane_state->hw.fb)
> +		plane_state->pixel_normalizer.needs_update =
> +			plane_state->pixel_normalizer.factor !=
> +			intel_fbc_normalization_factor(old_plane_state);
> +}
> +
>  static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  			   struct intel_plane_state *plane_state)
>  {
> @@ -2400,6 +2448,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  
>  	check_protection(plane_state);
>  
> +	check_pixel_normalizer(plane_state);
> +
>  	/* HW only has 8 bits pixel precision, disable plane if invisible */
>  	if (!(plane_state->hw.alpha >> 8)) {
>  		plane_state->uapi.visible = false;

-- 
Jani Nikula, Intel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* ✓ CI.KUnit: success for drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2)
  2026-01-26 13:29 [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd Vinod Govindapillai
  2026-01-26 13:43 ` Jani Nikula
@ 2026-01-26 13:44 ` Patchwork
  2026-01-26 15:30 ` ✗ Xe.CI.Full: failure " Patchwork
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2026-01-26 13:44 UTC (permalink / raw)
  To: Vinod Govindapillai; +Cc: intel-xe

== Series Details ==

Series: drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2)
URL   : https://patchwork.freedesktop.org/series/160254/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[13:43:38] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:43:42] 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
[13:44:13] Starting KUnit Kernel (1/1)...
[13:44:13] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:44:14] ================== guc_buf (11 subtests) ===================
[13:44:14] [PASSED] test_smallest
[13:44:14] [PASSED] test_largest
[13:44:14] [PASSED] test_granular
[13:44:14] [PASSED] test_unique
[13:44:14] [PASSED] test_overlap
[13:44:14] [PASSED] test_reusable
[13:44:14] [PASSED] test_too_big
[13:44:14] [PASSED] test_flush
[13:44:14] [PASSED] test_lookup
[13:44:14] [PASSED] test_data
[13:44:14] [PASSED] test_class
[13:44:14] ===================== [PASSED] guc_buf =====================
[13:44:14] =================== guc_dbm (7 subtests) ===================
[13:44:14] [PASSED] test_empty
[13:44:14] [PASSED] test_default
[13:44:14] ======================== test_size  ========================
[13:44:14] [PASSED] 4
[13:44:14] [PASSED] 8
[13:44:14] [PASSED] 32
[13:44:14] [PASSED] 256
[13:44:14] ==================== [PASSED] test_size ====================
[13:44:14] ======================= test_reuse  ========================
[13:44:14] [PASSED] 4
[13:44:14] [PASSED] 8
[13:44:14] [PASSED] 32
[13:44:14] [PASSED] 256
[13:44:14] =================== [PASSED] test_reuse ====================
[13:44:14] =================== test_range_overlap  ====================
[13:44:14] [PASSED] 4
[13:44:14] [PASSED] 8
[13:44:14] [PASSED] 32
[13:44:14] [PASSED] 256
[13:44:14] =============== [PASSED] test_range_overlap ================
[13:44:14] =================== test_range_compact  ====================
[13:44:14] [PASSED] 4
[13:44:14] [PASSED] 8
[13:44:14] [PASSED] 32
[13:44:14] [PASSED] 256
[13:44:14] =============== [PASSED] test_range_compact ================
[13:44:14] ==================== test_range_spare  =====================
[13:44:14] [PASSED] 4
[13:44:14] [PASSED] 8
[13:44:14] [PASSED] 32
[13:44:14] [PASSED] 256
[13:44:14] ================ [PASSED] test_range_spare =================
[13:44:14] ===================== [PASSED] guc_dbm =====================
[13:44:14] =================== guc_idm (6 subtests) ===================
[13:44:14] [PASSED] bad_init
[13:44:14] [PASSED] no_init
[13:44:14] [PASSED] init_fini
[13:44:14] [PASSED] check_used
[13:44:14] [PASSED] check_quota
[13:44:14] [PASSED] check_all
[13:44:14] ===================== [PASSED] guc_idm =====================
[13:44:14] ================== no_relay (3 subtests) ===================
[13:44:14] [PASSED] xe_drops_guc2pf_if_not_ready
[13:44:14] [PASSED] xe_drops_guc2vf_if_not_ready
[13:44:14] [PASSED] xe_rejects_send_if_not_ready
[13:44:14] ==================== [PASSED] no_relay =====================
[13:44:14] ================== pf_relay (14 subtests) ==================
[13:44:14] [PASSED] pf_rejects_guc2pf_too_short
[13:44:14] [PASSED] pf_rejects_guc2pf_too_long
[13:44:14] [PASSED] pf_rejects_guc2pf_no_payload
[13:44:14] [PASSED] pf_fails_no_payload
[13:44:14] [PASSED] pf_fails_bad_origin
[13:44:14] [PASSED] pf_fails_bad_type
[13:44:14] [PASSED] pf_txn_reports_error
[13:44:14] [PASSED] pf_txn_sends_pf2guc
[13:44:14] [PASSED] pf_sends_pf2guc
[13:44:14] [SKIPPED] pf_loopback_nop
[13:44:14] [SKIPPED] pf_loopback_echo
[13:44:14] [SKIPPED] pf_loopback_fail
[13:44:14] [SKIPPED] pf_loopback_busy
[13:44:14] [SKIPPED] pf_loopback_retry
[13:44:14] ==================== [PASSED] pf_relay =====================
[13:44:14] ================== vf_relay (3 subtests) ===================
[13:44:14] [PASSED] vf_rejects_guc2vf_too_short
[13:44:14] [PASSED] vf_rejects_guc2vf_too_long
[13:44:14] [PASSED] vf_rejects_guc2vf_no_payload
[13:44:14] ==================== [PASSED] vf_relay =====================
[13:44:14] ================ pf_gt_config (6 subtests) =================
[13:44:14] [PASSED] fair_contexts_1vf
[13:44:14] [PASSED] fair_doorbells_1vf
[13:44:14] [PASSED] fair_ggtt_1vf
[13:44:14] ====================== fair_contexts  ======================
[13:44:14] [PASSED] 1 VF
[13:44:14] [PASSED] 2 VFs
[13:44:14] [PASSED] 3 VFs
[13:44:14] [PASSED] 4 VFs
[13:44:14] [PASSED] 5 VFs
[13:44:14] [PASSED] 6 VFs
[13:44:14] [PASSED] 7 VFs
[13:44:14] [PASSED] 8 VFs
[13:44:14] [PASSED] 9 VFs
[13:44:14] [PASSED] 10 VFs
[13:44:14] [PASSED] 11 VFs
[13:44:14] [PASSED] 12 VFs
[13:44:14] [PASSED] 13 VFs
[13:44:14] [PASSED] 14 VFs
[13:44:14] [PASSED] 15 VFs
[13:44:14] [PASSED] 16 VFs
[13:44:14] [PASSED] 17 VFs
[13:44:14] [PASSED] 18 VFs
[13:44:14] [PASSED] 19 VFs
[13:44:14] [PASSED] 20 VFs
[13:44:14] [PASSED] 21 VFs
[13:44:14] [PASSED] 22 VFs
[13:44:14] [PASSED] 23 VFs
[13:44:14] [PASSED] 24 VFs
[13:44:14] [PASSED] 25 VFs
[13:44:14] [PASSED] 26 VFs
[13:44:14] [PASSED] 27 VFs
[13:44:14] [PASSED] 28 VFs
[13:44:14] [PASSED] 29 VFs
[13:44:14] [PASSED] 30 VFs
[13:44:14] [PASSED] 31 VFs
[13:44:14] [PASSED] 32 VFs
[13:44:14] [PASSED] 33 VFs
[13:44:14] [PASSED] 34 VFs
[13:44:14] [PASSED] 35 VFs
[13:44:14] [PASSED] 36 VFs
[13:44:14] [PASSED] 37 VFs
[13:44:14] [PASSED] 38 VFs
[13:44:14] [PASSED] 39 VFs
[13:44:14] [PASSED] 40 VFs
[13:44:14] [PASSED] 41 VFs
[13:44:14] [PASSED] 42 VFs
[13:44:14] [PASSED] 43 VFs
[13:44:14] [PASSED] 44 VFs
[13:44:14] [PASSED] 45 VFs
[13:44:14] [PASSED] 46 VFs
[13:44:14] [PASSED] 47 VFs
[13:44:14] [PASSED] 48 VFs
[13:44:14] [PASSED] 49 VFs
[13:44:14] [PASSED] 50 VFs
[13:44:14] [PASSED] 51 VFs
[13:44:14] [PASSED] 52 VFs
[13:44:14] [PASSED] 53 VFs
[13:44:14] [PASSED] 54 VFs
[13:44:14] [PASSED] 55 VFs
[13:44:14] [PASSED] 56 VFs
[13:44:14] [PASSED] 57 VFs
[13:44:14] [PASSED] 58 VFs
[13:44:14] [PASSED] 59 VFs
[13:44:14] [PASSED] 60 VFs
[13:44:14] [PASSED] 61 VFs
[13:44:14] [PASSED] 62 VFs
[13:44:14] [PASSED] 63 VFs
[13:44:14] ================== [PASSED] fair_contexts ==================
[13:44:14] ===================== fair_doorbells  ======================
[13:44:14] [PASSED] 1 VF
[13:44:14] [PASSED] 2 VFs
[13:44:14] [PASSED] 3 VFs
[13:44:14] [PASSED] 4 VFs
[13:44:14] [PASSED] 5 VFs
[13:44:14] [PASSED] 6 VFs
[13:44:14] [PASSED] 7 VFs
[13:44:14] [PASSED] 8 VFs
[13:44:14] [PASSED] 9 VFs
[13:44:14] [PASSED] 10 VFs
[13:44:14] [PASSED] 11 VFs
[13:44:14] [PASSED] 12 VFs
[13:44:14] [PASSED] 13 VFs
[13:44:14] [PASSED] 14 VFs
[13:44:14] [PASSED] 15 VFs
[13:44:14] [PASSED] 16 VFs
[13:44:14] [PASSED] 17 VFs
[13:44:14] [PASSED] 18 VFs
[13:44:14] [PASSED] 19 VFs
[13:44:14] [PASSED] 20 VFs
[13:44:14] [PASSED] 21 VFs
[13:44:14] [PASSED] 22 VFs
[13:44:14] [PASSED] 23 VFs
[13:44:14] [PASSED] 24 VFs
[13:44:14] [PASSED] 25 VFs
[13:44:14] [PASSED] 26 VFs
[13:44:14] [PASSED] 27 VFs
[13:44:14] [PASSED] 28 VFs
[13:44:14] [PASSED] 29 VFs
[13:44:14] [PASSED] 30 VFs
[13:44:14] [PASSED] 31 VFs
[13:44:14] [PASSED] 32 VFs
[13:44:14] [PASSED] 33 VFs
[13:44:14] [PASSED] 34 VFs
[13:44:14] [PASSED] 35 VFs
[13:44:14] [PASSED] 36 VFs
[13:44:14] [PASSED] 37 VFs
[13:44:14] [PASSED] 38 VFs
[13:44:14] [PASSED] 39 VFs
[13:44:14] [PASSED] 40 VFs
[13:44:14] [PASSED] 41 VFs
[13:44:14] [PASSED] 42 VFs
[13:44:14] [PASSED] 43 VFs
[13:44:14] [PASSED] 44 VFs
[13:44:14] [PASSED] 45 VFs
[13:44:14] [PASSED] 46 VFs
[13:44:14] [PASSED] 47 VFs
[13:44:14] [PASSED] 48 VFs
[13:44:14] [PASSED] 49 VFs
[13:44:14] [PASSED] 50 VFs
[13:44:14] [PASSED] 51 VFs
[13:44:14] [PASSED] 52 VFs
[13:44:14] [PASSED] 53 VFs
[13:44:14] [PASSED] 54 VFs
[13:44:14] [PASSED] 55 VFs
[13:44:14] [PASSED] 56 VFs
[13:44:14] [PASSED] 57 VFs
[13:44:14] [PASSED] 58 VFs
[13:44:14] [PASSED] 59 VFs
[13:44:14] [PASSED] 60 VFs
[13:44:14] [PASSED] 61 VFs
[13:44:14] [PASSED] 62 VFs
[13:44:14] [PASSED] 63 VFs
[13:44:14] ================= [PASSED] fair_doorbells ==================
[13:44:14] ======================== fair_ggtt  ========================
[13:44:14] [PASSED] 1 VF
[13:44:14] [PASSED] 2 VFs
[13:44:14] [PASSED] 3 VFs
[13:44:14] [PASSED] 4 VFs
[13:44:14] [PASSED] 5 VFs
[13:44:14] [PASSED] 6 VFs
[13:44:14] [PASSED] 7 VFs
[13:44:14] [PASSED] 8 VFs
[13:44:14] [PASSED] 9 VFs
[13:44:14] [PASSED] 10 VFs
[13:44:14] [PASSED] 11 VFs
[13:44:14] [PASSED] 12 VFs
[13:44:14] [PASSED] 13 VFs
[13:44:14] [PASSED] 14 VFs
[13:44:14] [PASSED] 15 VFs
[13:44:14] [PASSED] 16 VFs
[13:44:14] [PASSED] 17 VFs
[13:44:14] [PASSED] 18 VFs
[13:44:14] [PASSED] 19 VFs
[13:44:14] [PASSED] 20 VFs
[13:44:14] [PASSED] 21 VFs
[13:44:14] [PASSED] 22 VFs
[13:44:14] [PASSED] 23 VFs
[13:44:14] [PASSED] 24 VFs
[13:44:14] [PASSED] 25 VFs
[13:44:14] [PASSED] 26 VFs
[13:44:14] [PASSED] 27 VFs
[13:44:14] [PASSED] 28 VFs
[13:44:14] [PASSED] 29 VFs
[13:44:14] [PASSED] 30 VFs
[13:44:14] [PASSED] 31 VFs
[13:44:14] [PASSED] 32 VFs
[13:44:14] [PASSED] 33 VFs
[13:44:14] [PASSED] 34 VFs
[13:44:14] [PASSED] 35 VFs
[13:44:14] [PASSED] 36 VFs
[13:44:14] [PASSED] 37 VFs
[13:44:14] [PASSED] 38 VFs
[13:44:14] [PASSED] 39 VFs
[13:44:14] [PASSED] 40 VFs
[13:44:14] [PASSED] 41 VFs
[13:44:14] [PASSED] 42 VFs
[13:44:14] [PASSED] 43 VFs
[13:44:14] [PASSED] 44 VFs
[13:44:14] [PASSED] 45 VFs
[13:44:14] [PASSED] 46 VFs
[13:44:14] [PASSED] 47 VFs
[13:44:14] [PASSED] 48 VFs
[13:44:14] [PASSED] 49 VFs
[13:44:14] [PASSED] 50 VFs
[13:44:14] [PASSED] 51 VFs
[13:44:14] [PASSED] 52 VFs
[13:44:14] [PASSED] 53 VFs
[13:44:14] [PASSED] 54 VFs
[13:44:14] [PASSED] 55 VFs
[13:44:14] [PASSED] 56 VFs
[13:44:14] [PASSED] 57 VFs
[13:44:14] [PASSED] 58 VFs
[13:44:14] [PASSED] 59 VFs
[13:44:14] [PASSED] 60 VFs
[13:44:14] [PASSED] 61 VFs
[13:44:14] [PASSED] 62 VFs
[13:44:14] [PASSED] 63 VFs
[13:44:14] ==================== [PASSED] fair_ggtt ====================
[13:44:14] ================== [PASSED] pf_gt_config ===================
[13:44:14] ===================== lmtt (1 subtest) =====================
[13:44:14] ======================== test_ops  =========================
[13:44:14] [PASSED] 2-level
[13:44:14] [PASSED] multi-level
[13:44:14] ==================== [PASSED] test_ops =====================
[13:44:14] ====================== [PASSED] lmtt =======================
[13:44:14] ================= pf_service (11 subtests) =================
[13:44:14] [PASSED] pf_negotiate_any
[13:44:14] [PASSED] pf_negotiate_base_match
[13:44:14] [PASSED] pf_negotiate_base_newer
[13:44:14] [PASSED] pf_negotiate_base_next
[13:44:14] [SKIPPED] pf_negotiate_base_older
[13:44:14] [PASSED] pf_negotiate_base_prev
[13:44:14] [PASSED] pf_negotiate_latest_match
[13:44:14] [PASSED] pf_negotiate_latest_newer
[13:44:14] [PASSED] pf_negotiate_latest_next
[13:44:14] [SKIPPED] pf_negotiate_latest_older
[13:44:14] [SKIPPED] pf_negotiate_latest_prev
[13:44:14] =================== [PASSED] pf_service ====================
[13:44:14] ================= xe_guc_g2g (2 subtests) ==================
[13:44:14] ============== xe_live_guc_g2g_kunit_default  ==============
[13:44:14] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[13:44:14] ============== xe_live_guc_g2g_kunit_allmem  ===============
[13:44:14] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[13:44:14] =================== [SKIPPED] xe_guc_g2g ===================
[13:44:14] =================== xe_mocs (2 subtests) ===================
[13:44:14] ================ xe_live_mocs_kernel_kunit  ================
[13:44:14] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[13:44:14] ================ xe_live_mocs_reset_kunit  =================
[13:44:14] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[13:44:14] ==================== [SKIPPED] xe_mocs =====================
[13:44:14] ================= xe_migrate (2 subtests) ==================
[13:44:14] ================= xe_migrate_sanity_kunit  =================
[13:44:14] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[13:44:14] ================== xe_validate_ccs_kunit  ==================
[13:44:14] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[13:44:14] =================== [SKIPPED] xe_migrate ===================
[13:44:14] ================== xe_dma_buf (1 subtest) ==================
[13:44:14] ==================== xe_dma_buf_kunit  =====================
[13:44:14] ================ [SKIPPED] xe_dma_buf_kunit ================
[13:44:14] =================== [SKIPPED] xe_dma_buf ===================
[13:44:14] ================= xe_bo_shrink (1 subtest) =================
[13:44:14] =================== xe_bo_shrink_kunit  ====================
[13:44:14] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[13:44:14] ================== [SKIPPED] xe_bo_shrink ==================
[13:44:14] ==================== xe_bo (2 subtests) ====================
[13:44:14] ================== xe_ccs_migrate_kunit  ===================
[13:44:14] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[13:44:14] ==================== xe_bo_evict_kunit  ====================
[13:44:14] =============== [SKIPPED] xe_bo_evict_kunit ================
[13:44:14] ===================== [SKIPPED] xe_bo ======================
[13:44:14] ==================== args (13 subtests) ====================
[13:44:14] [PASSED] count_args_test
[13:44:14] [PASSED] call_args_example
[13:44:14] [PASSED] call_args_test
[13:44:14] [PASSED] drop_first_arg_example
[13:44:14] [PASSED] drop_first_arg_test
[13:44:14] [PASSED] first_arg_example
[13:44:14] [PASSED] first_arg_test
[13:44:14] [PASSED] last_arg_example
[13:44:14] [PASSED] last_arg_test
[13:44:14] [PASSED] pick_arg_example
[13:44:14] [PASSED] if_args_example
[13:44:14] [PASSED] if_args_test
[13:44:14] [PASSED] sep_comma_example
[13:44:14] ====================== [PASSED] args =======================
[13:44:14] =================== xe_pci (3 subtests) ====================
[13:44:14] ==================== check_graphics_ip  ====================
[13:44:14] [PASSED] 12.00 Xe_LP
[13:44:14] [PASSED] 12.10 Xe_LP+
[13:44:14] [PASSED] 12.55 Xe_HPG
[13:44:14] [PASSED] 12.60 Xe_HPC
[13:44:14] [PASSED] 12.70 Xe_LPG
[13:44:14] [PASSED] 12.71 Xe_LPG
[13:44:14] [PASSED] 12.74 Xe_LPG+
[13:44:14] [PASSED] 20.01 Xe2_HPG
[13:44:14] [PASSED] 20.02 Xe2_HPG
[13:44:14] [PASSED] 20.04 Xe2_LPG
[13:44:14] [PASSED] 30.00 Xe3_LPG
[13:44:14] [PASSED] 30.01 Xe3_LPG
[13:44:14] [PASSED] 30.03 Xe3_LPG
[13:44:14] [PASSED] 30.04 Xe3_LPG
[13:44:14] [PASSED] 30.05 Xe3_LPG
[13:44:14] [PASSED] 35.11 Xe3p_XPC
[13:44:14] ================ [PASSED] check_graphics_ip ================
[13:44:14] ===================== check_media_ip  ======================
[13:44:14] [PASSED] 12.00 Xe_M
[13:44:14] [PASSED] 12.55 Xe_HPM
[13:44:14] [PASSED] 13.00 Xe_LPM+
[13:44:14] [PASSED] 13.01 Xe2_HPM
[13:44:14] [PASSED] 20.00 Xe2_LPM
[13:44:14] [PASSED] 30.00 Xe3_LPM
[13:44:14] [PASSED] 30.02 Xe3_LPM
[13:44:14] [PASSED] 35.00 Xe3p_LPM
[13:44:14] [PASSED] 35.03 Xe3p_HPM
[13:44:14] ================= [PASSED] check_media_ip ==================
[13:44:14] =================== check_platform_desc  ===================
[13:44:14] [PASSED] 0x9A60 (TIGERLAKE)
[13:44:14] [PASSED] 0x9A68 (TIGERLAKE)
[13:44:14] [PASSED] 0x9A70 (TIGERLAKE)
[13:44:14] [PASSED] 0x9A40 (TIGERLAKE)
[13:44:14] [PASSED] 0x9A49 (TIGERLAKE)
[13:44:14] [PASSED] 0x9A59 (TIGERLAKE)
[13:44:14] [PASSED] 0x9A78 (TIGERLAKE)
[13:44:14] [PASSED] 0x9AC0 (TIGERLAKE)
[13:44:14] [PASSED] 0x9AC9 (TIGERLAKE)
[13:44:14] [PASSED] 0x9AD9 (TIGERLAKE)
[13:44:14] [PASSED] 0x9AF8 (TIGERLAKE)
[13:44:14] [PASSED] 0x4C80 (ROCKETLAKE)
[13:44:14] [PASSED] 0x4C8A (ROCKETLAKE)
[13:44:14] [PASSED] 0x4C8B (ROCKETLAKE)
[13:44:14] [PASSED] 0x4C8C (ROCKETLAKE)
[13:44:14] [PASSED] 0x4C90 (ROCKETLAKE)
[13:44:14] [PASSED] 0x4C9A (ROCKETLAKE)
[13:44:14] [PASSED] 0x4680 (ALDERLAKE_S)
[13:44:14] [PASSED] 0x4682 (ALDERLAKE_S)
[13:44:14] [PASSED] 0x4688 (ALDERLAKE_S)
[13:44:14] [PASSED] 0x468A (ALDERLAKE_S)
[13:44:14] [PASSED] 0x468B (ALDERLAKE_S)
[13:44:14] [PASSED] 0x4690 (ALDERLAKE_S)
[13:44:14] [PASSED] 0x4692 (ALDERLAKE_S)
[13:44:14] [PASSED] 0x4693 (ALDERLAKE_S)
[13:44:14] [PASSED] 0x46A0 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46A1 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46A2 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46A3 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46A6 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46A8 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46AA (ALDERLAKE_P)
[13:44:14] [PASSED] 0x462A (ALDERLAKE_P)
[13:44:14] [PASSED] 0x4626 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x4628 (ALDERLAKE_P)
stty: 'standard input': Inappropriate ioctl for device
[13:44:14] [PASSED] 0x46B0 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46B1 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46B2 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46B3 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46C0 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46C1 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46C2 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46C3 (ALDERLAKE_P)
[13:44:14] [PASSED] 0x46D0 (ALDERLAKE_N)
[13:44:14] [PASSED] 0x46D1 (ALDERLAKE_N)
[13:44:14] [PASSED] 0x46D2 (ALDERLAKE_N)
[13:44:14] [PASSED] 0x46D3 (ALDERLAKE_N)
[13:44:14] [PASSED] 0x46D4 (ALDERLAKE_N)
[13:44:14] [PASSED] 0xA721 (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7A1 (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7A9 (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7AC (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7AD (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA720 (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7A0 (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7A8 (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7AA (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA7AB (ALDERLAKE_P)
[13:44:14] [PASSED] 0xA780 (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA781 (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA782 (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA783 (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA788 (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA789 (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA78A (ALDERLAKE_S)
[13:44:14] [PASSED] 0xA78B (ALDERLAKE_S)
[13:44:14] [PASSED] 0x4905 (DG1)
[13:44:14] [PASSED] 0x4906 (DG1)
[13:44:14] [PASSED] 0x4907 (DG1)
[13:44:14] [PASSED] 0x4908 (DG1)
[13:44:14] [PASSED] 0x4909 (DG1)
[13:44:14] [PASSED] 0x56C0 (DG2)
[13:44:14] [PASSED] 0x56C2 (DG2)
[13:44:14] [PASSED] 0x56C1 (DG2)
[13:44:14] [PASSED] 0x7D51 (METEORLAKE)
[13:44:14] [PASSED] 0x7DD1 (METEORLAKE)
[13:44:14] [PASSED] 0x7D41 (METEORLAKE)
[13:44:14] [PASSED] 0x7D67 (METEORLAKE)
[13:44:14] [PASSED] 0xB640 (METEORLAKE)
[13:44:14] [PASSED] 0x56A0 (DG2)
[13:44:14] [PASSED] 0x56A1 (DG2)
[13:44:14] [PASSED] 0x56A2 (DG2)
[13:44:14] [PASSED] 0x56BE (DG2)
[13:44:14] [PASSED] 0x56BF (DG2)
[13:44:14] [PASSED] 0x5690 (DG2)
[13:44:14] [PASSED] 0x5691 (DG2)
[13:44:14] [PASSED] 0x5692 (DG2)
[13:44:14] [PASSED] 0x56A5 (DG2)
[13:44:14] [PASSED] 0x56A6 (DG2)
[13:44:14] [PASSED] 0x56B0 (DG2)
[13:44:14] [PASSED] 0x56B1 (DG2)
[13:44:14] [PASSED] 0x56BA (DG2)
[13:44:14] [PASSED] 0x56BB (DG2)
[13:44:14] [PASSED] 0x56BC (DG2)
[13:44:14] [PASSED] 0x56BD (DG2)
[13:44:14] [PASSED] 0x5693 (DG2)
[13:44:14] [PASSED] 0x5694 (DG2)
[13:44:14] [PASSED] 0x5695 (DG2)
[13:44:14] [PASSED] 0x56A3 (DG2)
[13:44:14] [PASSED] 0x56A4 (DG2)
[13:44:14] [PASSED] 0x56B2 (DG2)
[13:44:14] [PASSED] 0x56B3 (DG2)
[13:44:14] [PASSED] 0x5696 (DG2)
[13:44:14] [PASSED] 0x5697 (DG2)
[13:44:14] [PASSED] 0xB69 (PVC)
[13:44:14] [PASSED] 0xB6E (PVC)
[13:44:14] [PASSED] 0xBD4 (PVC)
[13:44:14] [PASSED] 0xBD5 (PVC)
[13:44:14] [PASSED] 0xBD6 (PVC)
[13:44:14] [PASSED] 0xBD7 (PVC)
[13:44:14] [PASSED] 0xBD8 (PVC)
[13:44:14] [PASSED] 0xBD9 (PVC)
[13:44:14] [PASSED] 0xBDA (PVC)
[13:44:14] [PASSED] 0xBDB (PVC)
[13:44:14] [PASSED] 0xBE0 (PVC)
[13:44:14] [PASSED] 0xBE1 (PVC)
[13:44:14] [PASSED] 0xBE5 (PVC)
[13:44:14] [PASSED] 0x7D40 (METEORLAKE)
[13:44:14] [PASSED] 0x7D45 (METEORLAKE)
[13:44:14] [PASSED] 0x7D55 (METEORLAKE)
[13:44:14] [PASSED] 0x7D60 (METEORLAKE)
[13:44:14] [PASSED] 0x7DD5 (METEORLAKE)
[13:44:14] [PASSED] 0x6420 (LUNARLAKE)
[13:44:14] [PASSED] 0x64A0 (LUNARLAKE)
[13:44:14] [PASSED] 0x64B0 (LUNARLAKE)
[13:44:14] [PASSED] 0xE202 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE209 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE20B (BATTLEMAGE)
[13:44:14] [PASSED] 0xE20C (BATTLEMAGE)
[13:44:14] [PASSED] 0xE20D (BATTLEMAGE)
[13:44:14] [PASSED] 0xE210 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE211 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE212 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE216 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE220 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE221 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE222 (BATTLEMAGE)
[13:44:14] [PASSED] 0xE223 (BATTLEMAGE)
[13:44:14] [PASSED] 0xB080 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB081 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB082 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB083 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB084 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB085 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB086 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB087 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB08F (PANTHERLAKE)
[13:44:14] [PASSED] 0xB090 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB0A0 (PANTHERLAKE)
[13:44:14] [PASSED] 0xB0B0 (PANTHERLAKE)
[13:44:14] [PASSED] 0xFD80 (PANTHERLAKE)
[13:44:14] [PASSED] 0xFD81 (PANTHERLAKE)
[13:44:14] [PASSED] 0xD740 (NOVALAKE_S)
[13:44:14] [PASSED] 0xD741 (NOVALAKE_S)
[13:44:14] [PASSED] 0xD742 (NOVALAKE_S)
[13:44:14] [PASSED] 0xD743 (NOVALAKE_S)
[13:44:14] [PASSED] 0xD744 (NOVALAKE_S)
[13:44:14] [PASSED] 0xD745 (NOVALAKE_S)
[13:44:14] [PASSED] 0x674C (CRESCENTISLAND)
[13:44:14] =============== [PASSED] check_platform_desc ===============
[13:44:14] ===================== [PASSED] xe_pci ======================
[13:44:14] =================== xe_rtp (2 subtests) ====================
[13:44:14] =============== xe_rtp_process_to_sr_tests  ================
[13:44:14] [PASSED] coalesce-same-reg
[13:44:14] [PASSED] no-match-no-add
[13:44:14] [PASSED] match-or
[13:44:14] [PASSED] match-or-xfail
[13:44:14] [PASSED] no-match-no-add-multiple-rules
[13:44:14] [PASSED] two-regs-two-entries
[13:44:14] [PASSED] clr-one-set-other
[13:44:14] [PASSED] set-field
[13:44:14] [PASSED] conflict-duplicate
[13:44:14] [PASSED] conflict-not-disjoint
[13:44:14] [PASSED] conflict-reg-type
[13:44:14] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[13:44:14] ================== xe_rtp_process_tests  ===================
[13:44:14] [PASSED] active1
[13:44:14] [PASSED] active2
[13:44:14] [PASSED] active-inactive
[13:44:14] [PASSED] inactive-active
[13:44:14] [PASSED] inactive-1st_or_active-inactive
[13:44:14] [PASSED] inactive-2nd_or_active-inactive
[13:44:14] [PASSED] inactive-last_or_active-inactive
[13:44:14] [PASSED] inactive-no_or_active-inactive
[13:44:14] ============== [PASSED] xe_rtp_process_tests ===============
[13:44:14] ===================== [PASSED] xe_rtp ======================
[13:44:14] ==================== xe_wa (1 subtest) =====================
[13:44:14] ======================== xe_wa_gt  =========================
[13:44:14] [PASSED] TIGERLAKE B0
[13:44:14] [PASSED] DG1 A0
[13:44:14] [PASSED] DG1 B0
[13:44:14] [PASSED] ALDERLAKE_S A0
[13:44:14] [PASSED] ALDERLAKE_S B0
[13:44:14] [PASSED] ALDERLAKE_S C0
[13:44:14] [PASSED] ALDERLAKE_S D0
[13:44:14] [PASSED] ALDERLAKE_P A0
[13:44:14] [PASSED] ALDERLAKE_P B0
[13:44:14] [PASSED] ALDERLAKE_P C0
[13:44:14] [PASSED] ALDERLAKE_S RPLS D0
[13:44:14] [PASSED] ALDERLAKE_P RPLU E0
[13:44:14] [PASSED] DG2 G10 C0
[13:44:14] [PASSED] DG2 G11 B1
[13:44:14] [PASSED] DG2 G12 A1
[13:44:14] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:44:14] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[13:44:14] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[13:44:14] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[13:44:14] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[13:44:14] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[13:44:14] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[13:44:14] ==================== [PASSED] xe_wa_gt =====================
[13:44:14] ====================== [PASSED] xe_wa ======================
[13:44:14] ============================================================
[13:44:14] Testing complete. Ran 512 tests: passed: 494, skipped: 18
[13:44:14] Elapsed time: 36.234s total, 4.226s configuring, 31.491s building, 0.473s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[13:44:14] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:44:16] 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
[13:44:41] Starting KUnit Kernel (1/1)...
[13:44:41] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:44:41] ============ drm_test_pick_cmdline (2 subtests) ============
[13:44:41] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[13:44:41] =============== drm_test_pick_cmdline_named  ===============
[13:44:41] [PASSED] NTSC
[13:44:41] [PASSED] NTSC-J
[13:44:41] [PASSED] PAL
[13:44:41] [PASSED] PAL-M
[13:44:41] =========== [PASSED] drm_test_pick_cmdline_named ===========
[13:44:41] ============== [PASSED] drm_test_pick_cmdline ==============
[13:44:41] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[13:44:41] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[13:44:41] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[13:44:41] =========== drm_validate_clone_mode (2 subtests) ===========
[13:44:41] ============== drm_test_check_in_clone_mode  ===============
[13:44:41] [PASSED] in_clone_mode
[13:44:41] [PASSED] not_in_clone_mode
[13:44:41] ========== [PASSED] drm_test_check_in_clone_mode ===========
[13:44:41] =============== drm_test_check_valid_clones  ===============
[13:44:41] [PASSED] not_in_clone_mode
[13:44:41] [PASSED] valid_clone
[13:44:41] [PASSED] invalid_clone
[13:44:41] =========== [PASSED] drm_test_check_valid_clones ===========
[13:44:41] ============= [PASSED] drm_validate_clone_mode =============
[13:44:41] ============= drm_validate_modeset (1 subtest) =============
[13:44:41] [PASSED] drm_test_check_connector_changed_modeset
[13:44:41] ============== [PASSED] drm_validate_modeset ===============
[13:44:41] ====== drm_test_bridge_get_current_state (2 subtests) ======
[13:44:41] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[13:44:41] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[13:44:41] ======== [PASSED] drm_test_bridge_get_current_state ========
[13:44:41] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[13:44:41] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[13:44:42] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[13:44:42] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[13:44:42] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[13:44:42] ============== drm_bridge_alloc (2 subtests) ===============
[13:44:42] [PASSED] drm_test_drm_bridge_alloc_basic
[13:44:42] [PASSED] drm_test_drm_bridge_alloc_get_put
[13:44:42] ================ [PASSED] drm_bridge_alloc =================
[13:44:42] ================== drm_buddy (9 subtests) ==================
[13:44:42] [PASSED] drm_test_buddy_alloc_limit
[13:44:42] [PASSED] drm_test_buddy_alloc_optimistic
[13:44:42] [PASSED] drm_test_buddy_alloc_pessimistic
[13:44:42] [PASSED] drm_test_buddy_alloc_pathological
[13:44:42] [PASSED] drm_test_buddy_alloc_contiguous
[13:44:42] [PASSED] drm_test_buddy_alloc_clear
[13:44:42] [PASSED] drm_test_buddy_alloc_range_bias
[13:44:42] [PASSED] drm_test_buddy_fragmentation_performance
[13:44:42] [PASSED] drm_test_buddy_alloc_exceeds_max_order
[13:44:42] ==================== [PASSED] drm_buddy ====================
[13:44:42] ============= drm_cmdline_parser (40 subtests) =============
[13:44:42] [PASSED] drm_test_cmdline_force_d_only
[13:44:42] [PASSED] drm_test_cmdline_force_D_only_dvi
[13:44:42] [PASSED] drm_test_cmdline_force_D_only_hdmi
[13:44:42] [PASSED] drm_test_cmdline_force_D_only_not_digital
[13:44:42] [PASSED] drm_test_cmdline_force_e_only
[13:44:42] [PASSED] drm_test_cmdline_res
[13:44:42] [PASSED] drm_test_cmdline_res_vesa
[13:44:42] [PASSED] drm_test_cmdline_res_vesa_rblank
[13:44:42] [PASSED] drm_test_cmdline_res_rblank
[13:44:42] [PASSED] drm_test_cmdline_res_bpp
[13:44:42] [PASSED] drm_test_cmdline_res_refresh
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[13:44:42] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[13:44:42] [PASSED] drm_test_cmdline_res_margins_force_on
[13:44:42] [PASSED] drm_test_cmdline_res_vesa_margins
[13:44:42] [PASSED] drm_test_cmdline_name
[13:44:42] [PASSED] drm_test_cmdline_name_bpp
[13:44:42] [PASSED] drm_test_cmdline_name_option
[13:44:42] [PASSED] drm_test_cmdline_name_bpp_option
[13:44:42] [PASSED] drm_test_cmdline_rotate_0
[13:44:42] [PASSED] drm_test_cmdline_rotate_90
[13:44:42] [PASSED] drm_test_cmdline_rotate_180
[13:44:42] [PASSED] drm_test_cmdline_rotate_270
[13:44:42] [PASSED] drm_test_cmdline_hmirror
[13:44:42] [PASSED] drm_test_cmdline_vmirror
[13:44:42] [PASSED] drm_test_cmdline_margin_options
[13:44:42] [PASSED] drm_test_cmdline_multiple_options
[13:44:42] [PASSED] drm_test_cmdline_bpp_extra_and_option
[13:44:42] [PASSED] drm_test_cmdline_extra_and_option
[13:44:42] [PASSED] drm_test_cmdline_freestanding_options
[13:44:42] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[13:44:42] [PASSED] drm_test_cmdline_panel_orientation
[13:44:42] ================ drm_test_cmdline_invalid  =================
[13:44:42] [PASSED] margin_only
[13:44:42] [PASSED] interlace_only
[13:44:42] [PASSED] res_missing_x
[13:44:42] [PASSED] res_missing_y
[13:44:42] [PASSED] res_bad_y
[13:44:42] [PASSED] res_missing_y_bpp
[13:44:42] [PASSED] res_bad_bpp
[13:44:42] [PASSED] res_bad_refresh
[13:44:42] [PASSED] res_bpp_refresh_force_on_off
[13:44:42] [PASSED] res_invalid_mode
[13:44:42] [PASSED] res_bpp_wrong_place_mode
[13:44:42] [PASSED] name_bpp_refresh
[13:44:42] [PASSED] name_refresh
[13:44:42] [PASSED] name_refresh_wrong_mode
[13:44:42] [PASSED] name_refresh_invalid_mode
[13:44:42] [PASSED] rotate_multiple
[13:44:42] [PASSED] rotate_invalid_val
[13:44:42] [PASSED] rotate_truncated
[13:44:42] [PASSED] invalid_option
[13:44:42] [PASSED] invalid_tv_option
[13:44:42] [PASSED] truncated_tv_option
[13:44:42] ============ [PASSED] drm_test_cmdline_invalid =============
[13:44:42] =============== drm_test_cmdline_tv_options  ===============
[13:44:42] [PASSED] NTSC
[13:44:42] [PASSED] NTSC_443
[13:44:42] [PASSED] NTSC_J
[13:44:42] [PASSED] PAL
[13:44:42] [PASSED] PAL_M
[13:44:42] [PASSED] PAL_N
[13:44:42] [PASSED] SECAM
[13:44:42] [PASSED] MONO_525
[13:44:42] [PASSED] MONO_625
[13:44:42] =========== [PASSED] drm_test_cmdline_tv_options ===========
[13:44:42] =============== [PASSED] drm_cmdline_parser ================
[13:44:42] ========== drmm_connector_hdmi_init (20 subtests) ==========
[13:44:42] [PASSED] drm_test_connector_hdmi_init_valid
[13:44:42] [PASSED] drm_test_connector_hdmi_init_bpc_8
[13:44:42] [PASSED] drm_test_connector_hdmi_init_bpc_10
[13:44:42] [PASSED] drm_test_connector_hdmi_init_bpc_12
[13:44:42] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[13:44:42] [PASSED] drm_test_connector_hdmi_init_bpc_null
[13:44:42] [PASSED] drm_test_connector_hdmi_init_formats_empty
[13:44:42] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[13:44:42] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[13:44:42] [PASSED] supported_formats=0x9 yuv420_allowed=1
[13:44:42] [PASSED] supported_formats=0x9 yuv420_allowed=0
[13:44:42] [PASSED] supported_formats=0x3 yuv420_allowed=1
[13:44:42] [PASSED] supported_formats=0x3 yuv420_allowed=0
[13:44:42] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[13:44:42] [PASSED] drm_test_connector_hdmi_init_null_ddc
[13:44:42] [PASSED] drm_test_connector_hdmi_init_null_product
[13:44:42] [PASSED] drm_test_connector_hdmi_init_null_vendor
[13:44:42] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[13:44:42] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[13:44:42] [PASSED] drm_test_connector_hdmi_init_product_valid
[13:44:42] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[13:44:42] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[13:44:42] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[13:44:42] ========= drm_test_connector_hdmi_init_type_valid  =========
[13:44:42] [PASSED] HDMI-A
[13:44:42] [PASSED] HDMI-B
[13:44:42] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[13:44:42] ======== drm_test_connector_hdmi_init_type_invalid  ========
[13:44:42] [PASSED] Unknown
[13:44:42] [PASSED] VGA
[13:44:42] [PASSED] DVI-I
[13:44:42] [PASSED] DVI-D
[13:44:42] [PASSED] DVI-A
[13:44:42] [PASSED] Composite
[13:44:42] [PASSED] SVIDEO
[13:44:42] [PASSED] LVDS
[13:44:42] [PASSED] Component
[13:44:42] [PASSED] DIN
[13:44:42] [PASSED] DP
[13:44:42] [PASSED] TV
[13:44:42] [PASSED] eDP
[13:44:42] [PASSED] Virtual
[13:44:42] [PASSED] DSI
[13:44:42] [PASSED] DPI
[13:44:42] [PASSED] Writeback
[13:44:42] [PASSED] SPI
[13:44:42] [PASSED] USB
[13:44:42] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[13:44:42] ============ [PASSED] drmm_connector_hdmi_init =============
[13:44:42] ============= drmm_connector_init (3 subtests) =============
[13:44:42] [PASSED] drm_test_drmm_connector_init
[13:44:42] [PASSED] drm_test_drmm_connector_init_null_ddc
[13:44:42] ========= drm_test_drmm_connector_init_type_valid  =========
[13:44:42] [PASSED] Unknown
[13:44:42] [PASSED] VGA
[13:44:42] [PASSED] DVI-I
[13:44:42] [PASSED] DVI-D
[13:44:42] [PASSED] DVI-A
[13:44:42] [PASSED] Composite
[13:44:42] [PASSED] SVIDEO
[13:44:42] [PASSED] LVDS
[13:44:42] [PASSED] Component
[13:44:42] [PASSED] DIN
[13:44:42] [PASSED] DP
[13:44:42] [PASSED] HDMI-A
[13:44:42] [PASSED] HDMI-B
[13:44:42] [PASSED] TV
[13:44:42] [PASSED] eDP
[13:44:42] [PASSED] Virtual
[13:44:42] [PASSED] DSI
[13:44:42] [PASSED] DPI
[13:44:42] [PASSED] Writeback
[13:44:42] [PASSED] SPI
[13:44:42] [PASSED] USB
[13:44:42] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[13:44:42] =============== [PASSED] drmm_connector_init ===============
[13:44:42] ========= drm_connector_dynamic_init (6 subtests) ==========
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_init
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_init_properties
[13:44:42] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[13:44:42] [PASSED] Unknown
[13:44:42] [PASSED] VGA
[13:44:42] [PASSED] DVI-I
[13:44:42] [PASSED] DVI-D
[13:44:42] [PASSED] DVI-A
[13:44:42] [PASSED] Composite
[13:44:42] [PASSED] SVIDEO
[13:44:42] [PASSED] LVDS
[13:44:42] [PASSED] Component
[13:44:42] [PASSED] DIN
[13:44:42] [PASSED] DP
[13:44:42] [PASSED] HDMI-A
[13:44:42] [PASSED] HDMI-B
[13:44:42] [PASSED] TV
[13:44:42] [PASSED] eDP
[13:44:42] [PASSED] Virtual
[13:44:42] [PASSED] DSI
[13:44:42] [PASSED] DPI
[13:44:42] [PASSED] Writeback
[13:44:42] [PASSED] SPI
[13:44:42] [PASSED] USB
[13:44:42] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[13:44:42] ======== drm_test_drm_connector_dynamic_init_name  =========
[13:44:42] [PASSED] Unknown
[13:44:42] [PASSED] VGA
[13:44:42] [PASSED] DVI-I
[13:44:42] [PASSED] DVI-D
[13:44:42] [PASSED] DVI-A
[13:44:42] [PASSED] Composite
[13:44:42] [PASSED] SVIDEO
[13:44:42] [PASSED] LVDS
[13:44:42] [PASSED] Component
[13:44:42] [PASSED] DIN
[13:44:42] [PASSED] DP
[13:44:42] [PASSED] HDMI-A
[13:44:42] [PASSED] HDMI-B
[13:44:42] [PASSED] TV
[13:44:42] [PASSED] eDP
[13:44:42] [PASSED] Virtual
[13:44:42] [PASSED] DSI
[13:44:42] [PASSED] DPI
[13:44:42] [PASSED] Writeback
[13:44:42] [PASSED] SPI
[13:44:42] [PASSED] USB
[13:44:42] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[13:44:42] =========== [PASSED] drm_connector_dynamic_init ============
[13:44:42] ==== drm_connector_dynamic_register_early (4 subtests) =====
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[13:44:42] ====== [PASSED] drm_connector_dynamic_register_early =======
[13:44:42] ======= drm_connector_dynamic_register (7 subtests) ========
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[13:44:42] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[13:44:42] ========= [PASSED] drm_connector_dynamic_register ==========
[13:44:42] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[13:44:42] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[13:44:42] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[13:44:42] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[13:44:42] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[13:44:42] ========== drm_test_get_tv_mode_from_name_valid  ===========
[13:44:42] [PASSED] NTSC
[13:44:42] [PASSED] NTSC-443
[13:44:42] [PASSED] NTSC-J
[13:44:42] [PASSED] PAL
[13:44:42] [PASSED] PAL-M
[13:44:42] [PASSED] PAL-N
[13:44:42] [PASSED] SECAM
[13:44:42] [PASSED] Mono
[13:44:42] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[13:44:42] [PASSED] drm_test_get_tv_mode_from_name_truncated
[13:44:42] ============ [PASSED] drm_get_tv_mode_from_name ============
[13:44:42] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[13:44:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[13:44:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[13:44:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[13:44:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[13:44:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[13:44:42] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[13:44:42] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[13:44:42] [PASSED] VIC 96
[13:44:42] [PASSED] VIC 97
[13:44:42] [PASSED] VIC 101
[13:44:42] [PASSED] VIC 102
[13:44:42] [PASSED] VIC 106
[13:44:42] [PASSED] VIC 107
[13:44:42] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[13:44:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[13:44:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[13:44:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[13:44:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[13:44:42] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[13:44:42] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[13:44:42] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[13:44:42] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[13:44:42] [PASSED] Automatic
[13:44:42] [PASSED] Full
[13:44:42] [PASSED] Limited 16:235
[13:44:42] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[13:44:42] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[13:44:42] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[13:44:42] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[13:44:42] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[13:44:42] [PASSED] RGB
[13:44:42] [PASSED] YUV 4:2:0
[13:44:42] [PASSED] YUV 4:2:2
[13:44:42] [PASSED] YUV 4:4:4
[13:44:42] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[13:44:42] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[13:44:42] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[13:44:42] ============= drm_damage_helper (21 subtests) ==============
[13:44:42] [PASSED] drm_test_damage_iter_no_damage
[13:44:42] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[13:44:42] [PASSED] drm_test_damage_iter_no_damage_src_moved
[13:44:42] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[13:44:42] [PASSED] drm_test_damage_iter_no_damage_not_visible
[13:44:42] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[13:44:42] [PASSED] drm_test_damage_iter_no_damage_no_fb
[13:44:42] [PASSED] drm_test_damage_iter_simple_damage
[13:44:42] [PASSED] drm_test_damage_iter_single_damage
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_outside_src
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_src_moved
[13:44:42] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[13:44:42] [PASSED] drm_test_damage_iter_damage
[13:44:42] [PASSED] drm_test_damage_iter_damage_one_intersect
[13:44:42] [PASSED] drm_test_damage_iter_damage_one_outside
[13:44:42] [PASSED] drm_test_damage_iter_damage_src_moved
[13:44:42] [PASSED] drm_test_damage_iter_damage_not_visible
[13:44:42] ================ [PASSED] drm_damage_helper ================
[13:44:42] ============== drm_dp_mst_helper (3 subtests) ==============
[13:44:42] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[13:44:42] [PASSED] Clock 154000 BPP 30 DSC disabled
[13:44:42] [PASSED] Clock 234000 BPP 30 DSC disabled
[13:44:42] [PASSED] Clock 297000 BPP 24 DSC disabled
[13:44:42] [PASSED] Clock 332880 BPP 24 DSC enabled
[13:44:42] [PASSED] Clock 324540 BPP 24 DSC enabled
[13:44:42] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[13:44:42] ============== drm_test_dp_mst_calc_pbn_div  ===============
[13:44:42] [PASSED] Link rate 2000000 lane count 4
[13:44:42] [PASSED] Link rate 2000000 lane count 2
[13:44:42] [PASSED] Link rate 2000000 lane count 1
[13:44:42] [PASSED] Link rate 1350000 lane count 4
[13:44:42] [PASSED] Link rate 1350000 lane count 2
[13:44:42] [PASSED] Link rate 1350000 lane count 1
[13:44:42] [PASSED] Link rate 1000000 lane count 4
[13:44:42] [PASSED] Link rate 1000000 lane count 2
[13:44:42] [PASSED] Link rate 1000000 lane count 1
[13:44:42] [PASSED] Link rate 810000 lane count 4
[13:44:42] [PASSED] Link rate 810000 lane count 2
[13:44:42] [PASSED] Link rate 810000 lane count 1
[13:44:42] [PASSED] Link rate 540000 lane count 4
[13:44:42] [PASSED] Link rate 540000 lane count 2
[13:44:42] [PASSED] Link rate 540000 lane count 1
[13:44:42] [PASSED] Link rate 270000 lane count 4
[13:44:42] [PASSED] Link rate 270000 lane count 2
[13:44:42] [PASSED] Link rate 270000 lane count 1
[13:44:42] [PASSED] Link rate 162000 lane count 4
[13:44:42] [PASSED] Link rate 162000 lane count 2
[13:44:42] [PASSED] Link rate 162000 lane count 1
[13:44:42] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[13:44:42] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[13:44:42] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[13:44:42] [PASSED] DP_POWER_UP_PHY with port number
[13:44:42] [PASSED] DP_POWER_DOWN_PHY with port number
[13:44:42] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[13:44:42] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[13:44:42] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[13:44:42] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[13:44:42] [PASSED] DP_QUERY_PAYLOAD with port number
[13:44:42] [PASSED] DP_QUERY_PAYLOAD with VCPI
[13:44:42] [PASSED] DP_REMOTE_DPCD_READ with port number
[13:44:42] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[13:44:42] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[13:44:42] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[13:44:42] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[13:44:42] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[13:44:42] [PASSED] DP_REMOTE_I2C_READ with port number
[13:44:42] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[13:44:42] [PASSED] DP_REMOTE_I2C_READ with transactions array
[13:44:42] [PASSED] DP_REMOTE_I2C_WRITE with port number
[13:44:42] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[13:44:42] [PASSED] DP_REMOTE_I2C_WRITE with data array
[13:44:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[13:44:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[13:44:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[13:44:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[13:44:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[13:44:42] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[13:44:42] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[13:44:42] ================ [PASSED] drm_dp_mst_helper ================
[13:44:42] ================== drm_exec (7 subtests) ===================
[13:44:42] [PASSED] sanitycheck
[13:44:42] [PASSED] test_lock
[13:44:42] [PASSED] test_lock_unlock
[13:44:42] [PASSED] test_duplicates
[13:44:42] [PASSED] test_prepare
[13:44:42] [PASSED] test_prepare_array
[13:44:42] [PASSED] test_multiple_loops
[13:44:42] ==================== [PASSED] drm_exec =====================
[13:44:42] =========== drm_format_helper_test (17 subtests) ===========
[13:44:42] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[13:44:42] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[13:44:42] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[13:44:42] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[13:44:42] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[13:44:42] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[13:44:42] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[13:44:42] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[13:44:42] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[13:44:42] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[13:44:42] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[13:44:42] ============== drm_test_fb_xrgb8888_to_mono  ===============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[13:44:42] ==================== drm_test_fb_swab  =====================
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ================ [PASSED] drm_test_fb_swab =================
[13:44:42] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[13:44:42] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[13:44:42] [PASSED] single_pixel_source_buffer
[13:44:42] [PASSED] single_pixel_clip_rectangle
[13:44:42] [PASSED] well_known_colors
[13:44:42] [PASSED] destination_pitch
[13:44:42] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[13:44:42] ================= drm_test_fb_clip_offset  =================
[13:44:42] [PASSED] pass through
[13:44:42] [PASSED] horizontal offset
[13:44:42] [PASSED] vertical offset
[13:44:42] [PASSED] horizontal and vertical offset
[13:44:42] [PASSED] horizontal offset (custom pitch)
[13:44:42] [PASSED] vertical offset (custom pitch)
[13:44:42] [PASSED] horizontal and vertical offset (custom pitch)
[13:44:42] ============= [PASSED] drm_test_fb_clip_offset =============
[13:44:42] =================== drm_test_fb_memcpy  ====================
[13:44:42] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[13:44:42] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[13:44:42] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[13:44:42] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[13:44:42] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[13:44:42] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[13:44:42] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[13:44:42] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[13:44:42] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[13:44:42] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[13:44:42] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[13:44:42] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[13:44:42] =============== [PASSED] drm_test_fb_memcpy ================
[13:44:42] ============= [PASSED] drm_format_helper_test ==============
[13:44:42] ================= drm_format (18 subtests) =================
[13:44:42] [PASSED] drm_test_format_block_width_invalid
[13:44:42] [PASSED] drm_test_format_block_width_one_plane
[13:44:42] [PASSED] drm_test_format_block_width_two_plane
[13:44:42] [PASSED] drm_test_format_block_width_three_plane
[13:44:42] [PASSED] drm_test_format_block_width_tiled
[13:44:42] [PASSED] drm_test_format_block_height_invalid
[13:44:42] [PASSED] drm_test_format_block_height_one_plane
[13:44:42] [PASSED] drm_test_format_block_height_two_plane
[13:44:42] [PASSED] drm_test_format_block_height_three_plane
[13:44:42] [PASSED] drm_test_format_block_height_tiled
[13:44:42] [PASSED] drm_test_format_min_pitch_invalid
[13:44:42] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[13:44:42] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[13:44:42] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[13:44:42] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[13:44:42] [PASSED] drm_test_format_min_pitch_two_plane
[13:44:42] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[13:44:42] [PASSED] drm_test_format_min_pitch_tiled
[13:44:42] =================== [PASSED] drm_format ====================
[13:44:42] ============== drm_framebuffer (10 subtests) ===============
[13:44:42] ========== drm_test_framebuffer_check_src_coords  ==========
[13:44:42] [PASSED] Success: source fits into fb
[13:44:42] [PASSED] Fail: overflowing fb with x-axis coordinate
[13:44:42] [PASSED] Fail: overflowing fb with y-axis coordinate
[13:44:42] [PASSED] Fail: overflowing fb with source width
[13:44:42] [PASSED] Fail: overflowing fb with source height
[13:44:42] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[13:44:42] [PASSED] drm_test_framebuffer_cleanup
[13:44:42] =============== drm_test_framebuffer_create  ===============
[13:44:42] [PASSED] ABGR8888 normal sizes
[13:44:42] [PASSED] ABGR8888 max sizes
[13:44:42] [PASSED] ABGR8888 pitch greater than min required
[13:44:42] [PASSED] ABGR8888 pitch less than min required
[13:44:42] [PASSED] ABGR8888 Invalid width
[13:44:42] [PASSED] ABGR8888 Invalid buffer handle
[13:44:42] [PASSED] No pixel format
[13:44:42] [PASSED] ABGR8888 Width 0
[13:44:42] [PASSED] ABGR8888 Height 0
[13:44:42] [PASSED] ABGR8888 Out of bound height * pitch combination
[13:44:42] [PASSED] ABGR8888 Large buffer offset
[13:44:42] [PASSED] ABGR8888 Buffer offset for inexistent plane
[13:44:42] [PASSED] ABGR8888 Invalid flag
[13:44:42] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[13:44:42] [PASSED] ABGR8888 Valid buffer modifier
[13:44:42] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[13:44:42] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] NV12 Normal sizes
[13:44:42] [PASSED] NV12 Max sizes
[13:44:42] [PASSED] NV12 Invalid pitch
[13:44:42] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[13:44:42] [PASSED] NV12 different  modifier per-plane
[13:44:42] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[13:44:42] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] NV12 Modifier for inexistent plane
[13:44:42] [PASSED] NV12 Handle for inexistent plane
[13:44:42] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[13:44:42] [PASSED] YVU420 Normal sizes
[13:44:42] [PASSED] YVU420 Max sizes
[13:44:42] [PASSED] YVU420 Invalid pitch
[13:44:42] [PASSED] YVU420 Different pitches
[13:44:42] [PASSED] YVU420 Different buffer offsets/pitches
[13:44:42] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[13:44:42] [PASSED] YVU420 Valid modifier
[13:44:42] [PASSED] YVU420 Different modifiers per plane
[13:44:42] [PASSED] YVU420 Modifier for inexistent plane
[13:44:42] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[13:44:42] [PASSED] X0L2 Normal sizes
[13:44:42] [PASSED] X0L2 Max sizes
[13:44:42] [PASSED] X0L2 Invalid pitch
[13:44:42] [PASSED] X0L2 Pitch greater than minimum required
[13:44:42] [PASSED] X0L2 Handle for inexistent plane
[13:44:42] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[13:44:42] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[13:44:42] [PASSED] X0L2 Valid modifier
[13:44:42] [PASSED] X0L2 Modifier for inexistent plane
[13:44:42] =========== [PASSED] drm_test_framebuffer_create ===========
[13:44:42] [PASSED] drm_test_framebuffer_free
[13:44:42] [PASSED] drm_test_framebuffer_init
[13:44:42] [PASSED] drm_test_framebuffer_init_bad_format
[13:44:42] [PASSED] drm_test_framebuffer_init_dev_mismatch
[13:44:42] [PASSED] drm_test_framebuffer_lookup
[13:44:42] [PASSED] drm_test_framebuffer_lookup_inexistent
[13:44:42] [PASSED] drm_test_framebuffer_modifiers_not_supported
[13:44:42] ================= [PASSED] drm_framebuffer =================
[13:44:42] ================ drm_gem_shmem (8 subtests) ================
[13:44:42] [PASSED] drm_gem_shmem_test_obj_create
[13:44:42] [PASSED] drm_gem_shmem_test_obj_create_private
[13:44:42] [PASSED] drm_gem_shmem_test_pin_pages
[13:44:42] [PASSED] drm_gem_shmem_test_vmap
[13:44:42] [PASSED] drm_gem_shmem_test_get_sg_table
[13:44:42] [PASSED] drm_gem_shmem_test_get_pages_sgt
[13:44:42] [PASSED] drm_gem_shmem_test_madvise
[13:44:42] [PASSED] drm_gem_shmem_test_purge
[13:44:42] ================== [PASSED] drm_gem_shmem ==================
[13:44:42] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[13:44:42] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[13:44:42] [PASSED] Automatic
[13:44:42] [PASSED] Full
[13:44:42] [PASSED] Limited 16:235
[13:44:42] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[13:44:42] [PASSED] drm_test_check_disable_connector
[13:44:42] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[13:44:42] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[13:44:42] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[13:44:42] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[13:44:42] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[13:44:42] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[13:44:42] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[13:44:42] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[13:44:42] [PASSED] drm_test_check_output_bpc_dvi
[13:44:42] [PASSED] drm_test_check_output_bpc_format_vic_1
[13:44:42] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[13:44:42] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[13:44:42] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[13:44:42] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[13:44:42] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[13:44:42] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[13:44:42] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[13:44:42] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[13:44:42] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[13:44:42] [PASSED] drm_test_check_broadcast_rgb_value
[13:44:42] [PASSED] drm_test_check_bpc_8_value
[13:44:42] [PASSED] drm_test_check_bpc_10_value
[13:44:42] [PASSED] drm_test_check_bpc_12_value
[13:44:42] [PASSED] drm_test_check_format_value
[13:44:42] [PASSED] drm_test_check_tmds_char_value
[13:44:42] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[13:44:42] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[13:44:42] [PASSED] drm_test_check_mode_valid
[13:44:42] [PASSED] drm_test_check_mode_valid_reject
[13:44:42] [PASSED] drm_test_check_mode_valid_reject_rate
[13:44:42] [PASSED] drm_test_check_mode_valid_reject_max_clock
[13:44:42] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[13:44:42] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[13:44:42] [PASSED] drm_test_check_infoframes
[13:44:42] [PASSED] drm_test_check_reject_avi_infoframe
[13:44:42] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[13:44:42] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[13:44:42] [PASSED] drm_test_check_reject_audio_infoframe
[13:44:42] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[13:44:42] ================= drm_managed (2 subtests) =================
[13:44:42] [PASSED] drm_test_managed_release_action
[13:44:42] [PASSED] drm_test_managed_run_action
[13:44:42] =================== [PASSED] drm_managed ===================
[13:44:42] =================== drm_mm (6 subtests) ====================
[13:44:42] [PASSED] drm_test_mm_init
[13:44:42] [PASSED] drm_test_mm_debug
[13:44:42] [PASSED] drm_test_mm_align32
[13:44:42] [PASSED] drm_test_mm_align64
[13:44:42] [PASSED] drm_test_mm_lowest
[13:44:42] [PASSED] drm_test_mm_highest
[13:44:42] ===================== [PASSED] drm_mm ======================
[13:44:42] ============= drm_modes_analog_tv (5 subtests) =============
[13:44:42] [PASSED] drm_test_modes_analog_tv_mono_576i
[13:44:42] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[13:44:42] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[13:44:42] [PASSED] drm_test_modes_analog_tv_pal_576i
[13:44:42] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[13:44:42] =============== [PASSED] drm_modes_analog_tv ===============
[13:44:42] ============== drm_plane_helper (2 subtests) ===============
[13:44:42] =============== drm_test_check_plane_state  ================
[13:44:42] [PASSED] clipping_simple
[13:44:42] [PASSED] clipping_rotate_reflect
[13:44:42] [PASSED] positioning_simple
[13:44:42] [PASSED] upscaling
[13:44:42] [PASSED] downscaling
[13:44:42] [PASSED] rounding1
[13:44:42] [PASSED] rounding2
[13:44:42] [PASSED] rounding3
[13:44:42] [PASSED] rounding4
[13:44:42] =========== [PASSED] drm_test_check_plane_state ============
[13:44:42] =========== drm_test_check_invalid_plane_state  ============
[13:44:42] [PASSED] positioning_invalid
[13:44:42] [PASSED] upscaling_invalid
[13:44:42] [PASSED] downscaling_invalid
[13:44:42] ======= [PASSED] drm_test_check_invalid_plane_state ========
[13:44:42] ================ [PASSED] drm_plane_helper =================
[13:44:42] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[13:44:42] ====== drm_test_connector_helper_tv_get_modes_check  =======
[13:44:42] [PASSED] None
[13:44:42] [PASSED] PAL
[13:44:42] [PASSED] NTSC
[13:44:42] [PASSED] Both, NTSC Default
[13:44:42] [PASSED] Both, PAL Default
[13:44:42] [PASSED] Both, NTSC Default, with PAL on command-line
[13:44:42] [PASSED] Both, PAL Default, with NTSC on command-line
[13:44:42] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[13:44:42] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[13:44:42] ================== drm_rect (9 subtests) ===================
[13:44:42] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[13:44:42] [PASSED] drm_test_rect_clip_scaled_not_clipped
[13:44:42] [PASSED] drm_test_rect_clip_scaled_clipped
[13:44:42] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[13:44:42] ================= drm_test_rect_intersect  =================
[13:44:42] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[13:44:42] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[13:44:42] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[13:44:42] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[13:44:42] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[13:44:42] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[13:44:42] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[13:44:42] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[13:44:42] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[13:44:42] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[13:44:42] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[13:44:42] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[13:44:42] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[13:44:42] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[13:44:42] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
stty: 'standard input': Inappropriate ioctl for device
[13:44:42] ============= [PASSED] drm_test_rect_intersect =============
[13:44:42] ================ drm_test_rect_calc_hscale  ================
[13:44:42] [PASSED] normal use
[13:44:42] [PASSED] out of max range
[13:44:42] [PASSED] out of min range
[13:44:42] [PASSED] zero dst
[13:44:42] [PASSED] negative src
[13:44:42] [PASSED] negative dst
[13:44:42] ============ [PASSED] drm_test_rect_calc_hscale ============
[13:44:42] ================ drm_test_rect_calc_vscale  ================
[13:44:42] [PASSED] normal use
[13:44:42] [PASSED] out of max range
[13:44:42] [PASSED] out of min range
[13:44:42] [PASSED] zero dst
[13:44:42] [PASSED] negative src
[13:44:42] [PASSED] negative dst
[13:44:42] ============ [PASSED] drm_test_rect_calc_vscale ============
[13:44:42] ================== drm_test_rect_rotate  ===================
[13:44:42] [PASSED] reflect-x
[13:44:42] [PASSED] reflect-y
[13:44:42] [PASSED] rotate-0
[13:44:42] [PASSED] rotate-90
[13:44:42] [PASSED] rotate-180
[13:44:42] [PASSED] rotate-270
[13:44:42] ============== [PASSED] drm_test_rect_rotate ===============
[13:44:42] ================ drm_test_rect_rotate_inv  =================
[13:44:42] [PASSED] reflect-x
[13:44:42] [PASSED] reflect-y
[13:44:42] [PASSED] rotate-0
[13:44:42] [PASSED] rotate-90
[13:44:42] [PASSED] rotate-180
[13:44:42] [PASSED] rotate-270
[13:44:42] ============ [PASSED] drm_test_rect_rotate_inv =============
[13:44:42] ==================== [PASSED] drm_rect =====================
[13:44:42] ============ drm_sysfb_modeset_test (1 subtest) ============
[13:44:42] ============ drm_test_sysfb_build_fourcc_list  =============
[13:44:42] [PASSED] no native formats
[13:44:42] [PASSED] XRGB8888 as native format
[13:44:42] [PASSED] remove duplicates
[13:44:42] [PASSED] convert alpha formats
[13:44:42] [PASSED] random formats
[13:44:42] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[13:44:42] ============= [PASSED] drm_sysfb_modeset_test ==============
[13:44:42] ================== drm_fixp (2 subtests) ===================
[13:44:42] [PASSED] drm_test_int2fixp
[13:44:42] [PASSED] drm_test_sm2fixp
[13:44:42] ==================== [PASSED] drm_fixp =====================
[13:44:42] ============================================================
[13:44:42] Testing complete. Ran 630 tests: passed: 630
[13:44:42] Elapsed time: 27.847s total, 1.722s configuring, 25.709s building, 0.369s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[13:44:42] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:44:44] 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
[13:44:53] Starting KUnit Kernel (1/1)...
[13:44:53] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[13:44:53] ================= ttm_device (5 subtests) ==================
[13:44:53] [PASSED] ttm_device_init_basic
[13:44:53] [PASSED] ttm_device_init_multiple
[13:44:53] [PASSED] ttm_device_fini_basic
[13:44:53] [PASSED] ttm_device_init_no_vma_man
[13:44:53] ================== ttm_device_init_pools  ==================
[13:44:53] [PASSED] No DMA allocations, no DMA32 required
[13:44:53] [PASSED] DMA allocations, DMA32 required
[13:44:53] [PASSED] No DMA allocations, DMA32 required
[13:44:53] [PASSED] DMA allocations, no DMA32 required
[13:44:53] ============== [PASSED] ttm_device_init_pools ==============
[13:44:53] =================== [PASSED] ttm_device ====================
[13:44:53] ================== ttm_pool (8 subtests) ===================
[13:44:53] ================== ttm_pool_alloc_basic  ===================
[13:44:53] [PASSED] One page
[13:44:53] [PASSED] More than one page
[13:44:53] [PASSED] Above the allocation limit
[13:44:53] [PASSED] One page, with coherent DMA mappings enabled
[13:44:53] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:44:53] ============== [PASSED] ttm_pool_alloc_basic ===============
[13:44:53] ============== ttm_pool_alloc_basic_dma_addr  ==============
[13:44:53] [PASSED] One page
[13:44:53] [PASSED] More than one page
[13:44:53] [PASSED] Above the allocation limit
[13:44:53] [PASSED] One page, with coherent DMA mappings enabled
[13:44:53] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[13:44:53] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[13:44:53] [PASSED] ttm_pool_alloc_order_caching_match
[13:44:53] [PASSED] ttm_pool_alloc_caching_mismatch
[13:44:53] [PASSED] ttm_pool_alloc_order_mismatch
[13:44:53] [PASSED] ttm_pool_free_dma_alloc
[13:44:53] [PASSED] ttm_pool_free_no_dma_alloc
[13:44:53] [PASSED] ttm_pool_fini_basic
[13:44:53] ==================== [PASSED] ttm_pool =====================
[13:44:53] ================ ttm_resource (8 subtests) =================
[13:44:53] ================= ttm_resource_init_basic  =================
[13:44:53] [PASSED] Init resource in TTM_PL_SYSTEM
[13:44:53] [PASSED] Init resource in TTM_PL_VRAM
[13:44:53] [PASSED] Init resource in a private placement
[13:44:53] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[13:44:53] ============= [PASSED] ttm_resource_init_basic =============
[13:44:53] [PASSED] ttm_resource_init_pinned
[13:44:53] [PASSED] ttm_resource_fini_basic
[13:44:53] [PASSED] ttm_resource_manager_init_basic
[13:44:53] [PASSED] ttm_resource_manager_usage_basic
[13:44:53] [PASSED] ttm_resource_manager_set_used_basic
[13:44:53] [PASSED] ttm_sys_man_alloc_basic
[13:44:53] [PASSED] ttm_sys_man_free_basic
[13:44:53] ================== [PASSED] ttm_resource ===================
[13:44:53] =================== ttm_tt (15 subtests) ===================
[13:44:53] ==================== ttm_tt_init_basic  ====================
[13:44:53] [PASSED] Page-aligned size
[13:44:53] [PASSED] Extra pages requested
[13:44:53] ================ [PASSED] ttm_tt_init_basic ================
[13:44:53] [PASSED] ttm_tt_init_misaligned
[13:44:53] [PASSED] ttm_tt_fini_basic
[13:44:53] [PASSED] ttm_tt_fini_sg
[13:44:53] [PASSED] ttm_tt_fini_shmem
[13:44:53] [PASSED] ttm_tt_create_basic
[13:44:53] [PASSED] ttm_tt_create_invalid_bo_type
[13:44:53] [PASSED] ttm_tt_create_ttm_exists
[13:44:53] [PASSED] ttm_tt_create_failed
[13:44:53] [PASSED] ttm_tt_destroy_basic
[13:44:53] [PASSED] ttm_tt_populate_null_ttm
[13:44:53] [PASSED] ttm_tt_populate_populated_ttm
[13:44:53] [PASSED] ttm_tt_unpopulate_basic
[13:44:53] [PASSED] ttm_tt_unpopulate_empty_ttm
[13:44:53] [PASSED] ttm_tt_swapin_basic
[13:44:53] ===================== [PASSED] ttm_tt ======================
[13:44:53] =================== ttm_bo (14 subtests) ===================
[13:44:53] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[13:44:53] [PASSED] Cannot be interrupted and sleeps
[13:44:53] [PASSED] Cannot be interrupted, locks straight away
[13:44:53] [PASSED] Can be interrupted, sleeps
[13:44:53] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[13:44:53] [PASSED] ttm_bo_reserve_locked_no_sleep
[13:44:53] [PASSED] ttm_bo_reserve_no_wait_ticket
[13:44:53] [PASSED] ttm_bo_reserve_double_resv
[13:44:53] [PASSED] ttm_bo_reserve_interrupted
[13:44:53] [PASSED] ttm_bo_reserve_deadlock
[13:44:53] [PASSED] ttm_bo_unreserve_basic
[13:44:53] [PASSED] ttm_bo_unreserve_pinned
[13:44:53] [PASSED] ttm_bo_unreserve_bulk
[13:44:53] [PASSED] ttm_bo_fini_basic
[13:44:53] [PASSED] ttm_bo_fini_shared_resv
[13:44:53] [PASSED] ttm_bo_pin_basic
[13:44:53] [PASSED] ttm_bo_pin_unpin_resource
[13:44:53] [PASSED] ttm_bo_multiple_pin_one_unpin
[13:44:53] ===================== [PASSED] ttm_bo ======================
[13:44:53] ============== ttm_bo_validate (21 subtests) ===============
[13:44:53] ============== ttm_bo_init_reserved_sys_man  ===============
[13:44:53] [PASSED] Buffer object for userspace
[13:44:53] [PASSED] Kernel buffer object
[13:44:53] [PASSED] Shared buffer object
[13:44:53] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[13:44:53] ============== ttm_bo_init_reserved_mock_man  ==============
[13:44:53] [PASSED] Buffer object for userspace
[13:44:53] [PASSED] Kernel buffer object
[13:44:53] [PASSED] Shared buffer object
[13:44:53] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[13:44:53] [PASSED] ttm_bo_init_reserved_resv
[13:44:53] ================== ttm_bo_validate_basic  ==================
[13:44:53] [PASSED] Buffer object for userspace
[13:44:53] [PASSED] Kernel buffer object
[13:44:53] [PASSED] Shared buffer object
[13:44:53] ============== [PASSED] ttm_bo_validate_basic ==============
[13:44:53] [PASSED] ttm_bo_validate_invalid_placement
[13:44:53] ============= ttm_bo_validate_same_placement  ==============
[13:44:53] [PASSED] System manager
[13:44:53] [PASSED] VRAM manager
[13:44:53] ========= [PASSED] ttm_bo_validate_same_placement ==========
[13:44:53] [PASSED] ttm_bo_validate_failed_alloc
[13:44:53] [PASSED] ttm_bo_validate_pinned
[13:44:53] [PASSED] ttm_bo_validate_busy_placement
[13:44:53] ================ ttm_bo_validate_multihop  =================
[13:44:53] [PASSED] Buffer object for userspace
[13:44:53] [PASSED] Kernel buffer object
[13:44:53] [PASSED] Shared buffer object
[13:44:53] ============ [PASSED] ttm_bo_validate_multihop =============
[13:44:53] ========== ttm_bo_validate_no_placement_signaled  ==========
[13:44:53] [PASSED] Buffer object in system domain, no page vector
[13:44:53] [PASSED] Buffer object in system domain with an existing page vector
[13:44:53] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[13:44:53] ======== ttm_bo_validate_no_placement_not_signaled  ========
[13:44:53] [PASSED] Buffer object for userspace
[13:44:53] [PASSED] Kernel buffer object
[13:44:53] [PASSED] Shared buffer object
[13:44:53] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[13:44:53] [PASSED] ttm_bo_validate_move_fence_signaled
[13:44:53] ========= ttm_bo_validate_move_fence_not_signaled  =========
[13:44:53] [PASSED] Waits for GPU
[13:44:53] [PASSED] Tries to lock straight away
[13:44:53] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[13:44:53] [PASSED] ttm_bo_validate_happy_evict
[13:44:53] [PASSED] ttm_bo_validate_all_pinned_evict
[13:44:53] [PASSED] ttm_bo_validate_allowed_only_evict
[13:44:53] [PASSED] ttm_bo_validate_deleted_evict
[13:44:53] [PASSED] ttm_bo_validate_busy_domain_evict
[13:44:53] [PASSED] ttm_bo_validate_evict_gutting
[13:44:53] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[13:44:53] ================= [PASSED] ttm_bo_validate =================
[13:44:53] ============================================================
[13:44:53] Testing complete. Ran 101 tests: passed: 101
[13:44:53] Elapsed time: 11.326s total, 1.705s configuring, 9.406s building, 0.173s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd
  2026-01-26 13:43 ` Jani Nikula
@ 2026-01-26 14:26   ` Govindapillai, Vinod
  0 siblings, 0 replies; 5+ messages in thread
From: Govindapillai, Vinod @ 2026-01-26 14:26 UTC (permalink / raw)
  To: intel-xe@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
	jani.nikula@linux.intel.com
  Cc: Shankar, Uma, Heikkila, Juha-pekka

On Mon, 2026-01-26 at 15:43 +0200, Jani Nikula wrote:
> On Mon, 26 Jan 2026, Vinod Govindapillai
> <vinod.govindapillai@intel.com> wrote:
> > Pixel normalizer is enabled with normalization factor as 1.0 for
> > FP16 formats in order to support FBC for those formats in xe3p_lpd.
> > Previously pixel normalizer gets disabled during the plane disable
> > routine. But there could be plane format settings without
> > explicitly
> > calling the plane disable in-between and we could endup keeping the
> > pixel normalizer enabled for formats which we don't require that.
> > This is causing crc mismatches in yuv formats and FIFO underruns in
> > planar formats like NV12.
> > 
> > Fix this by updating the pixel normalizer configuration based on
> > the
> > pixel formats explicitly during the plane settings arm calls itself
> > - enable it for FP16 and disable it for other formats in HDR
> > capable
> > planes. To avoid redundancies in these updates, normalization
> > factor
> > between old and new plane states are compared before the update.
> > The
> > function to check validity of the fp16 formats for fbc is now
> > updated
> > to return the normalization factor as 1.0 in case of fp16 formats
> > and
> > 0 in other cases.
> > 
> > v2: avoid redundant pixel normalization setting updates
> > 
> > Fixes: 5298eea7ed20 ("drm/i915/xe3p_lpd: use pixel normalizer for
> > fp16 formats for FBC")
> > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > ---
> >  .../drm/i915/display/intel_display_device.h   |  1 +
> >  .../drm/i915/display/intel_display_types.h    |  8 ++
> >  drivers/gpu/drm/i915/display/intel_fbc.c      | 17 +++-
> >  drivers/gpu/drm/i915/display/intel_fbc.h      |  4 +-
> >  .../drm/i915/display/skl_universal_plane.c    | 82
> > +++++++++++++++----
> >  5 files changed, 90 insertions(+), 22 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h
> > b/drivers/gpu/drm/i915/display/intel_display_device.h
> > index 6c74d6b0cc48..126aa1eeeb6d 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_device.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_device.h
> > @@ -175,6 +175,7 @@ struct intel_display_platforms {
> >  #define HAS_DSC_MST(__display)		(DISPLAY_VER(__display) >=
> > 12 && HAS_DSC(__display))
> >  #define
> > HAS_FBC(__display)		(DISPLAY_RUNTIME_INFO(__display)->fbc_mask != 0)
> >  #define HAS_FBC_DIRTY_RECT(__display)	(DISPLAY_VER(__display) >=
> > 30)
> > +#define
> > HAS_FBC_FP16_FORMATS(__display)	(DISPLAY_VER(__display) >= 35)
> >  #define HAS_FBC_SYS_CACHE(__display)	(DISPLAY_VER(__display) >=
> > 35 && !(__display)->platform.dgfx)
> >  #define
> > HAS_FPGA_DBG_UNCLAIMED(__display)	(DISPLAY_INFO(__display)->has_fpga_dbg)
> >  #define HAS_FW_BLC(__display)		(DISPLAY_VER(__display) >=
> > 3)
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 07b626d22748..f42f2609d837 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -685,6 +685,14 @@ struct intel_plane_state {
> >  	unsigned long flags;
> >  #define PLANE_HAS_FENCE BIT(0)
> >  
> > +	/* xe3p_lpd+ */
> > +	struct {
> > +		/* 0x3c00 (1.0) for fp16 formats and else disable
> > (0) */
> > +		unsigned int factor;
> 
> What is the format of this number? What makes 0x3c00 mean 1.0?
> 
> > +		/* update is needed if factor differs between old
> > and new plane states */
> > +		bool needs_update;
> > +	} pixel_normalizer;
> > +
> >  	struct intel_fb_view view;
> >  
> >  	/* for legacy cursor fb unpin */
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > index fef2f35ff1e9..dbedc8ea8cdf 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > @@ -60,6 +60,7 @@
> >  #include "intel_frontbuffer.h"
> >  #include "intel_parent.h"
> >  #include "intel_step.h"
> > +#include "skl_universal_plane_regs.h"
> >  
> >  #define for_each_fbc_id(__display, __fbc_id) \
> >  	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS;
> > (__fbc_id)++) \
> > @@ -1202,13 +1203,21 @@ static bool
> > xe3p_lpd_fbc_pixel_format_is_valid(const struct intel_plane_state
> > *p
> >  	}
> >  }
> >  
> > -bool
> > -intel_fbc_is_enable_pixel_normalizer(const struct
> > intel_plane_state *plane_state)
> > +unsigned int
> > +intel_fbc_normalization_factor(const struct intel_plane_state
> > *plane_state)
> >  {
> >  	struct intel_display *display =
> > to_intel_display(plane_state);
> >  
> > -	return DISPLAY_VER(display) >= 35 &&
> > -	       xe3p_lpd_fbc_fp16_format_is_valid(plane_state);
> > +	/*
> > +	 * In order to have FBC for fp16 formats pixel normalizer
> > block must be
> > +	 * active. For FP16 formats, use normalization factor as
> > 1.0 and enable
> > +	 * the block.
> > +	 */
> > +	if (HAS_FBC_FP16_FORMATS(display) &&
> > +	    xe3p_lpd_fbc_fp16_format_is_valid(plane_state))
> > +		return PLANE_PIXEL_NORMALIZE_NORM_FACTOR_1_0;
> 
> Ditto here. I don't particularly like encoding register values to
> function return values like this. Basically, including
> skl_universal_plane_regs.h here feels wrong.

It is in the half precision floating point format as per the bspec.
This is a standard representation the register expect the format to be
for the normalization factor but it is not exactly as per the register
encoding for the corresponding bitfield.

I can return 1.0 from this function and a use a separate function to
encode this as per the bspec in skl_universal_plane. But as this is the
only case where, we have to use this, was wondering if it is too much
abstraction! Are you expecting something like this? 

I did consider to use only that bool variable to check if the
normalization factor need an update and avoiding the factor being
passed from the fbc code. But that could lead to some redundant updates
to the normalization register especially during the disable_plane arm
call.

BR
Vinod



> 
> 
> BR,
> Jani.
> 
> 
> > +
> > +	return 0;
> >  }
> >  
> >  static bool pixel_format_is_valid(const struct intel_plane_state
> > *plane_state)
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h
> > b/drivers/gpu/drm/i915/display/intel_fbc.h
> > index f0255ddae2b6..b5888e98a659 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.h
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.h
> > @@ -56,7 +56,7 @@ void intel_fbc_prepare_dirty_rect(struct
> > intel_atomic_state *state,
> >  				  struct intel_crtc *crtc);
> >  void intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
> >  				       struct intel_plane *plane);
> > -bool
> > -intel_fbc_is_enable_pixel_normalizer(const struct
> > intel_plane_state *plane_state);
> > +unsigned int
> > +intel_fbc_normalization_factor(const struct intel_plane_state
> > *plane_state);
> >  
> >  #endif /* __INTEL_FBC_H__ */
> > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > index b3d41705448a..05c227913b8d 100644
> > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > @@ -891,20 +891,49 @@ static void
> > icl_plane_disable_sel_fetch_arm(struct intel_dsb *dsb,
> >  	intel_de_write_dsb(display, dsb, SEL_FETCH_PLANE_CTL(pipe,
> > plane->id), 0);
> >  }
> >  
> > -static void x3p_lpd_plane_update_pixel_normalizer(struct intel_dsb
> > *dsb,
> > -						  struct
> > intel_plane *plane,
> > -						  bool enable)
> > +static void xe3p_lpd_plane_disable_pixel_normalizer(struct
> > intel_dsb *dsb,
> > +						    struct
> > intel_plane *plane)
> >  {
> >  	struct intel_display *display = to_intel_display(plane);
> >  	enum intel_fbc_id fbc_id = skl_fbc_id_for_pipe(plane-
> > >pipe);
> > -	u32 val;
> > +	const struct intel_plane_state *plane_state =
> > +		to_intel_plane_state(plane->base.state);
> > +
> > +	if (!HAS_FBC_FP16_FORMATS(display))
> > +		return;
> > +
> > +	if (!skl_plane_has_fbc(display, fbc_id, plane->id))
> > +		return;
> > +
> > +	if (!plane_state->pixel_normalizer.factor)
> > +		return;
> > +
> > +	intel_de_write_dsb(display, dsb,
> > +			   PLANE_PIXEL_NORMALIZE(plane->pipe,
> > plane->id), 0);
> > +}
> > +
> > +static void xe3p_lpd_plane_update_pixel_normalizer(struct
> > intel_dsb *dsb,
> > +						   struct
> > intel_plane *plane)
> > +{
> > +	struct intel_display *display = to_intel_display(plane);
> > +	enum intel_fbc_id fbc_id = skl_fbc_id_for_pipe(plane-
> > >pipe);
> > +	const struct intel_plane_state *plane_state =
> > +		to_intel_plane_state(plane->base.state);
> > +	u32 val = 0;
> > +
> > +	if (!HAS_FBC_FP16_FORMATS(display))
> > +		return;
> >  
> > -	/* Only HDR planes have pixel normalizer and don't matter
> > if no FBC */
> > +	/* Only HDR planes have pixel normalizer and don't matter
> > if FBC is fused off */
> >  	if (!skl_plane_has_fbc(display, fbc_id, plane->id))
> >  		return;
> >  
> > -	val = enable ?
> > PLANE_PIXEL_NORMALIZE_NORM_FACTOR(PLANE_PIXEL_NORMALIZE_NORM_FACTOR
> > _1_0) |
> > -		       PLANE_PIXEL_NORMALIZE_ENABLE : 0;
> > +	if (!plane_state->pixel_normalizer.needs_update)
> > +		return;
> > +
> > +	if (plane_state->pixel_normalizer.factor)
> > +		val =
> > PLANE_PIXEL_NORMALIZE_NORM_FACTOR(plane_state-
> > >pixel_normalizer.factor) |
> > +		      PLANE_PIXEL_NORMALIZE_ENABLE;
> >  
> >  	intel_de_write_dsb(display, dsb,
> >  			   PLANE_PIXEL_NORMALIZE(plane->pipe,
> > plane->id), val);
> > @@ -926,8 +955,7 @@ icl_plane_disable_arm(struct intel_dsb *dsb,
> >  
> >  	icl_plane_disable_sel_fetch_arm(dsb, plane, crtc_state);
> >  
> > -	if (DISPLAY_VER(display) >= 35)
> > -		x3p_lpd_plane_update_pixel_normalizer(dsb, plane,
> > false);
> > +	xe3p_lpd_plane_disable_pixel_normalizer(dsb, plane);
> >  
> >  	intel_de_write_dsb(display, dsb, PLANE_CTL(pipe,
> > plane_id), 0);
> >  	intel_de_write_dsb(display, dsb, PLANE_SURF(pipe,
> > plane_id), 0);
> > @@ -1674,13 +1702,7 @@ icl_plane_update_arm(struct intel_dsb *dsb,
> >  
> >  	intel_color_plane_commit_arm(dsb, plane_state);
> >  
> > -	/*
> > -	 * In order to have FBC for fp16 formats pixel normalizer
> > block must be
> > -	 * active. Check if pixel normalizer block need to be
> > enabled for FBC.
> > -	 * If needed, use normalization factor as 1.0 and enable
> > the block.
> > -	 */
> > -	if (intel_fbc_is_enable_pixel_normalizer(plane_state))
> > -		x3p_lpd_plane_update_pixel_normalizer(dsb, plane,
> > true);
> > +	xe3p_lpd_plane_update_pixel_normalizer(dsb, plane);
> >  
> >  	/*
> >  	 * The control register self-arms if the plane was
> > previously
> > @@ -2350,6 +2372,32 @@ static void clip_damage(struct
> > intel_plane_state *plane_state)
> >  	drm_rect_intersect(damage, &src);
> >  }
> >  
> > +static void check_pixel_normalizer(struct intel_plane_state
> > *plane_state)
> > +{
> > +	struct intel_display *display =
> > to_intel_display(plane_state);
> > +	struct intel_plane *plane = to_intel_plane(plane_state-
> > >uapi.plane);
> > +	struct intel_atomic_state *state =
> > +		to_intel_atomic_state(plane_state->uapi.state);
> > +	const struct intel_plane_state *old_plane_state =
> > +		intel_atomic_get_old_plane_state(state, plane);
> > +
> > +	if (!HAS_FBC_FP16_FORMATS(display))
> > +		return;
> > +
> > +	plane_state->pixel_normalizer.factor =
> > +		intel_fbc_normalization_factor(plane_state);
> > +
> > +	/*
> > +	 * In case of no old state to compare, better to force
> > update the pixel
> > +	 * normalizer settings.
> > +	 */
> > +	plane_state->pixel_normalizer.needs_update = true;
> > +	if (old_plane_state && old_plane_state->hw.fb)
> > +		plane_state->pixel_normalizer.needs_update =
> > +			plane_state->pixel_normalizer.factor !=
> > +			intel_fbc_normalization_factor(old_plane_s
> > tate);
> > +}
> > +
> >  static int skl_plane_check(struct intel_crtc_state *crtc_state,
> >  			   struct intel_plane_state *plane_state)
> >  {
> > @@ -2400,6 +2448,8 @@ static int skl_plane_check(struct
> > intel_crtc_state *crtc_state,
> >  
> >  	check_protection(plane_state);
> >  
> > +	check_pixel_normalizer(plane_state);
> > +
> >  	/* HW only has 8 bits pixel precision, disable plane if
> > invisible */
> >  	if (!(plane_state->hw.alpha >> 8)) {
> >  		plane_state->uapi.visible = false;
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* ✗ Xe.CI.Full: failure for drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2)
  2026-01-26 13:29 [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd Vinod Govindapillai
  2026-01-26 13:43 ` Jani Nikula
  2026-01-26 13:44 ` ✓ CI.KUnit: success for drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2) Patchwork
@ 2026-01-26 15:30 ` Patchwork
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2026-01-26 15:30 UTC (permalink / raw)
  To: Govindapillai, Vinod; +Cc: intel-xe

[-- Attachment #1: Type: text/plain, Size: 405 bytes --]

== Series Details ==

Series: drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2)
URL   : https://patchwork.freedesktop.org/series/160254/
State : failure

== Summary ==

ERROR: The runconfig 'xe-4448-0f7122915dfd558c57f69c4f97ebd64707a721cc_FULL' does not exist in the database

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160254v2/index.html

[-- Attachment #2: Type: text/html, Size: 970 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-01-26 15:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-26 13:29 [PATCH v2] drm/i915/display: fix the pixel normalization handling for xe3p_lpd Vinod Govindapillai
2026-01-26 13:43 ` Jani Nikula
2026-01-26 14:26   ` Govindapillai, Vinod
2026-01-26 13:44 ` ✓ CI.KUnit: success for drm/i915/display: fix the pixel normalization handling for xe3p_lpd (rev2) Patchwork
2026-01-26 15:30 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox