intel-xe.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
@ 2024-07-05 14:52 Ville Syrjala
  2024-07-05 14:52 ` [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences() Ville Syrjala
                   ` (28 more replies)
  0 siblings, 29 replies; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Here's an idea for a slightly better heuristic to answer
the "should fbdev use stolen or not?" question.

Ended up with a pile of refactoring and cleanups in
the FBC code as a result.

Ville Syrjälä (20):
  drm/i915/fbc: Extract intel_fbc_has_fences()
  drm/i915/fbc: Convert to intel_display, mostly
  drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/
  drm/i915/fbc: Extract intel_fbc_max_plane_size()
  drm/i915/fbc: Extract intel_fbc_max_surface_size()
  drm/i915/fbc:
    s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/
  drm/i915/fbc: Adjust g4x+ platform checks
  drm/i915/fbc: Extract _intel_fbc_cfb_stride()
  drm/i915/fbc: s/lines/height/
  drm/i915/fbc: Reoder CFB max height platform checks
  drm/i915/fbc: Extract intel_fbc_max_cfb_height()
  drm/i915/fbc: Extract _intel_fbc_cfb_size()
  drm/i915/fbc: Extract intel_fbc_cfb_cpp()
  drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
  drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke
  drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh
    allocation
  drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
  drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic

 .../drm/i915/display/intel_display_debugfs.c  |   4 +-
 .../drm/i915/display/intel_display_driver.c   |   4 +-
 drivers/gpu/drm/i915/display/intel_fbc.c      | 564 ++++++++++--------
 drivers/gpu/drm/i915/display/intel_fbc.h      |  14 +-
 drivers/gpu/drm/i915/display/intel_fbdev_fb.c |  23 +-
 drivers/gpu/drm/i915/display/intel_fbdev_fb.h |   5 +-
 .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
 .../drm/i915/display/intel_modeset_setup.c    |   2 +-
 .../drm/i915/display/intel_plane_initial.c    |  10 +-
 drivers/gpu/drm/xe/display/intel_fbdev_fb.c   |  22 +-
 drivers/gpu/drm/xe/display/xe_plane_initial.c |   8 +-
 11 files changed, 389 insertions(+), 269 deletions(-)

-- 
2.44.2


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

* [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:46   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly Ville Syrjala
                   ` (27 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the "do we have fences?" check into a single helper in the FBC
code. Avoids having to call to outside the display code in multiple
places for this.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 8488f82143a4..ba9820d4b78f 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -229,6 +229,11 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
 	return 0;
 }
 
+static bool intel_fbc_has_fences(struct drm_i915_private *i915)
+{
+	return intel_gt_support_legacy_fencing(to_gt(i915));
+}
+
 static u32 i8xx_fbc_ctl(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
@@ -620,7 +625,7 @@ static void ivb_fbc_activate(struct intel_fbc *fbc)
 	else if (DISPLAY_VER(i915) == 9)
 		skl_fbc_program_cfb_stride(fbc);
 
-	if (intel_gt_support_legacy_fencing(to_gt(i915)))
+	if (intel_fbc_has_fences(i915))
 		snb_fbc_program_fence(fbc);
 
 	/* wa_14019417088 Alternative WA*/
@@ -1154,7 +1159,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
 	fbc_state->fence_y_offset = intel_plane_fence_y_offset(plane_state);
 
 	drm_WARN_ON(&i915->drm, plane_state->flags & PLANE_HAS_FENCE &&
-		    !intel_gt_support_legacy_fencing(to_gt(i915)));
+		    !intel_fbc_has_fences(i915));
 
 	if (plane_state->flags & PLANE_HAS_FENCE)
 		fbc_state->fence_id =  i915_vma_fence_id(plane_state->ggtt_vma);
-- 
2.44.2


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

* [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
  2024-07-05 14:52 ` [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:49   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 03/20] drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/ Ville Syrjala
                   ` (26 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Switch the FBC code over to intel_display from i915, as
much as possible. This is the future direction so that
the display code can be shared between i915 and xe more
cleanly.

Some of the platform checks and the stolen mem facing stiff
still need i915 around though.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 .../drm/i915/display/intel_display_debugfs.c  |   4 +-
 .../drm/i915/display/intel_display_driver.c   |   4 +-
 drivers/gpu/drm/i915/display/intel_fbc.c      | 422 ++++++++++--------
 drivers/gpu/drm/i915/display/intel_fbc.h      |  13 +-
 .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
 .../drm/i915/display/intel_modeset_setup.c    |   2 +-
 6 files changed, 239 insertions(+), 208 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
index 91757fed9c6d..5cf9b4af9adf 100644
--- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
+++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
@@ -1008,7 +1008,7 @@ i915_fifo_underrun_reset_write(struct file *filp,
 			return ret;
 	}
 
-	intel_fbc_reset_underrun(dev_priv);
+	intel_fbc_reset_underrun(&dev_priv->display);
 
 	return cnt;
 }
@@ -1063,7 +1063,7 @@ void intel_display_debugfs_register(struct drm_i915_private *i915)
 	intel_bios_debugfs_register(i915);
 	intel_cdclk_debugfs_register(i915);
 	intel_dmc_debugfs_register(i915);
-	intel_fbc_debugfs_register(i915);
+	intel_fbc_debugfs_register(&i915->display);
 	intel_hpd_debugfs_register(i915);
 	intel_opregion_debugfs_register(i915);
 	intel_psr_debugfs_register(i915);
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 794b4af38055..13e206ec450f 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -265,7 +265,7 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
 
 	intel_init_quirks(display);
 
-	intel_fbc_init(i915);
+	intel_fbc_init(display);
 
 	return 0;
 
@@ -607,7 +607,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
 	destroy_workqueue(i915->display.wq.flip);
 	destroy_workqueue(i915->display.wq.modeset);
 
-	intel_fbc_cleanup(i915);
+	intel_fbc_cleanup(&i915->display);
 }
 
 /* part #3: call after gem init */
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index ba9820d4b78f..de8caa69a0dd 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -61,13 +61,13 @@
 #include "intel_fbc_regs.h"
 #include "intel_frontbuffer.h"
 
-#define for_each_fbc_id(__dev_priv, __fbc_id) \
+#define for_each_fbc_id(__display, __fbc_id) \
 	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS; (__fbc_id)++) \
-		for_each_if(DISPLAY_RUNTIME_INFO(__dev_priv)->fbc_mask & BIT(__fbc_id))
+		for_each_if(DISPLAY_RUNTIME_INFO(__display)->fbc_mask & BIT(__fbc_id))
 
-#define for_each_intel_fbc(__dev_priv, __fbc, __fbc_id) \
-	for_each_fbc_id((__dev_priv), (__fbc_id)) \
-		for_each_if((__fbc) = (__dev_priv)->display.fbc[(__fbc_id)])
+#define for_each_intel_fbc(__display, __fbc, __fbc_id) \
+	for_each_fbc_id((__display), (__fbc_id)) \
+		for_each_if((__fbc) = (__display)->fbc[(__fbc_id)])
 
 struct intel_fbc_funcs {
 	void (*activate)(struct intel_fbc *fbc);
@@ -90,7 +90,7 @@ struct intel_fbc_state {
 };
 
 struct intel_fbc {
-	struct drm_i915_private *i915;
+	struct intel_display *display;
 	const struct intel_fbc_funcs *funcs;
 
 	/*
@@ -151,7 +151,7 @@ static unsigned int _intel_fbc_cfb_stride(const struct intel_plane_state *plane_
 /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */
 static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
 	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
 	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
@@ -165,7 +165,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
 	 * Wa_16011863758: icl+
 	 * Avoid some hardware segment address miscalculation.
 	 */
-	if (DISPLAY_VER(i915) >= 11)
+	if (DISPLAY_VER(display) >= 11)
 		stride += 64;
 
 	/*
@@ -181,7 +181,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
 /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */
 static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
 
 	/*
@@ -189,7 +189,7 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
 	 * be 512 byte aligned. Aligning each line to 512 bytes guarantees
 	 * that regardless of the compression limit we choose later.
 	 */
-	if (DISPLAY_VER(i915) >= 9)
+	if (DISPLAY_VER(display) >= 9)
 		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(plane_state));
 	else
 		return stride;
@@ -197,12 +197,12 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
 
 static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	int lines = drm_rect_height(&plane_state->uapi.src) >> 16;
 
-	if (DISPLAY_VER(i915) == 7)
+	if (DISPLAY_VER(display) == 7)
 		lines = min(lines, 2048);
-	else if (DISPLAY_VER(i915) >= 8)
+	else if (DISPLAY_VER(display) >= 8)
 		lines = min(lines, 2560);
 
 	return lines * intel_fbc_cfb_stride(plane_state);
@@ -210,7 +210,7 @@ static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_sta
 
 static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int stride_aligned = intel_fbc_cfb_stride(plane_state);
 	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
@@ -223,28 +223,31 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
 	 * we always need to use the override there.
 	 */
 	if (stride != stride_aligned ||
-	    (DISPLAY_VER(i915) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
+	    (DISPLAY_VER(display) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
 		return stride_aligned * 4 / 64;
 
 	return 0;
 }
 
-static bool intel_fbc_has_fences(struct drm_i915_private *i915)
+static bool intel_fbc_has_fences(struct intel_display *display)
 {
+	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);
+
 	return intel_gt_support_legacy_fencing(to_gt(i915));
 }
 
 static u32 i8xx_fbc_ctl(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	unsigned int cfb_stride;
 	u32 fbc_ctl;
 
 	cfb_stride = fbc_state->cfb_stride / fbc->limit;
 
 	/* FBC_CTL wants 32B or 64B units */
-	if (DISPLAY_VER(i915) == 2)
+	if (DISPLAY_VER(display) == 2)
 		cfb_stride = (cfb_stride / 32) - 1;
 	else
 		cfb_stride = (cfb_stride / 64) - 1;
@@ -278,21 +281,21 @@ static u32 i965_fbc_ctl2(struct intel_fbc *fbc)
 
 static void i8xx_fbc_deactivate(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 fbc_ctl;
 
 	/* Disable compression */
-	fbc_ctl = intel_de_read(i915, FBC_CONTROL);
+	fbc_ctl = intel_de_read(display, FBC_CONTROL);
 	if ((fbc_ctl & FBC_CTL_EN) == 0)
 		return;
 
 	fbc_ctl &= ~FBC_CTL_EN;
-	intel_de_write(i915, FBC_CONTROL, fbc_ctl);
+	intel_de_write(display, FBC_CONTROL, fbc_ctl);
 
 	/* Wait for compressing bit to clear */
-	if (intel_de_wait_for_clear(i915, FBC_STATUS,
+	if (intel_de_wait_for_clear(display, FBC_STATUS,
 				    FBC_STAT_COMPRESSING, 10)) {
-		drm_dbg_kms(&i915->drm, "FBC idle timed out\n");
+		drm_dbg_kms(display->drm, "FBC idle timed out\n");
 		return;
 	}
 }
@@ -300,32 +303,32 @@ static void i8xx_fbc_deactivate(struct intel_fbc *fbc)
 static void i8xx_fbc_activate(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	int i;
 
 	/* Clear old tags */
 	for (i = 0; i < (FBC_LL_SIZE / 32) + 1; i++)
-		intel_de_write(i915, FBC_TAG(i), 0);
+		intel_de_write(display, FBC_TAG(i), 0);
 
-	if (DISPLAY_VER(i915) == 4) {
-		intel_de_write(i915, FBC_CONTROL2,
+	if (DISPLAY_VER(display) == 4) {
+		intel_de_write(display, FBC_CONTROL2,
 			       i965_fbc_ctl2(fbc));
-		intel_de_write(i915, FBC_FENCE_OFF,
+		intel_de_write(display, FBC_FENCE_OFF,
 			       fbc_state->fence_y_offset);
 	}
 
-	intel_de_write(i915, FBC_CONTROL,
+	intel_de_write(display, FBC_CONTROL,
 		       FBC_CTL_EN | i8xx_fbc_ctl(fbc));
 }
 
 static bool i8xx_fbc_is_active(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, FBC_CONTROL) & FBC_CTL_EN;
+	return intel_de_read(fbc->display, FBC_CONTROL) & FBC_CTL_EN;
 }
 
 static bool i8xx_fbc_is_compressing(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, FBC_STATUS) &
+	return intel_de_read(fbc->display, FBC_STATUS) &
 		(FBC_STAT_COMPRESSING | FBC_STAT_COMPRESSED);
 }
 
@@ -333,7 +336,7 @@ static void i8xx_fbc_nuke(struct intel_fbc *fbc)
 {
 	struct intel_fbc_state *fbc_state = &fbc->state;
 	enum i9xx_plane_id i9xx_plane = fbc_state->plane->i9xx_plane;
-	struct drm_i915_private *dev_priv = fbc->i915;
+	struct drm_i915_private *dev_priv = to_i915(fbc->display->drm);
 
 	intel_de_write_fw(dev_priv, DSPADDR(dev_priv, i9xx_plane),
 			  intel_de_read_fw(dev_priv, DSPADDR(dev_priv, i9xx_plane)));
@@ -341,13 +344,14 @@ static void i8xx_fbc_nuke(struct intel_fbc *fbc)
 
 static void i8xx_fbc_program_cfb(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	drm_WARN_ON(&i915->drm,
+	drm_WARN_ON(display->drm,
 		    range_overflows_end_t(u64, i915_gem_stolen_area_address(i915),
 					  i915_gem_stolen_node_offset(&fbc->compressed_fb),
 					  U32_MAX));
-	drm_WARN_ON(&i915->drm,
+	drm_WARN_ON(display->drm,
 		    range_overflows_end_t(u64, i915_gem_stolen_area_address(i915),
 					  i915_gem_stolen_node_offset(&fbc->compressed_llb),
 					  U32_MAX));
@@ -370,7 +374,7 @@ static void i965_fbc_nuke(struct intel_fbc *fbc)
 {
 	struct intel_fbc_state *fbc_state = &fbc->state;
 	enum i9xx_plane_id i9xx_plane = fbc_state->plane->i9xx_plane;
-	struct drm_i915_private *dev_priv = fbc->i915;
+	struct drm_i915_private *dev_priv = to_i915(fbc->display->drm);
 
 	intel_de_write_fw(dev_priv, DSPSURF(dev_priv, i9xx_plane),
 			  intel_de_read_fw(dev_priv, DSPSURF(dev_priv, i9xx_plane)));
@@ -403,7 +407,8 @@ static u32 g4x_dpfc_ctl_limit(struct intel_fbc *fbc)
 static u32 g4x_dpfc_ctl(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 dpfc_ctl;
 
 	dpfc_ctl = g4x_dpfc_ctl_limit(fbc) |
@@ -415,7 +420,7 @@ static u32 g4x_dpfc_ctl(struct intel_fbc *fbc)
 	if (fbc_state->fence_id >= 0) {
 		dpfc_ctl |= DPFC_CTL_FENCE_EN_G4X;
 
-		if (DISPLAY_VER(i915) < 6)
+		if (DISPLAY_VER(display) < 6)
 			dpfc_ctl |= DPFC_CTL_FENCENO(fbc_state->fence_id);
 	}
 
@@ -425,43 +430,43 @@ static u32 g4x_dpfc_ctl(struct intel_fbc *fbc)
 static void g4x_fbc_activate(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
-	intel_de_write(i915, DPFC_FENCE_YOFF,
+	intel_de_write(display, DPFC_FENCE_YOFF,
 		       fbc_state->fence_y_offset);
 
-	intel_de_write(i915, DPFC_CONTROL,
+	intel_de_write(display, DPFC_CONTROL,
 		       DPFC_CTL_EN | g4x_dpfc_ctl(fbc));
 }
 
 static void g4x_fbc_deactivate(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 dpfc_ctl;
 
 	/* Disable compression */
-	dpfc_ctl = intel_de_read(i915, DPFC_CONTROL);
+	dpfc_ctl = intel_de_read(display, DPFC_CONTROL);
 	if (dpfc_ctl & DPFC_CTL_EN) {
 		dpfc_ctl &= ~DPFC_CTL_EN;
-		intel_de_write(i915, DPFC_CONTROL, dpfc_ctl);
+		intel_de_write(display, DPFC_CONTROL, dpfc_ctl);
 	}
 }
 
 static bool g4x_fbc_is_active(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, DPFC_CONTROL) & DPFC_CTL_EN;
+	return intel_de_read(fbc->display, DPFC_CONTROL) & DPFC_CTL_EN;
 }
 
 static bool g4x_fbc_is_compressing(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, DPFC_STATUS) & DPFC_COMP_SEG_MASK;
+	return intel_de_read(fbc->display, DPFC_STATUS) & DPFC_COMP_SEG_MASK;
 }
 
 static void g4x_fbc_program_cfb(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
-	intel_de_write(i915, DPFC_CB_BASE,
+	intel_de_write(display, DPFC_CB_BASE,
 		       i915_gem_stolen_node_offset(&fbc->compressed_fb));
 }
 
@@ -477,43 +482,43 @@ static const struct intel_fbc_funcs g4x_fbc_funcs = {
 static void ilk_fbc_activate(struct intel_fbc *fbc)
 {
 	struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
-	intel_de_write(i915, ILK_DPFC_FENCE_YOFF(fbc->id),
+	intel_de_write(display, ILK_DPFC_FENCE_YOFF(fbc->id),
 		       fbc_state->fence_y_offset);
 
-	intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id),
+	intel_de_write(display, ILK_DPFC_CONTROL(fbc->id),
 		       DPFC_CTL_EN | g4x_dpfc_ctl(fbc));
 }
 
 static void ilk_fbc_deactivate(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 dpfc_ctl;
 
 	/* Disable compression */
-	dpfc_ctl = intel_de_read(i915, ILK_DPFC_CONTROL(fbc->id));
+	dpfc_ctl = intel_de_read(display, ILK_DPFC_CONTROL(fbc->id));
 	if (dpfc_ctl & DPFC_CTL_EN) {
 		dpfc_ctl &= ~DPFC_CTL_EN;
-		intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
+		intel_de_write(display, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
 	}
 }
 
 static bool ilk_fbc_is_active(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, ILK_DPFC_CONTROL(fbc->id)) & DPFC_CTL_EN;
+	return intel_de_read(fbc->display, ILK_DPFC_CONTROL(fbc->id)) & DPFC_CTL_EN;
 }
 
 static bool ilk_fbc_is_compressing(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, ILK_DPFC_STATUS(fbc->id)) & DPFC_COMP_SEG_MASK;
+	return intel_de_read(fbc->display, ILK_DPFC_STATUS(fbc->id)) & DPFC_COMP_SEG_MASK;
 }
 
 static void ilk_fbc_program_cfb(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
-	intel_de_write(i915, ILK_DPFC_CB_BASE(fbc->id),
+	intel_de_write(display, ILK_DPFC_CB_BASE(fbc->id),
 		       i915_gem_stolen_node_offset(&fbc->compressed_fb));
 }
 
@@ -529,14 +534,14 @@ static const struct intel_fbc_funcs ilk_fbc_funcs = {
 static void snb_fbc_program_fence(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 ctl = 0;
 
 	if (fbc_state->fence_id >= 0)
 		ctl = SNB_DPFC_FENCE_EN | SNB_DPFC_FENCENO(fbc_state->fence_id);
 
-	intel_de_write(i915, SNB_DPFC_CTL_SA, ctl);
-	intel_de_write(i915, SNB_DPFC_CPU_FENCE_OFFSET, fbc_state->fence_y_offset);
+	intel_de_write(display, SNB_DPFC_CTL_SA, ctl);
+	intel_de_write(display, SNB_DPFC_CPU_FENCE_OFFSET, fbc_state->fence_y_offset);
 }
 
 static void snb_fbc_activate(struct intel_fbc *fbc)
@@ -548,10 +553,10 @@ static void snb_fbc_activate(struct intel_fbc *fbc)
 
 static void snb_fbc_nuke(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
-	intel_de_write(i915, MSG_FBC_REND_STATE(fbc->id), FBC_REND_NUKE);
-	intel_de_posting_read(i915, MSG_FBC_REND_STATE(fbc->id));
+	intel_de_write(display, MSG_FBC_REND_STATE(fbc->id), FBC_REND_NUKE);
+	intel_de_posting_read(display, MSG_FBC_REND_STATE(fbc->id));
 }
 
 static const struct intel_fbc_funcs snb_fbc_funcs = {
@@ -566,20 +571,20 @@ static const struct intel_fbc_funcs snb_fbc_funcs = {
 static void glk_fbc_program_cfb_stride(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 val = 0;
 
 	if (fbc_state->override_cfb_stride)
 		val |= FBC_STRIDE_OVERRIDE |
 			FBC_STRIDE(fbc_state->override_cfb_stride / fbc->limit);
 
-	intel_de_write(i915, GLK_FBC_STRIDE(fbc->id), val);
+	intel_de_write(display, GLK_FBC_STRIDE(fbc->id), val);
 }
 
 static void skl_fbc_program_cfb_stride(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 val = 0;
 
 	/* Display WA #0529: skl, kbl, bxt. */
@@ -587,7 +592,7 @@ static void skl_fbc_program_cfb_stride(struct intel_fbc *fbc)
 		val |= CHICKEN_FBC_STRIDE_OVERRIDE |
 			CHICKEN_FBC_STRIDE(fbc_state->override_cfb_stride / fbc->limit);
 
-	intel_de_rmw(i915, CHICKEN_MISC_4,
+	intel_de_rmw(display, CHICKEN_MISC_4,
 		     CHICKEN_FBC_STRIDE_OVERRIDE |
 		     CHICKEN_FBC_STRIDE_MASK, val);
 }
@@ -595,7 +600,8 @@ static void skl_fbc_program_cfb_stride(struct intel_fbc *fbc)
 static u32 ivb_dpfc_ctl(struct intel_fbc *fbc)
 {
 	const struct intel_fbc_state *fbc_state = &fbc->state;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	u32 dpfc_ctl;
 
 	dpfc_ctl = g4x_dpfc_ctl_limit(fbc);
@@ -603,7 +609,7 @@ static u32 ivb_dpfc_ctl(struct intel_fbc *fbc)
 	if (IS_IVYBRIDGE(i915))
 		dpfc_ctl |= DPFC_CTL_PLANE_IVB(fbc_state->plane->i9xx_plane);
 
-	if (DISPLAY_VER(i915) >= 20)
+	if (DISPLAY_VER(display) >= 20)
 		dpfc_ctl |= DPFC_CTL_PLANE_BINDING(fbc_state->plane->id);
 
 	if (fbc_state->fence_id >= 0)
@@ -617,35 +623,35 @@ static u32 ivb_dpfc_ctl(struct intel_fbc *fbc)
 
 static void ivb_fbc_activate(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	u32 dpfc_ctl;
 
-	if (DISPLAY_VER(i915) >= 10)
+	if (DISPLAY_VER(display) >= 10)
 		glk_fbc_program_cfb_stride(fbc);
-	else if (DISPLAY_VER(i915) == 9)
+	else if (DISPLAY_VER(display) == 9)
 		skl_fbc_program_cfb_stride(fbc);
 
-	if (intel_fbc_has_fences(i915))
+	if (intel_fbc_has_fences(display))
 		snb_fbc_program_fence(fbc);
 
 	/* wa_14019417088 Alternative WA*/
 	dpfc_ctl = ivb_dpfc_ctl(fbc);
-	if (DISPLAY_VER(i915) >= 20)
-		intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
+	if (DISPLAY_VER(display) >= 20)
+		intel_de_write(display, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
 
-	intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id),
+	intel_de_write(display, ILK_DPFC_CONTROL(fbc->id),
 		       DPFC_CTL_EN | dpfc_ctl);
 }
 
 static bool ivb_fbc_is_compressing(struct intel_fbc *fbc)
 {
-	return intel_de_read(fbc->i915, ILK_DPFC_STATUS2(fbc->id)) & DPFC_COMP_SEG_MASK_IVB;
+	return intel_de_read(fbc->display, ILK_DPFC_STATUS2(fbc->id)) & DPFC_COMP_SEG_MASK_IVB;
 }
 
 static void ivb_fbc_set_false_color(struct intel_fbc *fbc,
 				    bool enable)
 {
-	intel_de_rmw(fbc->i915, ILK_DPFC_CONTROL(fbc->id),
+	intel_de_rmw(fbc->display, ILK_DPFC_CONTROL(fbc->id),
 		     DPFC_CTL_FALSE_COLOR, enable ? DPFC_CTL_FALSE_COLOR : 0);
 }
 
@@ -690,10 +696,10 @@ static bool intel_fbc_is_compressing(struct intel_fbc *fbc)
 
 static void intel_fbc_nuke(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
 	lockdep_assert_held(&fbc->lock);
-	drm_WARN_ON(&i915->drm, fbc->flip_pending);
+	drm_WARN_ON(display->drm, fbc->flip_pending);
 
 	trace_intel_fbc_nuke(fbc->state.plane);
 
@@ -720,29 +726,32 @@ static void intel_fbc_deactivate(struct intel_fbc *fbc, const char *reason)
 	fbc->no_fbc_reason = reason;
 }
 
-static u64 intel_fbc_cfb_base_max(struct drm_i915_private *i915)
+static u64 intel_fbc_cfb_base_max(struct intel_display *display)
 {
-	if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
+	struct drm_i915_private *i915 = to_i915(display->drm);
+
+	if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
 		return BIT_ULL(28);
 	else
 		return BIT_ULL(32);
 }
 
-static u64 intel_fbc_stolen_end(struct drm_i915_private *i915)
+static u64 intel_fbc_stolen_end(struct intel_display *display)
 {
+	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);
 	u64 end;
 
 	/* The FBC hardware for BDW/SKL doesn't have access to the stolen
 	 * reserved range size, so it always assumes the maximum (8mb) is used.
 	 * If we enable FBC using a CFB on that memory range we'll get FIFO
 	 * underruns, even if that range is not reserved by the BIOS. */
-	if (IS_BROADWELL(i915) ||
-	    (DISPLAY_VER(i915) == 9 && !IS_BROXTON(i915)))
+	if (IS_BROADWELL(to_i915(display->drm)) ||
+	    (DISPLAY_VER(display) == 9 && !IS_BROXTON(to_i915(display->drm))))
 		end = i915_gem_stolen_area_size(i915) - 8 * 1024 * 1024;
 	else
 		end = U64_MAX;
 
-	return min(end, intel_fbc_cfb_base_max(i915));
+	return min(end, intel_fbc_cfb_base_max(display));
 }
 
 static int intel_fbc_min_limit(const struct intel_plane_state *plane_state)
@@ -750,8 +759,10 @@ static int intel_fbc_min_limit(const struct intel_plane_state *plane_state)
 	return plane_state->hw.fb->format->cpp[0] == 2 ? 2 : 1;
 }
 
-static int intel_fbc_max_limit(struct drm_i915_private *i915)
+static int intel_fbc_max_limit(struct intel_display *display)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
+
 	/* WaFbcOnly1to1Ratio:ctg */
 	if (IS_G4X(i915))
 		return 1;
@@ -766,8 +777,9 @@ static int intel_fbc_max_limit(struct drm_i915_private *i915)
 static int find_compression_limit(struct intel_fbc *fbc,
 				  unsigned int size, int min_limit)
 {
-	struct drm_i915_private *i915 = fbc->i915;
-	u64 end = intel_fbc_stolen_end(i915);
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
+	u64 end = intel_fbc_stolen_end(display);
 	int ret, limit = min_limit;
 
 	size /= limit;
@@ -778,7 +790,7 @@ static int find_compression_limit(struct intel_fbc *fbc,
 	if (ret == 0)
 		return limit;
 
-	for (; limit <= intel_fbc_max_limit(i915); limit <<= 1) {
+	for (; limit <= intel_fbc_max_limit(display); limit <<= 1) {
 		ret = i915_gem_stolen_insert_node_in_range(i915, &fbc->compressed_fb,
 							   size >>= 1, 4096, 0, end);
 		if (ret == 0)
@@ -791,15 +803,16 @@ static int find_compression_limit(struct intel_fbc *fbc,
 static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 			       unsigned int size, int min_limit)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	int ret;
 
-	drm_WARN_ON(&i915->drm,
+	drm_WARN_ON(display->drm,
 		    i915_gem_stolen_node_allocated(&fbc->compressed_fb));
-	drm_WARN_ON(&i915->drm,
+	drm_WARN_ON(display->drm,
 		    i915_gem_stolen_node_allocated(&fbc->compressed_llb));
 
-	if (DISPLAY_VER(i915) < 5 && !IS_G4X(i915)) {
+	if (DISPLAY_VER(display) < 5 && !IS_G4X(to_i915(display->drm))) {
 		ret = i915_gem_stolen_insert_node(i915, &fbc->compressed_llb,
 						  4096, 4096);
 		if (ret)
@@ -810,12 +823,12 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 	if (!ret)
 		goto err_llb;
 	else if (ret > min_limit)
-		drm_info_once(&i915->drm,
+		drm_info_once(display->drm,
 			      "Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.\n");
 
 	fbc->limit = ret;
 
-	drm_dbg_kms(&i915->drm,
+	drm_dbg_kms(display->drm,
 		    "reserved %llu bytes of contiguous stolen space for FBC, limit: %d\n",
 		    i915_gem_stolen_node_size(&fbc->compressed_fb), fbc->limit);
 	return 0;
@@ -825,7 +838,8 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
 		i915_gem_stolen_remove_node(i915, &fbc->compressed_llb);
 err:
 	if (i915_gem_stolen_initialized(i915))
-		drm_info_once(&i915->drm, "not enough stolen space for compressed buffer (need %d more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.\n", size);
+		drm_info_once(display->drm,
+			      "not enough stolen space for compressed buffer (need %d more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.\n", size);
 	return -ENOSPC;
 }
 
@@ -836,14 +850,15 @@ static void intel_fbc_program_cfb(struct intel_fbc *fbc)
 
 static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	if (IS_SKYLAKE(i915) || IS_BROXTON(i915)) {
 		/*
 		 * WaFbcHighMemBwCorruptionAvoidance:skl,bxt
 		 * Display WA #0883: skl,bxt
 		 */
-		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
+		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
 			     0, DPFC_DISABLE_DUMMY0);
 	}
 
@@ -853,24 +868,25 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
 		 * WaFbcNukeOnHostModify:skl,kbl,cfl
 		 * Display WA #0873: skl,kbl,cfl
 		 */
-		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
+		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
 			     0, DPFC_NUKE_ON_ANY_MODIFICATION);
 	}
 
 	/* Wa_1409120013:icl,jsl,tgl,dg1 */
-	if (IS_DISPLAY_VER(i915, 11, 12))
-		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
+	if (IS_DISPLAY_VER(display, 11, 12))
+		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
 			     0, DPFC_CHICKEN_COMP_DUMMY_PIXEL);
 
 	/* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */
-	if (DISPLAY_VER(i915) >= 11 && !IS_DG2(i915))
-		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
+	if (DISPLAY_VER(display) >= 11 && !IS_DG2(i915))
+		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
 			     0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION);
 }
 
 static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	if (WARN_ON(intel_fbc_hw_is_active(fbc)))
 		return;
@@ -881,12 +897,12 @@ static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc)
 		i915_gem_stolen_remove_node(i915, &fbc->compressed_fb);
 }
 
-void intel_fbc_cleanup(struct drm_i915_private *i915)
+void intel_fbc_cleanup(struct intel_display *display)
 {
 	struct intel_fbc *fbc;
 	enum intel_fbc_id fbc_id;
 
-	for_each_intel_fbc(i915, fbc, fbc_id) {
+	for_each_intel_fbc(display, fbc, fbc_id) {
 		mutex_lock(&fbc->lock);
 		__intel_fbc_cleanup_cfb(fbc);
 		mutex_unlock(&fbc->lock);
@@ -938,15 +954,16 @@ static bool icl_fbc_stride_is_valid(const struct intel_plane_state *plane_state)
 
 static bool stride_is_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	if (DISPLAY_VER(i915) >= 11)
+	if (DISPLAY_VER(display) >= 11)
 		return icl_fbc_stride_is_valid(plane_state);
-	else if (DISPLAY_VER(i915) >= 9)
+	else if (DISPLAY_VER(display) >= 9)
 		return skl_fbc_stride_is_valid(plane_state);
-	else if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
+	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
 		return g4x_fbc_stride_is_valid(plane_state);
-	else if (DISPLAY_VER(i915) == 4)
+	else if (DISPLAY_VER(display) == 4)
 		return i965_fbc_stride_is_valid(plane_state);
 	else
 		return i8xx_fbc_stride_is_valid(plane_state);
@@ -954,7 +971,7 @@ static bool stride_is_valid(const struct intel_plane_state *plane_state)
 
 static bool i8xx_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
 
 	switch (fb->format->format) {
@@ -964,7 +981,7 @@ static bool i8xx_fbc_pixel_format_is_valid(const struct intel_plane_state *plane
 	case DRM_FORMAT_XRGB1555:
 	case DRM_FORMAT_RGB565:
 		/* 16bpp not supported on gen2 */
-		if (DISPLAY_VER(i915) == 2)
+		if (DISPLAY_VER(display) == 2)
 			return false;
 		return true;
 	default:
@@ -974,7 +991,8 @@ static bool i8xx_fbc_pixel_format_is_valid(const struct intel_plane_state *plane
 
 static bool g4x_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
 
 	switch (fb->format->format) {
@@ -1009,11 +1027,12 @@ static bool lnl_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_
 
 static bool pixel_format_is_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	if (DISPLAY_VER(i915) >= 20)
+	if (DISPLAY_VER(display) >= 20)
 		return lnl_fbc_pixel_format_is_valid(plane_state);
-	else if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
+	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
 		return g4x_fbc_pixel_format_is_valid(plane_state);
 	else
 		return i8xx_fbc_pixel_format_is_valid(plane_state);
@@ -1043,11 +1062,12 @@ static bool skl_fbc_rotation_is_valid(const struct intel_plane_state *plane_stat
 
 static bool rotation_is_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	if (DISPLAY_VER(i915) >= 9)
+	if (DISPLAY_VER(display) >= 9)
 		return skl_fbc_rotation_is_valid(plane_state);
-	else if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
+	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
 		return g4x_fbc_rotation_is_valid(plane_state);
 	else
 		return i8xx_fbc_rotation_is_valid(plane_state);
@@ -1061,19 +1081,20 @@ static bool rotation_is_valid(const struct intel_plane_state *plane_state)
  */
 static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	unsigned int effective_w, effective_h, max_w, max_h;
 
-	if (DISPLAY_VER(i915) >= 11) {
+	if (DISPLAY_VER(display) >= 11) {
 		max_w = 8192;
 		max_h = 4096;
-	} else if (DISPLAY_VER(i915) >= 10) {
+	} else if (DISPLAY_VER(display) >= 10) {
 		max_w = 5120;
 		max_h = 4096;
-	} else if (DISPLAY_VER(i915) >= 7) {
+	} else if (DISPLAY_VER(display) >= 7) {
 		max_w = 4096;
 		max_h = 4096;
-	} else if (IS_G4X(i915) || DISPLAY_VER(i915) >= 5) {
+	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
 		max_w = 4096;
 		max_h = 2048;
 	} else {
@@ -1091,16 +1112,17 @@ static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *
 
 static bool intel_fbc_plane_size_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	unsigned int w, h, max_w, max_h;
 
-	if (DISPLAY_VER(i915) >= 10) {
+	if (DISPLAY_VER(display) >= 10) {
 		max_w = 5120;
 		max_h = 4096;
-	} else if (DISPLAY_VER(i915) >= 8 || IS_HASWELL(i915)) {
+	} else if (DISPLAY_VER(display) >= 8 || IS_HASWELL(i915)) {
 		max_w = 4096;
 		max_h = 4096;
-	} else if (IS_G4X(i915) || DISPLAY_VER(i915) >= 5) {
+	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
 		max_w = 4096;
 		max_h = 2048;
 	} else {
@@ -1128,9 +1150,9 @@ static bool skl_fbc_tiling_valid(const struct intel_plane_state *plane_state)
 
 static bool tiling_is_valid(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 
-	if (DISPLAY_VER(i915) >= 9)
+	if (DISPLAY_VER(display) >= 9)
 		return skl_fbc_tiling_valid(plane_state);
 	else
 		return i8xx_fbc_tiling_valid(plane_state);
@@ -1140,7 +1162,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
 				   struct intel_crtc *crtc,
 				   struct intel_plane *plane)
 {
-	struct drm_i915_private *i915 = to_i915(state->base.dev);
+	struct intel_display *display = to_intel_display(state->base.dev);
 	const struct intel_crtc_state *crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	const struct intel_plane_state *plane_state =
@@ -1158,8 +1180,8 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
 
 	fbc_state->fence_y_offset = intel_plane_fence_y_offset(plane_state);
 
-	drm_WARN_ON(&i915->drm, plane_state->flags & PLANE_HAS_FENCE &&
-		    !intel_fbc_has_fences(i915));
+	drm_WARN_ON(display->drm, plane_state->flags & PLANE_HAS_FENCE &&
+		    !intel_fbc_has_fences(display));
 
 	if (plane_state->flags & PLANE_HAS_FENCE)
 		fbc_state->fence_id =  i915_vma_fence_id(plane_state->ggtt_vma);
@@ -1173,7 +1195,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
 
 static bool intel_fbc_is_fence_ok(const struct intel_plane_state *plane_state)
 {
-	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 
 	/*
 	 * The use of a CPU fence is one of two ways to detect writes by the
@@ -1187,7 +1209,7 @@ static bool intel_fbc_is_fence_ok(const struct intel_plane_state *plane_state)
 	 * so have no fence associated with it) due to aperture constraints
 	 * at the time of pinning.
 	 */
-	return DISPLAY_VER(i915) >= 9 ||
+	return DISPLAY_VER(display) >= 9 ||
 		(plane_state->flags & PLANE_HAS_FENCE &&
 		 i915_vma_fence_id(plane_state->ggtt_vma) != -1);
 }
@@ -1212,7 +1234,8 @@ static bool intel_fbc_is_ok(const struct intel_plane_state *plane_state)
 static int intel_fbc_check_plane(struct intel_atomic_state *state,
 				 struct intel_plane *plane)
 {
-	struct drm_i915_private *i915 = to_i915(state->base.dev);
+	struct intel_display *display = to_intel_display(state->base.dev);
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct intel_plane_state *plane_state =
 		intel_atomic_get_new_plane_state(state, plane);
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
@@ -1233,7 +1256,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 		return 0;
 	}
 
-	if (!i915->display.params.enable_fbc) {
+	if (!display->params.enable_fbc) {
 		plane_state->no_fbc_reason = "disabled per module param or by default";
 		return 0;
 	}
@@ -1271,14 +1294,14 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 	 * Recommendation is to keep this combination disabled
 	 * Bspec: 50422 HSD: 14010260002
 	 */
-	if (IS_DISPLAY_VER(i915, 12, 14) && crtc_state->has_sel_update &&
+	if (IS_DISPLAY_VER(display, 12, 14) && crtc_state->has_sel_update &&
 	    !crtc_state->has_panel_replay) {
 		plane_state->no_fbc_reason = "PSR2 enabled";
 		return 0;
 	}
 
 	/* Wa_14016291713 */
-	if ((IS_DISPLAY_VER(i915, 12, 13) ||
+	if ((IS_DISPLAY_VER(display, 12, 13) ||
 	     IS_DISPLAY_IP_STEP(i915, IP_VER(14, 0), STEP_A0, STEP_C0)) &&
 	    crtc_state->has_psr && !crtc_state->has_panel_replay) {
 		plane_state->no_fbc_reason = "PSR1 enabled (Wa_14016291713)";
@@ -1305,7 +1328,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 		return 0;
 	}
 
-	if (DISPLAY_VER(i915) < 20 &&
+	if (DISPLAY_VER(display) < 20 &&
 	    plane_state->hw.pixel_blend_mode != DRM_MODE_BLEND_PIXEL_NONE &&
 	    fb->format->has_alpha) {
 		plane_state->no_fbc_reason = "per-pixel alpha not supported";
@@ -1327,14 +1350,14 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 	 * having a Y offset that isn't divisible by 4 causes FIFO underrun
 	 * and screen flicker.
 	 */
-	if (DISPLAY_VER(i915) >= 9 &&
+	if (DISPLAY_VER(display) >= 9 &&
 	    plane_state->view.color_plane[0].y & 3) {
 		plane_state->no_fbc_reason = "plane start Y offset misaligned";
 		return 0;
 	}
 
 	/* Wa_22010751166: icl, ehl, tgl, dg1, rkl */
-	if (DISPLAY_VER(i915) >= 11 &&
+	if (DISPLAY_VER(display) >= 11 &&
 	    (plane_state->view.color_plane[0].y +
 	     (drm_rect_height(&plane_state->uapi.src) >> 16)) & 3) {
 		plane_state->no_fbc_reason = "plane end Y offset misaligned";
@@ -1410,7 +1433,7 @@ static bool __intel_fbc_pre_update(struct intel_atomic_state *state,
 				   struct intel_crtc *crtc,
 				   struct intel_plane *plane)
 {
-	struct drm_i915_private *i915 = to_i915(state->base.dev);
+	struct intel_display *display = to_intel_display(state->base.dev);
 	struct intel_fbc *fbc = plane->fbc;
 	bool need_vblank_wait = false;
 
@@ -1436,7 +1459,7 @@ static bool __intel_fbc_pre_update(struct intel_atomic_state *state,
 	 * and skipping the extra vblank wait before the plane update
 	 * if at least one frame has already passed.
 	 */
-	if (fbc->activated && DISPLAY_VER(i915) >= 10)
+	if (fbc->activated && DISPLAY_VER(display) >= 10)
 		need_vblank_wait = true;
 	fbc->activated = false;
 
@@ -1470,13 +1493,13 @@ bool intel_fbc_pre_update(struct intel_atomic_state *state,
 
 static void __intel_fbc_disable(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 	struct intel_plane *plane = fbc->state.plane;
 
 	lockdep_assert_held(&fbc->lock);
-	drm_WARN_ON(&i915->drm, fbc->active);
+	drm_WARN_ON(display->drm, fbc->active);
 
-	drm_dbg_kms(&i915->drm, "Disabling FBC on [PLANE:%d:%s]\n",
+	drm_dbg_kms(display->drm, "Disabling FBC on [PLANE:%d:%s]\n",
 		    plane->base.base.id, plane->base.name);
 
 	__intel_fbc_cleanup_cfb(fbc);
@@ -1553,7 +1576,7 @@ void intel_fbc_invalidate(struct drm_i915_private *i915,
 	struct intel_fbc *fbc;
 	enum intel_fbc_id fbc_id;
 
-	for_each_intel_fbc(i915, fbc, fbc_id)
+	for_each_intel_fbc(&i915->display, fbc, fbc_id)
 		__intel_fbc_invalidate(fbc, frontbuffer_bits, origin);
 
 }
@@ -1592,7 +1615,7 @@ void intel_fbc_flush(struct drm_i915_private *i915,
 	struct intel_fbc *fbc;
 	enum intel_fbc_id fbc_id;
 
-	for_each_intel_fbc(i915, fbc, fbc_id)
+	for_each_intel_fbc(&i915->display, fbc, fbc_id)
 		__intel_fbc_flush(fbc, frontbuffer_bits, origin);
 }
 
@@ -1617,7 +1640,7 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
 			       struct intel_crtc *crtc,
 			       struct intel_plane *plane)
 {
-	struct drm_i915_private *i915 = to_i915(state->base.dev);
+	struct intel_display *display = to_intel_display(state->base.dev);
 	const struct intel_plane_state *plane_state =
 		intel_atomic_get_new_plane_state(state, plane);
 	struct intel_fbc *fbc = plane->fbc;
@@ -1636,7 +1659,7 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
 		__intel_fbc_disable(fbc);
 	}
 
-	drm_WARN_ON(&i915->drm, fbc->active);
+	drm_WARN_ON(display->drm, fbc->active);
 
 	fbc->no_fbc_reason = plane_state->no_fbc_reason;
 	if (fbc->no_fbc_reason)
@@ -1658,7 +1681,7 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
 		return;
 	}
 
-	drm_dbg_kms(&i915->drm, "Enabling FBC on [PLANE:%d:%s]\n",
+	drm_dbg_kms(display->drm, "Enabling FBC on [PLANE:%d:%s]\n",
 		    plane->base.base.id, plane->base.name);
 	fbc->no_fbc_reason = "FBC enabled but not active yet\n";
 
@@ -1676,10 +1699,10 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
  */
 void intel_fbc_disable(struct intel_crtc *crtc)
 {
-	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	struct intel_display *display = to_intel_display(crtc->base.dev);
 	struct intel_plane *plane;
 
-	for_each_intel_plane(&i915->drm, plane) {
+	for_each_intel_plane(display->drm, plane) {
 		struct intel_fbc *fbc = plane->fbc;
 
 		if (!fbc || plane->pipe != crtc->pipe)
@@ -1724,7 +1747,8 @@ void intel_fbc_update(struct intel_atomic_state *state,
 static void intel_fbc_underrun_work_fn(struct work_struct *work)
 {
 	struct intel_fbc *fbc = container_of(work, typeof(*fbc), underrun_work);
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	mutex_lock(&fbc->lock);
 
@@ -1732,7 +1756,7 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
 	if (fbc->underrun_detected || !fbc->state.plane)
 		goto out;
 
-	drm_dbg_kms(&i915->drm, "Disabling FBC due to FIFO underrun.\n");
+	drm_dbg_kms(display->drm, "Disabling FBC due to FIFO underrun.\n");
 	fbc->underrun_detected = true;
 
 	intel_fbc_deactivate(fbc, "FIFO underrun");
@@ -1745,14 +1769,14 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
 
 static void __intel_fbc_reset_underrun(struct intel_fbc *fbc)
 {
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
 
 	cancel_work_sync(&fbc->underrun_work);
 
 	mutex_lock(&fbc->lock);
 
 	if (fbc->underrun_detected) {
-		drm_dbg_kms(&i915->drm,
+		drm_dbg_kms(display->drm,
 			    "Re-allowing FBC after fifo underrun\n");
 		fbc->no_fbc_reason = "FIFO underrun cleared";
 	}
@@ -1763,22 +1787,24 @@ static void __intel_fbc_reset_underrun(struct intel_fbc *fbc)
 
 /*
  * intel_fbc_reset_underrun - reset FBC fifo underrun status.
- * @i915: the i915 device
+ * @display: display
  *
  * See intel_fbc_handle_fifo_underrun_irq(). For automated testing we
  * want to re-enable FBC after an underrun to increase test coverage.
  */
-void intel_fbc_reset_underrun(struct drm_i915_private *i915)
+void intel_fbc_reset_underrun(struct intel_display *display)
 {
 	struct intel_fbc *fbc;
 	enum intel_fbc_id fbc_id;
 
-	for_each_intel_fbc(i915, fbc, fbc_id)
+	for_each_intel_fbc(display, fbc, fbc_id)
 		__intel_fbc_reset_underrun(fbc);
 }
 
 static void __intel_fbc_handle_fifo_underrun_irq(struct intel_fbc *fbc)
 {
+	struct drm_i915_private *i915 = to_i915(fbc->display->drm);
+
 	/*
 	 * There's no guarantee that underrun_detected won't be set to true
 	 * right after this check and before the work is scheduled, but that's
@@ -1790,12 +1816,12 @@ static void __intel_fbc_handle_fifo_underrun_irq(struct intel_fbc *fbc)
 	if (READ_ONCE(fbc->underrun_detected))
 		return;
 
-	queue_work(fbc->i915->unordered_wq, &fbc->underrun_work);
+	queue_work(i915->unordered_wq, &fbc->underrun_work);
 }
 
 /**
  * intel_fbc_handle_fifo_underrun_irq - disable FBC when we get a FIFO underrun
- * @i915: i915 device
+ * @display: display
  *
  * Without FBC, most underruns are harmless and don't really cause too many
  * problems, except for an annoying message on dmesg. With FBC, underruns can
@@ -1807,12 +1833,12 @@ static void __intel_fbc_handle_fifo_underrun_irq(struct intel_fbc *fbc)
  *
  * This function is called from the IRQ handler.
  */
-void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915)
+void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display)
 {
 	struct intel_fbc *fbc;
 	enum intel_fbc_id fbc_id;
 
-	for_each_intel_fbc(i915, fbc, fbc_id)
+	for_each_intel_fbc(display, fbc, fbc_id)
 		__intel_fbc_handle_fifo_underrun_irq(fbc);
 }
 
@@ -1825,15 +1851,17 @@ void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915)
  * space to change the value during runtime without sanitizing it again. IGT
  * relies on being able to change i915.enable_fbc at runtime.
  */
-static int intel_sanitize_fbc_option(struct drm_i915_private *i915)
+static int intel_sanitize_fbc_option(struct intel_display *display)
 {
-	if (i915->display.params.enable_fbc >= 0)
-		return !!i915->display.params.enable_fbc;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	if (!HAS_FBC(i915))
+	if (display->params.enable_fbc >= 0)
+		return !!display->params.enable_fbc;
+
+	if (!HAS_FBC(display))
 		return 0;
 
-	if (IS_BROADWELL(i915) || DISPLAY_VER(i915) >= 9)
+	if (IS_BROADWELL(i915) || DISPLAY_VER(display) >= 9)
 		return 1;
 
 	return 0;
@@ -1844,9 +1872,10 @@ void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane)
 	plane->fbc = fbc;
 }
 
-static struct intel_fbc *intel_fbc_create(struct drm_i915_private *i915,
+static struct intel_fbc *intel_fbc_create(struct intel_display *display,
 					  enum intel_fbc_id fbc_id)
 {
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct intel_fbc *fbc;
 
 	fbc = kzalloc(sizeof(*fbc), GFP_KERNEL);
@@ -1854,19 +1883,19 @@ static struct intel_fbc *intel_fbc_create(struct drm_i915_private *i915,
 		return NULL;
 
 	fbc->id = fbc_id;
-	fbc->i915 = i915;
+	fbc->display = display;
 	INIT_WORK(&fbc->underrun_work, intel_fbc_underrun_work_fn);
 	mutex_init(&fbc->lock);
 
-	if (DISPLAY_VER(i915) >= 7)
+	if (DISPLAY_VER(display) >= 7)
 		fbc->funcs = &ivb_fbc_funcs;
-	else if (DISPLAY_VER(i915) == 6)
+	else if (DISPLAY_VER(display) == 6)
 		fbc->funcs = &snb_fbc_funcs;
-	else if (DISPLAY_VER(i915) == 5)
+	else if (DISPLAY_VER(display) == 5)
 		fbc->funcs = &ilk_fbc_funcs;
 	else if (IS_G4X(i915))
 		fbc->funcs = &g4x_fbc_funcs;
-	else if (DISPLAY_VER(i915) == 4)
+	else if (DISPLAY_VER(display) == 4)
 		fbc->funcs = &i965_fbc_funcs;
 	else
 		fbc->funcs = &i8xx_fbc_funcs;
@@ -1876,36 +1905,36 @@ static struct intel_fbc *intel_fbc_create(struct drm_i915_private *i915,
 
 /**
  * intel_fbc_init - Initialize FBC
- * @i915: the i915 device
+ * @display: display
  *
  * This function might be called during PM init process.
  */
-void intel_fbc_init(struct drm_i915_private *i915)
+void intel_fbc_init(struct intel_display *display)
 {
 	enum intel_fbc_id fbc_id;
 
-	i915->display.params.enable_fbc = intel_sanitize_fbc_option(i915);
-	drm_dbg_kms(&i915->drm, "Sanitized enable_fbc value: %d\n",
-		    i915->display.params.enable_fbc);
+	display->params.enable_fbc = intel_sanitize_fbc_option(display);
+	drm_dbg_kms(display->drm, "Sanitized enable_fbc value: %d\n",
+		    display->params.enable_fbc);
 
-	for_each_fbc_id(i915, fbc_id)
-		i915->display.fbc[fbc_id] = intel_fbc_create(i915, fbc_id);
+	for_each_fbc_id(display, fbc_id)
+		display->fbc[fbc_id] = intel_fbc_create(display, fbc_id);
 }
 
 /**
  * intel_fbc_sanitize - Sanitize FBC
- * @i915: the i915 device
+ * @display: display
  *
  * Make sure FBC is initially disabled since we have no
  * idea eg. into which parts of stolen it might be scribbling
  * into.
  */
-void intel_fbc_sanitize(struct drm_i915_private *i915)
+void intel_fbc_sanitize(struct intel_display *display)
 {
 	struct intel_fbc *fbc;
 	enum intel_fbc_id fbc_id;
 
-	for_each_intel_fbc(i915, fbc, fbc_id) {
+	for_each_intel_fbc(display, fbc, fbc_id) {
 		if (intel_fbc_hw_is_active(fbc))
 			intel_fbc_hw_deactivate(fbc);
 	}
@@ -1914,11 +1943,12 @@ void intel_fbc_sanitize(struct drm_i915_private *i915)
 static int intel_fbc_debugfs_status_show(struct seq_file *m, void *unused)
 {
 	struct intel_fbc *fbc = m->private;
-	struct drm_i915_private *i915 = fbc->i915;
+	struct intel_display *display = fbc->display;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 	struct intel_plane *plane;
 	intel_wakeref_t wakeref;
 
-	drm_modeset_lock_all(&i915->drm);
+	drm_modeset_lock_all(display->drm);
 
 	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
 	mutex_lock(&fbc->lock);
@@ -1931,7 +1961,7 @@ static int intel_fbc_debugfs_status_show(struct seq_file *m, void *unused)
 		seq_printf(m, "FBC disabled: %s\n", fbc->no_fbc_reason);
 	}
 
-	for_each_intel_plane(&i915->drm, plane) {
+	for_each_intel_plane(display->drm, plane) {
 		const struct intel_plane_state *plane_state =
 			to_intel_plane_state(plane->base.state);
 
@@ -1947,7 +1977,7 @@ static int intel_fbc_debugfs_status_show(struct seq_file *m, void *unused)
 	mutex_unlock(&fbc->lock);
 	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
 
-	drm_modeset_unlock_all(&i915->drm);
+	drm_modeset_unlock_all(display->drm);
 
 	return 0;
 }
@@ -2004,12 +2034,12 @@ void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc)
 }
 
 /* FIXME: remove this once igt is on board with per-crtc stuff */
-void intel_fbc_debugfs_register(struct drm_i915_private *i915)
+void intel_fbc_debugfs_register(struct intel_display *display)
 {
-	struct drm_minor *minor = i915->drm.primary;
+	struct drm_minor *minor = display->drm->primary;
 	struct intel_fbc *fbc;
 
-	fbc = i915->display.fbc[INTEL_FBC_A];
+	fbc = display->fbc[INTEL_FBC_A];
 	if (fbc)
 		intel_fbc_debugfs_add(fbc, minor->debugfs_root);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
index 6720ec8ee8a2..834b271505b1 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.h
+++ b/drivers/gpu/drm/i915/display/intel_fbc.h
@@ -13,6 +13,7 @@ struct drm_i915_private;
 struct intel_atomic_state;
 struct intel_crtc;
 struct intel_crtc_state;
+struct intel_display;
 struct intel_fbc;
 struct intel_plane;
 struct intel_plane_state;
@@ -31,9 +32,9 @@ bool intel_fbc_pre_update(struct intel_atomic_state *state,
 			  struct intel_crtc *crtc);
 void intel_fbc_post_update(struct intel_atomic_state *state,
 			   struct intel_crtc *crtc);
-void intel_fbc_init(struct drm_i915_private *dev_priv);
-void intel_fbc_cleanup(struct drm_i915_private *dev_priv);
-void intel_fbc_sanitize(struct drm_i915_private *dev_priv);
+void intel_fbc_init(struct intel_display *dev_priv);
+void intel_fbc_cleanup(struct intel_display *dev_priv);
+void intel_fbc_sanitize(struct intel_display *dev_priv);
 void intel_fbc_update(struct intel_atomic_state *state,
 		      struct intel_crtc *crtc);
 void intel_fbc_disable(struct intel_crtc *crtc);
@@ -43,9 +44,9 @@ void intel_fbc_invalidate(struct drm_i915_private *dev_priv,
 void intel_fbc_flush(struct drm_i915_private *dev_priv,
 		     unsigned int frontbuffer_bits, enum fb_op_origin origin);
 void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane);
-void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915);
-void intel_fbc_reset_underrun(struct drm_i915_private *i915);
+void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display);
+void intel_fbc_reset_underrun(struct intel_display *display);
 void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);
-void intel_fbc_debugfs_register(struct drm_i915_private *i915);
+void intel_fbc_debugfs_register(struct intel_display *display);
 
 #endif /* __INTEL_FBC_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
index e5e4ca7cc499..8949fbb1cc60 100644
--- a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
+++ b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
@@ -440,7 +440,7 @@ void intel_cpu_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv,
 			drm_err(&dev_priv->drm, "CPU pipe %c FIFO underrun\n", pipe_name(pipe));
 	}
 
-	intel_fbc_handle_fifo_underrun_irq(dev_priv);
+	intel_fbc_handle_fifo_underrun_irq(&dev_priv->display);
 }
 
 /**
diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
index 7602cb30ebf1..6f85f5352455 100644
--- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c
+++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
@@ -966,7 +966,7 @@ void intel_modeset_setup_hw_state(struct drm_i915_private *i915,
 		}
 	}
 
-	intel_fbc_sanitize(i915);
+	intel_fbc_sanitize(&i915->display);
 
 	intel_sanitize_plane_mapping(i915);
 
-- 
2.44.2


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

* [PATCH 03/20] drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
  2024-07-05 14:52 ` [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences() Ville Syrjala
  2024-07-05 14:52 ` [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:50   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 04/20] drm/i915/fbc: Extract intel_fbc_max_plane_size() Ville Syrjala
                   ` (25 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

_intel_fbc_cfb_stride() calculates the CFB stride the hardware would
automagically generate from the plane's stride. Rename the function
to intel_fbc_plane_cfb_stride() to better reflect its purpose.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index de8caa69a0dd..8f3b8f2cbf7b 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -141,7 +141,7 @@ static unsigned int intel_fbc_plane_stride(const struct intel_plane_state *plane
 }
 
 /* plane stride based cfb stride in bytes, assuming 1:1 compression limit */
-static unsigned int _intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
+static unsigned int intel_fbc_plane_cfb_stride(const struct intel_plane_state *plane_state)
 {
 	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
 
@@ -182,7 +182,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
 static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
-	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
+	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
 
 	/*
 	 * At least some of the platforms require each 4 line segment to
@@ -212,7 +212,7 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int stride_aligned = intel_fbc_cfb_stride(plane_state);
-	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
+	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
 
 	/*
-- 
2.44.2


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

* [PATCH 04/20] drm/i915/fbc: Extract intel_fbc_max_plane_size()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (2 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 03/20] drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/ Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:51   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 05/20] drm/i915/fbc: Extract intel_fbc_max_surface_size() Ville Syrjala
                   ` (24 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Extract intel_fbc_max_plane_size() from intel_fbc_plane_size_valid().
We'll have another use for this soon in determining how much stolen
memory we'd like to keep reserved for FBC.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 29 +++++++++++++++---------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 8f3b8f2cbf7b..08a431cfbbb3 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1110,25 +1110,32 @@ static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *
 	return effective_w <= max_w && effective_h <= max_h;
 }
 
-static bool intel_fbc_plane_size_valid(const struct intel_plane_state *plane_state)
+static void intel_fbc_max_plane_size(struct intel_display *display,
+				     unsigned int *w, unsigned int *h)
 {
-	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	struct drm_i915_private *i915 = to_i915(display->drm);
-	unsigned int w, h, max_w, max_h;
 
 	if (DISPLAY_VER(display) >= 10) {
-		max_w = 5120;
-		max_h = 4096;
+		*w = 5120;
+		*h = 4096;
 	} else if (DISPLAY_VER(display) >= 8 || IS_HASWELL(i915)) {
-		max_w = 4096;
-		max_h = 4096;
+		*w = 4096;
+		*h = 4096;
 	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
-		max_w = 4096;
-		max_h = 2048;
+		*w = 4096;
+		*h = 2048;
 	} else {
-		max_w = 2048;
-		max_h = 1536;
+		*w = 2048;
+		*h = 1536;
 	}
+}
+
+static bool intel_fbc_plane_size_valid(const struct intel_plane_state *plane_state)
+{
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	unsigned int w, h, max_w, max_h;
+
+	intel_fbc_max_plane_size(display, &max_w, &max_h);
 
 	w = drm_rect_width(&plane_state->uapi.src) >> 16;
 	h = drm_rect_height(&plane_state->uapi.src) >> 16;
-- 
2.44.2


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

* [PATCH 05/20] drm/i915/fbc: Extract intel_fbc_max_surface_size()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (3 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 04/20] drm/i915/fbc: Extract intel_fbc_max_plane_size() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:51   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 06/20] drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/ Ville Syrjala
                   ` (23 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Extract intel_fbc_max_surface_size() from
intel_fbc_hw_tracking_covers_screen(), mainly to mirror the
"max plane size" counterparts.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 41 ++++++++++++++----------
 1 file changed, 24 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 08a431cfbbb3..c7fd774440a8 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1073,6 +1073,29 @@ static bool rotation_is_valid(const struct intel_plane_state *plane_state)
 		return i8xx_fbc_rotation_is_valid(plane_state);
 }
 
+static void intel_fbc_max_surface_size(struct intel_display *display,
+				       unsigned int *w, unsigned int *h)
+{
+	struct drm_i915_private *i915 = to_i915(display->drm);
+
+	if (DISPLAY_VER(display) >= 11) {
+		*w = 8192;
+		*h = 4096;
+	} else if (DISPLAY_VER(display) >= 10) {
+		*w = 5120;
+		*h = 4096;
+	} else if (DISPLAY_VER(display) >= 7) {
+		*w = 4096;
+		*h = 4096;
+	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
+		*w = 4096;
+		*h = 2048;
+	} else {
+		*w = 2048;
+		*h = 1536;
+	}
+}
+
 /*
  * For some reason, the hardware tracking starts looking at whatever we
  * programmed as the display plane base address register. It does not look at
@@ -1082,25 +1105,9 @@ static bool rotation_is_valid(const struct intel_plane_state *plane_state)
 static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
-	struct drm_i915_private *i915 = to_i915(display->drm);
 	unsigned int effective_w, effective_h, max_w, max_h;
 
-	if (DISPLAY_VER(display) >= 11) {
-		max_w = 8192;
-		max_h = 4096;
-	} else if (DISPLAY_VER(display) >= 10) {
-		max_w = 5120;
-		max_h = 4096;
-	} else if (DISPLAY_VER(display) >= 7) {
-		max_w = 4096;
-		max_h = 4096;
-	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
-		max_w = 4096;
-		max_h = 2048;
-	} else {
-		max_w = 2048;
-		max_h = 1536;
-	}
+	intel_fbc_max_surface_size(display, &max_w, &max_h);
 
 	effective_w = plane_state->view.color_plane[0].x +
 		(drm_rect_width(&plane_state->uapi.src) >> 16);
-- 
2.44.2


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

* [PATCH 06/20] drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (4 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 05/20] drm/i915/fbc: Extract intel_fbc_max_surface_size() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:52   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 07/20] drm/i915/fbc: Adjust g4x+ platform checks Ville Syrjala
                   ` (22 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Rename intel_fbc_hw_tracking_covers_screen() to intel_fbc_surface_size_ok()
so that the naming scheme is the same for the surface size vs. plane
size checks. "surface size" is what bspec talks about.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index c7fd774440a8..40a3b4937dc5 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1102,7 +1102,7 @@ static void intel_fbc_max_surface_size(struct intel_display *display,
  * the X and Y offset registers. That's why we include the src x/y offsets
  * instead of just looking at the plane size.
  */
-static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *plane_state)
+static bool intel_fbc_surface_size_ok(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int effective_w, effective_h, max_w, max_h;
@@ -1354,7 +1354,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 		return 0;
 	}
 
-	if (!intel_fbc_hw_tracking_covers_screen(plane_state)) {
+	if (!intel_fbc_surface_size_ok(plane_state)) {
 		plane_state->no_fbc_reason = "surface size too big";
 		return 0;
 	}
-- 
2.44.2


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

* [PATCH 07/20] drm/i915/fbc: Adjust g4x+ platform checks
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (5 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 06/20] drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/ Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 19:54   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride() Ville Syrjala
                   ` (21 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Do the "is this ilk+ or g4x" checks in the customary order instead
of the reverse order. Easier for the poor brain to parse this
when it's always done the same way.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 40a3b4937dc5..5ba3d8797243 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1087,7 +1087,7 @@ static void intel_fbc_max_surface_size(struct intel_display *display,
 	} else if (DISPLAY_VER(display) >= 7) {
 		*w = 4096;
 		*h = 4096;
-	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
+	} else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915)) {
 		*w = 4096;
 		*h = 2048;
 	} else {
@@ -1128,7 +1128,7 @@ static void intel_fbc_max_plane_size(struct intel_display *display,
 	} else if (DISPLAY_VER(display) >= 8 || IS_HASWELL(i915)) {
 		*w = 4096;
 		*h = 4096;
-	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
+	} else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915)) {
 		*w = 4096;
 		*h = 2048;
 	} else {
-- 
2.44.2


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

* [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (6 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 07/20] drm/i915/fbc: Adjust g4x+ platform checks Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:01   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 09/20] drm/i915/fbc: s/lines/height/ Ville Syrjala
                   ` (20 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the lower level stuff out from intel_fbc_cfb_stride() into
a separate function that doesn't depend on the plane_state.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 5ba3d8797243..4a9321f5218f 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -149,12 +149,11 @@ static unsigned int intel_fbc_plane_cfb_stride(const struct intel_plane_state *p
 }
 
 /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */
-static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane_state)
+static unsigned int skl_fbc_min_cfb_stride(struct intel_display *display,
+					   unsigned int width)
 {
-	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
 	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
-	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
 	unsigned int height = 4; /* FBC segment is 4 lines */
 	unsigned int stride;
 
@@ -179,22 +178,29 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
 }
 
 /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */
-static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
+static unsigned int _intel_fbc_cfb_stride(struct intel_display *display,
+					  unsigned int width, unsigned int stride)
 {
-	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
-	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
-
 	/*
 	 * At least some of the platforms require each 4 line segment to
 	 * be 512 byte aligned. Aligning each line to 512 bytes guarantees
 	 * that regardless of the compression limit we choose later.
 	 */
 	if (DISPLAY_VER(display) >= 9)
-		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(plane_state));
+		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(display, width));
 	else
 		return stride;
 }
 
+static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
+{
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
+	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
+
+	return _intel_fbc_cfb_stride(display, width, stride);
+}
+
 static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
-- 
2.44.2


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

* [PATCH 09/20] drm/i915/fbc: s/lines/height/
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (7 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 20:00   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 10/20] drm/i915/fbc: Reoder CFB max height platform checks Ville Syrjala
                   ` (19 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use the more customary name 'height' instead of 'lines'.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 4a9321f5218f..4d25ebb5ae9d 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -204,14 +204,14 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
 static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
-	int lines = drm_rect_height(&plane_state->uapi.src) >> 16;
+	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
 
 	if (DISPLAY_VER(display) == 7)
-		lines = min(lines, 2048);
+		height = min(height, 2048);
 	else if (DISPLAY_VER(display) >= 8)
-		lines = min(lines, 2560);
+		height = min(height, 2560);
 
-	return lines * intel_fbc_cfb_stride(plane_state);
+	return height * intel_fbc_cfb_stride(plane_state);
 }
 
 static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
-- 
2.44.2


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

* [PATCH 10/20] drm/i915/fbc: Reoder CFB max height platform checks
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (8 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 09/20] drm/i915/fbc: s/lines/height/ Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-09 20:00   ` Rodrigo Vivi
  2024-07-05 14:52 ` [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height() Ville Syrjala
                   ` (18 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Rearrange the max CFB max height platform into the
more common "new first, old last" order.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 4d25ebb5ae9d..cf5750ed4681 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -206,10 +206,10 @@ static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_sta
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
 
-	if (DISPLAY_VER(display) == 7)
-		height = min(height, 2048);
-	else if (DISPLAY_VER(display) >= 8)
+	if (DISPLAY_VER(display) >= 8)
 		height = min(height, 2560);
+	else if (DISPLAY_VER(display) == 7)
+		height = min(height, 2048);
 
 	return height * intel_fbc_cfb_stride(plane_state);
 }
-- 
2.44.2


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

* [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (9 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 10/20] drm/i915/fbc: Reoder CFB max height platform checks Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:26   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size() Ville Syrjala
                   ` (17 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the code to determine the maximum CFB height
into a separate function. For pre-HSW the maximum CFB
height is the same as the maximum plane height (ie. the
older hardware supposedely doens't have the trick of leaving
the extra lines uncompressed).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 27 ++++++++++++++++++------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index cf5750ed4681..47b715e5d533 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -201,17 +201,30 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
 	return _intel_fbc_cfb_stride(display, width, stride);
 }
 
-static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
+/*
+ * Maximum height the hardware will compress, on HSW+
+ * additional lines (up to the actual plane height) will
+ * remain uncompressed.
+ */
+static unsigned int intel_fbc_max_cfb_height(struct intel_display *display)
 {
-	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
-	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
+	struct drm_i915_private *i915 = to_i915(display->drm);
 
 	if (DISPLAY_VER(display) >= 8)
-		height = min(height, 2560);
-	else if (DISPLAY_VER(display) == 7)
-		height = min(height, 2048);
+		return 2560;
+	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
+		return 2048;
+	else
+		return 1536;
+}
 
-	return height * intel_fbc_cfb_stride(plane_state);
+static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
+{
+	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
+	unsigned int height = drm_rect_height(&plane_state->uapi.src) >> 16;
+
+	return min(height, intel_fbc_max_cfb_height(display)) *
+		intel_fbc_cfb_stride(plane_state);
 }
 
 static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
-- 
2.44.2


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

* [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (10 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:28   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp() Ville Syrjala
                   ` (16 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the lower level stuff out from intel_fbc_cfb_size() into
a separate function that doesn't depend on the plane_state.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 47b715e5d533..293e1a3b9a9d 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -218,13 +218,18 @@ static unsigned int intel_fbc_max_cfb_height(struct intel_display *display)
 		return 1536;
 }
 
+static unsigned int _intel_fbc_cfb_size(struct intel_display *display,
+					unsigned int height, unsigned int stride)
+{
+	return min(height, intel_fbc_max_cfb_height(display)) * stride;
+}
+
 static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
 {
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int height = drm_rect_height(&plane_state->uapi.src) >> 16;
 
-	return min(height, intel_fbc_max_cfb_height(display)) *
-		intel_fbc_cfb_stride(plane_state);
+	return _intel_fbc_cfb_size(display, height, intel_fbc_cfb_stride(plane_state));
 }
 
 static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
-- 
2.44.2


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

* [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (11 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:30   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size() Ville Syrjala
                   ` (15 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Extract a helper to determine the CFB bytes per pixel value.
Currently this is always 4, but that could change in the
future.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 293e1a3b9a9d..a0e539bc80f1 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -140,20 +140,24 @@ static unsigned int intel_fbc_plane_stride(const struct intel_plane_state *plane
 	return stride;
 }
 
+static unsigned int intel_fbc_cfb_cpp(void)
+{
+	return 4; /* FBC always 4 bytes per pixel */
+}
+
 /* plane stride based cfb stride in bytes, assuming 1:1 compression limit */
 static unsigned int intel_fbc_plane_cfb_stride(const struct intel_plane_state *plane_state)
 {
-	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
+	unsigned int cpp = intel_fbc_cfb_cpp();
 
 	return intel_fbc_plane_stride(plane_state) * cpp;
 }
 
 /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */
 static unsigned int skl_fbc_min_cfb_stride(struct intel_display *display,
-					   unsigned int width)
+					   unsigned int cpp, unsigned int width)
 {
 	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
-	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
 	unsigned int height = 4; /* FBC segment is 4 lines */
 	unsigned int stride;
 
@@ -179,7 +183,8 @@ static unsigned int skl_fbc_min_cfb_stride(struct intel_display *display,
 
 /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */
 static unsigned int _intel_fbc_cfb_stride(struct intel_display *display,
-					  unsigned int width, unsigned int stride)
+					  unsigned int cpp, unsigned int width,
+					  unsigned int stride)
 {
 	/*
 	 * At least some of the platforms require each 4 line segment to
@@ -187,7 +192,7 @@ static unsigned int _intel_fbc_cfb_stride(struct intel_display *display,
 	 * that regardless of the compression limit we choose later.
 	 */
 	if (DISPLAY_VER(display) >= 9)
-		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(display, width));
+		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(display, cpp, width));
 	else
 		return stride;
 }
@@ -197,8 +202,9 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
 	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
 	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
 	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
+	unsigned int cpp = intel_fbc_cfb_cpp();
 
-	return _intel_fbc_cfb_stride(display, width, stride);
+	return _intel_fbc_cfb_stride(display, cpp, width, stride);
 }
 
 /*
-- 
2.44.2


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

* [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (12 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:36   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke Ville Syrjala
                   ` (14 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Allow the code to declare roughly how much stolen memory
should remain available for the CFB. Since we don't know
the actual resolutions that will eventually be used simply
assume that the maximum plane size (with no extra stride
padding) is enough, with 1:1 compression ratio limit.

This should be useful for the fbdev code to determine
whether to allocate/keep the fbdev framebuffer in stolen
or not.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 17 +++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fbc.h |  1 +
 2 files changed, 18 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index a0e539bc80f1..efe0a554a281 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1911,6 +1911,23 @@ static int intel_sanitize_fbc_option(struct intel_display *display)
 	return 0;
 }
 
+unsigned int intel_fbc_preferred_cfb_size(struct intel_display *display)
+{
+	unsigned int cpp, width, height, stride;
+
+	if (!HAS_FBC(display))
+		return 0;
+
+	intel_fbc_max_plane_size(display, &width, &height);
+
+	cpp = intel_fbc_cfb_cpp();
+
+	/* assume stride matches width to keep this simple */
+	stride = _intel_fbc_cfb_stride(display, cpp, width, width * cpp);
+
+	return _intel_fbc_cfb_size(display, height, stride);
+}
+
 void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane)
 {
 	plane->fbc = fbc;
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
index 834b271505b1..40d8efec6d9d 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.h
+++ b/drivers/gpu/drm/i915/display/intel_fbc.h
@@ -46,6 +46,7 @@ void intel_fbc_flush(struct drm_i915_private *dev_priv,
 void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane);
 void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display);
 void intel_fbc_reset_underrun(struct intel_display *display);
+unsigned int intel_fbc_preferred_cfb_size(struct intel_display *display);
 void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);
 void intel_fbc_debugfs_register(struct intel_display *display);
 
-- 
2.44.2


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

* [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (13 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:42   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen() Ville Syrjala
                   ` (13 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Looks like stolen->size is in bytes, not pages. Remove the
bogus PAGE_SHIFT stuff.

Also for some rnadom reason xe rejects the FB if it takes up
exactly half of stolen, whereas i915 allows it to be used
in that case. Adjust xe to follow the i915 rule for consistency.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c
index 5eccd6abb3ef..21965cc8a9ca 100644
--- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
+++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
@@ -110,7 +110,7 @@ initial_plane_bo(struct xe_device *xe,
 		 * features.
 		 */
 		if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
-		    plane_config->size * 2 >> PAGE_SHIFT >= stolen->size)
+		    plane_config->size * 2 > stolen->size)
 			return NULL;
 	}
 
-- 
2.44.2


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

* [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (14 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-06 12:06   ` kernel test robot
                     ` (2 more replies)
  2024-07-05 14:52 ` [PATCH 17/20] drm/xe/fbdev: " Ville Syrjala
                   ` (12 subsequent siblings)
  28 siblings, 3 replies; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Consolidate the "should we allocate fbdev fb in stolen?"
check into a helper function. Makes it easier to change the
heuristics without having to change so many places.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 24 ++++++++++++-------
 drivers/gpu/drm/i915/display/intel_fbdev_fb.h |  5 +++-
 .../drm/i915/display/intel_plane_initial.c    | 10 +++-----
 3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
index 497525ef9668..0a6445acb100 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
@@ -11,6 +11,19 @@
 #include "intel_display_types.h"
 #include "intel_fbdev_fb.h"
 
+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
+				  unsigned int size)
+{
+	struct drm_i915_private *i915 = to_i915(display->drm);
+
+	/*
+	 * If the FB is too big, just don't use it since fbdev is not very
+	 * important and we should probably use that space with FBC or other
+	 * features.
+	 */
+	return i915->dsm.usable_size >= size * 2;
+}
+
 struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
 					       struct drm_fb_helper_surface_size *sizes)
 {
@@ -42,14 +55,9 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
 						  I915_BO_ALLOC_CONTIGUOUS |
 						  I915_BO_ALLOC_USER);
 	} else {
-		/*
-		 * If the FB is too big, just don't use it since fbdev is not very
-		 * important and we should probably use that space with FBC or other
-		 * features.
-		 *
-		 * Also skip stolen on MTL as Wa_22018444074 mitigation.
-		 */
-		if (!(IS_METEORLAKE(dev_priv)) && size * 2 < dev_priv->dsm.usable_size)
+		/* skip stolen on MTL as Wa_22018444074 mitigation */
+		if (!IS_METEORLAKE(dev_priv) &&
+		    intel_fbdev_fb_prefer_stolen(&dev_priv->display, size))
 			obj = i915_gem_object_create_stolen(dev_priv, size);
 		if (IS_ERR(obj))
 			obj = i915_gem_object_create_shmem(dev_priv, size);
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
index 4832fe688fbf..3b9033bd2160 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
@@ -6,16 +6,19 @@
 #ifndef __INTEL_FBDEV_FB_H__
 #define __INTEL_FBDEV_FB_H__
 
+#include <linux/types.h>
+
 struct drm_fb_helper;
 struct drm_fb_helper_surface_size;
 struct drm_i915_gem_object;
 struct drm_i915_private;
 struct fb_info;
 struct i915_vma;
+struct intel_display;
 
 struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
 					       struct drm_fb_helper_surface_size *sizes);
 int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info *info,
 			     struct drm_i915_gem_object *obj, struct i915_vma *vma);
-
+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display, unsigned int size);
 #endif
diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
index ada1792df5b3..4622bb5f3426 100644
--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
@@ -11,6 +11,7 @@
 #include "intel_display.h"
 #include "intel_display_types.h"
 #include "intel_fb.h"
+#include "intel_fbdev_fb.h"
 #include "intel_frontbuffer.h"
 #include "intel_plane_initial.h"
 
@@ -160,15 +161,10 @@ initial_plane_vma(struct drm_i915_private *i915,
 			mem->min_page_size);
 	size -= base;
 
-	/*
-	 * If the FB is too big, just don't use it since fbdev is not very
-	 * important and we should probably use that space with FBC or other
-	 * features.
-	 */
 	if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
 	    mem == i915->mm.stolen_region &&
-	    size * 2 > i915->dsm.usable_size) {
-		drm_dbg_kms(&i915->drm, "Initial FB size exceeds half of stolen, discarding\n");
+	    !intel_fbdev_fb_prefer_stolen(&i915->display, size)) {
+		drm_dbg_kms(&i915->drm, "Initial FB size uses too much stolen, discarding\n");
 		return NULL;
 	}
 
-- 
2.44.2


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

* [PATCH 17/20] drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (15 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen() Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  8:58   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation Ville Syrjala
                   ` (11 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Pull the "should we keep the bios fb in stolen?" logic into
into a helper function, same as was done for i915. Gives us
a single place where to tweak the heuristics.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/intel_fbdev_fb.c   | 18 ++++++++++++++++++
 drivers/gpu/drm/xe/display/xe_plane_initial.c |  8 ++------
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
index 816ad13821a8..f7905b382d06 100644
--- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
@@ -11,6 +11,24 @@
 #include "xe_gt.h"
 #include "xe_ttm_stolen_mgr.h"
 
+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
+				  unsigned int size)
+{
+	struct xe_device *xe = to_xe_device(display->drm);
+	struct ttm_resource_manager *stolen;
+
+	stolen = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
+	if (!stolen)
+		return false;
+
+	/*
+	 * If the FB is too big, just don't use it since fbdev is not very
+	 * important and we should probably use that space with FBC or other
+	 * features.
+	 */
+	return stolen->size >= size * 2;
+}
+
 struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
 					       struct drm_fb_helper_surface_size *sizes)
 {
diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c
index 21965cc8a9ca..4c000e95aea5 100644
--- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
+++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
@@ -15,6 +15,7 @@
 #include "intel_display_types.h"
 #include "intel_fb.h"
 #include "intel_fb_pin.h"
+#include "intel_fbdev_fb.h"
 #include "intel_frontbuffer.h"
 #include "intel_plane_initial.h"
 #include "xe_bo.h"
@@ -104,13 +105,8 @@ initial_plane_bo(struct xe_device *xe,
 		phys_base = base;
 		flags |= XE_BO_FLAG_STOLEN;
 
-		/*
-		 * If the FB is too big, just don't use it since fbdev is not very
-		 * important and we should probably use that space with FBC or other
-		 * features.
-		 */
 		if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
-		    plane_config->size * 2 > stolen->size)
+		    !intel_fbdev_fb_prefer_stolen(&xe->display, plane_config->size))
 			return NULL;
 	}
 
-- 
2.44.2


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

* [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (16 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 17/20] drm/xe/fbdev: " Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  9:08   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic Ville Syrjala
                   ` (10 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Currently xe only checks that the BIOS FB doesn't take up too much
stolen memory, but does no such check when allocating a fresh FB
from stolen. Use the same rule for both, just like i915 does.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
index f7905b382d06..f67bc0fd803b 100644
--- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
@@ -17,6 +17,9 @@ bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
 	struct xe_device *xe = to_xe_device(display->drm);
 	struct ttm_resource_manager *stolen;
 
+	if (IS_DGFX(xe))
+		return false;
+
 	stolen = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
 	if (!stolen)
 		return false;
@@ -55,7 +58,7 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
 	size = PAGE_ALIGN(size);
 	obj = ERR_PTR(-ENODEV);
 
-	if (!IS_DGFX(xe)) {
+	if (intel_fbdev_fb_prefer_stolen(&xe->display, size)) {
 		obj = xe_bo_create_pin_map(xe, xe_device_get_root_tile(xe),
 					   NULL, size,
 					   ttm_bo_type_kernel, XE_BO_FLAG_SCANOUT |
-- 
2.44.2


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

* [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (17 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  9:11   ` Shankar, Uma
  2024-07-05 14:52 ` [PATCH 20/20] drm/xe/fbdev: " Ville Syrjala
                   ` (9 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Replace the "1/2 of stolen size" fbdev fb size heuristic with
something a bit more clever, that is ask the FBC code how much
stolen mem it would like to have avaialable for its CFB use.

TODO:
- This doesn't account for the fact that FBC's idea
  usable stolen size might differ from other users of stolen
- Would be nice to share the code with xe, but need to
  figure out how to abstract the stolen size and
  dgpu/lmem stuff

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
index 0a6445acb100..29f3241c9270 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
@@ -16,12 +16,11 @@ bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
 {
 	struct drm_i915_private *i915 = to_i915(display->drm);
 
-	/*
-	 * If the FB is too big, just don't use it since fbdev is not very
-	 * important and we should probably use that space with FBC or other
-	 * features.
-	 */
-	return i915->dsm.usable_size >= size * 2;
+	if (size > i915->dsm.usable_size)
+		return false;
+
+	/* try to ensure FBC has enough stolen to do its job well */
+	return i915->dsm.usable_size - size >= intel_fbc_preferred_cfb_size(&i915->display);
 }
 
 struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
-- 
2.44.2


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

* [PATCH 20/20] drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (18 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic Ville Syrjala
@ 2024-07-05 14:52 ` Ville Syrjala
  2024-07-10  9:12   ` Shankar, Uma
  2024-07-05 14:58 ` ✓ CI.Patch_applied: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Patchwork
                   ` (8 subsequent siblings)
  28 siblings, 1 reply; 55+ messages in thread
From: Ville Syrjala @ 2024-07-05 14:52 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Replace the "1/2 of stolen size" fbdev fb size heuristic with
something a bit more clever, that is ask the FBC code how much
stolen mem it would like to have avaialable for its CFB use.

TODO:
- This doesn't account for the fact that FBC's idea
  usable stolen size might differ from other users of stolen
- Would be nice to share the code with i915, but need to
  figure out how to abstract the stolen size and
  dgpu/lmem stuff

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
index f67bc0fd803b..62e1d176b07f 100644
--- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
@@ -24,12 +24,11 @@ bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
 	if (!stolen)
 		return false;
 
-	/*
-	 * If the FB is too big, just don't use it since fbdev is not very
-	 * important and we should probably use that space with FBC or other
-	 * features.
-	 */
-	return stolen->size >= size * 2;
+	if (size > stolen->size)
+		return false;
+
+	/* try to ensure FBC has enough stolen to do its job well */
+	return stolen->size - size >= intel_fbc_preferred_cfb_size(&xe->display);
 }
 
 struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
-- 
2.44.2


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

* ✓ CI.Patch_applied: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (19 preceding siblings ...)
  2024-07-05 14:52 ` [PATCH 20/20] drm/xe/fbdev: " Ville Syrjala
@ 2024-07-05 14:58 ` Patchwork
  2024-07-05 14:58 ` ✗ CI.checkpatch: warning " Patchwork
                   ` (7 subsequent siblings)
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 14:58 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-tip' with base: ===
Base commit: cdd1a80a2d16 drm-tip: 2024y-07m-05d-11h-19m-50s UTC integration manifest
=== git am output follows ===
Applying: drm/i915/fbc: Extract intel_fbc_has_fences()
Applying: drm/i915/fbc: Convert to intel_display, mostly
Applying: drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/
Applying: drm/i915/fbc: Extract intel_fbc_max_plane_size()
Applying: drm/i915/fbc: Extract intel_fbc_max_surface_size()
Applying: drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/
Applying: drm/i915/fbc: Adjust g4x+ platform checks
Applying: drm/i915/fbc: Extract _intel_fbc_cfb_stride()
Applying: drm/i915/fbc: s/lines/height/
Applying: drm/i915/fbc: Reoder CFB max height platform checks
Applying: drm/i915/fbc: Extract intel_fbc_max_cfb_height()
Applying: drm/i915/fbc: Extract _intel_fbc_cfb_size()
Applying: drm/i915/fbc: Extract intel_fbc_cfb_cpp()
Applying: drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
Applying: drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke
Applying: drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
Applying: drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
Applying: drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation
Applying: drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
Applying: drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic



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

* ✗ CI.checkpatch: warning for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (20 preceding siblings ...)
  2024-07-05 14:58 ` ✓ CI.Patch_applied: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Patchwork
@ 2024-07-05 14:58 ` Patchwork
  2024-07-05 15:00 ` ✓ CI.KUnit: success " Patchwork
                   ` (6 subsequent siblings)
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 14:58 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
51ce9f6cd981d42d7467409d7dbc559a450abc1e
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit b48e830a8191add5115e983b560af0d728dde2e5
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Fri Jul 5 17:52:54 2024 +0300

    drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic
    
    Replace the "1/2 of stolen size" fbdev fb size heuristic with
    something a bit more clever, that is ask the FBC code how much
    stolen mem it would like to have avaialable for its CFB use.
    
    TODO:
    - This doesn't account for the fact that FBC's idea
      usable stolen size might differ from other users of stolen
    - Would be nice to share the code with i915, but need to
      figure out how to abstract the stolen size and
      dgpu/lmem stuff
    
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+ /mt/dim checkpatch cdd1a80a2d16d5213af20a29eb7570a7651db7dc drm-intel
8e86b63e8866 drm/i915/fbc: Extract intel_fbc_has_fences()
06a70f64468e drm/i915/fbc: Convert to intel_display, mostly
-:72: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__fbc_id' - possible side-effects?
#72: FILE: drivers/gpu/drm/i915/display/intel_fbc.c:64:
+#define for_each_fbc_id(__display, __fbc_id) \
 	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS; (__fbc_id)++) \
+		for_each_if(DISPLAY_RUNTIME_INFO(__display)->fbc_mask & BIT(__fbc_id))

-:80: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#80: FILE: drivers/gpu/drm/i915/display/intel_fbc.c:68:
+#define for_each_intel_fbc(__display, __fbc, __fbc_id) \
+	for_each_fbc_id((__display), (__fbc_id)) \
+		for_each_if((__fbc) = (__display)->fbc[(__fbc_id)])

-:80: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__display' - possible side-effects?
#80: FILE: drivers/gpu/drm/i915/display/intel_fbc.c:68:
+#define for_each_intel_fbc(__display, __fbc, __fbc_id) \
+	for_each_fbc_id((__display), (__fbc_id)) \
+		for_each_if((__fbc) = (__display)->fbc[(__fbc_id)])

-:80: CHECK:MACRO_ARG_REUSE: Macro argument reuse '__fbc_id' - possible side-effects?
#80: FILE: drivers/gpu/drm/i915/display/intel_fbc.c:68:
+#define for_each_intel_fbc(__display, __fbc, __fbc_id) \
+	for_each_fbc_id((__display), (__fbc_id)) \
+		for_each_if((__fbc) = (__display)->fbc[(__fbc_id)])

-:679: WARNING:LONG_LINE: line length of 200 exceeds 100 columns
#679: FILE: drivers/gpu/drm/i915/display/intel_fbc.c:842:
+			      "not enough stolen space for compressed buffer (need %d more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.\n", size);

total: 1 errors, 1 warnings, 3 checks, 1268 lines checked
834153d041c4 drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/
1b9e88958c5a drm/i915/fbc: Extract intel_fbc_max_plane_size()
91ee933a99e1 drm/i915/fbc: Extract intel_fbc_max_surface_size()
019a0dd19bf0 drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/
d8cefaf127a9 drm/i915/fbc: Adjust g4x+ platform checks
7ede9eea13fa drm/i915/fbc: Extract _intel_fbc_cfb_stride()
2909fe71a6b7 drm/i915/fbc: s/lines/height/
2f06af7f6927 drm/i915/fbc: Reoder CFB max height platform checks
5ed304aa74cd drm/i915/fbc: Extract intel_fbc_max_cfb_height()
c4d03c4c9046 drm/i915/fbc: Extract _intel_fbc_cfb_size()
7072a55328c2 drm/i915/fbc: Extract intel_fbc_cfb_cpp()
0cb9d6de64a5 drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
282d3173424d drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke
198dd2a6b128 drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
39a14b99b167 drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
a03bed0e4009 drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation
34e236f3ac02 drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
b48e830a8191 drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic



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

* ✓ CI.KUnit: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (21 preceding siblings ...)
  2024-07-05 14:58 ` ✗ CI.checkpatch: warning " Patchwork
@ 2024-07-05 15:00 ` Patchwork
  2024-07-05 15:12 ` ✓ CI.Build: " Patchwork
                   ` (5 subsequent siblings)
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 15:00 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[14:58:57] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:59:01] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
  156 | u64 ioread64_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
  163 | u64 ioread64_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~

[14:59:26] Starting KUnit Kernel (1/1)...
[14:59:26] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:59:26] =================== guc_dbm (7 subtests) ===================
[14:59:26] [PASSED] test_empty
[14:59:26] [PASSED] test_default
[14:59:26] ======================== test_size  ========================
[14:59:26] [PASSED] 4
[14:59:26] [PASSED] 8
[14:59:26] [PASSED] 32
[14:59:26] [PASSED] 256
[14:59:26] ==================== [PASSED] test_size ====================
[14:59:26] ======================= test_reuse  ========================
[14:59:26] [PASSED] 4
[14:59:26] [PASSED] 8
[14:59:26] [PASSED] 32
[14:59:26] [PASSED] 256
[14:59:26] =================== [PASSED] test_reuse ====================
[14:59:26] =================== test_range_overlap  ====================
[14:59:26] [PASSED] 4
[14:59:26] [PASSED] 8
[14:59:26] [PASSED] 32
[14:59:26] [PASSED] 256
[14:59:26] =============== [PASSED] test_range_overlap ================
[14:59:26] =================== test_range_compact  ====================
[14:59:26] [PASSED] 4
[14:59:26] [PASSED] 8
[14:59:26] [PASSED] 32
[14:59:26] [PASSED] 256
[14:59:26] =============== [PASSED] test_range_compact ================
[14:59:26] ==================== test_range_spare  =====================
[14:59:26] [PASSED] 4
[14:59:26] [PASSED] 8
[14:59:26] [PASSED] 32
[14:59:26] [PASSED] 256
[14:59:26] ================ [PASSED] test_range_spare =================
[14:59:26] ===================== [PASSED] guc_dbm =====================
[14:59:26] =================== guc_idm (6 subtests) ===================
[14:59:26] [PASSED] bad_init
[14:59:26] [PASSED] no_init
[14:59:26] [PASSED] init_fini
[14:59:26] [PASSED] check_used
[14:59:26] [PASSED] check_quota
[14:59:26] [PASSED] check_all
[14:59:26] ===================== [PASSED] guc_idm =====================
[14:59:26] ================== no_relay (3 subtests) ===================
[14:59:26] [PASSED] xe_drops_guc2pf_if_not_ready
[14:59:26] [PASSED] xe_drops_guc2vf_if_not_ready
[14:59:26] [PASSED] xe_rejects_send_if_not_ready
[14:59:26] ==================== [PASSED] no_relay =====================
[14:59:26] ================== pf_relay (14 subtests) ==================
[14:59:26] [PASSED] pf_rejects_guc2pf_too_short
[14:59:26] [PASSED] pf_rejects_guc2pf_too_long
[14:59:26] [PASSED] pf_rejects_guc2pf_no_payload
[14:59:26] [PASSED] pf_fails_no_payload
[14:59:26] [PASSED] pf_fails_bad_origin
[14:59:26] [PASSED] pf_fails_bad_type
[14:59:26] [PASSED] pf_txn_reports_error
[14:59:26] [PASSED] pf_txn_sends_pf2guc
[14:59:26] [PASSED] pf_sends_pf2guc
[14:59:26] [SKIPPED] pf_loopback_nop
[14:59:26] [SKIPPED] pf_loopback_echo
[14:59:26] [SKIPPED] pf_loopback_fail
[14:59:26] [SKIPPED] pf_loopback_busy
[14:59:26] [SKIPPED] pf_loopback_retry
[14:59:26] ==================== [PASSED] pf_relay =====================
[14:59:26] ================== vf_relay (3 subtests) ===================
[14:59:26] [PASSED] vf_rejects_guc2vf_too_short
[14:59:26] [PASSED] vf_rejects_guc2vf_too_long
[14:59:26] [PASSED] vf_rejects_guc2vf_no_payload
[14:59:26] ==================== [PASSED] vf_relay =====================
[14:59:26] ================= pf_service (11 subtests) =================
[14:59:26] [PASSED] pf_negotiate_any
[14:59:26] [PASSED] pf_negotiate_base_match
[14:59:26] [PASSED] pf_negotiate_base_newer
[14:59:26] [PASSED] pf_negotiate_base_next
[14:59:26] [SKIPPED] pf_negotiate_base_older
[14:59:26] [PASSED] pf_negotiate_base_prev
[14:59:26] [PASSED] pf_negotiate_latest_match
[14:59:26] [PASSED] pf_negotiate_latest_newer
[14:59:26] [PASSED] pf_negotiate_latest_next
[14:59:26] [SKIPPED] pf_negotiate_latest_older
[14:59:26] [SKIPPED] pf_negotiate_latest_prev
[14:59:26] =================== [PASSED] pf_service ====================
[14:59:26] ===================== lmtt (1 subtest) =====================
[14:59:26] ======================== test_ops  =========================
[14:59:26] [PASSED] 2-level
[14:59:26] [PASSED] multi-level
[14:59:26] ==================== [PASSED] test_ops =====================
[14:59:26] ====================== [PASSED] lmtt =======================
[14:59:26] ==================== xe_bo (2 subtests) ====================
[14:59:26] [SKIPPED] xe_ccs_migrate_kunit
[14:59:26] [SKIPPED] xe_bo_evict_kunit
[14:59:26] ===================== [SKIPPED] xe_bo ======================
[14:59:26] ================== xe_dma_buf (1 subtest) ==================
[14:59:26] [SKIPPED] xe_dma_buf_kunit
[14:59:26] =================== [SKIPPED] xe_dma_buf ===================
[14:59:26] ================== xe_migrate (1 subtest) ==================
[14:59:26] [SKIPPED] xe_migrate_sanity_kunit
[14:59:26] =================== [SKIPPED] xe_migrate ===================
[14:59:26] =================== xe_mocs (2 subtests) ===================
[14:59:26] [SKIPPED] xe_live_mocs_kernel_kunit
[14:59:26] [SKIPPED] xe_live_mocs_reset_kunit
[14:59:26] ==================== [SKIPPED] xe_mocs =====================
[14:59:26] ==================== args (11 subtests) ====================
[14:59:26] [PASSED] count_args_test
[14:59:26] [PASSED] call_args_example
[14:59:26] [PASSED] call_args_test
[14:59:26] [PASSED] drop_first_arg_example
[14:59:26] [PASSED] drop_first_arg_test
[14:59:26] [PASSED] first_arg_example
[14:59:26] [PASSED] first_arg_test
[14:59:26] [PASSED] last_arg_example
[14:59:26] [PASSED] last_arg_test
[14:59:26] [PASSED] pick_arg_example
[14:59:26] [PASSED] sep_comma_example
[14:59:26] ====================== [PASSED] args =======================
[14:59:26] =================== xe_pci (2 subtests) ====================
[14:59:26] [PASSED] xe_gmdid_graphics_ip
[14:59:26] [PASSED] xe_gmdid_media_ip
[14:59:26] ===================== [PASSED] xe_pci ======================
[14:59:26] ==================== xe_rtp (1 subtest) ====================
[14:59:26] ================== xe_rtp_process_tests  ===================
[14:59:26] [PASSED] coalesce-same-reg
[14:59:26] [PASSED] no-match-no-add
[14:59:26] [PASSED] match-or
[14:59:26] [PASSED] match-or-xfail
[14:59:26] [PASSED] no-match-no-add-multiple-rules
[14:59:26] [PASSED] two-regs-two-entries
[14:59:26] [PASSED] clr-one-set-other
[14:59:26] [PASSED] set-field
[14:59:26] [PASSED] conflict-duplicate
[14:59:26] [PASSED] conflict-not-disjoint
[14:59:26] [PASSED] conflict-reg-type
stty: 'standard input': Inappropriate ioctl for device
[14:59:26] ============== [PASSED] xe_rtp_process_tests ===============
[14:59:26] ===================== [PASSED] xe_rtp ======================
[14:59:26] ==================== xe_wa (1 subtest) =====================
[14:59:26] ======================== xe_wa_gt  =========================
[14:59:26] [PASSED] TIGERLAKE (B0)
[14:59:26] [PASSED] DG1 (A0)
[14:59:26] [PASSED] DG1 (B0)
[14:59:26] [PASSED] ALDERLAKE_S (A0)
[14:59:26] [PASSED] ALDERLAKE_S (B0)
[14:59:26] [PASSED] ALDERLAKE_S (C0)
[14:59:26] [PASSED] ALDERLAKE_S (D0)
[14:59:26] [PASSED] ALDERLAKE_P (A0)
[14:59:26] [PASSED] ALDERLAKE_P (B0)
[14:59:26] [PASSED] ALDERLAKE_P (C0)
[14:59:26] [PASSED] ALDERLAKE_S_RPLS (D0)
[14:59:26] [PASSED] ALDERLAKE_P_RPLU (E0)
[14:59:26] [PASSED] DG2_G10 (C0)
[14:59:26] [PASSED] DG2_G11 (B1)
[14:59:26] [PASSED] DG2_G12 (A1)
[14:59:26] [PASSED] METEORLAKE (g:A0, m:A0)
[14:59:26] [PASSED] METEORLAKE (g:A0, m:A0)
[14:59:26] [PASSED] METEORLAKE (g:A0, m:A0)
[14:59:26] [PASSED] LUNARLAKE (g:A0, m:A0)
[14:59:26] [PASSED] LUNARLAKE (g:B0, m:A0)
[14:59:26] ==================== [PASSED] xe_wa_gt =====================
[14:59:26] ====================== [PASSED] xe_wa ======================
[14:59:26] ============================================================
[14:59:26] Testing complete. Ran 111 tests: passed: 97, skipped: 14
[14:59:27] Elapsed time: 29.890s total, 4.248s configuring, 25.417s building, 0.181s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[14:59:27] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:59:28] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes]
  156 | u64 ioread64_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:163:5: warning: no previous prototype for ‘ioread64_hi_lo’ [-Wmissing-prototypes]
  163 | u64 ioread64_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~
../lib/iomap.c:170:5: warning: no previous prototype for ‘ioread64be_lo_hi’ [-Wmissing-prototypes]
  170 | u64 ioread64be_lo_hi(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:178:5: warning: no previous prototype for ‘ioread64be_hi_lo’ [-Wmissing-prototypes]
  178 | u64 ioread64be_hi_lo(const void __iomem *addr)
      |     ^~~~~~~~~~~~~~~~
../lib/iomap.c:264:6: warning: no previous prototype for ‘iowrite64_lo_hi’ [-Wmissing-prototypes]
  264 | void iowrite64_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:272:6: warning: no previous prototype for ‘iowrite64_hi_lo’ [-Wmissing-prototypes]
  272 | void iowrite64_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~
../lib/iomap.c:280:6: warning: no previous prototype for ‘iowrite64be_lo_hi’ [-Wmissing-prototypes]
  280 | void iowrite64be_lo_hi(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~
../lib/iomap.c:288:6: warning: no previous prototype for ‘iowrite64be_hi_lo’ [-Wmissing-prototypes]
  288 | void iowrite64be_hi_lo(u64 val, void __iomem *addr)
      |      ^~~~~~~~~~~~~~~~~

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

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

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



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

* ✓ CI.Build: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (22 preceding siblings ...)
  2024-07-05 15:00 ` ✓ CI.KUnit: success " Patchwork
@ 2024-07-05 15:12 ` Patchwork
  2024-07-05 15:14 ` ✓ CI.Hooks: " Patchwork
                   ` (4 subsequent siblings)
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 15:12 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : success

== Summary ==

lib/modules/6.10.0-rc6-xe/kernel/sound/core/seq/
lib/modules/6.10.0-rc6-xe/kernel/sound/core/seq/snd-seq.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/core/snd-seq-device.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/core/snd-hwdep.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/core/snd.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/core/snd-pcm.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/core/snd-compress.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/core/snd-timer.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soundcore.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/atom/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/atom/sst/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-acpi.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/atom/sst/snd-intel-sst-core.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/common/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/intel/common/snd-soc-acpi-intel-match.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/amd/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/amd/snd-acp-config.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-tgl.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-mlink.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-cnl.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-lnl.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-common.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda-generic.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-intel-hda.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/intel/snd-sof-pci-intel-mtl.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/amd/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/amd/snd-sof-amd-renoir.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/amd/snd-sof-amd-acp.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/snd-sof-utils.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/snd-sof-pci.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/snd-sof.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/snd-sof-probes.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/xtensa/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/sof/xtensa/snd-sof-xtensa-dsp.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/snd-soc-core.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/snd-soc-acpi.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/codecs/
lib/modules/6.10.0-rc6-xe/kernel/sound/soc/codecs/snd-soc-hdac-hda.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/hda/
lib/modules/6.10.0-rc6-xe/kernel/sound/hda/snd-intel-sdw-acpi.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/hda/ext/
lib/modules/6.10.0-rc6-xe/kernel/sound/hda/ext/snd-hda-ext-core.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/hda/snd-intel-dspcfg.ko
lib/modules/6.10.0-rc6-xe/kernel/sound/hda/snd-hda-core.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/kernel/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/kernel/msr.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/kernel/cpuid.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/sha512-ssse3.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/crct10dif-pclmul.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/ghash-clmulni-intel.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/sha1-ssse3.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/crc32-pclmul.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/sha256-ssse3.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/aesni-intel.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/crypto/polyval-clmulni.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/events/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/events/intel/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/events/intel/intel-cstate.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/events/rapl.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/kvm/
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/kvm/kvm.ko
lib/modules/6.10.0-rc6-xe/kernel/arch/x86/kvm/kvm-intel.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/
lib/modules/6.10.0-rc6-xe/kernel/crypto/crypto_simd.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/cmac.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/ccm.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/cryptd.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/polyval-generic.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/async_tx/
lib/modules/6.10.0-rc6-xe/kernel/crypto/async_tx/async_xor.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/async_tx/async_tx.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/async_tx/async_memcpy.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/async_tx/async_pq.ko
lib/modules/6.10.0-rc6-xe/kernel/crypto/async_tx/async_raid6_recov.ko
lib/modules/6.10.0-rc6-xe/build
lib/modules/6.10.0-rc6-xe/modules.alias.bin
lib/modules/6.10.0-rc6-xe/modules.builtin
lib/modules/6.10.0-rc6-xe/modules.softdep
lib/modules/6.10.0-rc6-xe/modules.alias
lib/modules/6.10.0-rc6-xe/modules.order
lib/modules/6.10.0-rc6-xe/modules.symbols
lib/modules/6.10.0-rc6-xe/modules.dep.bin
+ mv kernel-nodebug.tar.gz ..
+ cd ..
+ rm -rf archive
++ date +%s
+ echo -e '\e[0Ksection_end:1720192310:package_x86_64_nodebug\r\e[0K'
+ sync
^[[0Ksection_end:1720192310:package_x86_64_nodebug
^[[0K
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✓ CI.Hooks: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (23 preceding siblings ...)
  2024-07-05 15:12 ` ✓ CI.Build: " Patchwork
@ 2024-07-05 15:14 ` Patchwork
  2024-07-05 15:15 ` ✗ CI.checksparse: warning " Patchwork
                   ` (3 subsequent siblings)
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 15:14 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : success

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
  GEN     Makefile
  UPD     include/generated/compile.h
  UPD     include/config/kernel.release
mkdir -p /workspace/kernel/build64-default/tools/objtool && make O=/workspace/kernel/build64-default subdir=tools/objtool --no-print-directory -C objtool 
  UPD     include/generated/utsrelease.h
  HOSTCC  /workspace/kernel/build64-default/tools/objtool/fixdep.o
  CALL    ../scripts/checksyscalls.sh
  HOSTLD  /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64-default/tools/objtool/weak.o
  CC      /workspace/kernel/build64-default/tools/objtool/check.o
  CC      /workspace/kernel/build64-default/tools/objtool/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64-default/tools/objtool/elf.o
  CC      /workspace/kernel/build64-default/tools/objtool/objtool.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64-default/tools/objtool/libstring.o
  CC      /workspace/kernel/build64-default/tools/objtool/libctype.o
  CC      /workspace/kernel/build64-default/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64-default/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/orc.o
  LD      /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
  LD      /workspace/kernel/build64-default/tools/objtool/objtool-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default W=1 drivers/gpu/drm/xe
make[1]: Entering directory '/workspace/kernel/build64-default'
make[2]: Nothing to be done for 'drivers/gpu/drm/xe'.
make[1]: Leaving directory '/workspace/kernel/build64-default'
run-parts: executing /workspace/ci/hooks/11-build-32b
+++ realpath /workspace/ci/hooks/11-build-32b
++ dirname /workspace/ci/hooks/11-build-32b
+ THIS_SCRIPT_DIR=/workspace/ci/hooks
+ SRC_DIR=/workspace/kernel
+ TOOLS_SRC_DIR=/workspace/ci
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ BUILD_DIR=/workspace/kernel/build64-default/build32
+ cd /workspace/kernel
+ mkdir -p /workspace/kernel/build64-default/build32
++ nproc
+ make -j48 ARCH=i386 O=/workspace/kernel/build64-default/build32 defconfig
make[1]: Entering directory '/workspace/kernel/build64-default/build32'
  GEN     Makefile
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  LEX     scripts/kconfig/lexer.lex.c
  YACC    scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/menu.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/util.o
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTLD  scripts/kconfig/conf
*** Default configuration is based on 'i386_defconfig'
#
# configuration written to .config
#
make[1]: Leaving directory '/workspace/kernel/build64-default/build32'
+ cd /workspace/kernel/build64-default/build32
+ /workspace/kernel/scripts/kconfig/merge_config.sh .config /workspace/ci/kernel/10-xe.fragment
Using .config as base
Merging /workspace/ci/kernel/10-xe.fragment
Value of CONFIG_DRM_XE is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_DRM_XE is not set
New value: CONFIG_DRM_XE=m

Value of CONFIG_SND_DEBUG is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_SND_DEBUG is not set
New value: CONFIG_SND_DEBUG=y

Value of CONFIG_SND_HDA_INTEL is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: CONFIG_SND_HDA_INTEL=y
New value: CONFIG_SND_HDA_INTEL=m

Value of CONFIG_SND_HDA_CODEC_HDMI is redefined by fragment /workspace/ci/kernel/10-xe.fragment:
Previous value: # CONFIG_SND_HDA_CODEC_HDMI is not set
New value: CONFIG_SND_HDA_CODEC_HDMI=m

  GEN     Makefile

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
#
# configuration written to .config
#
Value requested for CONFIG_HAVE_UID16 not in final .config
Requested value:  CONFIG_HAVE_UID16=y
Actual value:     

Value requested for CONFIG_UID16 not in final .config
Requested value:  CONFIG_UID16=y
Actual value:     

Value requested for CONFIG_X86_32 not in final .config
Requested value:  CONFIG_X86_32=y
Actual value:     

Value requested for CONFIG_OUTPUT_FORMAT not in final .config
Requested value:  CONFIG_OUTPUT_FORMAT="elf32-i386"
Actual value:     CONFIG_OUTPUT_FORMAT="elf64-x86-64"

Value requested for CONFIG_ARCH_MMAP_RND_BITS_MIN not in final .config
Requested value:  CONFIG_ARCH_MMAP_RND_BITS_MIN=8
Actual value:     CONFIG_ARCH_MMAP_RND_BITS_MIN=28

Value requested for CONFIG_ARCH_MMAP_RND_BITS_MAX not in final .config
Requested value:  CONFIG_ARCH_MMAP_RND_BITS_MAX=16
Actual value:     CONFIG_ARCH_MMAP_RND_BITS_MAX=32

Value requested for CONFIG_PGTABLE_LEVELS not in final .config
Requested value:  CONFIG_PGTABLE_LEVELS=2
Actual value:     CONFIG_PGTABLE_LEVELS=5

Value requested for CONFIG_X86_BIGSMP not in final .config
Requested value:  # CONFIG_X86_BIGSMP is not set
Actual value:     

Value requested for CONFIG_X86_INTEL_QUARK not in final .config
Requested value:  # CONFIG_X86_INTEL_QUARK is not set
Actual value:     

Value requested for CONFIG_X86_RDC321X not in final .config
Requested value:  # CONFIG_X86_RDC321X is not set
Actual value:     

Value requested for CONFIG_X86_32_NON_STANDARD not in final .config
Requested value:  # CONFIG_X86_32_NON_STANDARD is not set
Actual value:     

Value requested for CONFIG_X86_32_IRIS not in final .config
Requested value:  # CONFIG_X86_32_IRIS is not set
Actual value:     

Value requested for CONFIG_M486SX not in final .config
Requested value:  # CONFIG_M486SX is not set
Actual value:     

Value requested for CONFIG_M486 not in final .config
Requested value:  # CONFIG_M486 is not set
Actual value:     

Value requested for CONFIG_M586 not in final .config
Requested value:  # CONFIG_M586 is not set
Actual value:     

Value requested for CONFIG_M586TSC not in final .config
Requested value:  # CONFIG_M586TSC is not set
Actual value:     

Value requested for CONFIG_M586MMX not in final .config
Requested value:  # CONFIG_M586MMX is not set
Actual value:     

Value requested for CONFIG_M686 not in final .config
Requested value:  CONFIG_M686=y
Actual value:     

Value requested for CONFIG_MPENTIUMII not in final .config
Requested value:  # CONFIG_MPENTIUMII is not set
Actual value:     

Value requested for CONFIG_MPENTIUMIII not in final .config
Requested value:  # CONFIG_MPENTIUMIII is not set
Actual value:     

Value requested for CONFIG_MPENTIUMM not in final .config
Requested value:  # CONFIG_MPENTIUMM is not set
Actual value:     

Value requested for CONFIG_MPENTIUM4 not in final .config
Requested value:  # CONFIG_MPENTIUM4 is not set
Actual value:     

Value requested for CONFIG_MK6 not in final .config
Requested value:  # CONFIG_MK6 is not set
Actual value:     

Value requested for CONFIG_MK7 not in final .config
Requested value:  # CONFIG_MK7 is not set
Actual value:     

Value requested for CONFIG_MCRUSOE not in final .config
Requested value:  # CONFIG_MCRUSOE is not set
Actual value:     

Value requested for CONFIG_MEFFICEON not in final .config
Requested value:  # CONFIG_MEFFICEON is not set
Actual value:     

Value requested for CONFIG_MWINCHIPC6 not in final .config
Requested value:  # CONFIG_MWINCHIPC6 is not set
Actual value:     

Value requested for CONFIG_MWINCHIP3D not in final .config
Requested value:  # CONFIG_MWINCHIP3D is not set
Actual value:     

Value requested for CONFIG_MELAN not in final .config
Requested value:  # CONFIG_MELAN is not set
Actual value:     

Value requested for CONFIG_MGEODEGX1 not in final .config
Requested value:  # CONFIG_MGEODEGX1 is not set
Actual value:     

Value requested for CONFIG_MGEODE_LX not in final .config
Requested value:  # CONFIG_MGEODE_LX is not set
Actual value:     

Value requested for CONFIG_MCYRIXIII not in final .config
Requested value:  # CONFIG_MCYRIXIII is not set
Actual value:     

Value requested for CONFIG_MVIAC3_2 not in final .config
Requested value:  # CONFIG_MVIAC3_2 is not set
Actual value:     

Value requested for CONFIG_MVIAC7 not in final .config
Requested value:  # CONFIG_MVIAC7 is not set
Actual value:     

Value requested for CONFIG_X86_GENERIC not in final .config
Requested value:  # CONFIG_X86_GENERIC is not set
Actual value:     

Value requested for CONFIG_X86_INTERNODE_CACHE_SHIFT not in final .config
Requested value:  CONFIG_X86_INTERNODE_CACHE_SHIFT=5
Actual value:     CONFIG_X86_INTERNODE_CACHE_SHIFT=6

Value requested for CONFIG_X86_L1_CACHE_SHIFT not in final .config
Requested value:  CONFIG_X86_L1_CACHE_SHIFT=5
Actual value:     CONFIG_X86_L1_CACHE_SHIFT=6

Value requested for CONFIG_X86_USE_PPRO_CHECKSUM not in final .config
Requested value:  CONFIG_X86_USE_PPRO_CHECKSUM=y
Actual value:     

Value requested for CONFIG_X86_MINIMUM_CPU_FAMILY not in final .config
Requested value:  CONFIG_X86_MINIMUM_CPU_FAMILY=6
Actual value:     CONFIG_X86_MINIMUM_CPU_FAMILY=64

Value requested for CONFIG_CPU_SUP_TRANSMETA_32 not in final .config
Requested value:  CONFIG_CPU_SUP_TRANSMETA_32=y
Actual value:     

Value requested for CONFIG_CPU_SUP_VORTEX_32 not in final .config
Requested value:  CONFIG_CPU_SUP_VORTEX_32=y
Actual value:     

Value requested for CONFIG_HPET_TIMER not in final .config
Requested value:  # CONFIG_HPET_TIMER is not set
Actual value:     CONFIG_HPET_TIMER=y

Value requested for CONFIG_NR_CPUS_RANGE_END not in final .config
Requested value:  CONFIG_NR_CPUS_RANGE_END=8
Actual value:     CONFIG_NR_CPUS_RANGE_END=512

Value requested for CONFIG_NR_CPUS_DEFAULT not in final .config
Requested value:  CONFIG_NR_CPUS_DEFAULT=8
Actual value:     CONFIG_NR_CPUS_DEFAULT=64

Value requested for CONFIG_X86_ANCIENT_MCE not in final .config
Requested value:  # CONFIG_X86_ANCIENT_MCE is not set
Actual value:     

Value requested for CONFIG_X86_LEGACY_VM86 not in final .config
Requested value:  # CONFIG_X86_LEGACY_VM86 is not set
Actual value:     

Value requested for CONFIG_X86_ESPFIX32 not in final .config
Requested value:  CONFIG_X86_ESPFIX32=y
Actual value:     

Value requested for CONFIG_TOSHIBA not in final .config
Requested value:  # CONFIG_TOSHIBA is not set
Actual value:     

Value requested for CONFIG_X86_REBOOTFIXUPS not in final .config
Requested value:  # CONFIG_X86_REBOOTFIXUPS is not set
Actual value:     

Value requested for CONFIG_MICROCODE_INITRD32 not in final .config
Requested value:  CONFIG_MICROCODE_INITRD32=y
Actual value:     

Value requested for CONFIG_NOHIGHMEM not in final .config
Requested value:  # CONFIG_NOHIGHMEM is not set
Actual value:     

Value requested for CONFIG_HIGHMEM4G not in final .config
Requested value:  CONFIG_HIGHMEM4G=y
Actual value:     

Value requested for CONFIG_HIGHMEM64G not in final .config
Requested value:  # CONFIG_HIGHMEM64G is not set
Actual value:     

Value requested for CONFIG_PAGE_OFFSET not in final .config
Requested value:  CONFIG_PAGE_OFFSET=0xC0000000
Actual value:     

Value requested for CONFIG_HIGHMEM not in final .config
Requested value:  CONFIG_HIGHMEM=y
Actual value:     

Value requested for CONFIG_X86_PAE not in final .config
Requested value:  # CONFIG_X86_PAE is not set
Actual value:     

Value requested for CONFIG_ARCH_FLATMEM_ENABLE not in final .config
Requested value:  CONFIG_ARCH_FLATMEM_ENABLE=y
Actual value:     

Value requested for CONFIG_ARCH_SELECT_MEMORY_MODEL not in final .config
Requested value:  CONFIG_ARCH_SELECT_MEMORY_MODEL=y
Actual value:     

Value requested for CONFIG_ILLEGAL_POINTER_VALUE not in final .config
Requested value:  CONFIG_ILLEGAL_POINTER_VALUE=0
Actual value:     CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000

Value requested for CONFIG_HIGHPTE not in final .config
Requested value:  # CONFIG_HIGHPTE is not set
Actual value:     

Value requested for CONFIG_COMPAT_VDSO not in final .config
Requested value:  # CONFIG_COMPAT_VDSO is not set
Actual value:     

Value requested for CONFIG_FUNCTION_PADDING_CFI not in final .config
Requested value:  CONFIG_FUNCTION_PADDING_CFI=0
Actual value:     CONFIG_FUNCTION_PADDING_CFI=11

Value requested for CONFIG_FUNCTION_PADDING_BYTES not in final .config
Requested value:  CONFIG_FUNCTION_PADDING_BYTES=4
Actual value:     CONFIG_FUNCTION_PADDING_BYTES=16

Value requested for CONFIG_APM not in final .config
Requested value:  # CONFIG_APM is not set
Actual value:     

Value requested for CONFIG_X86_POWERNOW_K6 not in final .config
Requested value:  # CONFIG_X86_POWERNOW_K6 is not set
Actual value:     

Value requested for CONFIG_X86_POWERNOW_K7 not in final .config
Requested value:  # CONFIG_X86_POWERNOW_K7 is not set
Actual value:     

Value requested for CONFIG_X86_GX_SUSPMOD not in final .config
Requested value:  # CONFIG_X86_GX_SUSPMOD is not set
Actual value:     

Value requested for CONFIG_X86_SPEEDSTEP_ICH not in final .config
Requested value:  # CONFIG_X86_SPEEDSTEP_ICH is not set
Actual value:     

Value requested for CONFIG_X86_SPEEDSTEP_SMI not in final .config
Requested value:  # CONFIG_X86_SPEEDSTEP_SMI is not set
Actual value:     

Value requested for CONFIG_X86_CPUFREQ_NFORCE2 not in final .config
Requested value:  # CONFIG_X86_CPUFREQ_NFORCE2 is not set
Actual value:     

Value requested for CONFIG_X86_LONGRUN not in final .config
Requested value:  # CONFIG_X86_LONGRUN is not set
Actual value:     

Value requested for CONFIG_X86_LONGHAUL not in final .config
Requested value:  # CONFIG_X86_LONGHAUL is not set
Actual value:     

Value requested for CONFIG_X86_E_POWERSAVER not in final .config
Requested value:  # CONFIG_X86_E_POWERSAVER is not set
Actual value:     

Value requested for CONFIG_PCI_GOBIOS not in final .config
Requested value:  # CONFIG_PCI_GOBIOS is not set
Actual value:     

Value requested for CONFIG_PCI_GOMMCONFIG not in final .config
Requested value:  # CONFIG_PCI_GOMMCONFIG is not set
Actual value:     

Value requested for CONFIG_PCI_GODIRECT not in final .config
Requested value:  # CONFIG_PCI_GODIRECT is not set
Actual value:     

Value requested for CONFIG_PCI_GOANY not in final .config
Requested value:  CONFIG_PCI_GOANY=y
Actual value:     

Value requested for CONFIG_PCI_BIOS not in final .config
Requested value:  CONFIG_PCI_BIOS=y
Actual value:     

Value requested for CONFIG_ISA not in final .config
Requested value:  # CONFIG_ISA is not set
Actual value:     

Value requested for CONFIG_SCx200 not in final .config
Requested value:  # CONFIG_SCx200 is not set
Actual value:     

Value requested for CONFIG_OLPC not in final .config
Requested value:  # CONFIG_OLPC is not set
Actual value:     

Value requested for CONFIG_ALIX not in final .config
Requested value:  # CONFIG_ALIX is not set
Actual value:     

Value requested for CONFIG_NET5501 not in final .config
Requested value:  # CONFIG_NET5501 is not set
Actual value:     

Value requested for CONFIG_GEOS not in final .config
Requested value:  # CONFIG_GEOS is not set
Actual value:     

Value requested for CONFIG_COMPAT_32 not in final .config
Requested value:  CONFIG_COMPAT_32=y
Actual value:     

Value requested for CONFIG_HAVE_ATOMIC_IOMAP not in final .config
Requested value:  CONFIG_HAVE_ATOMIC_IOMAP=y
Actual value:     

Value requested for CONFIG_ARCH_32BIT_OFF_T not in final .config
Requested value:  CONFIG_ARCH_32BIT_OFF_T=y
Actual value:     

Value requested for CONFIG_ARCH_WANT_IPC_PARSE_VERSION not in final .config
Requested value:  CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
Actual value:     

Value requested for CONFIG_MODULES_USE_ELF_REL not in final .config
Requested value:  CONFIG_MODULES_USE_ELF_REL=y
Actual value:     

Value requested for CONFIG_ARCH_MMAP_RND_BITS not in final .config
Requested value:  CONFIG_ARCH_MMAP_RND_BITS=8
Actual value:     CONFIG_ARCH_MMAP_RND_BITS=28

Value requested for CONFIG_CLONE_BACKWARDS not in final .config
Requested value:  CONFIG_CLONE_BACKWARDS=y
Actual value:     

Value requested for CONFIG_OLD_SIGSUSPEND3 not in final .config
Requested value:  CONFIG_OLD_SIGSUSPEND3=y
Actual value:     

Value requested for CONFIG_OLD_SIGACTION not in final .config
Requested value:  CONFIG_OLD_SIGACTION=y
Actual value:     

Value requested for CONFIG_ARCH_SPLIT_ARG64 not in final .config
Requested value:  CONFIG_ARCH_SPLIT_ARG64=y
Actual value:     

Value requested for CONFIG_FUNCTION_ALIGNMENT not in final .config
Requested value:  CONFIG_FUNCTION_ALIGNMENT=4
Actual value:     CONFIG_FUNCTION_ALIGNMENT=16

Value requested for CONFIG_SELECT_MEMORY_MODEL not in final .config
Requested value:  CONFIG_SELECT_MEMORY_MODEL=y
Actual value:     

Value requested for CONFIG_FLATMEM_MANUAL not in final .config
Requested value:  CONFIG_FLATMEM_MANUAL=y
Actual value:     

Value requested for CONFIG_SPARSEMEM_MANUAL not in final .config
Requested value:  # CONFIG_SPARSEMEM_MANUAL is not set
Actual value:     

Value requested for CONFIG_FLATMEM not in final .config
Requested value:  CONFIG_FLATMEM=y
Actual value:     

Value requested for CONFIG_SPARSEMEM_STATIC not in final .config
Requested value:  CONFIG_SPARSEMEM_STATIC=y
Actual value:     

Value requested for CONFIG_BOUNCE not in final .config
Requested value:  CONFIG_BOUNCE=y
Actual value:     

Value requested for CONFIG_KMAP_LOCAL not in final .config
Requested value:  CONFIG_KMAP_LOCAL=y
Actual value:     

Value requested for CONFIG_HOTPLUG_PCI_COMPAQ not in final .config
Requested value:  # CONFIG_HOTPLUG_PCI_COMPAQ is not set
Actual value:     

Value requested for CONFIG_HOTPLUG_PCI_IBM not in final .config
Requested value:  # CONFIG_HOTPLUG_PCI_IBM is not set
Actual value:     

Value requested for CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH not in final .config
Requested value:  CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y
Actual value:     

Value requested for CONFIG_PCH_PHUB not in final .config
Requested value:  # CONFIG_PCH_PHUB is not set
Actual value:     

Value requested for CONFIG_SCSI_NSP32 not in final .config
Requested value:  # CONFIG_SCSI_NSP32 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5520 not in final .config
Requested value:  # CONFIG_PATA_CS5520 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5530 not in final .config
Requested value:  # CONFIG_PATA_CS5530 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5535 not in final .config
Requested value:  # CONFIG_PATA_CS5535 is not set
Actual value:     

Value requested for CONFIG_PATA_CS5536 not in final .config
Requested value:  # CONFIG_PATA_CS5536 is not set
Actual value:     

Value requested for CONFIG_PATA_SC1200 not in final .config
Requested value:  # CONFIG_PATA_SC1200 is not set
Actual value:     

Value requested for CONFIG_PCH_GBE not in final .config
Requested value:  # CONFIG_PCH_GBE is not set
Actual value:     

Value requested for CONFIG_INPUT_WISTRON_BTNS not in final .config
Requested value:  # CONFIG_INPUT_WISTRON_BTNS is not set
Actual value:     

Value requested for CONFIG_SERIAL_TIMBERDALE not in final .config
Requested value:  # CONFIG_SERIAL_TIMBERDALE is not set
Actual value:     

Value requested for CONFIG_SERIAL_PCH_UART not in final .config
Requested value:  # CONFIG_SERIAL_PCH_UART is not set
Actual value:     

Value requested for CONFIG_HW_RANDOM_GEODE not in final .config
Requested value:  CONFIG_HW_RANDOM_GEODE=y
Actual value:     

Value requested for CONFIG_SONYPI not in final .config
Requested value:  # CONFIG_SONYPI is not set
Actual value:     

Value requested for CONFIG_PC8736x_GPIO not in final .config
Requested value:  # CONFIG_PC8736x_GPIO is not set
Actual value:     

Value requested for CONFIG_NSC_GPIO not in final .config
Requested value:  # CONFIG_NSC_GPIO is not set
Actual value:     

Value requested for CONFIG_I2C_EG20T not in final .config
Requested value:  # CONFIG_I2C_EG20T is not set
Actual value:     

Value requested for CONFIG_SCx200_ACB not in final .config
Requested value:  # CONFIG_SCx200_ACB is not set
Actual value:     

Value requested for CONFIG_PTP_1588_CLOCK_PCH not in final .config
Requested value:  # CONFIG_PTP_1588_CLOCK_PCH is not set
Actual value:     

Value requested for CONFIG_SBC8360_WDT not in final .config
Requested value:  # CONFIG_SBC8360_WDT is not set
Actual value:     

Value requested for CONFIG_SBC7240_WDT not in final .config
Requested value:  # CONFIG_SBC7240_WDT is not set
Actual value:     

Value requested for CONFIG_MFD_CS5535 not in final .config
Requested value:  # CONFIG_MFD_CS5535 is not set
Actual value:     

Value requested for CONFIG_AGP_ALI not in final .config
Requested value:  # CONFIG_AGP_ALI is not set
Actual value:     

Value requested for CONFIG_AGP_ATI not in final .config
Requested value:  # CONFIG_AGP_ATI is not set
Actual value:     

Value requested for CONFIG_AGP_AMD not in final .config
Requested value:  # CONFIG_AGP_AMD is not set
Actual value:     

Value requested for CONFIG_AGP_NVIDIA not in final .config
Requested value:  # CONFIG_AGP_NVIDIA is not set
Actual value:     

Value requested for CONFIG_AGP_SWORKS not in final .config
Requested value:  # CONFIG_AGP_SWORKS is not set
Actual value:     

Value requested for CONFIG_AGP_EFFICEON not in final .config
Requested value:  # CONFIG_AGP_EFFICEON is not set
Actual value:     

Value requested for CONFIG_SND_PCM not in final .config
Requested value:  CONFIG_SND_PCM=y
Actual value:     CONFIG_SND_PCM=m

Value requested for CONFIG_SND_HWDEP not in final .config
Requested value:  CONFIG_SND_HWDEP=y
Actual value:     CONFIG_SND_HWDEP=m

Value requested for CONFIG_SND_DYNAMIC_MINORS not in final .config
Requested value:  # CONFIG_SND_DYNAMIC_MINORS is not set
Actual value:     CONFIG_SND_DYNAMIC_MINORS=y

Value requested for CONFIG_SND_CS5530 not in final .config
Requested value:  # CONFIG_SND_CS5530 is not set
Actual value:     

Value requested for CONFIG_SND_CS5535AUDIO not in final .config
Requested value:  # CONFIG_SND_CS5535AUDIO is not set
Actual value:     

Value requested for CONFIG_SND_SIS7019 not in final .config
Requested value:  # CONFIG_SND_SIS7019 is not set
Actual value:     

Value requested for CONFIG_SND_HDA not in final .config
Requested value:  CONFIG_SND_HDA=y
Actual value:     CONFIG_SND_HDA=m

Value requested for CONFIG_SND_HDA_CORE not in final .config
Requested value:  CONFIG_SND_HDA_CORE=y
Actual value:     CONFIG_SND_HDA_CORE=m

Value requested for CONFIG_SND_INTEL_DSP_CONFIG not in final .config
Requested value:  CONFIG_SND_INTEL_DSP_CONFIG=y
Actual value:     CONFIG_SND_INTEL_DSP_CONFIG=m

Value requested for CONFIG_SND_INTEL_SOUNDWIRE_ACPI not in final .config
Requested value:  CONFIG_SND_INTEL_SOUNDWIRE_ACPI=y
Actual value:     CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m

Value requested for CONFIG_LEDS_OT200 not in final .config
Requested value:  # CONFIG_LEDS_OT200 is not set
Actual value:     

Value requested for CONFIG_PCH_DMA not in final .config
Requested value:  # CONFIG_PCH_DMA is not set
Actual value:     

Value requested for CONFIG_CLKSRC_I8253 not in final .config
Requested value:  CONFIG_CLKSRC_I8253=y
Actual value:     

Value requested for CONFIG_MAILBOX not in final .config
Requested value:  # CONFIG_MAILBOX is not set
Actual value:     CONFIG_MAILBOX=y

Value requested for CONFIG_CRYPTO_SERPENT_SSE2_586 not in final .config
Requested value:  # CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
Actual value:     

Value requested for CONFIG_CRYPTO_TWOFISH_586 not in final .config
Requested value:  # CONFIG_CRYPTO_TWOFISH_586 is not set
Actual value:     

Value requested for CONFIG_CRYPTO_DEV_GEODE not in final .config
Requested value:  # CONFIG_CRYPTO_DEV_GEODE is not set
Actual value:     

Value requested for CONFIG_CRYPTO_DEV_HIFN_795X not in final .config
Requested value:  # CONFIG_CRYPTO_DEV_HIFN_795X is not set
Actual value:     

Value requested for CONFIG_CRYPTO_LIB_POLY1305_RSIZE not in final .config
Requested value:  CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
Actual value:     CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11

Value requested for CONFIG_AUDIT_GENERIC not in final .config
Requested value:  CONFIG_AUDIT_GENERIC=y
Actual value:     

Value requested for CONFIG_GENERIC_VDSO_32 not in final .config
Requested value:  CONFIG_GENERIC_VDSO_32=y
Actual value:     

Value requested for CONFIG_DEBUG_KMAP_LOCAL not in final .config
Requested value:  # CONFIG_DEBUG_KMAP_LOCAL is not set
Actual value:     

Value requested for CONFIG_DEBUG_HIGHMEM not in final .config
Requested value:  # CONFIG_DEBUG_HIGHMEM is not set
Actual value:     

Value requested for CONFIG_HAVE_DEBUG_STACKOVERFLOW not in final .config
Requested value:  CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
Actual value:     

Value requested for CONFIG_DEBUG_STACKOVERFLOW not in final .config
Requested value:  # CONFIG_DEBUG_STACKOVERFLOW is not set
Actual value:     

Value requested for CONFIG_HAVE_FUNCTION_GRAPH_TRACER not in final .config
Requested value:  CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
Actual value:     

Value requested for CONFIG_HAVE_FUNCTION_GRAPH_RETVAL not in final .config
Requested value:  CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y
Actual value:     

Value requested for CONFIG_DRM_KUNIT_TEST not in final .config
Requested value:  CONFIG_DRM_KUNIT_TEST=m
Actual value:     

Value requested for CONFIG_DRM_XE_WERROR not in final .config
Requested value:  CONFIG_DRM_XE_WERROR=y
Actual value:     

Value requested for CONFIG_DRM_XE_DEBUG not in final .config
Requested value:  CONFIG_DRM_XE_DEBUG=y
Actual value:     

Value requested for CONFIG_DRM_XE_DEBUG_MEM not in final .config
Requested value:  CONFIG_DRM_XE_DEBUG_MEM=y
Actual value:     

Value requested for CONFIG_DRM_XE_KUNIT_TEST not in final .config
Requested value:  CONFIG_DRM_XE_KUNIT_TEST=m
Actual value:     

++ nproc
+ make -j48 ARCH=i386 olddefconfig
  GEN     Makefile

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
#
# configuration written to .config
#
++ nproc
+ make -j48 ARCH=i386
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]

WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
  Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
  Selected by [m]:
  - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=y] && DRM_XE [=m] && DRM_XE [=m]=m [=m]
  GEN     Makefile
  WRAP    arch/x86/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/x86/include/generated/uapi/asm/errno.h
  WRAP    arch/x86/include/generated/uapi/asm/fcntl.h
  UPD     include/generated/uapi/linux/version.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctl.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctls.h
  WRAP    arch/x86/include/generated/uapi/asm/ipcbuf.h
  WRAP    arch/x86/include/generated/uapi/asm/param.h
  WRAP    arch/x86/include/generated/uapi/asm/poll.h
  WRAP    arch/x86/include/generated/uapi/asm/resource.h
  WRAP    arch/x86/include/generated/uapi/asm/socket.h
  WRAP    arch/x86/include/generated/uapi/asm/sockios.h
  WRAP    arch/x86/include/generated/uapi/asm/termbits.h
  WRAP    arch/x86/include/generated/uapi/asm/termios.h
  WRAP    arch/x86/include/generated/uapi/asm/types.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  HOSTCC  arch/x86/tools/relocs_32.o
  UPD     include/generated/compile.h
  WRAP    arch/x86/include/generated/asm/early_ioremap.h
  HOSTCC  arch/x86/tools/relocs_64.o
  WRAP    arch/x86/include/generated/asm/mcs_spinlock.h
  WRAP    arch/x86/include/generated/asm/irq_regs.h
  HOSTCC  arch/x86/tools/relocs_common.o
  WRAP    arch/x86/include/generated/asm/kmap_size.h
  WRAP    arch/x86/include/generated/asm/local64.h
  WRAP    arch/x86/include/generated/asm/mmiowb.h
  WRAP    arch/x86/include/generated/asm/module.lds.h
  WRAP    arch/x86/include/generated/asm/rwonce.h
  WRAP    arch/x86/include/generated/asm/unaligned.h
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/sorttable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/selinux/mdp/mdp
  HOSTCC  scripts/selinux/genheaders/genheaders
  HOSTLD  arch/x86/tools/relocs
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  CC      scripts/mod/devicetable-offsets.s
  UPD     scripts/mod/devicetable-offsets.h
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTCC  scripts/mod/symsearch.o
  HOSTLD  scripts/mod/modpost
  CC      kernel/bounds.s
  CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-arch-fallback.h
  CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-instrumented.h
  CHKSHA1 /workspace/kernel/include/linux/atomic/atomic-long.h
  UPD     include/generated/timeconst.h
  UPD     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  UPD     include/generated/asm-offsets.h
  CALL    /workspace/kernel/scripts/checksyscalls.sh
  LDS     scripts/module.lds
  HOSTCC  usr/gen_init_cpio
  CC      ipc/util.o
  CC      init/main.o
  CC      ipc/msgutil.o
  CC      ipc/msg.o
  CC      init/do_mounts.o
  CC      ipc/sem.o
  CC      init/do_mounts_initrd.o
  CC      ipc/shm.o
  CC      ipc/syscall.o
  CC      block/bdev.o
  CC      block/fops.o
  CC      init/initramfs.o
  CC      certs/system_keyring.o
  CC      ipc/ipc_sysctl.o
  AS      arch/x86/lib/atomic64_cx8_32.o
  UPD     init/utsversion-tmp.h
  CC      block/bio.o
  CC      init/calibrate.o
  CC      io_uring/io_uring.o
  CC      arch/x86/video/video-common.o
  CC      arch/x86/pci/i386.o
  AS      arch/x86/lib/checksum_32.o
  CC      arch/x86/power/cpu.o
  CC      ipc/mqueue.o
  CC      block/elevator.o
  CC      block/partitions/core.o
  CC      mm/filemap.o
  CC      security/keys/gc.o
  AR      arch/x86/crypto/built-in.a
  CC      block/partitions/msdos.o
  CC      lib/math/div64.o
  CC      arch/x86/realmode/init.o
  CC      security/integrity/iint.o
  AR      virt/lib/built-in.a
  AR      drivers/cache/built-in.a
  GEN     security/selinux/flask.h security/selinux/av_permissions.h
  CC      arch/x86/mm/pat/set_memory.o
  CC      lib/crypto/mpi/generic_mpih-lshift.o
  CC      security/integrity/integrity_audit.o
  AR      arch/x86/platform/atom/built-in.a
  CC      arch/x86/events/amd/core.o
  CC      arch/x86/kernel/fpu/init.o
  CC      fs/notify/dnotify/dnotify.o
  AR      sound/i2c/other/built-in.a
  CC      security/selinux/avc.o
  CC      lib/crypto/mpi/generic_mpih-mul1.o
  CC      net/core/sock.o
  AR      virt/built-in.a
  CC      sound/core/seq/seq.o
  AR      drivers/irqchip/built-in.a
  AR      arch/x86/platform/ce4100/built-in.a
  AR      sound/i2c/built-in.a
  CC      arch/x86/lib/cmdline.o
  AS      arch/x86/lib/cmpxchg8b_emu.o
  CC      arch/x86/entry/vdso/vma.o
  CC      arch/x86/lib/cpu.o
  AR      drivers/bus/mhi/built-in.a
  CC      arch/x86/platform/efi/memmap.o
  CC      kernel/sched/core.o
  AR      drivers/bus/built-in.a
  AR      sound/drivers/opl3/built-in.a
  AR      drivers/pwm/built-in.a
  CC      crypto/asymmetric_keys/asymmetric_type.o
  AR      sound/drivers/opl4/built-in.a
  CC      drivers/pci/msi/pcidev_msi.o
  AR      sound/drivers/mpu401/built-in.a
  CC      lib/math/gcd.o
  AR      sound/drivers/vx/built-in.a
  AR      sound/drivers/pcsp/built-in.a
  CC      drivers/pci/msi/api.o
  AR      sound/drivers/built-in.a
  CC      lib/math/lcm.o
  CC      arch/x86/lib/delay.o
  CC      lib/math/int_log.o
  CC      arch/x86/power/hibernate_32.o
  GEN     usr/initramfs_data.cpio
  COPY    usr/initramfs_inc_data
  AS      usr/initramfs_data.o
  AR      usr/built-in.a
  CC      lib/math/int_pow.o
  AS      arch/x86/lib/getuser.o
  HOSTCC  certs/extract-cert
  CC      arch/x86/kernel/fpu/bugs.o
  CC      lib/math/int_sqrt.o
  GEN     arch/x86/lib/inat-tables.c
  CC      mm/mempool.o
  CC      lib/math/reciprocal_div.o
  CC      arch/x86/kernel/fpu/core.o
  CC      lib/math/rational.o
  CC      arch/x86/events/intel/core.o
  CC      arch/x86/lib/insn-eval.o
  CC      arch/x86/events/intel/bts.o
  CC      sound/core/seq/seq_lock.o
  AS      arch/x86/realmode/rm/header.o
  CC      sound/core/seq/seq_clientmgr.o
  CC      lib/crypto/mpi/generic_mpih-mul2.o
  AR      arch/x86/video/built-in.a
  AS      arch/x86/realmode/rm/trampoline_32.o
  CC      lib/crypto/mpi/generic_mpih-mul3.o
  AS      arch/x86/realmode/rm/stack.o
  CERT    certs/x509_certificate_list
  AS      arch/x86/realmode/rm/reboot.o
  CERT    certs/signing_key.x509
  AS      certs/system_certificates.o
  AS      arch/x86/realmode/rm/wakeup_asm.o
  AR      certs/built-in.a
  CC      arch/x86/realmode/rm/wakemain.o
  CC      lib/crypto/mpi/generic_mpih-rshift.o
  CC      arch/x86/pci/init.o
  CC      arch/x86/pci/pcbios.o
  AR      security/integrity/built-in.a
  CC      arch/x86/kernel/cpu/mce/core.o
  CC      security/keys/key.o
  CC      drivers/video/console/dummycon.o
  AR      arch/x86/net/built-in.a
  CC      drivers/video/console/vgacon.o
  CC      drivers/pci/msi/msi.o
  CC      drivers/pci/msi/irqdomain.o
  AR      fs/notify/dnotify/built-in.a
  CC      fs/notify/inotify/inotify_fsnotify.o
  CC      arch/x86/realmode/rm/video-mode.o
  CC      crypto/asymmetric_keys/restrict.o
  CC      arch/x86/platform/efi/quirks.o
  AR      fs/notify/fanotify/built-in.a
  CC      arch/x86/platform/efi/efi.o
  CC      arch/x86/entry/vdso/extable.o
  AR      lib/math/built-in.a
  CC      security/keys/keyring.o
  CC      crypto/asymmetric_keys/signature.o
  LDS     arch/x86/entry/vdso/vdso32/vdso32.lds
  AS      arch/x86/realmode/rm/copy.o
  CC      block/partitions/efi.o
  CC      kernel/sched/fair.o
  AS      arch/x86/realmode/rm/bioscall.o
  CC      arch/x86/pci/mmconfig_32.o
  CC      arch/x86/realmode/rm/regs.o
  AS      arch/x86/power/hibernate_asm_32.o
  CC      arch/x86/power/hibernate.o
  CC      init/init_task.o
  CC      arch/x86/realmode/rm/video-vga.o
  CC      arch/x86/events/amd/lbr.o
  CC      arch/x86/pci/direct.o
  CC      ipc/namespace.o
  CC      sound/core/seq/seq_memory.o
  CC      arch/x86/realmode/rm/video-vesa.o
  CC      fs/notify/inotify/inotify_user.o
  CC      arch/x86/realmode/rm/video-bios.o
  CC      lib/crypto/mpi/generic_mpih-sub1.o
  CC      lib/zlib_inflate/inffast.o
  CC      lib/zlib_deflate/deflate.o
  CC      arch/x86/pci/mmconfig-shared.o
  CC      arch/x86/kernel/acpi/boot.o
  CC      arch/x86/kernel/acpi/sleep.o
  CC      net/ethernet/eth.o
  PASYMS  arch/x86/realmode/rm/pasyms.h
  AR      drivers/idle/built-in.a
  LDS     arch/x86/realmode/rm/realmode.lds
  CC      lib/crypto/mpi/generic_mpih-add1.o
  CC      crypto/asymmetric_keys/public_key.o
  LD      arch/x86/realmode/rm/realmode.elf
  RELOCS  arch/x86/realmode/rm/realmode.relocs
  AS      arch/x86/kernel/acpi/wakeup_32.o
  OBJCOPY arch/x86/realmode/rm/realmode.bin
  CC      arch/x86/mm/pat/memtype.o
  AS      arch/x86/realmode/rmpiggy.o
  CC      arch/x86/pci/fixup.o
  CC      arch/x86/pci/acpi.o
  ASN.1   crypto/asymmetric_keys/x509.asn1.[ch]
  AR      arch/x86/realmode/built-in.a
  CC      arch/x86/lib/insn.o
  CC      mm/oom_kill.o
  CC      arch/x86/lib/kaslr.o
  CC      arch/x86/pci/legacy.o
  CC      lib/zlib_inflate/inflate.o
  CC      lib/zlib_deflate/deftree.o
  ASN.1   crypto/asymmetric_keys/x509_akid.asn1.[ch]
  CC      crypto/asymmetric_keys/x509_loader.o
  AR      drivers/char/ipmi/built-in.a
  CC      mm/fadvise.o
  CC      arch/x86/kernel/acpi/cstate.o
  CC      security/selinux/hooks.o
  CC      ipc/mq_sysctl.o
  CC      security/keys/keyctl.o
  CC      security/keys/permission.o
  CC      lib/crypto/memneq.o
  AS      arch/x86/entry/vdso/vdso32/note.o
  CC      crypto/asymmetric_keys/x509_public_key.o
  AR      arch/x86/power/built-in.a
  AS      arch/x86/entry/vdso/vdso32/system_call.o
  CC      arch/x86/kernel/fpu/regset.o
  AR      drivers/pci/msi/built-in.a
  ASN.1   crypto/asymmetric_keys/pkcs7.asn1.[ch]
  CC      mm/maccess.o
  CC      arch/x86/lib/memcpy_32.o
  AS      arch/x86/entry/vdso/vdso32/sigreturn.o
  CC      drivers/pci/pcie/portdrv.o
  CC      mm/page-writeback.o
  CC      init/version.o
  CC      arch/x86/kernel/fpu/signal.o
  CC      arch/x86/platform/efi/efi_32.o
  CC      arch/x86/entry/vdso/vdso32/vclock_gettime.o
  AS      arch/x86/lib/memmove_32.o
  CC      security/keys/process_keys.o
  AR      drivers/video/console/built-in.a
  CC      arch/x86/lib/misc.o
  CC      drivers/video/backlight/backlight.o
  AS      arch/x86/platform/efi/efi_stub_32.o
  CC      arch/x86/lib/pc-conf-reg.o
  CC      lib/crypto/utils.o
  CC      security/keys/request_key.o
  CC      arch/x86/kernel/cpu/mtrr/mtrr.o
  CC      lib/crypto/mpi/ec.o
  CC      arch/x86/events/amd/ibs.o
  AR      init/built-in.a
  CC      sound/core/seq/seq_queue.o
  CC      arch/x86/kernel/cpu/mtrr/if.o
  AR      block/partitions/built-in.a
  CC      lib/crypto/mpi/mpicoder.o
  CC      block/blk-core.o
  AR      arch/x86/virt/svm/built-in.a
  AR      arch/x86/virt/vmx/built-in.a
  AR      ipc/built-in.a
  CC      lib/zlib_inflate/infutil.o
  AR      arch/x86/virt/built-in.a
  CC      arch/x86/mm/init.o
  AS      arch/x86/lib/putuser.o
  CC      sound/core/sound.o
  CC      arch/x86/events/intel/ds.o
  CC      mm/folio-compat.o
  CC      security/keys/request_key_auth.o
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  AS      arch/x86/lib/retpoline.o
  CC      lib/zlib_deflate/deflate_syms.o
  CC      arch/x86/lib/string_32.o
  AR      fs/notify/inotify/built-in.a
  CC      fs/notify/fsnotify.o
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      lib/lzo/lzo1x_compress.o
  CC      arch/x86/lib/strstr_32.o
  CC      lib/crypto/mpi/mpi-add.o
  CC      arch/x86/mm/pat/memtype_interval.o
  CC      sound/core/seq/seq_fifo.o
  CC      arch/x86/lib/usercopy.o
  CC      arch/x86/pci/irq.o
  CC      crypto/asymmetric_keys/pkcs7_trust.o
  CC      arch/x86/kernel/cpu/microcode/core.o
  AR      drivers/pci/controller/dwc/built-in.a
  CC      lib/zlib_inflate/inftrees.o
  AR      drivers/pci/controller/mobiveil/built-in.a
  AR      arch/x86/kernel/acpi/built-in.a
  AR      drivers/pci/controller/built-in.a
  CC      arch/x86/events/amd/uncore.o
  CC      arch/x86/kernel/cpu/microcode/intel.o
  CC      net/core/request_sock.o
  CC      arch/x86/kernel/cpu/mce/severity.o
  AR      lib/zlib_deflate/built-in.a
  CC      arch/x86/entry/vdso/vdso32/vgetcpu.o
  CC      arch/x86/kernel/cpu/mce/genpool.o
  CC      arch/x86/platform/efi/runtime-map.o
  CC      lib/crypto/mpi/mpi-bit.o
  CC      drivers/pci/pcie/rcec.o
  CC      lib/zlib_inflate/inflate_syms.o
  HOSTCC  arch/x86/entry/vdso/vdso2c
  CC      arch/x86/pci/common.o
  CC      arch/x86/lib/usercopy_32.o
  AR      net/ethernet/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/generic.o
  CC      arch/x86/kernel/fpu/xstate.o
  CC      crypto/asymmetric_keys/pkcs7_verify.o
  AR      drivers/video/backlight/built-in.a
  CC      sound/core/init.o
  AR      arch/x86/entry/vsyscall/built-in.a
  CC      arch/x86/pci/early.o
  AR      drivers/video/fbdev/core/built-in.a
  CC      fs/nfs_common/nfsacl.o
  AR      drivers/video/fbdev/omap/built-in.a
  CC      lib/lzo/lzo1x_decompress_safe.o
  CC      fs/nfs_common/grace.o
  CC      sound/core/seq/seq_prioq.o
  AR      drivers/video/fbdev/omap2/omapfb/dss/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/displays/built-in.a
  CC      drivers/pci/pcie/aspm.o
  AR      drivers/video/fbdev/omap2/omapfb/built-in.a
  CC      lib/crypto/mpi/mpi-cmp.o
  AR      drivers/video/fbdev/omap2/built-in.a
  CC      mm/readahead.o
  AR      drivers/video/fbdev/built-in.a
  CC      security/keys/user_defined.o
  CC      drivers/video/aperture.o
  CC      arch/x86/lib/msr-smp.o
  AR      net/802/built-in.a
  AR      arch/x86/mm/pat/built-in.a
  CC      sound/core/seq/seq_timer.o
  CC      sound/core/seq/seq_system.o
  AR      lib/zlib_inflate/built-in.a
  CC      net/sched/sch_generic.o
  CC      arch/x86/mm/init_32.o
  AR      drivers/pci/hotplug/built-in.a
  CC      lib/crypto/chacha.o
  CC      lib/crypto/mpi/mpi-sub-ui.o
  CC      arch/x86/mm/fault.o
  AR      drivers/pci/switch/built-in.a
  CC      arch/x86/entry/vdso/vdso32-setup.o
  CC      arch/x86/mm/ioremap.o
  CC      fs/notify/notification.o
  CC      security/keys/proc.o
  CC      arch/x86/mm/extable.o
  CC      lib/crypto/aes.o
  CC      arch/x86/kernel/cpu/cacheinfo.o
  CC      arch/x86/kernel/cpu/scattered.o
  CC      arch/x86/kernel/cpu/topology_common.o
  CC      crypto/asymmetric_keys/x509.asn1.o
  CC      lib/crypto/mpi/mpi-div.o
  CC      crypto/asymmetric_keys/x509_akid.asn1.o
  CC      arch/x86/lib/cache-smp.o
  CC      crypto/asymmetric_keys/x509_cert_parser.o
  AR      lib/lzo/built-in.a
  CC      arch/x86/kernel/cpu/microcode/amd.o
  CC      lib/crypto/mpi/mpi-inv.o
  AR      arch/x86/platform/efi/built-in.a
  CC      arch/x86/kernel/apic/apic.o
  AR      arch/x86/platform/iris/built-in.a
  AR      arch/x86/platform/geode/built-in.a
  CC      lib/crypto/mpi/mpi-mod.o
  CC      arch/x86/kernel/cpu/mce/intel.o
  VDSO    arch/x86/entry/vdso/vdso32.so.dbg
  CC      arch/x86/platform/intel/iosf_mbi.o
  OBJCOPY arch/x86/entry/vdso/vdso32.so
  CC      arch/x86/kernel/cpu/mce/amd.o
  VDSO2C  arch/x86/entry/vdso/vdso-image-32.c
  CC      arch/x86/entry/vdso/vdso-image-32.o
  CC      arch/x86/lib/msr.o
  CC      kernel/sched/build_policy.o
  CC      net/sched/sch_mq.o
  CC      arch/x86/pci/bus_numa.o
  CC      net/sched/sch_frag.o
  AS      arch/x86/entry/entry.o
  CC      lib/crypto/mpi/mpi-mul.o
  CC      net/core/skbuff.o
  CC      net/sched/sch_api.o
  CC      arch/x86/events/intel/knc.o
  AR      fs/nfs_common/built-in.a
  CC      lib/crypto/mpi/mpih-cmp.o
  AS      arch/x86/lib/msr-reg.o
  AR      arch/x86/events/amd/built-in.a
  CC      security/selinux/selinuxfs.o
  CC      arch/x86/events/zhaoxin/core.o
  CC      net/netlink/af_netlink.o
  CC      sound/core/seq/seq_ports.o
  CC      arch/x86/kernel/cpu/topology_ext.o
  CC      kernel/locking/mutex.o
  AR      arch/x86/entry/vdso/built-in.a
  CC      sound/core/memory.o
  CC      arch/x86/kernel/cpu/mtrr/cleanup.o
  AS      arch/x86/entry/entry_32.o
  CC      fs/notify/group.o
  CC      drivers/video/cmdline.o
  CC      kernel/locking/semaphore.o
  CC      arch/x86/entry/syscall_32.o
  CC      io_uring/opdef.o
  CC      lib/crypto/arc4.o
  CC      security/keys/sysctl.o
  CC      arch/x86/lib/msr-reg-export.o
  CC      crypto/asymmetric_keys/pkcs7.asn1.o
  CC      sound/core/seq/seq_info.o
  AS      arch/x86/lib/hweight.o
  CC      crypto/asymmetric_keys/pkcs7_parser.o
  AR      arch/x86/kernel/fpu/built-in.a
  CC      arch/x86/events/intel/lbr.o
  CC      arch/x86/mm/mmap.o
  CC      arch/x86/mm/pgtable.o
  CC      mm/swap.o
  CC      fs/notify/mark.o
  CC      arch/x86/kernel/apic/apic_common.o
  CC      drivers/pci/pcie/pme.o
  CC      lib/lz4/lz4_decompress.o
  CC      arch/x86/kernel/kprobes/core.o
  LDS     arch/x86/kernel/vmlinux.lds
  CC      net/core/datagram.o
  AR      arch/x86/platform/intel/built-in.a
  AR      arch/x86/platform/intel-mid/built-in.a
  CC      arch/x86/mm/physaddr.o
  CC      arch/x86/mm/tlb.o
  AR      arch/x86/platform/intel-quark/built-in.a
  CC      lib/crypto/mpi/mpih-div.o
  AR      arch/x86/platform/olpc/built-in.a
  AR      arch/x86/kernel/cpu/microcode/built-in.a
  AR      arch/x86/platform/scx200/built-in.a
  CC      arch/x86/kernel/kprobes/opt.o
  CC      arch/x86/pci/amd_bus.o
  CC      arch/x86/events/core.o
  AR      arch/x86/platform/ts5500/built-in.a
  AR      arch/x86/platform/uv/built-in.a
  AR      arch/x86/platform/built-in.a
  CC      lib/zstd/zstd_decompress_module.o
  CC      block/blk-sysfs.o
  CC      arch/x86/lib/iomem.o
  CC      lib/zstd/decompress/huf_decompress.o
  CC      lib/xz/xz_dec_syms.o
  CC      lib/crypto/gf128mul.o
  CC      security/keys/keyctl_pkey.o
  CC      lib/xz/xz_dec_stream.o
  AR      crypto/asymmetric_keys/built-in.a
  CC      lib/crypto/mpi/mpih-mul.o
  CC      crypto/api.o
  CC      crypto/cipher.o
  CC      lib/crypto/mpi/mpi-pow.o
  CC      sound/core/seq/seq_dummy.o
  CC      fs/notify/fdinfo.o
  CC      drivers/video/nomodeset.o
  CC      arch/x86/kernel/cpu/mtrr/amd.o
  AR      arch/x86/events/zhaoxin/built-in.a
  CC      security/commoncap.o
  CC      lib/crypto/blake2s.o
  CC      drivers/acpi/acpica/dsargs.o
  CC      net/sched/sch_blackhole.o
  CC      lib/crypto/blake2s-generic.o
  AR      drivers/acpi/pmic/built-in.a
  CC      security/lsm_syscalls.o
  CC      io_uring/kbuf.o
  CC      security/min_addr.o
  CC      arch/x86/mm/cpu_entry_area.o
  CC      arch/x86/lib/atomic64_32.o
  CC      arch/x86/lib/inat.o
  AR      drivers/pci/pcie/built-in.a
  CC      drivers/pci/access.o
  CC      drivers/video/hdmi.o
  CC      drivers/pci/bus.o
  CC      kernel/locking/rwsem.o
  CC      lib/xz/xz_dec_lzma2.o
  CC      io_uring/rsrc.o
  AR      arch/x86/lib/built-in.a
  AR      arch/x86/lib/lib.a
  AR      arch/x86/pci/built-in.a
  CC      drivers/acpi/dptf/int340x_thermal.o
  AR      security/keys/built-in.a
  CC      net/sched/cls_api.o
  CC      net/sched/act_api.o
  CC      sound/core/control.o
  CC      sound/core/misc.o
  CC      drivers/acpi/acpica/dscontrol.o
  CC      fs/iomap/trace.o
  CC      lib/dim/dim.o
  CC      arch/x86/entry/common.o
  CC      arch/x86/kernel/cpu/mce/threshold.o
  AR      sound/core/seq/built-in.a
  CC      lib/dim/net_dim.o
  CC      arch/x86/kernel/cpu/mtrr/cyrix.o
  AR      fs/notify/built-in.a
  CC      drivers/pci/probe.o
  CC      arch/x86/kernel/apic/apic_noop.o
  CC      arch/x86/kernel/apic/ipi.o
  AR      arch/x86/kernel/kprobes/built-in.a
  CC      net/sched/sch_fifo.o
  CC      net/sched/cls_cgroup.o
  CC      net/core/stream.o
  CC      fs/quota/dquot.o
  CC      arch/x86/events/intel/p4.o
  AR      lib/lz4/built-in.a
  CC      fs/quota/quota_v2.o
  CC      lib/crypto/mpi/mpiutil.o
  CC      crypto/compress.o
  CC      kernel/sched/build_utility.o
  CC      block/blk-flush.o
  CC      lib/dim/rdma_dim.o
  CC      arch/x86/mm/maccess.o
  CC      mm/truncate.o
  CC      security/selinux/netlink.o
  CC      lib/fonts/fonts.o
  CC      security/security.o
  CC      drivers/acpi/acpica/dsdebug.o
  CC      security/selinux/nlmsgtab.o
  CC      lib/xz/xz_dec_bcj.o
  AR      drivers/acpi/dptf/built-in.a
  CC      mm/vmscan.o
  CC      drivers/acpi/acpica/dsfield.o
  CC      security/lsm_audit.o
  CC      arch/x86/mm/pgprot.o
  CC      io_uring/notif.o
  CC      drivers/pci/host-bridge.o
  CC      arch/x86/mm/pgtable_32.o
  CC      security/device_cgroup.o
  AR      drivers/video/built-in.a
  CC      io_uring/tctx.o
  CC      arch/x86/kernel/apic/vector.o
  CC      io_uring/filetable.o
  CC      sound/core/device.o
  CC      arch/x86/kernel/cpu/mtrr/centaur.o
  CC      lib/zstd/decompress/zstd_ddict.o
  AR      lib/dim/built-in.a
  CC      drivers/pci/remove.o
  CC      security/selinux/netif.o
  CC      kernel/locking/percpu-rwsem.o
  CC      kernel/power/qos.o
  CC      kernel/power/main.o
  CC      lib/fonts/font_8x16.o
  AS      arch/x86/entry/thunk.o
  CC      lib/zstd/decompress/zstd_decompress.o
  CC      crypto/algapi.o
  AR      arch/x86/entry/built-in.a
  CC      kernel/power/console.o
  AR      net/bpf/built-in.a
  CC      lib/zstd/decompress/zstd_decompress_block.o
  AR      sound/isa/ad1816a/built-in.a
  AR      lib/crypto/mpi/built-in.a
  AR      lib/xz/built-in.a
  AR      sound/isa/ad1848/built-in.a
  CC      lib/argv_split.o
  CC      lib/crypto/sha1.o
  AR      sound/isa/cs423x/built-in.a
  CC      drivers/acpi/acpica/dsinit.o
  AR      sound/isa/es1688/built-in.a
  CC      net/netlink/genetlink.o
  AR      sound/isa/galaxy/built-in.a
  AR      sound/isa/gus/built-in.a
  AR      sound/isa/msnd/built-in.a
  CC      lib/crypto/sha256.o
  AR      sound/isa/opti9xx/built-in.a
  AR      sound/isa/sb/built-in.a
  AR      sound/isa/wavefront/built-in.a
  CC      net/sched/ematch.o
  CC      sound/core/info.o
  AR      sound/isa/wss/built-in.a
  AR      arch/x86/kernel/cpu/mce/built-in.a
  AR      sound/isa/built-in.a
  CC      security/selinux/netnode.o
  CC      drivers/pnp/pnpacpi/core.o
  AR      lib/fonts/built-in.a
  CC      arch/x86/events/probe.o
  CC      arch/x86/events/utils.o
  CC      arch/x86/events/rapl.o
  CC      block/blk-settings.o
  CC      arch/x86/kernel/cpu/mtrr/legacy.o
  AR      sound/pci/ac97/built-in.a
  CC      arch/x86/events/intel/p6.o
  AR      sound/pci/ali5451/built-in.a
  CC      fs/iomap/iter.o
  AR      sound/pci/asihpi/built-in.a
  AR      sound/pci/au88x0/built-in.a
  AR      sound/ppc/built-in.a
  CC      arch/x86/mm/iomap_32.o
  CC      arch/x86/mm/hugetlbpage.o
  CC      lib/bug.o
  AR      sound/pci/aw2/built-in.a
  AR      sound/pci/ctxfi/built-in.a
  CC      sound/core/isadma.o
  AR      sound/pci/ca0106/built-in.a
  CC      sound/core/vmaster.o
  AR      sound/pci/cs46xx/built-in.a
  CC      sound/core/ctljack.o
  CC      lib/buildid.o
  AR      sound/pci/cs5535audio/built-in.a
  CC      sound/core/jack.o
  CC      arch/x86/kernel/cpu/topology_amd.o
  AR      sound/pci/lola/built-in.a
  CC      drivers/acpi/acpica/dsmethod.o
  AR      sound/pci/lx6464es/built-in.a
  CC      kernel/locking/spinlock.o
  CC      drivers/acpi/acpica/dsmthdat.o
  AR      sound/pci/echoaudio/built-in.a
  AR      sound/pci/emu10k1/built-in.a
  AR      sound/pci/hda/built-in.a
  CC [M]  sound/pci/hda/hda_bind.o
  CC      drivers/acpi/acpica/dsobject.o
  AR      sound/pci/ice1712/built-in.a
  CC [M]  sound/pci/hda/hda_codec.o
  AR      arch/x86/kernel/cpu/mtrr/built-in.a
  AR      sound/pci/korg1212/built-in.a
  CC      drivers/pci/pci.o
  CC      drivers/pci/pci-driver.o
  AR      sound/pci/mixart/built-in.a
  AR      sound/pci/nm256/built-in.a
  CC      io_uring/rw.o
  AR      sound/pci/oxygen/built-in.a
  CC      kernel/power/process.o
  CC      lib/zstd/zstd_common_module.o
  AR      lib/crypto/built-in.a
  CC      net/ethtool/ioctl.o
  CC      drivers/pci/search.o
  CC      io_uring/net.o
  CC      lib/zstd/common/debug.o
  CC      drivers/pnp/pnpacpi/rsparser.o
  CC      fs/quota/quota_tree.o
  CC      arch/x86/kernel/apic/init.o
  CC      arch/x86/kernel/apic/hw_nmi.o
  CC      arch/x86/kernel/apic/io_apic.o
  CC      kernel/power/suspend.o
  CC      kernel/locking/osq_lock.o
  CC      kernel/locking/qspinlock.o
  CC      crypto/scatterwalk.o
  CC      arch/x86/kernel/cpu/common.o
  CC      net/ethtool/common.o
  CC      arch/x86/mm/dump_pagetables.o
  CC      crypto/proc.o
  CC      arch/x86/kernel/cpu/rdrand.o
  CC      net/netfilter/core.o
  CC      drivers/acpi/acpica/dsopcode.o
  CC      net/netfilter/nf_log.o
  CC      sound/core/timer.o
  CC      net/netfilter/nf_queue.o
  CC      arch/x86/events/intel/pt.o
  CC      lib/zstd/common/entropy_common.o
  CC      net/ethtool/netlink.o
  CC      arch/x86/mm/highmem_32.o
  CC      kernel/locking/rtmutex_api.o
  CC      security/selinux/netport.o
  CC      lib/clz_tab.o
  CC      lib/cmdline.o
  CC      fs/iomap/buffered-io.o
  CC      fs/iomap/direct-io.o
  CC      fs/iomap/fiemap.o
  AR      sound/pci/pcxhr/built-in.a
  AR      sound/pci/riptide/built-in.a
  CC      fs/quota/quota.o
  CC      block/blk-ioc.o
  CC      kernel/locking/qrwlock.o
  CC      security/selinux/status.o
  CC [M]  sound/pci/hda/hda_jack.o
  CC      fs/iomap/seek.o
  CC      arch/x86/events/msr.o
  CC      drivers/acpi/acpica/dspkginit.o
  CC      drivers/acpi/acpica/dsutils.o
  CC      fs/quota/kqid.o
  CC      block/blk-map.o
  CC      lib/zstd/common/error_private.o
  CC      drivers/acpi/acpica/dswexec.o
  AR      sound/pci/rme9652/built-in.a
  AR      sound/pci/trident/built-in.a
  AR      drivers/amba/built-in.a
  CC      crypto/aead.o
  CC      drivers/pci/rom.o
  AR      net/sched/built-in.a
  CC      drivers/acpi/x86/apple.o
  CC      drivers/pci/setup-res.o
  CC      net/netlink/policy.o
  CC      drivers/acpi/x86/cmos_rtc.o
  AR      drivers/pnp/pnpacpi/built-in.a
  CC      drivers/acpi/acpica/dswload.o
  CC      drivers/pnp/core.o
  CC      fs/proc/task_mmu.o
  AR      arch/x86/mm/built-in.a
  CC      fs/proc/inode.o
  CC      fs/iomap/swapfile.o
  CC      kernel/power/hibernate.o
  CC      crypto/geniv.o
  CC      block/blk-merge.o
  CC      arch/x86/kernel/apic/msi.o
  CC      lib/cpumask.o
  CC      net/ethtool/bitset.o
  CC      fs/quota/netlink.o
  CC      lib/zstd/common/fse_decompress.o
  CC      kernel/power/snapshot.o
  CC      drivers/pci/irq.o
  CC      net/core/scm.o
  CC      drivers/pnp/card.o
  CC      block/blk-timeout.o
  CC      kernel/power/swap.o
  AR      kernel/locking/built-in.a
  CC      block/blk-lib.o
  CC      drivers/acpi/x86/lpss.o
  CC      block/blk-mq.o
  CC      drivers/acpi/acpica/dswload2.o
  CC      kernel/power/user.o
  CC [M]  sound/pci/hda/hda_auto_parser.o
  CC      fs/kernfs/mount.o
  CC [M]  sound/pci/hda/hda_sysfs.o
  CC      net/ethtool/strset.o
  CC [M]  sound/pci/hda/hda_controller.o
  CC      drivers/acpi/tables.o
  CC      mm/shrinker.o
  CC      kernel/printk/printk.o
  CC      arch/x86/events/intel/uncore.o
  CC      net/netfilter/nf_sockopt.o
  CC      arch/x86/events/intel/uncore_nhmex.o
  CC      security/selinux/ss/ebitmap.o
  CC      drivers/pnp/driver.o
  CC      sound/core/hrtimer.o
  CC      arch/x86/kernel/cpu/match.o
  CC      security/selinux/ss/hashtab.o
  CC      crypto/lskcipher.o
  CC      kernel/printk/printk_safe.o
  CC      lib/zstd/common/zstd_common.o
  CC      kernel/power/poweroff.o
  CC      sound/core/seq_device.o
  CC      crypto/skcipher.o
  CC      drivers/pci/vpd.o
  AR      net/netlink/built-in.a
  CC      security/selinux/ss/symtab.o
  AR      lib/zstd/built-in.a
  CC      drivers/acpi/acpica/dswscope.o
  CC      lib/ctype.o
  CC      kernel/printk/nbcon.o
  CC      io_uring/poll.o
  CC      lib/dec_and_lock.o
  CC      arch/x86/kernel/apic/probe_32.o
  AR      fs/quota/built-in.a
  AS      arch/x86/kernel/head_32.o
  CC      fs/sysfs/file.o
  CC      fs/kernfs/inode.o
  CC      fs/devpts/inode.o
  CC      fs/netfs/buffered_read.o
  CC      mm/shmem.o
  CC      fs/netfs/buffered_write.o
  CC      fs/ext4/balloc.o
  CC      mm/util.o
  CC      lib/decompress.o
  CC      arch/x86/kernel/cpu/bugs.o
  CC      drivers/acpi/x86/s2idle.o
  CC      fs/proc/root.o
  CC      drivers/pnp/resource.o
  CC      lib/decompress_bunzip2.o
  CC      fs/ext4/bitmap.o
  AR      kernel/sched/built-in.a
  CC      lib/decompress_inflate.o
  CC      fs/proc/base.o
  CC      drivers/acpi/acpica/dswstate.o
  CC      drivers/pnp/manager.o
  CC      drivers/acpi/x86/utils.o
  CC      fs/jbd2/transaction.o
  CC      kernel/printk/printk_ringbuffer.o
  AR      fs/iomap/built-in.a
  CC      net/ethtool/linkinfo.o
  CC      fs/ext4/block_validity.o
  CC [M]  sound/core/hwdep.o
  CC      fs/ramfs/inode.o
  AR      arch/x86/kernel/apic/built-in.a
  CC      fs/hugetlbfs/inode.o
  CC      fs/kernfs/dir.o
  CC      fs/kernfs/file.o
  CC      net/core/gen_stats.o
  CC      arch/x86/kernel/head32.o
  CC      fs/fat/cache.o
  CC      fs/ramfs/file-mmu.o
  CC      net/netfilter/utils.o
  CC      fs/fat/dir.o
  CC      drivers/pci/setup-bus.o
  CC      drivers/pci/vc.o
  CC      crypto/seqiv.o
  CC      drivers/acpi/osi.o
  CC      drivers/acpi/acpica/evevent.o
  CC      drivers/acpi/osl.o
  CC      fs/proc/generic.o
  CC      drivers/acpi/x86/blacklist.o
  CC      arch/x86/events/intel/uncore_snb.o
  CC      security/selinux/ss/sidtab.o
  CC      security/selinux/ss/avtab.o
  CC      fs/sysfs/dir.o
  AR      fs/devpts/built-in.a
  CC      security/selinux/ss/policydb.o
  CC      fs/ext4/dir.o
  AR      kernel/power/built-in.a
  CC [M]  sound/pci/hda/hda_proc.o
  CC      arch/x86/kernel/ebda.o
  CC      lib/decompress_unlz4.o
  CC      net/netfilter/nfnetlink.o
  CC      net/ethtool/linkmodes.o
  CC      io_uring/uring_cmd.o
  CC      fs/ext4/ext4_jbd2.o
  AR      sound/arm/built-in.a
  CC [M]  sound/core/pcm.o
  CC      drivers/acpi/acpica/evgpe.o
  CC      kernel/irq/irqdesc.o
  CC      drivers/acpi/acpica/evgpeblk.o
  CC      arch/x86/events/intel/uncore_snbep.o
  CC      arch/x86/kernel/platform-quirks.o
  CC      drivers/acpi/acpica/evgpeinit.o
  AR      fs/ramfs/built-in.a
  CC      drivers/acpi/acpica/evgpeutil.o
  CC      fs/fat/fatent.o
  CC      kernel/rcu/update.o
  CC      drivers/pnp/support.o
  AR      drivers/acpi/x86/built-in.a
  CC      fs/netfs/direct_read.o
  CC      drivers/acpi/acpica/evglock.o
  CC      fs/fat/file.o
  AR      sound/sh/built-in.a
  CC      crypto/echainiv.o
  CC      fs/fat/inode.o
  CC      kernel/printk/sysctl.o
  CC      fs/sysfs/symlink.o
  CC      security/selinux/ss/services.o
  CC      fs/kernfs/symlink.o
  CC      lib/decompress_unlzma.o
  CC      crypto/ahash.o
  CC      net/core/gen_estimator.o
  CC      block/blk-mq-tag.o
  CC      drivers/pci/mmap.o
  AR      kernel/printk/built-in.a
  CC      io_uring/openclose.o
  CC      io_uring/sqpoll.o
  CC      fs/ext4/extents.o
  CC      fs/proc/array.o
  CC      drivers/pci/devres.o
  CC      fs/ext4/extents_status.o
  CC      drivers/acpi/acpica/evhandler.o
  CC      fs/proc/fd.o
  CC      drivers/acpi/acpica/evmisc.o
  AR      fs/hugetlbfs/built-in.a
  CC      security/selinux/ss/conditional.o
  CC      drivers/pnp/interface.o
  CC      mm/mmzone.o
  CC      arch/x86/kernel/cpu/aperfmperf.o
  CC      drivers/acpi/acpica/evregion.o
  CC      kernel/irq/handle.o
  CC      fs/ext4/file.o
  CC      fs/jbd2/commit.o
  CC [M]  sound/pci/hda/hda_hwdep.o
  CC      io_uring/xattr.o
  CC      block/blk-stat.o
  CC      net/ethtool/rss.o
  AR      sound/pci/ymfpci/built-in.a
  CC      net/ethtool/linkstate.o
  CC      block/blk-mq-sysfs.o
  CC      security/selinux/ss/mls.o
  CC      io_uring/nop.o
  CC      fs/sysfs/mount.o
  CC      net/netfilter/nfnetlink_log.o
  CC      net/netfilter/nf_conntrack_core.o
  CC      fs/jbd2/recovery.o
  CC      lib/decompress_unlzo.o
  CC [M]  sound/core/pcm_native.o
  AR      fs/kernfs/built-in.a
  CC      kernel/rcu/sync.o
  CC      fs/netfs/direct_write.o
  CC      kernel/rcu/srcutree.o
  CC      fs/proc/proc_tty.o
  CC      fs/fat/misc.o
  CC      fs/ext4/fsmap.o
  CC      drivers/acpi/acpica/evrgnini.o
  CC      net/netfilter/nf_conntrack_standalone.o
  CC      kernel/irq/manage.o
  CC      drivers/pnp/quirks.o
  CC      drivers/pci/proc.o
  CC      fs/proc/cmdline.o
  CC      mm/vmstat.o
  CC      drivers/acpi/acpica/evsci.o
  CC      net/core/net_namespace.o
  CC      arch/x86/kernel/cpu/cpuid-deps.o
  CC      drivers/acpi/acpica/evxface.o
  CC      kernel/rcu/tree.o
  CC      crypto/shash.o
  CC      fs/sysfs/group.o
  CC      block/blk-mq-cpumap.o
  CC [M]  sound/pci/hda/patch_hdmi.o
  CC      mm/backing-dev.o
  AR      sound/synth/emux/built-in.a
  AR      sound/synth/built-in.a
  CC      mm/mm_init.o
  CC      net/netfilter/nf_conntrack_expect.o
  CC      net/ethtool/debug.o
  CC      lib/decompress_unxz.o
  CC      net/ethtool/wol.o
  CC      fs/isofs/namei.o
  CC      arch/x86/kernel/cpu/umwait.o
  CC      fs/isofs/inode.o
  CC      fs/proc/consoles.o
  CC      fs/ext4/fsync.o
  MKCAP   arch/x86/kernel/cpu/capflags.c
  CC      lib/decompress_unzstd.o
  CC      security/selinux/ss/context.o
  CC      drivers/acpi/acpica/evxfevnt.o
  CC      drivers/pci/pci-sysfs.o
  CC      kernel/irq/spurious.o
  CC      net/core/secure_seq.o
  CC      net/ethtool/features.o
  CC      fs/fat/nfs.o
  CC      net/ethtool/privflags.o
  CC      io_uring/fs.o
  CC      drivers/pnp/system.o
  CC      fs/netfs/io.o
  CC [M]  sound/core/pcm_lib.o
  CC      drivers/pci/slot.o
  CC      arch/x86/events/intel/uncore_discovery.o
  CC      fs/proc/cpuinfo.o
  AR      fs/sysfs/built-in.a
  CC      fs/proc/devices.o
  CC      fs/jbd2/checkpoint.o
  CC      lib/dump_stack.o
  CC      mm/percpu.o
  CC      block/blk-mq-sched.o
  CC      drivers/acpi/acpica/evxfgpe.o
  CC      net/netfilter/nf_conntrack_helper.o
  CC      security/selinux/netlabel.o
  CC      crypto/akcipher.o
  CC      arch/x86/events/intel/cstate.o
  AR      sound/pci/vx222/built-in.a
  CC [M]  sound/pci/hda/hda_eld.o
  CC      fs/nfs/client.o
  CC      fs/nfs/dir.o
  CC [M]  sound/pci/hda/hda_intel.o
  CC      lib/earlycpio.o
  CC      arch/x86/kernel/process_32.o
  AR      drivers/pnp/built-in.a
  CC      kernel/rcu/rcu_segcblist.o
  CC      net/ethtool/rings.o
  CC      kernel/irq/resend.o
  AR      drivers/clk/actions/built-in.a
  CC      fs/fat/namei_vfat.o
  AR      drivers/clk/analogbits/built-in.a
  CC      mm/slab_common.o
  AR      drivers/clk/bcm/built-in.a
  CC      kernel/irq/chip.o
  AR      drivers/clk/imgtec/built-in.a
  AR      drivers/clk/imx/built-in.a
  AR      drivers/clk/ingenic/built-in.a
  CC      kernel/irq/dummychip.o
  AR      drivers/clk/mediatek/built-in.a
  CC      fs/proc/interrupts.o
  CC      drivers/acpi/acpica/evxfregn.o
  AR      drivers/clk/microchip/built-in.a
  CC      fs/proc/loadavg.o
  AR      drivers/clk/mstar/built-in.a
  AR      drivers/clk/mvebu/built-in.a
  CC      kernel/irq/devres.o
  AR      drivers/clk/ralink/built-in.a
  AR      drivers/clk/renesas/built-in.a
  AR      drivers/clk/socfpga/built-in.a
  CC      crypto/sig.o
  AR      drivers/clk/sophgo/built-in.a
  CC      lib/extable.o
  AR      drivers/clk/sprd/built-in.a
  AR      drivers/clk/starfive/built-in.a
  CC      mm/compaction.o
  CC      mm/show_mem.o
  AR      drivers/clk/sunxi-ng/built-in.a
  CC      lib/flex_proportions.o
  AR      drivers/clk/ti/built-in.a
  AR      drivers/clk/versatile/built-in.a
  AR      drivers/clk/xilinx/built-in.a
  CC      crypto/kpp.o
  AR      drivers/clk/built-in.a
  CC      kernel/irq/autoprobe.o
  CC      fs/netfs/iterator.o
  CC      io_uring/splice.o
  CC      fs/nfs/file.o
  CC      net/netfilter/nf_conntrack_proto.o
  CC      fs/isofs/dir.o
  CC      drivers/pci/pci-acpi.o
  CC      fs/proc/meminfo.o
  CC      net/ipv4/netfilter/nf_defrag_ipv4.o
  CC      net/core/flow_dissector.o
  CC      net/core/sysctl_net_core.o
  LD [M]  sound/pci/hda/snd-hda-codec.o
  CC      drivers/acpi/acpica/exconcat.o
  CC      net/core/dev.o
  CC      net/core/dev_addr_lists.o
  CC      block/ioctl.o
  CC      net/xfrm/xfrm_policy.o
  CC      fs/jbd2/revoke.o
  CC      block/genhd.o
  CC      net/unix/af_unix.o
  AR      arch/x86/events/intel/built-in.a
  CC      net/unix/garbage.o
  CC      net/unix/sysctl_net_unix.o
  AR      arch/x86/events/built-in.a
  CC      mm/shmem_quota.o
  CC      drivers/acpi/utils.o
  CC      lib/idr.o
  AR      sound/usb/misc/built-in.a
  AR      sound/usb/usx2y/built-in.a
  AR      sound/usb/caiaq/built-in.a
  CC      fs/proc/stat.o
  AR      sound/usb/6fire/built-in.a
  AR      sound/usb/hiface/built-in.a
  CC      arch/x86/kernel/signal.o
  AR      sound/usb/bcd2000/built-in.a
  AR      sound/usb/built-in.a
  CC      lib/irq_regs.o
  CC      mm/interval_tree.o
  AR      kernel/livepatch/built-in.a
  CC      mm/list_lru.o
  CC [M]  sound/core/pcm_misc.o
  CC      fs/jbd2/journal.o
  CC      net/ethtool/channels.o
  AR      security/selinux/built-in.a
  CC      kernel/irq/irqdomain.o
  AR      security/built-in.a
  CC      lib/is_single_threaded.o
  CC      drivers/acpi/acpica/exconfig.o
  CC      lib/klist.o
  CC      fs/netfs/locking.o
  CC      fs/netfs/main.o
  ASN.1   crypto/rsapubkey.asn1.[ch]
  CC [M]  sound/core/pcm_memory.o
  CC      fs/isofs/util.o
  CC      fs/fat/namei_msdos.o
  ASN.1   crypto/rsaprivkey.asn1.[ch]
  CC      crypto/rsa.o
  CC      drivers/pci/iomap.o
  CC      fs/ext4/hash.o
  CC      io_uring/sync.o
  CC      lib/kobject.o
  CC      mm/workingset.o
  CC [M]  sound/core/memalloc.o
  CC      lib/kobject_uevent.o
  CC      fs/ext4/ialloc.o
  LD [M]  sound/pci/hda/snd-hda-codec-hdmi.o
  LD [M]  sound/pci/hda/snd-hda-intel.o
  AR      sound/pci/built-in.a
  CC      fs/proc/uptime.o
  CC      fs/netfs/misc.o
  CC      lib/logic_pio.o
  CC      drivers/acpi/acpica/exconvrt.o
  CC      fs/ext4/indirect.o
  CC      fs/ext4/inline.o
  CC      fs/nfs/getroot.o
  CC      net/netfilter/nf_conntrack_proto_generic.o
  CC      block/ioprio.o
  CC      mm/debug.o
  CC      net/ipv4/netfilter/nf_reject_ipv4.o
  CC      net/ipv6/netfilter/ip6_tables.o
  CC      arch/x86/kernel/cpu/powerflags.o
  CC      arch/x86/kernel/signal_32.o
  CC      net/xfrm/xfrm_state.o
  CC      net/ipv6/netfilter/ip6table_filter.o
  CC      net/ipv4/netfilter/ip_tables.o
  CC      net/ipv6/netfilter/ip6table_mangle.o
  CC      fs/isofs/rock.o
  CC      net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
  AR      sound/firewire/built-in.a
  CC      mm/gup.o
  CC      drivers/pci/quirks.o
  CC      crypto/rsa_helper.o
  CC      crypto/rsa-pkcs1pad.o
  CC      drivers/acpi/acpica/excreate.o
  CC      net/core/dst.o
  CC      drivers/acpi/acpica/exdebug.o
  CC      fs/proc/util.o
  CC      drivers/acpi/acpica/exdump.o
  CC      drivers/acpi/acpica/exfield.o
  CC      fs/nfs/inode.o
  AR      fs/fat/built-in.a
  CC      fs/ext4/inode.o
  CC      net/ethtool/coalesce.o
  CC      fs/exportfs/expfs.o
  CC      fs/ext4/ioctl.o
  CC      kernel/irq/proc.o
  CC      fs/lockd/clntlock.o
  CC      net/ethtool/pause.o
  CC      io_uring/msg_ring.o
  CC [M]  sound/core/pcm_timer.o
  CC      net/xfrm/xfrm_hash.o
  CC      fs/isofs/export.o
  CC      kernel/irq/migration.o
  CC      drivers/acpi/acpica/exfldio.o
  CC      fs/proc/version.o
  CC      drivers/acpi/acpica/exmisc.o
  CC      block/badblocks.o
  CC      mm/mmap_lock.o
  CC      lib/maple_tree.o
  CC      arch/x86/kernel/traps.o
  CC      fs/nfs/super.o
  CC      io_uring/advise.o
  LD [M]  sound/core/snd-hwdep.o
  CC      crypto/acompress.o
  CC      fs/isofs/joliet.o
  CC      net/netfilter/nf_conntrack_proto_tcp.o
  CC      fs/netfs/objects.o
  CC      fs/lockd/clntproc.o
  AR      kernel/rcu/built-in.a
  AR      fs/exportfs/built-in.a
  CC      fs/lockd/clntxdr.o
  CC      fs/lockd/host.o
  CC      mm/highmem.o
  CC      kernel/irq/cpuhotplug.o
  CC      mm/memory.o
  CC      fs/nfs/io.o
  AR      sound/core/built-in.a
  LD [M]  sound/core/snd-pcm.o
  CC      drivers/acpi/acpica/exmutex.o
  CC      fs/proc/softirqs.o
  AR      sound/sparc/built-in.a
  AR      sound/spi/built-in.a
  CC      net/xfrm/xfrm_input.o
  AR      sound/parisc/built-in.a
  CC      net/xfrm/xfrm_output.o
  CC      block/blk-rq-qos.o
  CC      crypto/scompress.o
  AR      net/unix/built-in.a
  AR      sound/pcmcia/vx/built-in.a
  CC      crypto/algboss.o
  AR      sound/mips/built-in.a
  AR      sound/pcmcia/pdaudiocf/built-in.a
  AR      sound/pcmcia/built-in.a
  CC      kernel/irq/pm.o
  AR      sound/soc/built-in.a
  CC      fs/netfs/write_collect.o
  AR      sound/atmel/built-in.a
  CC      fs/proc/namespaces.o
  AR      sound/hda/built-in.a
  CC [M]  sound/hda/hda_bus_type.o
  CC [M]  sound/hda/hdac_bus.o
  CC [M]  sound/hda/hdac_device.o
  CC      net/ethtool/eee.o
  CC      fs/ext4/mballoc.o
  CC      net/ipv4/netfilter/iptable_filter.o
  CC      drivers/acpi/acpica/exnames.o
  CC      kernel/irq/msi.o
  CC      fs/isofs/compress.o
  CC      net/ipv6/netfilter/nf_conntrack_reasm.o
  CC      crypto/testmgr.o
  CC      net/netfilter/nf_conntrack_proto_udp.o
  CC      net/netfilter/nf_conntrack_proto_icmp.o
  CC      mm/mincore.o
  CC      mm/mlock.o
  CC      io_uring/epoll.o
  CC [M]  sound/hda/hdac_sysfs.o
  AR      fs/jbd2/built-in.a
  CC      fs/nls/nls_base.o
  CC      lib/memcat_p.o
  CC      net/ipv4/netfilter/iptable_mangle.o
  CC      fs/ext4/migrate.o
  CC      drivers/acpi/acpica/exoparg1.o
  CC [M]  sound/hda/hdac_regmap.o
  CC      fs/ext4/mmp.o
  CC      block/disk-events.o
  CC      kernel/irq/affinity.o
  CC      fs/netfs/write_issue.o
  CC      drivers/pci/pci-label.o
  CC      fs/proc/self.o
  CC      fs/proc/thread_self.o
  CC      fs/proc/proc_sysctl.o
  CC      lib/nmi_backtrace.o
  CC      crypto/cmac.o
  CC [M]  sound/hda/hdac_controller.o
  CC      arch/x86/kernel/idt.o
  CC      net/ipv4/netfilter/ipt_REJECT.o
  CC [M]  sound/hda/hdac_stream.o
  CC      kernel/irq/matrix.o
  CC      arch/x86/kernel/irq.o
  CC      fs/nls/nls_cp437.o
  CC      fs/nfs/direct.o
  CC [M]  sound/hda/array.o
  CC      fs/lockd/svc.o
  CC      net/ethtool/tsinfo.o
  AR      fs/isofs/built-in.a
  CC      crypto/hmac.o
  CC      net/xfrm/xfrm_sysctl.o
  CC      drivers/acpi/acpica/exoparg2.o
  CC      drivers/acpi/acpica/exoparg3.o
  CC      fs/ext4/move_extent.o
  CC      fs/ext4/namei.o
  CC      io_uring/statx.o
  CC [M]  net/ipv4/netfilter/iptable_nat.o
  CC      crypto/crypto_null.o
  CC      fs/lockd/svclock.o
  CC      net/ipv6/netfilter/nf_reject_ipv6.o
  CC      net/core/netevent.o
  CC      fs/nls/nls_ascii.o
  CC      fs/nls/nls_iso8859-1.o
  CC      fs/ext4/page-io.o
  CC      net/ethtool/cabletest.o
  CC      net/core/neighbour.o
  CC      net/core/rtnetlink.o
  CC      drivers/dma/dw/core.o
  CC      drivers/pci/vgaarb.o
  CC      drivers/dma/dw/dw.o
  CC      net/netfilter/nf_conntrack_extend.o
  CC      block/blk-ia-ranges.o
  CC      net/core/utils.o
  CC      net/ethtool/tunnels.o
  CC      net/ipv6/netfilter/ip6t_ipv6header.o
  CC      net/ipv6/netfilter/ip6t_REJECT.o
  CC      drivers/acpi/acpica/exoparg6.o
  CC      arch/x86/kernel/irq_32.o
  CC      net/core/link_watch.o
  CC      net/core/filter.o
  AR      drivers/soc/apple/built-in.a
  AR      drivers/soc/aspeed/built-in.a
  AR      drivers/soc/bcm/built-in.a
  CC      fs/nfs/pagelist.o
  AR      drivers/soc/fsl/built-in.a
  CC      drivers/virtio/virtio.o
  CC      drivers/tty/vt/vt_ioctl.o
  AR      drivers/soc/fujitsu/built-in.a
  CC      drivers/char/hw_random/core.o
  AR      drivers/soc/hisilicon/built-in.a
  CC      fs/nls/nls_utf8.o
  AR      drivers/soc/imx/built-in.a
  CC      drivers/char/hw_random/intel-rng.o
  AR      drivers/soc/ixp4xx/built-in.a
  AR      drivers/soc/loongson/built-in.a
  AR      drivers/soc/mediatek/built-in.a
  CC [M]  sound/hda/hdmi_chmap.o
  CC      arch/x86/kernel/cpu/topology.o
  AR      drivers/soc/microchip/built-in.a
  AR      drivers/soc/nuvoton/built-in.a
  AR      fs/netfs/built-in.a
  AR      drivers/soc/pxa/built-in.a
  CC      drivers/tty/hvc/hvc_console.o
  AR      drivers/soc/amlogic/built-in.a
  CC      crypto/md5.o
  AR      drivers/soc/qcom/built-in.a
  AR      drivers/soc/renesas/built-in.a
  CC      drivers/virtio/virtio_ring.o
  AR      drivers/soc/rockchip/built-in.a
  AR      drivers/soc/sunxi/built-in.a
  CC      drivers/acpi/acpica/exprep.o
  AR      drivers/soc/ti/built-in.a
  CC      net/ethtool/fec.o
  AR      drivers/soc/xilinx/built-in.a
  AR      drivers/soc/built-in.a
  CC      drivers/char/agp/backend.o
  CC      io_uring/timeout.o
  AR      kernel/irq/built-in.a
  AR      fs/nls/built-in.a
  CC      drivers/char/agp/generic.o
  CC      net/xfrm/xfrm_replay.o
  CC      net/xfrm/xfrm_device.o
  CC      kernel/dma/mapping.o
  CC      fs/nfs/read.o
  CC      drivers/dma/dw/idma32.o
  CC      fs/proc/proc_net.o
  CC      kernel/dma/direct.o
  CC      lib/objpool.o
  CC      block/early-lookup.o
  CC      drivers/acpi/acpica/exregion.o
  AR      net/ipv4/netfilter/built-in.a
  CC      net/ipv4/route.o
  CC      fs/lockd/svcshare.o
  CC      crypto/sha256_generic.o
  CC      kernel/entry/common.o
  CC      arch/x86/kernel/cpu/proc.o
  AR      drivers/pci/built-in.a
  CC      crypto/sha512_generic.o
  CC      kernel/entry/syscall_user_dispatch.o
  CC      drivers/dma/dw/acpi.o
  CC      drivers/char/hw_random/amd-rng.o
  CC      arch/x86/kernel/cpu/feat_ctl.o
  CC      net/netfilter/nf_conntrack_acct.o
  CC      fs/lockd/svcproc.o
  CC      block/bounce.o
  CC      kernel/dma/ops_helpers.o
  CC      drivers/char/agp/isoch.o
  CC      net/core/sock_diag.o
  CC      lib/plist.o
  CC [M]  sound/hda/trace.o
  CC      net/ethtool/eeprom.o
  AR      net/ipv6/netfilter/built-in.a
  CC      net/ethtool/stats.o
  CC      drivers/tty/vt/vc_screen.o
  CC      net/ipv6/af_inet6.o
  CC      drivers/acpi/acpica/exresnte.o
  AR      drivers/tty/hvc/built-in.a
  CC      drivers/tty/vt/selection.o
  CC      drivers/char/agp/amd64-agp.o
  CC      drivers/tty/serial/8250/8250_core.o
  CC      lib/radix-tree.o
  CC      mm/mmap.o
  CC      drivers/tty/vt/keyboard.o
  CC      drivers/acpi/acpica/exresolv.o
  CC      mm/mmu_gather.o
  CC      fs/proc/kcore.o
  CC      drivers/char/agp/intel-agp.o
  CC      drivers/tty/serial/serial_core.o
  CC      arch/x86/kernel/cpu/intel.o
  CC      net/ipv4/inetpeer.o
  CC      fs/lockd/svcsubs.o
  AR      drivers/dma/dw/built-in.a
  CC      net/xfrm/xfrm_algo.o
  AR      drivers/tty/ipwireless/built-in.a
  CC      drivers/dma/hsu/hsu.o
  CC      drivers/char/hw_random/geode-rng.o
  CC      drivers/char/agp/intel-gtt.o
  CC      net/xfrm/xfrm_user.o
  CC      kernel/dma/dummy.o
  CC      io_uring/fdinfo.o
  CC      crypto/sha3_generic.o
  CC      io_uring/cancel.o
  CC      drivers/tty/serial/8250/8250_pnp.o
  CC      drivers/virtio/virtio_anchor.o
  CC      arch/x86/kernel/dumpstack_32.o
  CC      arch/x86/kernel/cpu/intel_pconfig.o
  CC      drivers/char/hw_random/via-rng.o
  AR      kernel/entry/built-in.a
  CC      drivers/acpi/acpica/exresop.o
  CC      kernel/module/main.o
  CC      drivers/acpi/acpica/exserial.o
  CC      drivers/tty/vt/vt.o
  CC      net/netfilter/nf_conntrack_seqadj.o
  CC      net/ethtool/phc_vclocks.o
  COPY    drivers/tty/vt/defkeymap.c
  CC      net/netfilter/nf_conntrack_proto_icmpv6.o
  CC [M]  sound/hda/hdac_component.o
  CC      fs/ext4/readpage.o
  CC      lib/ratelimit.o
  CC      fs/lockd/mon.o
  CC      drivers/tty/serial/serial_base_bus.o
  CC      kernel/dma/remap.o
  CC      drivers/acpi/acpica/exstore.o
  CC      lib/rbtree.o
  AR      drivers/char/hw_random/built-in.a
  CC      crypto/ecb.o
  CC      drivers/char/mem.o
  CC      drivers/acpi/reboot.o
  CC      net/ethtool/mm.o
  CC      lib/seq_buf.o
  CC      arch/x86/kernel/cpu/tsx.o
  CC      fs/lockd/trace.o
  CC      fs/ext4/resize.o
  CC      fs/proc/vmcore.o
  CC      drivers/virtio/virtio_pci_modern_dev.o
  CC      block/bsg.o
  CC      drivers/tty/serial/8250/8250_port.o
  AR      drivers/dma/hsu/built-in.a
  CC      fs/lockd/xdr.o
  AR      drivers/dma/idxd/built-in.a
  AR      sound/x86/built-in.a
  CC      fs/ext4/super.o
  CC      net/core/dev_ioctl.o
  AR      drivers/dma/mediatek/built-in.a
  AR      drivers/dma/qcom/built-in.a
  AR      drivers/dma/ti/built-in.a
  CC      fs/proc/kmsg.o
  AR      drivers/dma/xilinx/built-in.a
  CC      drivers/dma/dmaengine.o
  AR      drivers/char/agp/built-in.a
  CC      drivers/char/random.o
  CC      arch/x86/kernel/time.o
  CC      drivers/tty/serial/8250/8250_dma.o
  CC      arch/x86/kernel/ioport.o
  CC      arch/x86/kernel/dumpstack.o
  CC      fs/nfs/symlink.o
  CC      fs/lockd/clnt4xdr.o
  CC      drivers/acpi/acpica/exstoren.o
  CC      fs/nfs/unlink.o
  CC      io_uring/waitid.o
  CC      crypto/cbc.o
  CC      net/ipv6/anycast.o
  CC      arch/x86/kernel/cpu/intel_epb.o
  AR      kernel/dma/built-in.a
  CC      drivers/acpi/acpica/exstorob.o
  CC      drivers/tty/vt/consolemap.o
  CC [M]  sound/hda/hdac_i915.o
  HOSTCC  drivers/tty/vt/conmakehash
  CC      lib/siphash.o
  CC      kernel/time/time.o
  CC      kernel/futex/core.o
  CC      drivers/acpi/nvs.o
  CC      kernel/futex/syscalls.o
  CC      net/ipv4/protocol.o
  CC      net/ipv4/ip_input.o
  CC      lib/string.o
  CC      net/ipv4/ip_fragment.o
  CC      io_uring/register.o
  CC      kernel/futex/pi.o
  CC      block/blk-cgroup.o
  CC      drivers/virtio/virtio_pci_legacy_dev.o
  CC      crypto/ctr.o
  CC      drivers/virtio/virtio_pci_modern.o
  CC      arch/x86/kernel/cpu/amd.o
  CC      drivers/acpi/acpica/exsystem.o
  CC      drivers/dma/virt-dma.o
  CC      net/ethtool/module.o
  CC      net/netfilter/nf_conntrack_netlink.o
  CC      crypto/gcm.o
  CC      fs/proc/page.o
  CC      drivers/tty/vt/defkeymap.o
  CC      block/blk-ioprio.o
  CC      drivers/tty/serial/serial_ctrl.o
  CC      arch/x86/kernel/nmi.o
  CC      arch/x86/kernel/ldt.o
  CC      block/blk-iolatency.o
  CC      drivers/dma/acpi-dma.o
  CC      net/ipv4/ip_forward.o
  CC      lib/timerqueue.o
  CC [M]  sound/hda/intel-dsp-config.o
  CC      fs/lockd/xdr4.o
  CC      kernel/cgroup/cgroup.o
  CC      drivers/acpi/acpica/extrace.o
  CC      fs/lockd/svc4proc.o
  CC      drivers/tty/serial/serial_port.o
  CC      crypto/ccm.o
  CC      lib/vsprintf.o
  CC      kernel/cgroup/rstat.o
  CC      drivers/acpi/acpica/exutils.o
  CC      fs/lockd/procfs.o
  CC      lib/win_minmax.o
  CC      drivers/tty/serial/earlycon.o
  CC      net/netfilter/nf_conntrack_ftp.o
  CC      drivers/virtio/virtio_pci_common.o
  CC      mm/mprotect.o
  CC      kernel/futex/requeue.o
  CC [M]  sound/hda/intel-nhlt.o
  CC      kernel/module/strict_rwx.o
  CC      kernel/time/timer.o
  CC [M]  sound/hda/intel-sdw-acpi.o
  CC      net/netfilter/nf_conntrack_irc.o
  CC      drivers/char/misc.o
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      mm/mremap.o
  CC      kernel/time/hrtimer.o
  CC      kernel/futex/waitwake.o
  CC      net/ipv6/ip6_output.o
  AR      net/xfrm/built-in.a
  CC      kernel/module/kmod.o
  CC      drivers/acpi/acpica/hwacpi.o
  CC      fs/ext4/symlink.o
  CC      lib/xarray.o
  AR      fs/proc/built-in.a
  CC      io_uring/truncate.o
  CC      arch/x86/kernel/cpu/hygon.o
  CC      block/blk-iocost.o
  CC      net/ethtool/pse-pd.o
  AR      drivers/dma/built-in.a
  CC      kernel/time/timekeeping.o
  CONMK   drivers/tty/vt/consolemap_deftbl.c
  CC      drivers/tty/vt/consolemap_deftbl.o
  AR      drivers/tty/vt/built-in.a
  CC      arch/x86/kernel/setup.o
  AR      sound/xen/built-in.a
  CC      arch/x86/kernel/x86_init.o
  AR      fs/unicode/built-in.a
  CC      io_uring/memmap.o
  AR      sound/virtio/built-in.a
  CC      kernel/cgroup/namespace.o
  CC      kernel/cgroup/cgroup-v1.o
  CC      fs/nfs/write.o
  CC      drivers/acpi/acpica/hwesleep.o
  CC      fs/ext4/sysfs.o
  CC      arch/x86/kernel/cpu/centaur.o
  CC      net/netfilter/nf_conntrack_sip.o
  LD [M]  sound/hda/snd-hda-core.o
  LD [M]  sound/hda/snd-intel-dspcfg.o
  CC      arch/x86/kernel/cpu/transmeta.o
  LD [M]  sound/hda/snd-intel-sdw-acpi.o
  CC      kernel/module/tree_lookup.o
  CC      sound/sound_core.o
  CC      sound/last.o
  CC      net/ipv4/ip_options.o
  CC      crypto/aes_generic.o
  CC      net/ethtool/plca.o
  CC      io_uring/io-wq.o
  CC      drivers/char/virtio_console.o
  CC      block/mq-deadline.o
  CC      fs/nfs/namespace.o
  CC      drivers/virtio/virtio_pci_legacy.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC      block/kyber-iosched.o
  AR      fs/lockd/built-in.a
  CC      net/ipv4/ip_output.o
  CC      net/packet/af_packet.o
  CC      fs/autofs/init.o
  CC      drivers/acpi/acpica/hwgpe.o
  CC      fs/9p/vfs_super.o
  AR      kernel/futex/built-in.a
  CC      kernel/trace/trace_clock.o
  CC      kernel/bpf/core.o
  CC      block/blk-mq-pci.o
  CC      mm/msync.o
  CC      kernel/module/kallsyms.o
  CC      kernel/events/core.o
  AR      sound/built-in.a
  CC      kernel/trace/ring_buffer.o
  CC      arch/x86/kernel/i8259.o
  CC      mm/page_vma_mapped.o
  CC      arch/x86/kernel/cpu/zhaoxin.o
  AR      fs/hostfs/built-in.a
  CC      kernel/module/procfs.o
  CC      kernel/fork.o
  CC      fs/debugfs/inode.o
  CC      kernel/trace/trace.o
  CC      fs/tracefs/inode.o
  CC [M]  fs/efivarfs/inode.o
  CC      mm/pagewalk.o
  CC      drivers/acpi/wakeup.o
  CC      drivers/acpi/acpica/hwregs.o
  CC      crypto/crc32c_generic.o
  CC      lib/lockref.o
  CC      drivers/virtio/virtio_pci_admin_legacy_io.o
  CC      io_uring/futex.o
  CC      io_uring/napi.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC      lib/bcd.o
  CC      fs/9p/vfs_inode.o
  CC      fs/autofs/inode.o
  CC      drivers/acpi/acpica/hwsleep.o
  CC      arch/x86/kernel/cpu/vortex.o
  CC      fs/9p/vfs_inode_dotl.o
  CC      arch/x86/kernel/irqinit.o
  CC      lib/sort.o
  AR      net/ethtool/built-in.a
  CC      arch/x86/kernel/cpu/perfctr-watchdog.o
  CC      fs/open.o
  CC      arch/x86/kernel/jump_label.o
  CC      kernel/module/sysfs.o
  AR      drivers/iommu/amd/built-in.a
  CC      lib/parser.o
  AR      drivers/iommu/intel/built-in.a
  CC      crypto/authenc.o
  CC      kernel/cgroup/freezer.o
  CC      crypto/authencesn.o
  AR      drivers/iommu/arm/arm-smmu/built-in.a
  CC      drivers/acpi/sleep.o
  AR      drivers/iommu/arm/arm-smmu-v3/built-in.a
  AR      drivers/iommu/arm/built-in.a
  CC [M]  fs/efivarfs/file.o
  CC      drivers/acpi/device_sysfs.o
  CC      drivers/acpi/device_pm.o
  AR      drivers/iommu/iommufd/built-in.a
  CC      drivers/iommu/iommu.o
  CC      mm/pgtable-generic.o
  CC      fs/read_write.o
  CC      kernel/time/ntp.o
  CC      drivers/acpi/acpica/hwvalid.o
  CC      arch/x86/kernel/irq_work.o
  CC      drivers/char/hpet.o
  CC      fs/nfs/mount_clnt.o
  CC      lib/debug_locks.o
  CC      fs/nfs/nfstrace.o
  CC      drivers/virtio/virtio_input.o
  CC      fs/tracefs/event_inode.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      fs/debugfs/file.o
  CC      fs/9p/vfs_addr.o
  CC [M]  fs/efivarfs/super.o
  CC      lib/random32.o
  CC      arch/x86/kernel/probe_roms.o
  CC      fs/autofs/root.o
  CC      arch/x86/kernel/cpu/vmware.o
  CC      drivers/acpi/acpica/hwxface.o
  CC      net/netfilter/nf_nat_core.o
  CC      net/netfilter/nf_nat_proto.o
  CC      fs/autofs/symlink.o
  CC      fs/9p/vfs_file.o
  AR      kernel/module/built-in.a
  CC      kernel/exec_domain.o
  CC [M]  fs/efivarfs/vars.o
  CC      fs/nfs/export.o
  CC      mm/rmap.o
  CC      drivers/char/nvram.o
  CC      lib/bust_spinlocks.o
  CC      block/blk-mq-virtio.o
  CC      net/ipv6/ip6_input.o
  CC      crypto/lzo.o
  CC      kernel/time/clocksource.o
  CC      net/core/tso.o
  CC      fs/autofs/waitq.o
  CC      crypto/lzo-rle.o
  CC      drivers/acpi/acpica/hwxfsleep.o
  CC      fs/autofs/expire.o
  CC      drivers/virtio/virtio_dma_buf.o
  AR      io_uring/built-in.a
  CC      fs/autofs/dev-ioctl.o
  AR      drivers/gpu/host1x/built-in.a
  AR      drivers/gpu/vga/built-in.a
  CC      drivers/acpi/proc.o
  CC      net/ipv4/ip_sockglue.o
  CC      arch/x86/kernel/cpu/hypervisor.o
  CC      lib/kasprintf.o
  CC      drivers/acpi/bus.o
  AR      fs/tracefs/built-in.a
  CC      arch/x86/kernel/sys_ia32.o
  CC      drivers/acpi/glue.o
  CC      arch/x86/kernel/cpu/mshyperv.o
  CC      drivers/tty/serial/8250/8250_lpss.o
  CC      fs/9p/vfs_dir.o
  AR      drivers/gpu/drm/tests/built-in.a
  CC      fs/nfs/sysfs.o
  CC      fs/file_table.o
  CC      net/netfilter/nf_nat_helper.o
  AR      drivers/gpu/drm/arm/built-in.a
  CC      drivers/gpu/drm/display/drm_display_helper_mod.o
  CC      drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
  AR      net/dsa/built-in.a
  CC      drivers/gpu/drm/display/drm_dp_helper.o
  CC      drivers/gpu/drm/display/drm_dp_mst_topology.o
  CC      net/sunrpc/auth_gss/auth_gss.o
  CC      drivers/acpi/acpica/hwpci.o
  AR      fs/debugfs/built-in.a
  LD [M]  fs/efivarfs/efivarfs.o
  CC      fs/super.o
  CC      drivers/gpu/drm/display/drm_dsc_helper.o
  CC      fs/char_dev.o
  CC      net/sunrpc/clnt.o
  CC      fs/9p/vfs_dentry.o
  CC      lib/bitmap.o
  AR      drivers/char/built-in.a
  CC      block/blk-mq-debugfs.o
  CC      block/blk-pm.o
  CC      fs/nfs/fs_context.o
  CC      crypto/rng.o
  AR      drivers/virtio/built-in.a
  CC      kernel/time/jiffies.o
  CC      fs/stat.o
  CC      kernel/cgroup/legacy_freezer.o
  CC      fs/ext4/xattr.o
  CC      lib/scatterlist.o
  AR      kernel/bpf/built-in.a
  CC      drivers/iommu/iommu-traces.o
  CC      block/holder.o
  CC      drivers/acpi/scan.o
  CC      drivers/acpi/acpica/nsaccess.o
  CC      kernel/time/timer_list.o
  CC      kernel/events/ring_buffer.o
  AR      fs/autofs/built-in.a
  CC      drivers/acpi/acpica/nsalloc.o
  CC      net/sunrpc/xprt.o
  CC      net/ipv4/inet_hashtables.o
  CC      drivers/tty/serial/8250/8250_mid.o
  CC      net/ipv4/inet_timewait_sock.o
  CC      kernel/time/timeconv.o
  CC      net/core/sock_reuseport.o
  AR      net/packet/built-in.a
  AR      net/wireless/tests/built-in.a
  CC      net/wireless/core.o
  CC      net/core/fib_notifier.o
  CC      net/netfilter/nf_nat_masquerade.o
  CC      arch/x86/kernel/cpu/debugfs.o
  CC      drivers/tty/serial/8250/8250_pci.o
  CC      kernel/panic.o
  CC      net/sunrpc/socklib.o
  CC      net/wireless/sysfs.o
  CC      kernel/time/timecounter.o
  CC      fs/9p/v9fs.o
  CC      arch/x86/kernel/cpu/capflags.o
  CC      drivers/acpi/mipi-disco-img.o
  CC      kernel/cpu.o
  CC      drivers/tty/serial/8250/8250_pericom.o
  CC      drivers/acpi/acpica/nsarguments.o
  CC      net/sunrpc/xprtsock.o
  CC      drivers/gpu/drm/display/drm_hdcp_helper.o
  CC      kernel/cgroup/pids.o
  CC      net/ipv4/inet_connection_sock.o
  CC      kernel/cgroup/rdma.o
  CC      crypto/drbg.o
  CC      lib/list_sort.o
  AR      block/built-in.a
  CC      fs/nfs/nfsroot.o
  CC      net/ipv6/addrconf.o
  CC      kernel/time/alarmtimer.o
  CC      crypto/jitterentropy.o
  CC      crypto/jitterentropy-kcapi.o
  CC      mm/vmalloc.o
  CC      crypto/ghash-generic.o
  CC      crypto/hash_info.o
  CC      net/core/xdp.o
  CC      drivers/acpi/acpica/nsconvert.o
  AR      arch/x86/kernel/cpu/built-in.a
  CC      drivers/iommu/iommu-sysfs.o
  CC      drivers/iommu/dma-iommu.o
  CC      lib/uuid.o
  CC      arch/x86/kernel/ksysfs.o
  CC      kernel/trace/trace_output.o
  CC      kernel/time/posix-timers.o
  CC      arch/x86/kernel/bootflag.o
  CC      lib/iov_iter.o
  CC      net/ipv4/tcp.o
  CC      kernel/events/callchain.o
  CC      fs/9p/fid.o
  CC      net/ipv6/addrlabel.o
  CC      net/ipv6/route.o
  CC      fs/ext4/xattr_hurd.o
  CC      lib/clz_ctz.o
  CC      net/core/flow_offload.o
  CC      kernel/events/hw_breakpoint.o
  CC      arch/x86/kernel/e820.o
  CC      kernel/events/uprobes.o
  CC      fs/ext4/xattr_trusted.o
  CC      kernel/cgroup/cpuset.o
  CC      lib/bsearch.o
  CC      kernel/time/posix-cpu-timers.o
  CC      kernel/exit.o
  CC      drivers/acpi/acpica/nsdump.o
  CC      drivers/acpi/acpica/nseval.o
  CC      crypto/rsapubkey.asn1.o
  CC      net/sunrpc/sched.o
  CC      crypto/rsaprivkey.asn1.o
  AR      crypto/built-in.a
  CC      kernel/softirq.o
  CC      kernel/resource.o
  CC      kernel/cgroup/misc.o
  CC      net/netfilter/nf_nat_ftp.o
  AR      drivers/tty/serial/8250/built-in.a
  CC      drivers/iommu/iova.o
  AR      drivers/tty/serial/built-in.a
  CC      drivers/tty/tty_io.o
  CC      net/sunrpc/auth_gss/gss_generic_token.o
  CC      fs/nfs/sysctl.o
  CC      drivers/acpi/resource.o
  CC      drivers/acpi/acpica/nsinit.o
  CC      kernel/time/posix-clock.o
  CC      drivers/acpi/acpica/nsload.o
  CC      drivers/acpi/acpi_processor.o
  CC      fs/9p/xattr.o
  CC      drivers/acpi/processor_core.o
  CC      fs/ext4/xattr_user.o
  CC      fs/nfs/nfs3super.o
  CC      kernel/cgroup/debug.o
  CC      drivers/gpu/drm/display/drm_hdmi_helper.o
  CC      drivers/connector/cn_queue.o
  CC      drivers/gpu/drm/display/drm_scdc_helper.o
  CC      drivers/acpi/processor_pdc.o
  CC      drivers/acpi/acpica/nsnames.o
  CC      drivers/acpi/ec.o
  CC      fs/exec.o
  CC      net/core/gro.o
  CC      net/core/netdev-genl.o
  CC      arch/x86/kernel/pci-dma.o
  CC      kernel/sysctl.o
  CC      arch/x86/kernel/quirks.o
  CC      net/sunrpc/auth_gss/gss_mech_switch.o
  CC      kernel/trace/trace_seq.o
  CC      net/core/netdev-genl-gen.o
  CC      net/core/gso.o
  CC      fs/pipe.o
  CC      net/ipv6/ip6_fib.o
  AR      drivers/iommu/built-in.a
  CC      drivers/acpi/acpica/nsobject.o
  AR      fs/9p/built-in.a
  CC      fs/namei.o
  CC      fs/fcntl.o
  CC      kernel/trace/trace_stat.o
  CC      lib/find_bit.o
  CC      kernel/time/itimer.o
  CC      mm/process_vm_access.o
  CC      drivers/gpu/drm/ttm/ttm_tt.o
  CC      net/netfilter/nf_nat_irc.o
  CC      drivers/gpu/drm/ttm/ttm_bo.o
  CC      net/wireless/radiotap.o
  CC      kernel/trace/trace_printk.o
  CC      fs/ioctl.o
  CC      drivers/acpi/acpica/nsparse.o
  CC      mm/page_alloc.o
  CC      net/netfilter/nf_nat_sip.o
  AR      kernel/events/built-in.a
  CC      net/wireless/util.o
  CC      fs/readdir.o
  CC      fs/ext4/fast_commit.o
  CC      drivers/acpi/acpica/nspredef.o
  CC      lib/llist.o
  AR      drivers/gpu/drm/display/built-in.a
  CC      net/ipv6/ipv6_sockglue.o
  AR      net/mac80211/tests/built-in.a
  CC      net/mac80211/main.o
  CC      fs/nfs/nfs3client.o
  CC      lib/lwq.o
  CC      net/mac80211/status.o
  CC      drivers/gpu/drm/i915/i915_config.o
  CC      drivers/connector/connector.o
  CC      drivers/gpu/drm/i915/i915_driver.o
  CC      arch/x86/kernel/kdebugfs.o
  CC      kernel/capability.o
  AR      drivers/gpu/drm/renesas/rcar-du/built-in.a
  CC      net/netfilter/x_tables.o
  AR      drivers/gpu/drm/renesas/rz-du/built-in.a
  CC      lib/memweight.o
  AR      drivers/gpu/drm/renesas/built-in.a
  CC      drivers/tty/n_tty.o
  AR      drivers/gpu/drm/omapdrm/built-in.a
  CC      mm/init-mm.o
  CC      kernel/ptrace.o
  CC      drivers/acpi/acpica/nsprepkg.o
  CC      mm/memblock.o
  CC      lib/kfifo.o
  CC      fs/ext4/orphan.o
  AR      kernel/cgroup/built-in.a
  CC      net/sunrpc/auth.o
  CC      drivers/acpi/dock.o
  CC      mm/slub.o
  CC      net/netfilter/xt_tcpudp.o
  CC      drivers/acpi/pci_root.o
  CC      kernel/trace/pid_list.o
  CC      mm/madvise.o
  CC      net/sunrpc/auth_null.o
  CC      net/wireless/reg.o
  CC      kernel/time/clockevents.o
  CC      net/mac80211/driver-ops.o
  CC      fs/select.o
  CC      arch/x86/kernel/alternative.o
  CC      drivers/gpu/drm/ttm/ttm_bo_util.o
  CC      drivers/tty/tty_ioctl.o
  CC      fs/dcache.o
  CC      drivers/acpi/acpica/nsrepair.o
  CC      kernel/trace/trace_sched_switch.o
  CC      net/mac80211/sta_info.o
  CC      net/sunrpc/auth_gss/svcauth_gss.o
  CC      net/core/net-sysfs.o
  CC      arch/x86/kernel/i8253.o
  CC      kernel/user.o
  CC      kernel/signal.o
  CC      drivers/tty/tty_ldisc.o
  CC      fs/nfs/nfs3proc.o
  CC      net/sunrpc/auth_tls.o
  CC      drivers/connector/cn_proc.o
  CC      net/netfilter/xt_CONNSECMARK.o
  CC      lib/percpu-refcount.o
  CC      fs/nfs/nfs3xdr.o
  CC      drivers/acpi/acpica/nsrepair2.o
  CC      kernel/time/tick-common.o
  CC      arch/x86/kernel/hw_breakpoint.o
  CC      net/ipv4/tcp_input.o
  CC      fs/ext4/acl.o
  CC      net/netfilter/xt_NFLOG.o
  CC      kernel/sys.o
  CC      fs/nfs/nfs3acl.o
  CC      mm/page_io.o
  CC      drivers/gpu/drm/i915/i915_drm_client.o
  CC      net/ipv6/ndisc.o
  CC      drivers/gpu/drm/i915/i915_getparam.o
  CC      drivers/gpu/drm/ttm/ttm_bo_vm.o
  CC      net/netfilter/xt_SECMARK.o
  CC      mm/swap_state.o
  CC      drivers/acpi/acpica/nssearch.o
  CC      drivers/gpu/drm/i915/i915_ioctl.o
  CC      kernel/umh.o
  CC      arch/x86/kernel/tsc.o
  CC      drivers/tty/tty_buffer.o
  CC      lib/rhashtable.o
  CC      net/ipv6/udp.o
  CC      fs/nfs/nfs4proc.o
  CC      net/ipv6/udplite.o
  CC      fs/inode.o
  CC      net/netfilter/xt_TCPMSS.o
  CC      kernel/trace/trace_nop.o
  CC      drivers/acpi/acpica/nsutils.o
  CC      drivers/acpi/acpica/nswalk.o
  AR      drivers/connector/built-in.a
  CC      drivers/base/power/sysfs.o
  CC      net/wireless/scan.o
  CC      drivers/base/power/generic_ops.o
  CC      drivers/block/loop.o
  AR      drivers/gpu/drm/tilcdc/built-in.a
  AR      drivers/misc/eeprom/built-in.a
  AR      drivers/misc/cb710/built-in.a
  CC      drivers/gpu/drm/virtio/virtgpu_drv.o
  AR      drivers/misc/ti-st/built-in.a
  AR      drivers/mfd/built-in.a
  AR      drivers/misc/lis3lv02d/built-in.a
  CC      kernel/time/tick-broadcast.o
  CC      drivers/gpu/drm/ttm/ttm_module.o
  AR      drivers/misc/cardreader/built-in.a
  AR      drivers/gpu/drm/imx/built-in.a
  AR      drivers/misc/built-in.a
  CC      drivers/block/virtio_blk.o
  AR      drivers/gpu/drm/i2c/built-in.a
  CC      arch/x86/kernel/tsc_msr.o
  CC      drivers/acpi/acpica/nsxfeval.o
  CC      fs/ext4/xattr_security.o
  AR      drivers/gpu/drm/panel/built-in.a
  CC      drivers/acpi/pci_link.o
  CC      drivers/acpi/pci_irq.o
  CC      mm/swapfile.o
  CC      kernel/trace/blktrace.o
  CC      kernel/trace/trace_events.o
  CC      drivers/tty/tty_port.o
  CC      drivers/gpu/drm/ttm/ttm_execbuf_util.o
  CC      kernel/workqueue.o
  CC      drivers/gpu/drm/i915/i915_irq.o
  CC      drivers/base/power/common.o
  CC      mm/swap_slots.o
  CC      net/core/hotdata.o
  CC      mm/dmapool.o
  CC      fs/nfs/nfs4xdr.o
  CC      drivers/gpu/drm/virtio/virtgpu_kms.o
  CC      kernel/trace/trace_export.o
  CC      drivers/gpu/drm/ttm/ttm_range_manager.o
  CC      net/sunrpc/auth_gss/gss_rpc_upcall.o
  CC      mm/hugetlb.o
  CC      drivers/acpi/acpica/nsxfname.o
  CC      arch/x86/kernel/io_delay.o
  CC      lib/base64.o
  CC      drivers/acpi/acpica/nsxfobj.o
  CC      drivers/base/power/qos.o
  CC      net/sunrpc/auth_gss/gss_rpc_xdr.o
  CC      lib/once.o
  CC      drivers/acpi/acpi_apd.o
  CC      kernel/time/tick-broadcast-hrtimer.o
  CC      drivers/gpu/drm/virtio/virtgpu_gem.o
  CC      net/mac80211/wep.o
  CC      kernel/pid.o
  CC      drivers/acpi/acpi_platform.o
  AR      fs/ext4/built-in.a
  CC      arch/x86/kernel/rtc.o
  CC      drivers/acpi/acpi_pnp.o
  CC      net/wireless/nl80211.o
  CC      net/sunrpc/auth_unix.o
  CC      drivers/acpi/power.o
  CC      net/sunrpc/svc.o
  CC      net/core/net-procfs.o
  CC      net/netfilter/xt_conntrack.o
  CC      drivers/acpi/acpica/psargs.o
  CC      drivers/tty/tty_mutex.o
  CC      lib/refcount.o
  CC      mm/mmu_notifier.o
  CC      mm/migrate.o
  CC      kernel/time/tick-oneshot.o
  CC      mm/page_counter.o
  CC      drivers/acpi/event.o
  CC      drivers/gpu/drm/ttm/ttm_resource.o
  CC      drivers/gpu/drm/virtio/virtgpu_vram.o
  CC      kernel/task_work.o
  CC      drivers/base/regmap/regmap.o
  CC      drivers/base/firmware_loader/builtin/main.o
  AR      drivers/nfc/built-in.a
  CC      drivers/base/firmware_loader/main.o
  CC      lib/rcuref.o
  AR      drivers/base/test/built-in.a
  CC      lib/usercopy.o
  CC      lib/errseq.o
  CC      fs/nfs/nfs4state.o
  AR      drivers/gpu/drm/bridge/analogix/built-in.a
  AR      drivers/gpu/drm/bridge/cadence/built-in.a
  AR      drivers/block/built-in.a
  CC      net/wireless/mlme.o
  AR      drivers/gpu/drm/bridge/imx/built-in.a
  AR      drivers/gpu/drm/bridge/synopsys/built-in.a
  AR      drivers/dax/hmem/built-in.a
  AR      drivers/dax/built-in.a
  AR      drivers/gpu/drm/bridge/built-in.a
  CC      lib/bucket_locks.o
  CC      drivers/acpi/acpica/psloop.o
  CC      kernel/trace/trace_event_perf.o
  CC      drivers/dma-buf/dma-buf.o
  CC      fs/attr.o
  CC      arch/x86/kernel/resource.o
  CC      lib/generic-radix-tree.o
  CC      drivers/gpu/drm/virtio/virtgpu_display.o
  CC      drivers/dma-buf/dma-fence.o
  CC      kernel/time/tick-sched.o
  AR      drivers/base/firmware_loader/builtin/built-in.a
  CC      drivers/acpi/acpica/psobject.o
  CC      fs/bad_inode.o
  CC      kernel/trace/trace_events_filter.o
  CC      fs/file.o
  CC      drivers/tty/tty_ldsem.o
  AS      arch/x86/kernel/irqflags.o
  CC      arch/x86/kernel/static_call.o
  CC      net/sunrpc/auth_gss/trace.o
  CC      drivers/gpu/drm/i915/i915_mitigations.o
  CC      drivers/base/power/runtime.o
  CC      arch/x86/kernel/process.o
  CC      kernel/extable.o
  CC      kernel/params.o
  CC      net/mac80211/aead_api.o
  CC      net/ipv6/raw.o
  CC      net/ipv6/icmp.o
  CC      drivers/gpu/drm/i915/i915_module.o
  CC      drivers/acpi/acpica/psopcode.o
  AR      drivers/gpu/drm/hisilicon/built-in.a
  CC      lib/bitmap-str.o
  AR      drivers/gpu/drm/mxsfb/built-in.a
  CC      net/mac80211/wpa.o
  CC      net/mac80211/scan.o
  CC      fs/filesystems.o
  CC      drivers/dma-buf/dma-fence-array.o
  CC      drivers/gpu/drm/ttm/ttm_pool.o
  CC      net/core/netpoll.o
  CC      arch/x86/kernel/ptrace.o
  CC      net/ipv6/mcast.o
  CC      net/netfilter/xt_policy.o
  CC      net/netfilter/xt_state.o
  AR      drivers/base/firmware_loader/built-in.a
  CC      drivers/gpu/drm/ttm/ttm_device.o
  CC      drivers/gpu/drm/virtio/virtgpu_vq.o
  CC      mm/hugetlb_cgroup.o
  CC      drivers/acpi/acpica/psopinfo.o
  CC      fs/namespace.o
  CC      kernel/trace/trace_events_trigger.o
  CC      drivers/tty/tty_baudrate.o
  CC      net/core/fib_rules.o
  CC      net/mac80211/offchannel.o
  CC      arch/x86/kernel/tls.o
  CC      lib/string_helpers.o
  CC      drivers/dma-buf/dma-fence-chain.o
  CC      kernel/time/timer_migration.o
  CC      kernel/kthread.o
  CC      kernel/sys_ni.o
  CC      drivers/acpi/acpica/psparse.o
  CC      drivers/dma-buf/dma-fence-unwrap.o
  CC      kernel/trace/trace_eprobe.o
  CC      drivers/gpu/drm/i915/i915_params.o
  CC      net/ipv6/reassembly.o
  CC      kernel/nsproxy.o
  CC      drivers/base/power/wakeirq.o
  CC      drivers/gpu/drm/i915/i915_pci.o
  CC      drivers/gpu/drm/ttm/ttm_sys_manager.o
  CC      net/core/net-traces.o
  CC      kernel/time/vsyscall.o
  CC      drivers/tty/tty_jobctrl.o
  CC      kernel/trace/trace_kprobe.o
  CC      drivers/acpi/acpica/psscope.o
  CC      net/core/selftests.o
  CC      drivers/tty/n_null.o
  CC      drivers/dma-buf/dma-resv.o
  CC      drivers/tty/pty.o
  CC [M]  net/netfilter/nf_log_syslog.o
  CC      net/ipv4/tcp_output.o
  CC      kernel/notifier.o
  CC      kernel/time/timekeeping_debug.o
  CC      kernel/trace/error_report-traces.o
  CC      drivers/gpu/drm/i915/i915_scatterlist.o
  CC      lib/hexdump.o
  CC      drivers/base/power/main.o
  CC      arch/x86/kernel/step.o
  CC      drivers/gpu/drm/ttm/ttm_agp_backend.o
  CC      lib/kstrtox.o
  CC      drivers/base/component.o
  CC      drivers/acpi/acpica/pstree.o
  CC      drivers/gpu/drm/virtio/virtgpu_fence.o
  CC      kernel/time/namespace.o
  CC      drivers/tty/tty_audit.o
  CC      mm/early_ioremap.o
  CC      net/ipv4/tcp_timer.o
  CC      mm/secretmem.o
  CC      net/sunrpc/svcsock.o
  CC      drivers/tty/sysrq.o
  CC [M]  net/netfilter/xt_mark.o
  CC      fs/nfs/nfs4renewd.o
  CC      drivers/base/regmap/regcache.o
  CC      net/sunrpc/svcauth.o
  CC      mm/hmm.o
  CC      net/mac80211/ht.o
  CC      net/sunrpc/svcauth_unix.o
  AR      drivers/cxl/core/built-in.a
  CC      drivers/acpi/acpica/psutils.o
  CC      fs/nfs/nfs4super.o
  AR      drivers/cxl/built-in.a
  CC      fs/nfs/nfs4file.o
  CC      lib/iomap.o
  CC      drivers/acpi/acpica/pswalk.o
  CC      drivers/base/regmap/regcache-rbtree.o
  AR      drivers/gpu/drm/tiny/built-in.a
  CC      net/sunrpc/auth_gss/gss_krb5_mech.o
  CC      lib/iomap_copy.o
  CC      drivers/macintosh/mac_hid.o
  CC      net/sunrpc/addr.o
  CC      net/sunrpc/auth_gss/gss_krb5_seal.o
  CC      drivers/dma-buf/sync_file.o
  CC      arch/x86/kernel/i8237.o
  CC      arch/x86/kernel/stacktrace.o
  CC      drivers/base/regmap/regcache-flat.o
  AR      drivers/gpu/drm/ttm/built-in.a
  CC      drivers/gpu/drm/i915/i915_suspend.o
  CC      drivers/gpu/drm/i915/i915_switcheroo.o
  CC      net/ipv6/tcp_ipv6.o
  CC      net/ipv4/tcp_ipv4.o
  CC      mm/memfd.o
  AR      drivers/scsi/pcmcia/built-in.a
  CC      drivers/scsi/scsi.o
  CC      mm/ptdump.o
  AR      drivers/nvme/common/built-in.a
  AR      drivers/nvme/host/built-in.a
  CC      drivers/acpi/acpica/psxface.o
  AR      drivers/nvme/target/built-in.a
  AR      drivers/nvme/built-in.a
  CC      drivers/gpu/drm/virtio/virtgpu_object.o
  AR      kernel/time/built-in.a
  CC      drivers/base/regmap/regcache-maple.o
  CC      net/wireless/ibss.o
  CC      drivers/ata/libata-core.o
  CC      net/sunrpc/auth_gss/gss_krb5_unseal.o
  CC      drivers/ata/libata-scsi.o
  CC [M]  net/netfilter/xt_nat.o
  CC      net/core/ptp_classifier.o
  AR      drivers/macintosh/built-in.a
  CC      net/ipv4/tcp_minisocks.o
  AR      drivers/gpu/drm/xlnx/built-in.a
  CC      net/ipv4/tcp_cong.o
  AR      drivers/tty/built-in.a
  AR      drivers/dma-buf/built-in.a
  CC      kernel/trace/power-traces.o
  CC      net/ipv6/ping.o
  CC      lib/devres.o
  CC      net/mac80211/agg-tx.o
  CC      drivers/acpi/acpica/rsaddr.o
  CC      drivers/ata/libata-eh.o
  CC      mm/execmem.o
  CC      kernel/trace/rpm-traces.o
  CC      arch/x86/kernel/reboot.o
  CC      drivers/base/regmap/regmap-debugfs.o
  CC      net/ipv4/tcp_metrics.o
  AR      drivers/net/phy/qcom/built-in.a
  CC      net/ipv6/exthdrs.o
  CC      drivers/net/phy/mdio-boardinfo.o
  CC      net/ipv6/datagram.o
  CC      net/ipv6/ip6_flowlabel.o
  CC      drivers/net/phy/stubs.o
  AR      drivers/net/pse-pd/built-in.a
  CC [M]  net/netfilter/xt_LOG.o
  CC      drivers/net/mdio/acpi_mdio.o
  AR      drivers/net/pcs/built-in.a
  CC [M]  net/netfilter/xt_MASQUERADE.o
  CC      net/sunrpc/auth_gss/gss_krb5_wrap.o
  CC      drivers/acpi/acpica/rscalc.o
  CC      drivers/gpu/drm/virtio/virtgpu_debugfs.o
  CC [M]  net/netfilter/xt_addrtype.o
  CC      drivers/base/power/wakeup.o
  CC      net/sunrpc/rpcb_clnt.o
  CC      net/sunrpc/timer.o
  CC      net/netlabel/netlabel_user.o
  CC      lib/check_signature.o
  CC      net/ipv4/tcp_fastopen.o
  CC      net/netlabel/netlabel_kapi.o
  CC      lib/interval_tree.o
  AR      mm/built-in.a
  AR      drivers/gpu/drm/gud/built-in.a
  CC      drivers/firewire/init_ohci1394_dma.o
  CC      net/core/netprio_cgroup.o
  CC      drivers/gpu/drm/i915/i915_sysfs.o
  CC      lib/assoc_array.o
  AR      drivers/base/regmap/built-in.a
  CC      drivers/base/core.o
  CC      drivers/acpi/acpica/rscreate.o
  CC      drivers/base/power/wakeup_stats.o
  CC      net/core/netclassid_cgroup.o
  CC      arch/x86/kernel/msr.o
  CC      fs/nfs/delegation.o
  CC      drivers/scsi/hosts.o
  CC      fs/seq_file.o
  CC      drivers/net/phy/mdio_devres.o
  CC      drivers/gpu/drm/virtio/virtgpu_plane.o
  CC      fs/nfs/nfs4idmap.o
  CC      drivers/net/mdio/fwnode_mdio.o
  CC      drivers/acpi/acpica/rsdumpinfo.o
  CC      net/sunrpc/auth_gss/gss_krb5_crypto.o
  CC      drivers/acpi/acpica/rsinfo.o
  AR      drivers/firewire/built-in.a
  CC      net/mac80211/agg-rx.o
  CC      drivers/base/power/trace.o
  CC      net/sunrpc/xdr.o
  CC      fs/nfs/callback.o
  CC      drivers/acpi/acpica/rsio.o
  CC      net/sunrpc/sunrpc_syms.o
  CC      drivers/gpu/drm/virtio/virtgpu_ioctl.o
  CC      drivers/gpu/drm/virtio/virtgpu_prime.o
  CC      fs/nfs/callback_xdr.o
  CC      net/ipv4/tcp_rate.o
  CC      drivers/acpi/acpica/rsirq.o
  CC      lib/bitrev.o
  CC      drivers/acpi/acpica/rslist.o
  CC      drivers/gpu/drm/i915/i915_utils.o
  CC      drivers/cdrom/cdrom.o
  CC      kernel/trace/trace_dynevent.o
  CC      net/ipv6/inet6_connection_sock.o
  AR      drivers/auxdisplay/built-in.a
  AR      net/netfilter/built-in.a
  CC      drivers/pcmcia/cs.o
  CC      net/core/dst_cache.o
  CC      drivers/pcmcia/socket_sysfs.o
  CC      arch/x86/kernel/cpuid.o
  CC      drivers/usb/common/common.o
  CC      drivers/usb/core/usb.o
  CC      drivers/pcmcia/cardbus.o
  CC      drivers/usb/core/hub.o
  CC      drivers/gpu/drm/virtio/virtgpu_trace_points.o
  CC      net/rfkill/core.o
  CC      net/netlabel/netlabel_domainhash.o
  CC      drivers/net/phy/phy.o
  AR      drivers/usb/phy/built-in.a
  CC      net/rfkill/input.o
  CC      drivers/usb/mon/mon_main.o
  CC      drivers/usb/host/pci-quirks.o
  CC      lib/crc-ccitt.o
  CC      lib/crc16.o
  CC      drivers/scsi/scsi_ioctl.o
  CC      drivers/usb/host/ehci-hcd.o
  CC      net/sunrpc/cache.o
  CC      drivers/acpi/acpica/rsmemory.o
  CC      net/ipv4/tcp_recovery.o
  AR      drivers/net/mdio/built-in.a
  CC      net/sunrpc/rpc_pipe.o
  AR      drivers/base/power/built-in.a
  CC      drivers/base/bus.o
  CC      drivers/net/phy/phy-c45.o
  CC      net/sunrpc/auth_gss/gss_krb5_keys.o
  CC      net/core/gro_cells.o
  CC      net/netlabel/netlabel_addrlist.o
  HOSTCC  lib/gen_crc32table
  CC      arch/x86/kernel/early-quirks.o
  CC      drivers/usb/class/usblp.o
  CC      drivers/acpi/acpica/rsmisc.o
  CC      lib/xxhash.o
  CC      net/sunrpc/sysfs.o
  CC      drivers/scsi/scsicam.o
  CC      fs/xattr.o
  CC      drivers/usb/common/debug.o
  CC      drivers/ata/libata-transport.o
  CC      kernel/trace/trace_probe.o
  AR      drivers/net/ethernet/3com/built-in.a
  CC      drivers/net/ethernet/8390/ne2k-pci.o
  CC      drivers/usb/mon/mon_stat.o
  AR      drivers/net/ethernet/adaptec/built-in.a
  CC      net/ipv4/tcp_ulp.o
  CC      net/9p/mod.o
  CC      drivers/gpu/drm/i915/intel_clock_gating.o
  AR      drivers/usb/common/built-in.a
  CC      drivers/pcmcia/ds.o
  CC      drivers/gpu/drm/i915/intel_device_info.o
  CC      drivers/pcmcia/pcmcia_resource.o
  CC      drivers/gpu/drm/virtio/virtgpu_submit.o
  CC      net/mac80211/vht.o
  AR      drivers/net/ethernet/agere/built-in.a
  CC      kernel/trace/trace_uprobe.o
  CC      kernel/ksysfs.o
  AR      net/rfkill/built-in.a
  CC      net/dns_resolver/dns_key.o
  CC      net/dns_resolver/dns_query.o
  CC      kernel/trace/rethook.o
  CC      net/ipv6/udp_offload.o
  CC      drivers/gpu/drm/i915/intel_memory_region.o
  CC      drivers/scsi/scsi_error.o
  CC      drivers/gpu/drm/i915/intel_pcode.o
  CC      drivers/base/dd.o
  CC      drivers/acpi/acpica/rsserial.o
  CC      fs/nfs/callback_proc.o
  CC      lib/genalloc.o
  AR      net/sunrpc/auth_gss/built-in.a
  CC      lib/percpu_counter.o
  CC      net/sunrpc/svc_xprt.o
  CC      drivers/usb/mon/mon_text.o
  CC      lib/audit.o
  CC      net/9p/client.o
  CC      fs/nfs/nfs4namespace.o
  CC      arch/x86/kernel/smp.o
  CC      net/core/failover.o
  AR      drivers/usb/class/built-in.a
  CC      drivers/ata/libata-trace.o
  CC      drivers/usb/storage/scsiglue.o
  CC      drivers/acpi/acpica/rsutils.o
  CC      drivers/usb/storage/protocol.o
  CC      drivers/ata/libata-sata.o
  AR      drivers/cdrom/built-in.a
  CC      drivers/input/serio/serio.o
  CC      drivers/ata/libata-sff.o
  CC      kernel/cred.o
  CC      net/netlabel/netlabel_mgmt.o
  AR      drivers/gpu/drm/virtio/built-in.a
  CC      drivers/usb/mon/mon_bin.o
  CC      drivers/net/phy/phy-core.o
  CC      drivers/net/phy/phy_device.o
  AR      net/dns_resolver/built-in.a
  CC      drivers/net/ethernet/8390/8390.o
  CC      drivers/scsi/scsi_lib.o
  CC      net/devres.o
  CC      net/handshake/alert.o
  CC      net/9p/error.o
  CC      drivers/usb/storage/transport.o
  CC      drivers/gpu/drm/i915/intel_region_ttm.o
  CC      net/sunrpc/xprtmultipath.o
  CC      drivers/scsi/constants.o
  CC      net/socket.o
  CC      drivers/pcmcia/cistpl.o
  CC      net/sysctl_net.o
  CC      lib/syscall.o
  CC      drivers/acpi/acpica/rsxface.o
  CC      net/netlabel/netlabel_unlabeled.o
  CC      net/ipv4/tcp_offload.o
  CC      drivers/base/syscore.o
  CC      drivers/input/keyboard/atkbd.o
  AR      drivers/input/joystick/built-in.a
  CC      drivers/input/mouse/psmouse-base.o
  CC      drivers/rtc/lib.o
  CC      drivers/rtc/class.o
  AR      drivers/input/tablet/built-in.a
  CC      net/mac80211/he.o
  CC      net/ipv6/seg6.o
  CC      lib/errname.o
  CC      drivers/input/serio/i8042.o
  CC      drivers/base/driver.o
  CC      lib/nlattr.o
  AR      net/core/built-in.a
  CC      drivers/acpi/acpica/tbdata.o
  AR      drivers/input/touchscreen/built-in.a
  CC      drivers/usb/storage/usb.o
  CC      drivers/acpi/acpica/tbfadt.o
  CC      net/ipv6/fib6_notifier.o
  CC      drivers/usb/core/hcd.o
  CC      fs/nfs/nfs4getroot.o
  CC      drivers/rtc/interface.o
  CC      drivers/gpu/drm/i915/intel_runtime_pm.o
  CC      fs/libfs.o
  CC      drivers/input/mouse/synaptics.o
  CC      arch/x86/kernel/smpboot.o
  CC      net/ipv4/tcp_plb.o
  AR      kernel/trace/built-in.a
  CC      kernel/reboot.o
  CC      kernel/async.o
  CC      drivers/acpi/evged.o
  AR      drivers/usb/mon/built-in.a
  CC      net/ipv6/rpl.o
  CC      fs/nfs/nfs4client.o
  CC      drivers/net/phy/linkmode.o
  CC      drivers/acpi/sysfs.o
  CC      kernel/range.o
  CC      kernel/smpboot.o
  CC      drivers/rtc/nvmem.o
  AR      drivers/net/ethernet/8390/built-in.a
  CC      drivers/rtc/dev.o
  AR      drivers/usb/misc/built-in.a
  AR      drivers/net/ethernet/alacritech/built-in.a
  CC      drivers/usb/storage/initializers.o
  AR      drivers/net/ethernet/alteon/built-in.a
  CC      fs/fs-writeback.o
  CC      drivers/acpi/acpica/tbfind.o
  AR      drivers/net/ethernet/amazon/built-in.a
  AR      drivers/net/ethernet/amd/built-in.a
  AR      drivers/net/ethernet/aquantia/built-in.a
  CC      net/netlabel/netlabel_cipso_v4.o
  AR      drivers/net/ethernet/arc/built-in.a
  CC      drivers/usb/host/ehci-pci.o
  AR      drivers/net/ethernet/asix/built-in.a
  AR      drivers/net/ethernet/atheros/built-in.a
  CC      drivers/usb/host/ohci-hcd.o
  AR      drivers/net/ethernet/cadence/built-in.a
  CC      drivers/acpi/acpica/tbinstal.o
  CC      drivers/net/ethernet/broadcom/bnx2.o
  CC      drivers/base/class.o
  CC      net/9p/protocol.o
  CC      net/handshake/genl.o
  AR      drivers/input/keyboard/built-in.a
  CC      drivers/net/ethernet/broadcom/tg3.o
  CC      drivers/input/mouse/focaltech.o
  CC      drivers/input/mouse/alps.o
  CC      drivers/pcmcia/pcmcia_cis.o
  CC      net/9p/trans_common.o
  CC      net/ipv4/datagram.o
  CC      drivers/acpi/property.o
  CC      drivers/scsi/scsi_lib_dma.o
  CC      drivers/base/platform.o
  CC      drivers/net/phy/mdio_bus.o
  CC      net/mac80211/s1g.o
  AR      drivers/net/wireless/admtek/built-in.a
  CC      net/mac80211/ibss.o
  AR      drivers/net/wireless/ath/built-in.a
  CC      drivers/acpi/acpica/tbprint.o
  CC      lib/cpu_rmap.o
  CC      drivers/input/serio/serport.o
  AR      drivers/net/wireless/atmel/built-in.a
  CC      drivers/input/serio/libps2.o
  AR      drivers/net/wireless/broadcom/built-in.a
  CC      drivers/rtc/proc.o
  CC      net/netlabel/netlabel_calipso.o
  AR      drivers/net/wireless/intel/built-in.a
  AR      drivers/net/wireless/intersil/built-in.a
  CC      lib/dynamic_queue_limits.o
  CC      net/ipv6/ioam6.o
  AR      drivers/net/wireless/marvell/built-in.a
  CC      drivers/rtc/sysfs.o
  CC      drivers/net/phy/mdio_device.o
  AR      drivers/net/wireless/mediatek/built-in.a
  AR      drivers/net/wireless/microchip/built-in.a
  CC      drivers/acpi/debugfs.o
  CC      drivers/pcmcia/rsrc_mgr.o
  CC      drivers/usb/storage/sierra_ms.o
  AR      drivers/net/wireless/purelifi/built-in.a
  CC      drivers/ata/libata-pmp.o
  AR      drivers/net/wireless/quantenna/built-in.a
  AR      drivers/net/wireless/ralink/built-in.a
  AR      drivers/net/wireless/realtek/built-in.a
  CC      drivers/ata/libata-acpi.o
  AR      drivers/net/wireless/rsi/built-in.a
  AR      drivers/net/wireless/silabs/built-in.a
  AR      drivers/net/wireless/st/built-in.a
  AR      drivers/net/wireless/ti/built-in.a
  AR      drivers/net/wireless/zydas/built-in.a
  CC      kernel/ucount.o
  AR      drivers/net/wireless/virtual/built-in.a
  AR      drivers/net/wireless/built-in.a
  CC      kernel/regset.o
  CC      drivers/acpi/acpica/tbutils.o
  CC      drivers/base/cpu.o
  CC      drivers/gpu/drm/i915/intel_sbi.o
  CC      drivers/gpu/drm/i915/intel_step.o
  CC      drivers/pcmcia/rsrc_nonstatic.o
  CC      net/handshake/netlink.o
  CC      arch/x86/kernel/tsc_sync.o
  CC      drivers/usb/early/ehci-dbgp.o
  CC      lib/glob.o
  AR      drivers/gpu/drm/solomon/built-in.a
  CC      net/9p/trans_fd.o
  CC      drivers/acpi/acpi_lpat.o
  CC      drivers/rtc/rtc-mc146818-lib.o
  CC      net/handshake/request.o
  CC      drivers/base/firmware.o
  CC      drivers/usb/core/urb.o
  CC      drivers/scsi/scsi_scan.o
  CC      drivers/base/init.o
  CC      fs/nfs/nfs4session.o
  CC      kernel/ksyms_common.o
  CC      fs/nfs/dns_resolve.o
  CC      drivers/gpu/drm/i915/intel_uncore.o
  CC      net/sunrpc/stats.o
  AR      drivers/input/serio/built-in.a
  CC      drivers/i2c/algos/i2c-algo-bit.o
  CC      fs/nfs/nfs4trace.o
  CC      drivers/i2c/busses/i2c-i801.o
  AR      drivers/i3c/built-in.a
  CC      drivers/acpi/acpi_pcc.o
  CC      drivers/gpu/drm/i915/intel_wakeref.o
  CC      drivers/acpi/ac.o
  AR      drivers/media/i2c/built-in.a
  CC      drivers/acpi/acpica/tbxface.o
  CC      drivers/acpi/button.o
  AR      drivers/media/tuners/built-in.a
  AR      drivers/media/rc/keymaps/built-in.a
  AR      drivers/media/rc/built-in.a
  AR      drivers/media/common/b2c2/built-in.a
  AR      drivers/media/platform/allegro-dvt/built-in.a
  CC      drivers/usb/storage/option_ms.o
  AR      drivers/media/common/saa7146/built-in.a
  AR      drivers/media/platform/amlogic/meson-ge2d/built-in.a
  AR      drivers/media/common/siano/built-in.a
  AR      drivers/media/platform/amlogic/built-in.a
  AR      drivers/media/common/v4l2-tpg/built-in.a
  AR      drivers/media/platform/amphion/built-in.a
  AR      drivers/media/common/videobuf2/built-in.a
  AR      drivers/media/common/built-in.a
  AR      drivers/media/platform/aspeed/built-in.a
  AR      drivers/media/platform/atmel/built-in.a
  CC      arch/x86/kernel/setup_percpu.o
  AR      drivers/media/pci/ttpci/built-in.a
  CC      lib/strncpy_from_user.o
  AR      drivers/media/platform/broadcom/built-in.a
  CC      drivers/base/map.o
  CC      drivers/usb/host/ohci-pci.o
  AR      drivers/media/pci/b2c2/built-in.a
  CC      drivers/usb/host/uhci-hcd.o
  CC      net/ipv4/raw.o
  AR      drivers/media/platform/cadence/built-in.a
  AR      drivers/media/pci/pluto2/built-in.a
  AR      drivers/media/platform/chips-media/coda/built-in.a
  AR      drivers/media/pci/dm1105/built-in.a
  AR      drivers/media/platform/chips-media/wave5/built-in.a
  CC      net/ipv4/udp.o
  AR      drivers/media/pci/pt1/built-in.a
  AR      drivers/media/platform/chips-media/built-in.a
  AR      drivers/media/pci/pt3/built-in.a
  AR      drivers/media/platform/intel/built-in.a
  AR      drivers/media/pci/mantis/built-in.a
  AR      net/netlabel/built-in.a
  AR      drivers/media/platform/marvell/built-in.a
  CC      lib/strnlen_user.o
  AR      drivers/media/pci/ngene/built-in.a
  AR      drivers/media/pci/ddbridge/built-in.a
  AR      drivers/media/platform/mediatek/jpeg/built-in.a
  AR      drivers/media/pci/saa7146/built-in.a
  AR      drivers/media/platform/mediatek/mdp/built-in.a
  AR      drivers/media/pci/smipcie/built-in.a
  AR      drivers/media/pci/netup_unidvb/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/common/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/encoder/built-in.a
  AR      drivers/media/pci/intel/ipu3/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/decoder/built-in.a
  AR      drivers/media/pci/intel/ivsc/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/built-in.a
  AR      drivers/media/pci/intel/built-in.a
  AR      drivers/media/pci/built-in.a
  AR      drivers/media/platform/mediatek/vpu/built-in.a
  CC      drivers/rtc/rtc-cmos.o
  CC      net/ipv4/udplite.o
  AR      drivers/media/platform/mediatek/mdp3/built-in.a
  CC      drivers/acpi/acpica/tbxfload.o
  CC      net/9p/trans_virtio.o
  AR      drivers/media/platform/mediatek/built-in.a
  CC      net/ipv4/udp_offload.o
  CC      net/ipv4/arp.o
  AR      drivers/media/usb/b2c2/built-in.a
  AR      drivers/media/platform/microchip/built-in.a
  CC      drivers/ata/libata-pata-timings.o
  AR      drivers/media/usb/dvb-usb/built-in.a
  AR      drivers/media/platform/nuvoton/built-in.a
  CC      drivers/base/devres.o
  CC      drivers/base/attribute_container.o
  AR      drivers/media/usb/dvb-usb-v2/built-in.a
  AR      drivers/media/platform/nvidia/tegra-vde/built-in.a
  AR      drivers/media/platform/nvidia/built-in.a
  CC      drivers/net/phy/swphy.o
  AR      drivers/media/usb/s2255/built-in.a
  CC      drivers/input/mouse/byd.o
  CC      drivers/pcmcia/yenta_socket.o
  CC      kernel/groups.o
  AR      drivers/media/platform/nxp/dw100/built-in.a
  AR      drivers/media/usb/siano/built-in.a
  AR      drivers/media/usb/ttusb-budget/built-in.a
  AR      drivers/media/platform/nxp/imx-jpeg/built-in.a
  AR      drivers/usb/early/built-in.a
  CC      drivers/ata/ahci.o
  AR      drivers/media/mmc/siano/built-in.a
  AR      drivers/media/usb/ttusb-dec/built-in.a
  AR      drivers/media/platform/nxp/imx8-isi/built-in.a
  AR      drivers/media/mmc/built-in.a
  AR      drivers/media/usb/built-in.a
  AR      drivers/media/firewire/built-in.a
  AR      drivers/media/spi/built-in.a
  AR      drivers/media/platform/nxp/built-in.a
  CC      net/wireless/sme.o
  CC      net/wireless/chan.o
  CC      drivers/ata/libahci.o
  AR      drivers/media/platform/qcom/camss/built-in.a
  AR      drivers/media/platform/renesas/rcar-vin/built-in.a
  CC      drivers/usb/core/message.o
  AR      drivers/media/platform/qcom/venus/built-in.a
  AR      drivers/media/platform/renesas/rzg2l-cru/built-in.a
  AR      drivers/media/platform/qcom/built-in.a
  AR      drivers/media/platform/renesas/vsp1/built-in.a
  CC      net/wireless/ethtool.o
  AR      drivers/media/platform/renesas/built-in.a
  CC      net/sunrpc/sysctl.o
  CC      net/wireless/mesh.o
  AR      drivers/media/platform/rockchip/rga/built-in.a
  AR      drivers/media/platform/rockchip/rkisp1/built-in.a
  AR      drivers/i2c/algos/built-in.a
  AR      drivers/media/platform/rockchip/built-in.a
  CC      drivers/usb/core/driver.o
  CC [M]  drivers/gpu/drm/scheduler/sched_main.o
  AR      drivers/media/platform/samsung/exynos-gsc/built-in.a
  CC      arch/x86/kernel/mpparse.o
  AR      drivers/media/platform/samsung/exynos4-is/built-in.a
  CC      drivers/usb/storage/usual-tables.o
  AR      drivers/media/platform/samsung/s3c-camif/built-in.a
  CC      drivers/acpi/acpica/tbxfroot.o
  CC [M]  drivers/gpu/drm/scheduler/sched_fence.o
  CC      lib/net_utils.o
  AR      drivers/media/platform/samsung/s5p-g2d/built-in.a
  CC      fs/nfs/nfs4sysctl.o
  AR      drivers/media/platform/samsung/s5p-jpeg/built-in.a
  AR      drivers/media/platform/samsung/s5p-mfc/built-in.a
  AR      drivers/media/platform/samsung/built-in.a
  AR      drivers/media/platform/st/sti/bdisp/built-in.a
  CC      drivers/usb/host/xhci.o
  AR      drivers/media/platform/st/sti/c8sectpfe/built-in.a
  CC      net/ipv6/sysctl_net_ipv6.o
  CC      drivers/acpi/acpica/utaddress.o
  AR      drivers/media/platform/st/sti/delta/built-in.a
  CC      lib/sg_pool.o
  AR      drivers/media/platform/st/sti/hva/built-in.a
  AR      drivers/media/platform/st/stm32/built-in.a
  AR      drivers/media/platform/st/built-in.a
  CC      net/ipv6/xfrm6_policy.o
  GEN     drivers/scsi/scsi_devinfo_tbl.c
  CC      drivers/scsi/scsi_devinfo.o
  AR      drivers/media/platform/sunxi/sun4i-csi/built-in.a
  AR      drivers/media/platform/sunxi/sun6i-csi/built-in.a
  AR      drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
  AR      drivers/i2c/busses/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
  AR      drivers/i2c/muxes/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-di/built-in.a
  CC      drivers/input/mouse/logips2pp.o
  CC      drivers/i2c/i2c-boardinfo.o
  AR      drivers/media/platform/sunxi/sun8i-rotate/built-in.a
  AR      drivers/media/platform/sunxi/built-in.a
  CC      drivers/acpi/acpica/utalloc.o
  CC      net/handshake/tlshd.o
  CC      drivers/base/transport_class.o
  AR      drivers/media/platform/ti/am437x/built-in.a
  CC      drivers/acpi/acpica/utascii.o
  AR      drivers/media/platform/ti/cal/built-in.a
  AR      drivers/media/platform/ti/vpe/built-in.a
  AR      drivers/media/platform/ti/davinci/built-in.a
  CC      drivers/net/phy/fixed_phy.o
  AR      drivers/media/platform/ti/j721e-csi2rx/built-in.a
  CC      fs/pnode.o
  AR      drivers/media/platform/ti/omap/built-in.a
  CC      net/handshake/trace.o
  AR      drivers/media/platform/ti/omap3isp/built-in.a
  AR      drivers/media/platform/ti/built-in.a
  AR      drivers/usb/storage/built-in.a
  AR      drivers/net/usb/built-in.a
  CC      drivers/input/mouse/lifebook.o
  CC      drivers/ata/ata_piix.o
  AR      drivers/media/platform/verisilicon/built-in.a
  AR      drivers/rtc/built-in.a
  CC      kernel/kcmp.o
  AR      drivers/media/platform/via/built-in.a
  CC      net/ipv4/icmp.o
  AR      drivers/media/platform/xilinx/built-in.a
  CC      net/ipv4/devinet.o
  AR      drivers/media/platform/built-in.a
  CC      drivers/i2c/i2c-core-base.o
  AR      drivers/media/test-drivers/built-in.a
  CC      drivers/usb/host/xhci-mem.o
  AR      drivers/media/built-in.a
  CC      kernel/freezer.o
  CC      net/mac80211/iface.o
  CC      lib/stackdepot.o
  CC      drivers/base/topology.o
  CC      drivers/acpi/acpica/utbuffer.o
  CC      drivers/base/container.o
  AR      net/9p/built-in.a
  CC      drivers/ata/pata_amd.o
  CC      arch/x86/kernel/trace_clock.o
  CC      drivers/usb/host/xhci-ext-caps.o
  CC      drivers/input/mouse/trackpoint.o
  CC      lib/asn1_decoder.o
  AR      drivers/pcmcia/built-in.a
  CC      drivers/ata/pata_oldpiix.o
  AR      drivers/pps/clients/built-in.a
  AR      drivers/pps/generators/built-in.a
  CC      drivers/pps/pps.o
  CC      drivers/input/mouse/cypress_ps2.o
  CC      drivers/ptp/ptp_clock.o
  AR      drivers/input/misc/built-in.a
  CC      drivers/power/supply/power_supply_core.o
  CC      drivers/hwmon/hwmon.o
  CC      drivers/scsi/scsi_sysctl.o
  CC      arch/x86/kernel/trace.o
  CC      drivers/power/supply/power_supply_sysfs.o
  CC      arch/x86/kernel/rethook.o
  CC      net/ipv4/af_inet.o
  CC      drivers/acpi/acpica/utcksum.o
  CC      drivers/usb/core/config.o
  CC      arch/x86/kernel/vmcore_info_32.o
  CC [M]  drivers/gpu/drm/scheduler/sched_entity.o
  CC      drivers/net/mii.o
  CC      kernel/profile.o
  CC      net/ipv6/xfrm6_state.o
  CC      drivers/gpu/drm/i915/vlv_sideband.o
  CC      drivers/power/supply/power_supply_leds.o
  AR      net/sunrpc/built-in.a
  CC      drivers/base/property.o
  CC      drivers/base/cacheinfo.o
  CC      net/ipv4/igmp.o
  CC      drivers/acpi/acpica/utcopy.o
  CC      drivers/net/phy/realtek.o
  AR      drivers/thermal/broadcom/built-in.a
  CC      drivers/input/mouse/psmouse-smbus.o
  AR      drivers/thermal/samsung/built-in.a
  CC      drivers/thermal/intel/intel_tcc.o
  GEN     lib/oid_registry_data.c
  CC      drivers/usb/host/xhci-ring.o
  CC      lib/ucs2_string.o
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC      drivers/pps/kapi.o
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC      drivers/acpi/acpica/utexcep.o
  CC      drivers/thermal/intel/therm_throt.o
  CC      drivers/ata/pata_sch.o
  AR      drivers/net/ethernet/brocade/built-in.a
  CC      arch/x86/kernel/machine_kexec_32.o
  AS      arch/x86/kernel/relocate_kernel_32.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC      arch/x86/kernel/crash_dump_32.o
  CC      drivers/acpi/fan_core.o
  CC      drivers/scsi/scsi_proc.o
  CC      drivers/usb/host/xhci-hub.o
  CC      drivers/scsi/scsi_debugfs.o
  AR      drivers/watchdog/built-in.a
  CC      kernel/stacktrace.o
  CC      drivers/power/supply/power_supply_hwmon.o
  CC      drivers/base/swnode.o
  CC      lib/sbitmap.o
  CC      drivers/acpi/acpica/utdebug.o
  AR      net/handshake/built-in.a
  CC      drivers/acpi/acpica/utdecode.o
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.o
  CC      drivers/acpi/fan_attr.o
  CC      drivers/ptp/ptp_chardev.o
  CC      drivers/gpu/drm/i915/vlv_suspend.o
  CC      drivers/pps/sysfs.o
  CC      kernel/dma.o
  CC      net/ipv6/xfrm6_input.o
  CC      drivers/ptp/ptp_sysfs.o
  AR      drivers/input/mouse/built-in.a
  CC      drivers/input/input.o
  CC      drivers/input/input-compat.o
  AR      drivers/hwmon/built-in.a
  CC      drivers/md/md.o
  CC      drivers/net/loopback.o
  CC      drivers/net/netconsole.o
  CC      net/ipv4/fib_frontend.o
  CC      drivers/usb/core/file.o
  CC      drivers/acpi/acpica/utdelete.o
  AR      fs/nfs/built-in.a
  CC      drivers/acpi/acpica/uterror.o
  CC      drivers/i2c/i2c-core-smbus.o
  CC      fs/splice.o
  CC      drivers/md/md-bitmap.o
  CC      drivers/usb/core/buffer.o
  AR      drivers/power/supply/built-in.a
  CC      drivers/md/md-autodetect.o
  CC      drivers/acpi/acpica/uteval.o
  AR      drivers/power/built-in.a
  CC      net/ipv6/xfrm6_output.o
  AR      drivers/pps/built-in.a
  CC      fs/sync.o
  CC      drivers/md/dm.o
  CC      drivers/i2c/i2c-core-acpi.o
  CC      arch/x86/kernel/crash.o
  CC      drivers/ata/pata_mpiix.o
  CC      arch/x86/kernel/module.o
  CC      drivers/base/auxiliary.o
  AR      drivers/net/phy/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC      drivers/ata/ata_generic.o
  CC      arch/x86/kernel/doublefault_32.o
  CC      kernel/smp.o
  CC      net/ipv4/fib_semantics.o
  CC      net/wireless/ap.o
  CC      drivers/scsi/scsi_trace.o
  CC      drivers/input/input-mt.o
  CC      net/ipv6/xfrm6_protocol.o
  CC      drivers/usb/host/xhci-dbg.o
  CC      lib/group_cpus.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.o
  CC      net/ipv6/netfilter.o
  CC      drivers/acpi/acpica/utglobal.o
  CC      drivers/acpi/acpica/uthex.o
  CC      drivers/ptp/ptp_vclock.o
  CC      drivers/usb/core/sysfs.o
  CC      net/wireless/trace.o
  CC      drivers/base/devtmpfs.o
  CC      lib/fw_table.o
  CC      net/ipv6/proc.o
  CC      drivers/usb/host/xhci-trace.o
  CC      drivers/usb/core/endpoint.o
  AR      drivers/thermal/st/built-in.a
  CC      drivers/usb/host/xhci-debugfs.o
  AR      drivers/net/ethernet/cavium/common/built-in.a
  AR      drivers/net/ethernet/cavium/thunder/built-in.a
  CC      drivers/acpi/acpica/utids.o
  AR      drivers/thermal/qcom/built-in.a
  AR      drivers/net/ethernet/cavium/liquidio/built-in.a
  AR      drivers/net/ethernet/chelsio/built-in.a
  AR      drivers/net/ethernet/cavium/octeon/built-in.a
  AR      drivers/net/ethernet/cavium/built-in.a
  AR      drivers/thermal/tegra/built-in.a
  AR      drivers/net/ethernet/cisco/built-in.a
  AR      drivers/net/ethernet/cortina/built-in.a
  CC      drivers/i2c/i2c-smbus.o
  CC      drivers/thermal/thermal_core.o
  AR      drivers/thermal/mediatek/built-in.a
  CC      drivers/acpi/acpica/utinit.o
  CC      drivers/acpi/acpi_video.o
  CC      net/wireless/ocb.o
  AR      drivers/net/ethernet/dec/tulip/built-in.a
  AR      drivers/net/ethernet/dec/built-in.a
  CC      drivers/usb/host/xhci-pci.o
  CC      arch/x86/kernel/early_printk.o
  CC      net/ipv4/fib_trie.o
  CC      drivers/net/virtio_net.o
  CC      drivers/gpu/drm/i915/soc/intel_dram.o
  AR      drivers/net/ethernet/dlink/built-in.a
  CC      drivers/net/net_failover.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  AR      drivers/ata/built-in.a
  CC      drivers/thermal/thermal_sysfs.o
  CC      net/wireless/pmsr.o
  CC      kernel/uid16.o
  CC      drivers/gpu/drm/i915/soc/intel_gmch.o
  CC      drivers/scsi/scsi_logging.o
  AR      drivers/thermal/intel/built-in.a
  CC      drivers/acpi/video_detect.o
  AR      lib/lib.a
  CC      drivers/thermal/thermal_trip.o
  GEN     lib/crc32table.h
  CC      arch/x86/kernel/hpet.o
  CC      lib/oid_registry.o
  CC      net/mac80211/link.o
  CC      drivers/acpi/acpica/utlock.o
  GEN     net/wireless/shipped-certs.c
  CC      drivers/acpi/acpica/utmath.o
  CC      drivers/ptp/ptp_kvm_x86.o
  CC      drivers/input/input-poller.o
  CC      drivers/scsi/scsi_pm.o
  CC      drivers/scsi/scsi_bsg.o
  CC      net/ipv4/fib_notifier.o
  CC      drivers/usb/core/devio.o
  CC      drivers/acpi/acpica/utmisc.o
  CC      arch/x86/kernel/amd_nb.o
  CC      fs/utimes.o
  CC      net/ipv6/syncookies.o
  CC      drivers/base/module.o
  CC      drivers/usb/core/notify.o
  CC      lib/crc32.o
  CC      drivers/thermal/thermal_helpers.o
  CC      net/ipv4/inet_fragment.o
  CC      net/mac80211/rate.o
  CC      drivers/acpi/acpica/utmutex.o
  AR      drivers/i2c/built-in.a
  CC      fs/d_path.o
  CC      arch/x86/kernel/kvm.o
  CC      drivers/acpi/acpica/utnonansi.o
  CC      drivers/input/ff-core.o
  CC      kernel/kallsyms.o
  CC      drivers/base/devcoredump.o
  CC      drivers/acpi/acpica/utobject.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC      drivers/scsi/scsi_common.o
  CC      drivers/acpi/processor_driver.o
  CC      net/ipv4/ping.o
  CC [M]  drivers/gpu/drm/xe/xe_device_sysfs.o
  CC      drivers/cpufreq/cpufreq.o
  CC      drivers/ptp/ptp_kvm_common.o
  CC      drivers/scsi/scsi_transport_spi.o
  CC      drivers/cpuidle/governors/menu.o
  CC      drivers/acpi/acpica/utosi.o
  CC      drivers/cpuidle/governors/haltpoll.o
  CC      kernel/acct.o
  CC      drivers/md/dm-table.o
  CC      arch/x86/kernel/kvmclock.o
  CC      net/mac80211/michael.o
  CC      net/ipv4/ip_tunnel_core.o
  CC      drivers/gpu/drm/i915/soc/intel_pch.o
  AR      lib/built-in.a
  CC      drivers/thermal/thermal_hwmon.o
  CC      drivers/md/dm-target.o
  CC      drivers/scsi/virtio_scsi.o
  CC      drivers/md/dm-linear.o
  CC      drivers/md/dm-stripe.o
  CC      kernel/vmcore_info.o
  CC      drivers/md/dm-ioctl.o
  AR      drivers/net/ethernet/emulex/built-in.a
  CC      net/ipv6/calipso.o
  CC      net/ipv4/gre_offload.o
  CC      drivers/usb/core/generic.o
  CC      arch/x86/kernel/paravirt.o
  AR      drivers/net/ethernet/engleder/built-in.a
  CC      net/ipv4/metrics.o
  CC      drivers/gpu/drm/drm_aperture.o
  CC      drivers/input/touchscreen.o
  CC      drivers/acpi/processor_thermal.o
  CC      drivers/base/platform-msi.o
  CC      drivers/acpi/acpica/utownerid.o
  CC      drivers/acpi/acpica/utpredef.o
  CC      fs/stack.o
  AR      drivers/mmc/built-in.a
  AR      drivers/ufs/built-in.a
  CC      drivers/thermal/gov_step_wise.o
  AR      drivers/leds/trigger/built-in.a
  AR      drivers/leds/blink/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  AR      drivers/ptp/built-in.a
  AR      drivers/leds/simple/built-in.a
  CC      drivers/leds/led-core.o
  AR      drivers/firmware/arm_ffa/built-in.a
  AR      drivers/firmware/arm_scmi/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_drm_client.o
  AR      drivers/firmware/broadcom/built-in.a
  AR      drivers/firmware/cirrus/built-in.a
  AR      drivers/firmware/meson/built-in.a
  AR      drivers/firmware/microchip/built-in.a
  CC      drivers/gpu/drm/drm_atomic.o
  AR      drivers/crypto/stm32/built-in.a
  AR      drivers/crypto/xilinx/built-in.a
  AR      drivers/usb/host/built-in.a
  AR      drivers/crypto/hisilicon/built-in.a
  CC      drivers/firmware/efi/efi-bgrt.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC      drivers/clocksource/acpi_pm.o
  AR      drivers/crypto/intel/keembay/built-in.a
  CC      drivers/hid/usbhid/hid-core.o
  AR      drivers/crypto/intel/ixp4xx/built-in.a
  CC      drivers/firmware/efi/libstub/efi-stub-helper.o
  AR      drivers/crypto/intel/built-in.a
  AR      drivers/platform/x86/amd/built-in.a
  CC      drivers/firmware/efi/libstub/gop.o
  AR      drivers/crypto/starfive/built-in.a
  CC      drivers/acpi/acpica/utresdecode.o
  AR      drivers/crypto/built-in.a
  CC      drivers/firmware/efi/libstub/secureboot.o
  AR      drivers/platform/x86/intel/built-in.a
  CC      drivers/gpu/drm/i915/i915_memcpy.o
  CC      drivers/platform/x86/wmi.o
  CC      drivers/usb/core/quirks.o
  CC      drivers/base/physical_location.o
  CC      net/ipv6/ah6.o
  CC      drivers/input/ff-memless.o
  AR      drivers/platform/surface/built-in.a
  CC      fs/fs_struct.o
  CC      arch/x86/kernel/pvclock.o
  CC      drivers/mailbox/mailbox.o
  CC      kernel/elfcorehdr.o
  AR      drivers/cpuidle/governors/built-in.a
  CC      drivers/cpuidle/cpuidle.o
  CC      drivers/hid/hid-core.o
  CC      drivers/mailbox/pcc.o
  CC      drivers/leds/led-class.o
  CC      drivers/platform/x86/wmi-bmof.o
  CC      drivers/thermal/gov_user_space.o
  CC      drivers/cpuidle/driver.o
  CC      kernel/crash_reserve.o
  CC      drivers/platform/x86/eeepc-laptop.o
  CC      drivers/gpu/drm/i915/i915_mm.o
  CC      drivers/acpi/acpica/utresrc.o
  CC      arch/x86/kernel/pcspeaker.o
  CC      net/ipv4/netlink.o
  CC      drivers/base/trace.o
  CC      drivers/scsi/sd.o
  CC      drivers/md/dm-io.o
  CC      drivers/scsi/sr.o
  CC      drivers/firmware/efi/efi.o
  CC      net/ipv4/nexthop.o
  CC      drivers/md/dm-kcopyd.o
  CC      drivers/clocksource/i8253.o
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC      drivers/gpu/drm/i915/i915_sw_fence.o
  AR      drivers/thermal/built-in.a
  CC      drivers/usb/core/devices.o
  CC      fs/statfs.o
  CC      drivers/input/sparse-keymap.o
  CC      fs/fs_pin.o
  CC      net/ipv4/udp_tunnel_stub.o
  CC      drivers/firmware/efi/vars.o
  CC      drivers/leds/led-triggers.o
  CC      drivers/cpuidle/governor.o
  CC      arch/x86/kernel/check.o
  CC [M]  drivers/gpu/drm/xe/xe_exec_queue.o
  CC      drivers/acpi/acpica/utstate.o
  CC      fs/nsfs.o
  AR      drivers/mailbox/built-in.a
  CC      drivers/scsi/sr_ioctl.o
  AR      drivers/perf/built-in.a
  CC      drivers/scsi/sr_vendor.o
  CC      drivers/cpufreq/freq_table.o
  CC      fs/fs_types.o
  CC      net/mac80211/tkip.o
  CC      arch/x86/kernel/uprobes.o
  CC      drivers/firmware/efi/libstub/tpm.o
  CC      drivers/platform/x86/p2sb.o
  CC      drivers/md/dm-sysfs.o
  AR      drivers/hwtracing/intel_th/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC      arch/x86/kernel/perf_regs.o
  CC      kernel/kexec_core.o
  AR      drivers/android/built-in.a
  CC      drivers/firmware/efi/reboot.o
  AR      drivers/clocksource/built-in.a
  CC      drivers/usb/core/phy.o
  AR      drivers/net/ethernet/broadcom/built-in.a
  AR      drivers/net/ethernet/ezchip/built-in.a
  AR      drivers/net/ethernet/fujitsu/built-in.a
  AR      drivers/net/ethernet/fungible/built-in.a
  AR      drivers/net/ethernet/google/built-in.a
  CC      drivers/usb/core/port.o
  AR      drivers/net/ethernet/huawei/built-in.a
  CC      drivers/acpi/acpica/utstring.o
  CC      drivers/net/ethernet/intel/e1000/e1000_main.o
  CC      drivers/usb/core/hcd-pci.o
  CC      fs/fs_context.o
  CC      drivers/gpu/drm/i915/i915_sw_fence_work.o
  CC      drivers/hid/usbhid/hiddev.o
  CC      drivers/hid/usbhid/hid-pidff.o
  CC      drivers/net/ethernet/intel/e1000e/82571.o
  CC      drivers/input/vivaldi-fmap.o
  AR      drivers/base/built-in.a
  CC      drivers/net/ethernet/intel/e1000e/ich8lan.o
  CC      drivers/cpufreq/cpufreq_performance.o
  CC      drivers/net/ethernet/intel/e1000e/80003es2lan.o
  CC      drivers/gpu/drm/drm_atomic_uapi.o
  CC      drivers/cpuidle/sysfs.o
  CC      drivers/cpufreq/cpufreq_userspace.o
  CC      net/ipv6/esp6.o
  CC      drivers/cpuidle/poll_state.o
  CC      net/wireless/shipped-certs.o
  CC      drivers/acpi/acpica/utstrsuppt.o
  AR      drivers/leds/built-in.a
  CC      fs/fs_parser.o
  AR      drivers/nvmem/layouts/built-in.a
  CC      fs/fsopen.o
  CC      drivers/nvmem/core.o
  AR      drivers/platform/x86/built-in.a
  CC      fs/init.o
  AR      drivers/platform/built-in.a
  CC      drivers/firmware/efi/memattr.o
  CC      drivers/acpi/acpica/utstrtoul64.o
  CC      drivers/usb/core/usb-acpi.o
  CC      drivers/firmware/efi/libstub/file.o
  CC      net/ipv6/sit.o
  CC      drivers/gpu/drm/i915/i915_syncmap.o
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC      arch/x86/kernel/tracepoint.o
  CC      drivers/net/ethernet/intel/e1000e/mac.o
  CC      drivers/input/input-leds.o
  CC      drivers/input/evdev.o
  CC      drivers/acpi/processor_idle.o
  CC      drivers/cpuidle/cpuidle-haltpoll.o
  CC      arch/x86/kernel/itmt.o
  CC      drivers/acpi/acpica/utxface.o
  CC      net/mac80211/aes_cmac.o
  CC      drivers/md/dm-stats.o
  CC      arch/x86/kernel/umip.o
  CC      drivers/firmware/efi/libstub/mem.o
  CC      drivers/scsi/sg.o
  CC      arch/x86/kernel/unwind_frame.o
  CC      drivers/hid/hid-input.o
  CC      drivers/md/dm-rq.o
  CC      drivers/acpi/acpica/utxfinit.o
  CC      drivers/cpufreq/cpufreq_ondemand.o
  CC      net/ipv6/addrconf_core.o
  CC      drivers/net/ethernet/intel/e1000/e1000_hw.o
  CC      drivers/gpu/drm/drm_auth.o
  CC      kernel/crash_core.o
  CC      drivers/md/dm-io-rewind.o
  CC      drivers/md/dm-builtin.o
  CC      drivers/gpu/drm/i915/i915_user_extensions.o
  CC      net/mac80211/aes_gmac.o
  CC [M]  drivers/gpu/drm/xe/xe_gpu_scheduler.o
  AR      drivers/cpuidle/built-in.a
  CC      fs/kernel_read_file.o
  CC      fs/mnt_idmapping.o
  CC      drivers/hid/hid-quirks.o
  CC      drivers/hid/hid-debug.o
  CC      drivers/gpu/drm/drm_blend.o
  CC      fs/remap_range.o
  CC      drivers/acpi/acpica/utxferror.o
  CC      drivers/net/ethernet/intel/e100.o
  CC      net/mac80211/fils_aead.o
  CC      drivers/acpi/acpica/utxfmutex.o
  AR      drivers/usb/core/built-in.a
  AR      drivers/usb/built-in.a
  CC      net/mac80211/cfg.o
  CC      drivers/hid/hidraw.o
  CC      net/mac80211/ethtool.o
  AR      drivers/hid/usbhid/built-in.a
  CC      drivers/cpufreq/cpufreq_governor.o
  CC      fs/pidfs.o
  CC      drivers/firmware/efi/libstub/random.o
  CC      drivers/firmware/efi/libstub/randomalloc.o
  CC      drivers/gpu/drm/i915/i915_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gsc.o
  CC      drivers/net/ethernet/intel/e1000e/manage.o
  CC      drivers/net/ethernet/intel/e1000e/nvm.o
  AR      arch/x86/kernel/built-in.a
  AR      drivers/nvmem/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gsc_proxy.o
  CC      fs/buffer.o
  AR      arch/x86/built-in.a
  CC      drivers/md/dm-raid1.o
  CC      net/ipv6/exthdrs_core.o
  AR      drivers/acpi/acpica/built-in.a
  AR      drivers/net/ethernet/i825xx/built-in.a
  CC      drivers/cpufreq/cpufreq_governor_attr_set.o
  CC      net/mac80211/rx.o
  CC      drivers/md/dm-log.o
  AR      drivers/input/built-in.a
  CC      drivers/md/dm-region-hash.o
  CC      drivers/firmware/efi/tpm.o
  CC      drivers/scsi/scsi_sysfs.o
  CC      drivers/net/ethernet/intel/e1000/e1000_ethtool.o
  CC      kernel/kexec.o
  CC      drivers/acpi/processor_throttling.o
  CC      fs/mpage.o
  CC      drivers/net/ethernet/intel/e1000e/phy.o
  CC      drivers/md/dm-zero.o
  CC      drivers/gpu/drm/drm_bridge.o
  CC      drivers/net/ethernet/intel/e1000/e1000_param.o
  CC      net/ipv4/ip_tunnel.o
  CC      drivers/acpi/processor_perflib.o
  CC      net/ipv4/sysctl_net_ipv4.o
  CC      net/ipv4/proc.o
  CC      net/mac80211/spectmgmt.o
  CC      drivers/gpu/drm/i915/i915_debugfs_params.o
  CC      drivers/firmware/efi/libstub/pci.o
  CC      drivers/gpu/drm/i915/i915_pmu.o
  CC      drivers/gpu/drm/i915/gt/gen2_engine_cs.o
  CC      net/ipv6/ip6_checksum.o
  CC      drivers/cpufreq/acpi-cpufreq.o
  CC      drivers/hid/hid-generic.o
  CC      net/ipv6/ip6_icmp.o
  CC      drivers/firmware/efi/memmap.o
  CC      net/ipv4/fib_rules.o
  CC      fs/proc_namespace.o
  CC      net/mac80211/tx.o
  CC      net/mac80211/key.o
  CC      net/ipv4/ipmr.o
  CC      drivers/net/ethernet/intel/e1000e/param.o
  CC      drivers/acpi/container.o
  CC [M]  drivers/gpu/drm/xe/xe_gsc_submit.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC      drivers/acpi/thermal_lib.o
  CC      drivers/gpu/drm/i915/gt/gen6_engine_cs.o
  CC      drivers/acpi/thermal.o
  CC      kernel/utsname.o
  CC      net/mac80211/util.o
  CC      net/ipv6/output_core.o
  CC      drivers/net/ethernet/intel/e1000e/ethtool.o
  CC      drivers/acpi/nhlt.o
  CC      drivers/acpi/acpi_memhotplug.o
  CC      drivers/firmware/efi/libstub/skip_spaces.o
  CC      drivers/firmware/efi/libstub/lib-cmdline.o
  CC      drivers/acpi/ioapic.o
  AR      drivers/md/built-in.a
  CC      drivers/gpu/drm/drm_cache.o
  CC      drivers/hid/hid-a4tech.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_ccs_mode.o
  CC      drivers/gpu/drm/i915/gt/gen6_ppgtt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC      drivers/net/ethernet/intel/e1000e/netdev.o
  CC      drivers/firmware/efi/libstub/lib-ctype.o
  CC      drivers/firmware/efi/libstub/alignedmem.o
  CC      drivers/cpufreq/amd-pstate.o
  CC      kernel/pid_namespace.o
  CC      drivers/firmware/efi/libstub/relocate.o
  AR      drivers/scsi/built-in.a
  CC      drivers/cpufreq/amd-pstate-trace.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC      drivers/cpufreq/intel_pstate.o
  AR      drivers/net/ethernet/microsoft/built-in.a
  CC      drivers/firmware/efi/capsule.o
  AR      drivers/net/ethernet/litex/built-in.a
  CC      drivers/net/ethernet/intel/e1000e/ptp.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_freq.o
  CC      drivers/firmware/efi/esrt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_idle.o
  AR      drivers/firmware/imx/built-in.a
  CC      drivers/gpu/drm/i915/gt/gen7_renderclear.o
  CC      kernel/stop_machine.o
  CC      drivers/acpi/battery.o
  CC      net/ipv6/protocol.o
  CC      drivers/firmware/efi/runtime-wrappers.o
  CC      net/ipv6/ip6_offload.o
  CC      drivers/gpu/drm/drm_client.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  CC      drivers/gpu/drm/i915/gt/gen8_engine_cs.o
  CC      drivers/acpi/bgrt.o
  CC      drivers/gpu/drm/i915/gt/gen8_ppgtt.o
  CC      drivers/gpu/drm/drm_client_modeset.o
  CC      net/mac80211/parse.o
  AR      drivers/net/ethernet/intel/e1000/built-in.a
  CC      drivers/gpu/drm/drm_color_mgmt.o
  CC      kernel/audit.o
  AR      drivers/firmware/psci/built-in.a
  CC      kernel/auditfilter.o
  AR      drivers/firmware/qcom/built-in.a
  CC      drivers/gpu/drm/drm_connector.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  CC      drivers/hid/hid-apple.o
  CC      net/ipv4/ipmr_base.o
  AR      drivers/firmware/smccc/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  AR      drivers/net/ethernet/marvell/octeon_ep/built-in.a
  CC      drivers/firmware/efi/libstub/printk.o
  AR      drivers/net/ethernet/marvell/octeon_ep_vf/built-in.a
  AR      drivers/net/ethernet/marvell/octeontx2/built-in.a
  AR      drivers/net/ethernet/marvell/prestera/built-in.a
  CC      net/ipv4/syncookies.o
  CC      drivers/net/ethernet/marvell/sky2.o
  AR      drivers/firmware/tegra/built-in.a
  CC      drivers/firmware/efi/capsule-loader.o
  CC      net/mac80211/wme.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_throttle.o
  CC      drivers/firmware/efi/earlycon.o
  AR      drivers/net/ethernet/mellanox/built-in.a
  CC      fs/direct-io.o
  CC      fs/eventpoll.o
  CC      drivers/firmware/efi/libstub/vsprintf.o
  AR      drivers/net/ethernet/micrel/built-in.a
  CC      net/mac80211/chan.o
  AR      drivers/net/ethernet/microchip/built-in.a
  CC      net/ipv4/tunnel4.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  AR      drivers/net/ethernet/mscc/built-in.a
  CC      drivers/acpi/spcr.o
  CC      kernel/auditsc.o
  CC      kernel/audit_watch.o
  CC      kernel/audit_fsnotify.o
  CC      drivers/firmware/efi/libstub/x86-stub.o
  CC      drivers/gpu/drm/drm_crtc.o
  CC      drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
  CC      drivers/gpu/drm/i915/gt/intel_context.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  CC      drivers/gpu/drm/i915/gt/intel_context_sseu.o
  CC      net/ipv6/tcpv6_offload.o
  CC      net/ipv6/exthdrs_offload.o
  CC      net/mac80211/trace.o
  STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
  CC      drivers/gpu/drm/drm_displayid.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
  CC      net/mac80211/mlme.o
  STUBCPY drivers/firmware/efi/libstub/file.stub.o
  CC      drivers/gpu/drm/drm_drv.o
  CC      drivers/gpu/drm/drm_dumb_buffers.o
  CC      drivers/hid/hid-belkin.o
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  AR      drivers/firmware/efi/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  AR      drivers/acpi/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_db_mgr.o
  AR      drivers/net/ethernet/myricom/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_cs.o
  CC      net/ipv4/ipconfig.o
  CC      drivers/gpu/drm/drm_edid.o
  CC      drivers/gpu/drm/drm_eld.o
  CC      net/mac80211/tdls.o
  AR      drivers/firmware/xilinx/built-in.a
  CC      fs/anon_inodes.o
  CC      fs/signalfd.o
  CC      fs/timerfd.o
  AR      drivers/net/ethernet/natsemi/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  AR      drivers/net/ethernet/neterion/built-in.a
  CC      kernel/audit_tree.o
  STUBCPY drivers/firmware/efi/libstub/gop.stub.o
  STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
  STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
  CC      net/ipv6/inet6_hashtables.o
  STUBCPY drivers/firmware/efi/libstub/mem.stub.o
  STUBCPY drivers/firmware/efi/libstub/pci.stub.o
  STUBCPY drivers/firmware/efi/libstub/printk.stub.o
  STUBCPY drivers/firmware/efi/libstub/random.stub.o
  AR      drivers/cpufreq/built-in.a
  STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_pm.o
  CC      kernel/kprobes.o
  STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
  CC      drivers/gpu/drm/i915/gt/intel_engine_user.o
  CC      net/mac80211/ocb.o
  STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
  CC      drivers/gpu/drm/drm_encoder.o
  CC      fs/eventfd.o
  STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
  STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
  CC      drivers/firmware/dmi_scan.o
  CC      drivers/firmware/dmi-id.o
  STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
  STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
  AR      drivers/firmware/efi/libstub/lib.a
  CC      drivers/gpu/drm/i915/gt/intel_execlists_submission.o
  CC      drivers/gpu/drm/drm_file.o
  CC      drivers/hid/hid-cherry.o
  CC      net/ipv6/mcast_snoop.o
  CC      net/mac80211/airtime.o
  CC      kernel/seccomp.o
  CC      drivers/gpu/drm/i915/gt/intel_ggtt.o
  CC      drivers/gpu/drm/drm_fourcc.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_id_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_klv_helpers.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC      fs/aio.o
  CC      drivers/gpu/drm/drm_framebuffer.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC      drivers/gpu/drm/drm_gem.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC      fs/locks.o
  CC      net/mac80211/eht.o
  CC      drivers/firmware/memmap.o
  CC      kernel/relay.o
  CC [M]  drivers/gpu/drm/xe/xe_heci_gsc.o
  CC      net/ipv4/netfilter.o
  CC      drivers/gpu/drm/drm_ioctl.o
  CC      fs/binfmt_misc.o
  CC      kernel/utsname_sysctl.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
  CC      drivers/hid/hid-chicony.o
  AR      drivers/net/ethernet/netronome/built-in.a
  AR      drivers/net/ethernet/ni/built-in.a
  CC      drivers/net/ethernet/nvidia/forcedeth.o
  CC      drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
  CC      drivers/gpu/drm/i915/gt/intel_gt.o
  CC      drivers/gpu/drm/drm_lease.o
  CC      kernel/delayacct.o
  CC      drivers/gpu/drm/drm_managed.o
  CC      fs/binfmt_script.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC      drivers/hid/hid-cypress.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
  CC      drivers/gpu/drm/drm_mm.o
  AR      drivers/net/ethernet/oki-semi/built-in.a
  CC      net/mac80211/led.o
  CC      drivers/gpu/drm/drm_mode_config.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  AR      drivers/firmware/built-in.a
  AR      net/ipv6/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  AR      drivers/net/ethernet/marvell/built-in.a
  CC      drivers/gpu/drm/drm_mode_object.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_ccs_mode.o
  AR      drivers/net/ethernet/packetengines/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
  CC      kernel/taskstats.o
  CC      kernel/tsacct.o
  CC      drivers/gpu/drm/drm_modes.o
  AR      net/wireless/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC      net/mac80211/pm.o
  CC      net/mac80211/rc80211_minstrel_ht.o
  AR      drivers/net/ethernet/intel/e1000e/built-in.a
  CC      net/mac80211/wbrf.o
  CC      fs/binfmt_elf.o
  AR      drivers/net/ethernet/intel/built-in.a
  CC      drivers/gpu/drm/drm_modeset_lock.o
  AR      drivers/net/ethernet/qlogic/built-in.a
  AR      drivers/net/ethernet/qualcomm/emac/built-in.a
  CC      drivers/net/ethernet/realtek/8139too.o
  AR      drivers/net/ethernet/qualcomm/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC      drivers/gpu/drm/drm_plane.o
  CC      drivers/net/ethernet/realtek/r8169_main.o
  CC      net/ipv4/tcp_cubic.o
  CC      drivers/net/ethernet/realtek/r8169_firmware.o
  AR      drivers/net/ethernet/renesas/built-in.a
  CC      drivers/gpu/drm/drm_prime.o
  CC      kernel/tracepoint.o
  CC      drivers/hid/hid-ezkey.o
  CC      drivers/gpu/drm/drm_print.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC      kernel/irq_work.o
  CC      kernel/static_call.o
  CC [M]  drivers/gpu/drm/xe/xe_oa.o
  CC      drivers/gpu/drm/drm_property.o
  CC [M]  drivers/gpu/drm/xe/xe_observation.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC      drivers/gpu/drm/drm_syncobj.o
  CC      drivers/hid/hid-gyration.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC      kernel/padata.o
  CC      net/ipv4/tcp_sigpool.o
  AR      drivers/net/ethernet/rdc/built-in.a
  AR      drivers/net/ethernet/rocker/built-in.a
  AR      drivers/net/ethernet/samsung/built-in.a
  CC      drivers/hid/hid-ite.o
  AR      drivers/net/ethernet/seeq/built-in.a
  CC      drivers/hid/hid-kensington.o
  CC      drivers/gpu/drm/drm_sysfs.o
  CC      drivers/gpu/drm/drm_trace_points.o
  CC      drivers/gpu/drm/drm_vblank.o
  CC      fs/mbcache.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
  CC      net/ipv4/cipso_ipv4.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_irq.o
  CC      kernel/jump_label.o
  CC      drivers/gpu/drm/drm_vblank_work.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_mcr.o
  CC      kernel/context_tracking.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC      drivers/hid/hid-lg.o
  CC      drivers/hid/hid-lgff.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC      drivers/gpu/drm/drm_vma_manager.o
  CC      kernel/iomem.o
  CC      kernel/rseq.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC      fs/posix_acl.o
  CC      drivers/gpu/drm/drm_writeback.o
  CC      drivers/gpu/drm/drm_panel.o
  CC      fs/coredump.o
  CC      drivers/hid/hid-lg4ff.o
  CC      drivers/gpu/drm/drm_pci.o
  CC      drivers/hid/hid-lg-g15.o
  CC      drivers/gpu/drm/drm_debugfs.o
  CC      net/ipv4/xfrm4_policy.o
  CC      drivers/gpu/drm/drm_debugfs_crc.o
  AR      drivers/net/ethernet/silan/built-in.a
  CC      drivers/gpu/drm/drm_panel_orientation_quirks.o
  CC      fs/drop_caches.o
  AR      drivers/net/ethernet/sis/built-in.a
  AR      drivers/net/ethernet/sfc/built-in.a
  CC      drivers/net/ethernet/realtek/r8169_phy_config.o
  AR      drivers/net/ethernet/smsc/built-in.a
  AR      drivers/net/ethernet/socionext/built-in.a
  AR      drivers/net/ethernet/stmicro/built-in.a
  AR      drivers/net/ethernet/sun/built-in.a
  AR      drivers/net/ethernet/tehuti/built-in.a
  AR      drivers/net/ethernet/ti/built-in.a
  CC      fs/sysctls.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_pm.o
  CC      drivers/gpu/drm/drm_buddy.o
  CC      drivers/hid/hid-microsoft.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC      drivers/gpu/drm/drm_gem_shmem_helper.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
  CC      net/ipv4/xfrm4_state.o
  CC      drivers/gpu/drm/drm_atomic_helper.o
  CC      fs/fhandle.o
  CC [M]  drivers/gpu/drm/xe/xe_range_fence.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_requests.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC      drivers/gpu/drm/drm_atomic_state_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC      net/ipv4/xfrm4_input.o
  CC      drivers/gpu/drm/drm_bridge_connector.o
  CC      drivers/hid/hid-monterey.o
  CC      drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
  AR      drivers/net/ethernet/nvidia/built-in.a
  CC      net/ipv4/xfrm4_output.o
  AR      drivers/net/ethernet/vertexcom/built-in.a
  CC      drivers/gpu/drm/drm_crtc_helper.o
  AR      drivers/net/ethernet/via/built-in.a
  AR      kernel/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_gtt.o
  CC      net/ipv4/xfrm4_protocol.o
  CC      drivers/gpu/drm/i915/gt/intel_llc.o
  CC      drivers/gpu/drm/drm_damage_helper.o
  AR      drivers/net/ethernet/wangxun/built-in.a
  AR      drivers/net/ethernet/wiznet/built-in.a
  AR      drivers/net/ethernet/xilinx/built-in.a
  AR      drivers/net/ethernet/xircom/built-in.a
  AR      drivers/net/ethernet/synopsys/built-in.a
  AR      drivers/net/ethernet/pensando/built-in.a
  CC      drivers/gpu/drm/drm_encoder_slave.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  CC      drivers/gpu/drm/drm_flip_work.o
  CC      drivers/gpu/drm/drm_format_helper.o
  CC      drivers/gpu/drm/drm_gem_atomic_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC      drivers/hid/hid-ntrig.o
  CC      drivers/hid/hid-pl.o
  CC      drivers/hid/hid-petalynx.o
  CC      drivers/hid/hid-redragon.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC [M]  drivers/gpu/drm/xe/xe_tile_sysfs.o
  CC      drivers/hid/hid-samsung.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/xe/xe_trace_bo.o
  CC [M]  drivers/gpu/drm/xe/xe_trace_guc.o
  CC      drivers/gpu/drm/drm_gem_framebuffer_helper.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC      drivers/gpu/drm/i915/gt/intel_lrc.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC      drivers/hid/hid-sony.o
  CC      drivers/hid/hid-sunplus.o
  CC      drivers/gpu/drm/drm_kms_helper_common.o
  CC      drivers/gpu/drm/drm_modeset_helper.o
  AR      drivers/net/ethernet/realtek/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_migrate.o
  AR      drivers/net/ethernet/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_mocs.o
  CC      drivers/gpu/drm/i915/gt/intel_ppgtt.o
  CC      drivers/gpu/drm/drm_plane_helper.o
  CC      drivers/gpu/drm/i915/gt/intel_rc6.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  AR      fs/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/xe/xe_vram.o
  CC [M]  drivers/gpu/drm/xe/xe_vram_freq.o
  CC      drivers/gpu/drm/drm_probe_helper.o
  CC      drivers/gpu/drm/drm_rect.o
  CC      drivers/hid/hid-topseed.o
  AR      drivers/net/built-in.a
  CC      drivers/gpu/drm/i915/gt/intel_region_lmem.o
  CC      drivers/gpu/drm/drm_self_refresh_helper.o
  CC      drivers/gpu/drm/drm_simple_kms_helper.o
  CC      drivers/gpu/drm/bridge/panel.o
  CC      drivers/gpu/drm/i915/gt/intel_renderstate.o
  CC      drivers/gpu/drm/i915/gt/intel_reset.o
  CC      drivers/gpu/drm/i915/gt/intel_ring.o
  CC      drivers/gpu/drm/drm_mipi_dsi.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/drm_exec.o
  AR      net/ipv4/built-in.a
  CC [M]  drivers/gpu/drm/drm_gpuvm.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC [M]  drivers/gpu/drm/xe/xe_hmm.o
  CC      drivers/gpu/drm/i915/gt/intel_ring_submission.o
  CC [M]  drivers/gpu/drm/xe/xe_hwmon.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sriov_vf.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sriov_vf_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_relay.o
  CC [M]  drivers/gpu/drm/drm_suballoc.o
  CC [M]  drivers/gpu/drm/drm_gem_ttm_helper.o
  CC      drivers/gpu/drm/i915/gt/intel_rps.o
  CC      drivers/gpu/drm/i915/gt/intel_sa_media.o
  CC [M]  drivers/gpu/drm/xe/xe_memirq.o
  CC [M]  drivers/gpu/drm/xe/xe_sriov.o
  CC [M]  drivers/gpu/drm/xe/display/ext/i915_irq.o
  CC      drivers/gpu/drm/i915/gt/intel_sseu.o
  CC      drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
  CC      drivers/gpu/drm/i915/gt/intel_timeline.o
  CC [M]  drivers/gpu/drm/xe/display/ext/i915_utils.o
  CC [M]  drivers/gpu/drm/xe/display/intel_fb_bo.o
  CC [M]  drivers/gpu/drm/xe/display/intel_fbdev_fb.o
  CC      drivers/gpu/drm/i915/gt/intel_tlb.o
  CC      drivers/gpu/drm/i915/gt/intel_wopcm.o
  CC      drivers/gpu/drm/i915/gt/intel_workarounds.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display.o
  CC      drivers/gpu/drm/i915/gt/shmem_utils.o
  CC      drivers/gpu/drm/i915/gt/sysfs_engines.o
  CC      drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
  CC      drivers/gpu/drm/i915/gt/gen6_renderstate.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_misc.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_rps.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_wa.o
  CC      drivers/gpu/drm/i915/gt/gen7_renderstate.o
  CC [M]  drivers/gpu/drm/xe/display/xe_dsb_buffer.o
  CC      drivers/gpu/drm/i915/gt/gen8_renderstate.o
  AR      drivers/hid/built-in.a
  CC      drivers/gpu/drm/i915/gt/gen9_renderstate.o
  CC [M]  drivers/gpu/drm/xe/display/xe_fb_pin.o
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.o
  CC [M]  drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/xe/display/xe_plane_initial.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_busy.o
  CC [M]  drivers/gpu/drm/xe/display/xe_tdf.o
  CC [M]  drivers/gpu/drm/xe/i915-soc/intel_dram.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_clflush.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_context.o
  CC [M]  drivers/gpu/drm/xe/i915-soc/intel_pch.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_create.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
  CC [M]  drivers/gpu/drm/xe/i915-display/icl_dsi.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_domain.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_alpm.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_internal.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_lmem.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_mman.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_audio.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_object.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_backlight.o
  LD [M]  drivers/gpu/drm/drm_ttm_helper.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bios.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_pages.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cdclk.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_phys.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_color.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_connector.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_pm.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_region.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_shmem.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cursor.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_ddi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_ddi_buf_trans.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_stolen.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_throttle.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_device.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_tiling.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_driver.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_ttm.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_irq.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_params.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
  AR      net/mac80211/built-in.a
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
  AR      net/built-in.a
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_userptr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_wa.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
  CC      drivers/gpu/drm/i915/gem/i915_gem_wait.o
  CC      drivers/gpu/drm/i915/gem/i915_gemfs.o
  CC      drivers/gpu/drm/i915/i915_active.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc.o
  CC      drivers/gpu/drm/i915/i915_cmd_parser.o
  CC      drivers/gpu/drm/i915/i915_deps.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
  CC      drivers/gpu/drm/i915/i915_gem.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll.o
  CC      drivers/gpu/drm/i915/i915_gem_evict.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpt_common.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_drrs.o
  CC      drivers/gpu/drm/i915/i915_gem_gtt.o
  CC      drivers/gpu/drm/i915/i915_gem_ww.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsb.o
  CC      drivers/gpu/drm/i915/i915_query.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_dcs_backlight.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
  CC      drivers/gpu/drm/i915/i915_request.o
  CC      drivers/gpu/drm/i915/i915_scheduler.o
  CC      drivers/gpu/drm/i915/i915_trace_points.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_encoder.o
  CC      drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
  CC      drivers/gpu/drm/i915/i915_vma.o
  CC      drivers/gpu/drm/i915/i915_vma_resource.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fb.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fdi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_global_state.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_gmbus.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp_gsc_message.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdmi.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hti.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_link_bw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_lspcon.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_panel.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_huc.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pps.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_psr.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_uc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
  CC      drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_quirks.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_tc.o
  CC      drivers/gpu/drm/i915/gt/intel_gsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vblank.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vga.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vrr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc_wl.o
  CC      drivers/gpu/drm/i915/i915_hwmon.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_wm.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_scaler.o
  CC      drivers/gpu/drm/i915/display/hsw_ips.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
  CC      drivers/gpu/drm/i915/display/i9xx_plane.o
  CC      drivers/gpu/drm/i915/display/i9xx_wm.o
  CC      drivers/gpu/drm/i915/display/intel_alpm.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_watermark.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_acpi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_opregion.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
  CC      drivers/gpu/drm/i915/display/intel_atomic.o
  CC      drivers/gpu/drm/i915/display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC      drivers/gpu/drm/i915/display/intel_audio.o
  CC      drivers/gpu/drm/i915/display/intel_bios.o
  CC      drivers/gpu/drm/i915/display/intel_bw.o
  CC      drivers/gpu/drm/i915/display/intel_cdclk.o
  CC      drivers/gpu/drm/i915/display/intel_color.o
  CC      drivers/gpu/drm/i915/display/intel_combo_phy.o
  CC      drivers/gpu/drm/i915/display/intel_connector.o
  CC      drivers/gpu/drm/i915/display/intel_crtc.o
  CC      drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
  CC      drivers/gpu/drm/i915/display/intel_cursor.o
  CC      drivers/gpu/drm/i915/display/intel_display.o
  CC      drivers/gpu/drm/i915/display/intel_display_driver.o
  CC      drivers/gpu/drm/i915/display/intel_display_irq.o
  CC      drivers/gpu/drm/i915/display/intel_display_params.o
  CC      drivers/gpu/drm/i915/display/intel_display_power.o
  CC      drivers/gpu/drm/i915/display/intel_display_power_map.o
  CC      drivers/gpu/drm/i915/display/intel_display_power_well.o
  CC      drivers/gpu/drm/i915/display/intel_display_reset.o
  CC      drivers/gpu/drm/i915/display/intel_display_rps.o
  CC      drivers/gpu/drm/i915/display/intel_display_wa.o
  CC      drivers/gpu/drm/i915/display/intel_dmc.o
  CC      drivers/gpu/drm/i915/display/intel_dmc_wl.o
  CC      drivers/gpu/drm/i915/display/intel_dpio_phy.o
  CC      drivers/gpu/drm/i915/display/intel_dpll.o
  CC      drivers/gpu/drm/i915/display/intel_dpll_mgr.o
  CC      drivers/gpu/drm/i915/display/intel_dpt.o
  CC      drivers/gpu/drm/i915/display/intel_dpt_common.o
  CC      drivers/gpu/drm/i915/display/intel_drrs.o
  CC      drivers/gpu/drm/i915/display/intel_dsb.o
  CC      drivers/gpu/drm/i915/display/intel_dsb_buffer.o
  CC      drivers/gpu/drm/i915/display/intel_fb.o
  CC      drivers/gpu/drm/i915/display/intel_fb_bo.o
  CC      drivers/gpu/drm/i915/display/intel_fb_pin.o
  CC      drivers/gpu/drm/i915/display/intel_fbc.o
  CC      drivers/gpu/drm/i915/display/intel_fdi.o
  CC      drivers/gpu/drm/i915/display/intel_fifo_underrun.o
  CC      drivers/gpu/drm/i915/display/intel_frontbuffer.o
  CC      drivers/gpu/drm/i915/display/intel_global_state.o
  CC      drivers/gpu/drm/i915/display/intel_hdcp.o
  CC      drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
  CC      drivers/gpu/drm/i915/display/intel_hdcp_gsc_message.o
  CC      drivers/gpu/drm/i915/display/intel_hotplug.o
  CC      drivers/gpu/drm/i915/display/intel_hotplug_irq.o
  CC      drivers/gpu/drm/i915/display/intel_hti.o
  CC      drivers/gpu/drm/i915/display/intel_link_bw.o
  CC      drivers/gpu/drm/i915/display/intel_load_detect.o
  CC      drivers/gpu/drm/i915/display/intel_lpe_audio.o
  CC      drivers/gpu/drm/i915/display/intel_modeset_lock.o
  CC      drivers/gpu/drm/i915/display/intel_modeset_setup.o
  CC      drivers/gpu/drm/i915/display/intel_modeset_verify.o
  CC      drivers/gpu/drm/i915/display/intel_overlay.o
  CC      drivers/gpu/drm/i915/display/intel_pch_display.o
  CC      drivers/gpu/drm/i915/display/intel_pch_refclk.o
  CC      drivers/gpu/drm/i915/display/intel_plane_initial.o
  CC      drivers/gpu/drm/i915/display/intel_pmdemand.o
  CC      drivers/gpu/drm/i915/display/intel_psr.o
  CC      drivers/gpu/drm/i915/display/intel_quirks.o
  CC      drivers/gpu/drm/i915/display/intel_sprite.o
  CC      drivers/gpu/drm/i915/display/intel_sprite_uapi.o
  CC      drivers/gpu/drm/i915/display/intel_tc.o
  CC      drivers/gpu/drm/i915/display/intel_vblank.o
  CC      drivers/gpu/drm/i915/display/intel_vga.o
  CC      drivers/gpu/drm/i915/display/intel_wm.o
  CC      drivers/gpu/drm/i915/display/skl_scaler.o
  CC      drivers/gpu/drm/i915/display/skl_universal_plane.o
  CC      drivers/gpu/drm/i915/display/skl_watermark.o
  CC      drivers/gpu/drm/i915/display/intel_acpi.o
  CC      drivers/gpu/drm/i915/display/intel_opregion.o
  CC      drivers/gpu/drm/i915/display/intel_display_debugfs.o
  CC      drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
  CC      drivers/gpu/drm/i915/display/intel_pipe_crc.o
  CC      drivers/gpu/drm/i915/display/dvo_ch7017.o
  CC      drivers/gpu/drm/i915/display/dvo_ch7xxx.o
  CC      drivers/gpu/drm/i915/display/dvo_ivch.o
  CC      drivers/gpu/drm/i915/display/dvo_ns2501.o
  CC      drivers/gpu/drm/i915/display/dvo_sil164.o
  CC      drivers/gpu/drm/i915/display/dvo_tfp410.o
  CC      drivers/gpu/drm/i915/display/g4x_dp.o
  CC      drivers/gpu/drm/i915/display/g4x_hdmi.o
  CC      drivers/gpu/drm/i915/display/icl_dsi.o
  CC      drivers/gpu/drm/i915/display/intel_backlight.o
  CC      drivers/gpu/drm/i915/display/intel_crt.o
  CC      drivers/gpu/drm/i915/display/intel_cx0_phy.o
  CC      drivers/gpu/drm/i915/display/intel_ddi.o
  CC      drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
  LD [M]  drivers/gpu/drm/xe/xe.o
  CC      drivers/gpu/drm/i915/display/intel_display_device.o
  CC      drivers/gpu/drm/i915/display/intel_display_trace.o
  CC      drivers/gpu/drm/i915/display/intel_dkl_phy.o
  CC      drivers/gpu/drm/i915/display/intel_dp.o
  CC      drivers/gpu/drm/i915/display/intel_dp_aux.o
  CC      drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
  CC      drivers/gpu/drm/i915/display/intel_dp_hdcp.o
  CC      drivers/gpu/drm/i915/display/intel_dp_link_training.o
  CC      drivers/gpu/drm/i915/display/intel_dp_mst.o
  CC      drivers/gpu/drm/i915/display/intel_dsi.o
  CC      drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
  CC      drivers/gpu/drm/i915/display/intel_dsi_vbt.o
  CC      drivers/gpu/drm/i915/display/intel_dvo.o
  CC      drivers/gpu/drm/i915/display/intel_encoder.o
  CC      drivers/gpu/drm/i915/display/intel_gmbus.o
  CC      drivers/gpu/drm/i915/display/intel_hdmi.o
  CC      drivers/gpu/drm/i915/display/intel_lspcon.o
  CC      drivers/gpu/drm/i915/display/intel_lvds.o
  CC      drivers/gpu/drm/i915/display/intel_panel.o
  CC      drivers/gpu/drm/i915/display/intel_pps.o
  CC      drivers/gpu/drm/i915/display/intel_qp_tables.o
  CC      drivers/gpu/drm/i915/display/intel_sdvo.o
  CC      drivers/gpu/drm/i915/display/intel_snps_phy.o
  CC      drivers/gpu/drm/i915/display/intel_vdsc.o
  CC      drivers/gpu/drm/i915/display/intel_tv.o
  CC      drivers/gpu/drm/i915/display/intel_vrr.o
  CC      drivers/gpu/drm/i915/display/vlv_dsi.o
  CC      drivers/gpu/drm/i915/display/vlv_dsi_pll.o
  CC      drivers/gpu/drm/i915/i915_perf.o
  CC      drivers/gpu/drm/i915/pxp/intel_pxp.o
  CC      drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
  CC      drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
  CC      drivers/gpu/drm/i915/i915_gpu_error.o
  CC      drivers/gpu/drm/i915/i915_vgpu.o
  AR      drivers/gpu/drm/i915/built-in.a
  AR      drivers/gpu/drm/built-in.a
  AR      drivers/gpu/built-in.a
  AR      drivers/built-in.a
  AR      built-in.a
  AR      vmlinux.a
  LD      vmlinux.o
  OBJCOPY modules.builtin.modinfo
  GEN     modules.builtin
  MODPOST Module.symvers
  CC      .vmlinux.export.o
  CC [M]  fs/efivarfs/efivarfs.mod.o
  CC [M]  drivers/gpu/drm/drm_exec.mod.o
  CC [M]  drivers/gpu/drm/drm_gpuvm.mod.o
  CC [M]  drivers/gpu/drm/drm_suballoc_helper.mod.o
  CC [M]  drivers/gpu/drm/drm_ttm_helper.mod.o
  CC [M]  drivers/gpu/drm/scheduler/gpu-sched.mod.o
  CC [M]  drivers/gpu/drm/xe/xe.mod.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.mod.o
  CC [M]  sound/core/snd-hwdep.mod.o
  CC [M]  sound/core/snd-pcm.mod.o
  CC [M]  sound/pci/hda/snd-hda-codec.mod.o
  CC [M]  sound/pci/hda/snd-hda-codec-hdmi.mod.o
  CC [M]  sound/pci/hda/snd-hda-intel.mod.o
  CC [M]  sound/hda/snd-hda-core.mod.o
  CC [M]  sound/hda/snd-intel-dspcfg.mod.o
  CC [M]  sound/hda/snd-intel-sdw-acpi.mod.o
  CC [M]  net/netfilter/nf_log_syslog.mod.o
  CC [M]  net/netfilter/xt_mark.mod.o
  CC [M]  net/netfilter/xt_nat.mod.o
  CC [M]  net/netfilter/xt_LOG.mod.o
  CC [M]  net/netfilter/xt_MASQUERADE.mod.o
  CC [M]  net/netfilter/xt_addrtype.mod.o
  CC [M]  net/ipv4/netfilter/iptable_nat.mod.o
  LD [M]  sound/core/snd-hwdep.ko
  LD [M]  drivers/gpu/drm/drm_gpuvm.ko
  LD [M]  fs/efivarfs/efivarfs.ko
  LD [M]  sound/hda/snd-intel-sdw-acpi.ko
  LD [M]  sound/pci/hda/snd-hda-codec.ko
  LD [M]  net/netfilter/xt_MASQUERADE.ko
  LD [M]  sound/pci/hda/snd-hda-codec-hdmi.ko
  LD [M]  net/netfilter/xt_addrtype.ko
  LD [M]  net/ipv4/netfilter/iptable_nat.ko
  LD [M]  net/netfilter/xt_mark.ko
  LD [M]  sound/core/snd-pcm.ko
  LD [M]  sound/pci/hda/snd-hda-intel.ko
  LD [M]  net/netfilter/nf_log_syslog.ko
  LD [M]  net/netfilter/xt_LOG.ko
  LD [M]  drivers/gpu/drm/drm_ttm_helper.ko
  LD [M]  net/netfilter/xt_nat.ko
  LD [M]  sound/hda/snd-intel-dspcfg.ko
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.ko
  LD [M]  drivers/gpu/drm/drm_exec.ko
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.ko
  LD [M]  drivers/thermal/intel/x86_pkg_temp_thermal.ko
  LD [M]  sound/hda/snd-hda-core.ko
  LD [M]  drivers/gpu/drm/xe/xe.ko
  UPD     include/generated/utsversion.h
  CC      init/version-timestamp.o
  LD      .tmp_vmlinux.kallsyms1
  NM      .tmp_vmlinux.kallsyms1.syms
  KSYMS   .tmp_vmlinux.kallsyms1.S
  AS      .tmp_vmlinux.kallsyms1.o
  LD      .tmp_vmlinux.kallsyms2
  NM      .tmp_vmlinux.kallsyms2.syms
  KSYMS   .tmp_vmlinux.kallsyms2.S
  AS      .tmp_vmlinux.kallsyms2.o
  LD      vmlinux
  NM      System.map
  SORTTAB vmlinux
  RELOCS  arch/x86/boot/compressed/vmlinux.relocs
  RSTRIP  vmlinux
  CC      arch/x86/boot/a20.o
  AS      arch/x86/boot/bioscall.o
  CC      arch/x86/boot/cmdline.o
  AS      arch/x86/boot/copy.o
  HOSTCC  arch/x86/boot/mkcpustr
  CC      arch/x86/boot/cpuflags.o
  CC      arch/x86/boot/cpucheck.o
  CC      arch/x86/boot/early_serial_console.o
  CC      arch/x86/boot/edd.o
  CC      arch/x86/boot/main.o
  CC      arch/x86/boot/memory.o
  CC      arch/x86/boot/pm.o
  AS      arch/x86/boot/pmjump.o
  CC      arch/x86/boot/printf.o
  CC      arch/x86/boot/regs.o
  CC      arch/x86/boot/string.o
  CC      arch/x86/boot/tty.o
  CC      arch/x86/boot/video.o
  CC      arch/x86/boot/video-mode.o
  CC      arch/x86/boot/version.o
  CC      arch/x86/boot/video-vga.o
  CC      arch/x86/boot/video-vesa.o
  CC      arch/x86/boot/video-bios.o
  HOSTCC  arch/x86/boot/tools/build
  CPUSTR  arch/x86/boot/cpustr.h
  CC      arch/x86/boot/cpu.o
  LDS     arch/x86/boot/compressed/vmlinux.lds
  AS      arch/x86/boot/compressed/kernel_info.o
  AS      arch/x86/boot/compressed/head_32.o
  VOFFSET arch/x86/boot/compressed/../voffset.h
  CC      arch/x86/boot/compressed/string.o
  CC      arch/x86/boot/compressed/cmdline.o
  CC      arch/x86/boot/compressed/error.o
  OBJCOPY arch/x86/boot/compressed/vmlinux.bin
  HOSTCC  arch/x86/boot/compressed/mkpiggy
  CC      arch/x86/boot/compressed/cpuflags.o
  CC      arch/x86/boot/compressed/early_serial_console.o
  CC      arch/x86/boot/compressed/kaslr.o
  CC      arch/x86/boot/compressed/acpi.o
  CC      arch/x86/boot/compressed/efi.o
  GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
  CC      arch/x86/boot/compressed/misc.o
  MKPIGGY arch/x86/boot/compressed/piggy.S
  AS      arch/x86/boot/compressed/piggy.o
  LD      arch/x86/boot/compressed/vmlinux
  ZOFFSET arch/x86/boot/zoffset.h
  OBJCOPY arch/x86/boot/vmlinux.bin
  AS      arch/x86/boot/header.o
  LD      arch/x86/boot/setup.elf
  OBJCOPY arch/x86/boot/setup.bin
  BUILD   arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready  (#1)
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
All hooks done



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

* ✗ CI.checksparse: warning for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (24 preceding siblings ...)
  2024-07-05 15:14 ` ✓ CI.Hooks: " Patchwork
@ 2024-07-05 15:15 ` Patchwork
  2024-07-05 15:38 ` ✓ CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 15:15 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-xe

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : warning

== Summary ==

+ trap cleanup EXIT
+ KERNEL=/kernel
+ MT=/root/linux/maintainer-tools
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools /root/linux/maintainer-tools
Cloning into '/root/linux/maintainer-tools'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ make -C /root/linux/maintainer-tools
make: Entering directory '/root/linux/maintainer-tools'
cc -O2 -g -Wextra -o remap-log remap-log.c
make: Leaving directory '/root/linux/maintainer-tools'
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ /root/linux/maintainer-tools/dim sparse --fast cdd1a80a2d16d5213af20a29eb7570a7651db7dc
Sparse version: 0.6.1 (Ubuntu: 0.6.1-2build1)
Fast mode used, each commit won't be checked separately.
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✓ CI.BAT: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (25 preceding siblings ...)
  2024-07-05 15:15 ` ✗ CI.checksparse: warning " Patchwork
@ 2024-07-05 15:38 ` Patchwork
  2024-07-05 17:43 ` ✗ CI.FULL: failure " Patchwork
  2024-07-12 21:39 ` [PATCH 00/20] drm/{i915,xe}: " Ville Syrjälä
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 15:38 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-xe

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

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : success

== Summary ==

CI Bug Log - changes from xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc_BAT -> xe-pw-135799v1_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (5 -> 5)
------------------------------

  No changes in participating hosts

Known issues
------------

  Here are the changes found in xe-pw-135799v1_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_frontbuffer_tracking@basic:
    - bat-adlp-7:         [PASS][1] -> [DMESG-FAIL][2] ([Intel XE#324])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/bat-adlp-7/igt@kms_frontbuffer_tracking@basic.html

  
  [Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324


Build changes
-------------

  * IGT: IGT_7916 -> IGT_7917
  * Linux: xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc -> xe-pw-135799v1

  IGT_7916: 971cfc9d6afc8242db25d1eabd4ae00890d9144a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_7917: a1743ac7ed91ce40d742a351b1600da4f75972b1 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc: cdd1a80a2d16d5213af20a29eb7570a7651db7dc
  xe-pw-135799v1: 135799v1

== Logs ==

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

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

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

* ✗ CI.FULL: failure for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (26 preceding siblings ...)
  2024-07-05 15:38 ` ✓ CI.BAT: success " Patchwork
@ 2024-07-05 17:43 ` Patchwork
  2024-07-12 21:39 ` [PATCH 00/20] drm/{i915,xe}: " Ville Syrjälä
  28 siblings, 0 replies; 55+ messages in thread
From: Patchwork @ 2024-07-05 17:43 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-xe

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

== Series Details ==

Series: drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage
URL   : https://patchwork.freedesktop.org/series/135799/
State : failure

== Summary ==

CI Bug Log - changes from xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc_full -> xe-pw-135799v1_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-135799v1_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-135799v1_full, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (3 -> 3)
------------------------------

  No changes in participating hosts

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in xe-pw-135799v1_full:

### IGT changes ###

#### Possible regressions ####

  * igt@xe_gt_freq@freq_range_exec:
    - shard-adlp:         [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@xe_gt_freq@freq_range_exec.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@xe_gt_freq@freq_range_exec.html

  
#### Warnings ####

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt:
    - shard-adlp:         [SKIP][3] ([Intel XE#1201] / [Intel XE#656]) -> [FAIL][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-blt.html

  
Known issues
------------

  Here are the changes found in xe-pw-135799v1_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-adlp:         [PASS][5] -> [FAIL][6] ([Intel XE#1231])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-dg2-set2:     [PASS][7] -> [INCOMPLETE][8] ([Intel XE#1195])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-463/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-adlp:         [PASS][9] -> [FAIL][10] ([Intel XE#1204])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180:
    - shard-adlp:         [PASS][11] -> [FAIL][12] ([Intel XE#1874]) +1 other test fail
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][13] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +4 other tests skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-6:
    - shard-dg2-set2:     NOTRUN -> [SKIP][14] ([Intel XE#1201] / [Intel XE#787]) +6 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-b-hdmi-a-6.html

  * igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-d-dp-4:
    - shard-dg2-set2:     NOTRUN -> [SKIP][15] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@kms_ccs@crc-primary-rotation-180-y-tiled-ccs@pipe-d-dp-4.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1:
    - shard-adlp:         NOTRUN -> [SKIP][16] ([Intel XE#1201] / [Intel XE#787]) +14 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-offscreen-512x512:
    - shard-dg2-set2:     NOTRUN -> [SKIP][17] ([Intel XE#1201] / [Intel XE#308]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@kms_cursor_crc@cursor-offscreen-512x512.html

  * igt@kms_feature_discovery@display-1x:
    - shard-adlp:         [PASS][18] -> [SKIP][19] ([Intel XE#1201] / [Intel XE#702])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_feature_discovery@display-1x.html
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_feature_discovery@display-1x.html

  * igt@kms_flip@flip-vs-rmfb-interruptible:
    - shard-adlp:         [PASS][20] -> [SKIP][21] ([Intel XE#1201]) +11 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_flip@flip-vs-rmfb-interruptible.html
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_flip@flip-vs-rmfb-interruptible.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling:
    - shard-adlp:         [PASS][22] -> [DMESG-FAIL][23] ([Intel XE#324]) +1 other test dmesg-fail
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-6/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-adlp:         NOTRUN -> [SKIP][24] ([Intel XE#1201] / [Intel XE#455])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-6/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
    - shard-adlp:         [PASS][25] -> [SKIP][26] ([Intel XE#1201] / [Intel XE#455]) +3 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-dg2-set2:     NOTRUN -> [SKIP][27] ([Intel XE#1201] / [Intel XE#651]) +4 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-433/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-cur-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - shard-adlp:         [PASS][28] -> [FAIL][29] ([Intel XE#1861])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt:
    - shard-adlp:         NOTRUN -> [SKIP][30] ([Intel XE#1201] / [Intel XE#656])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move:
    - shard-dg2-set2:     NOTRUN -> [SKIP][31] ([Intel XE#1201] / [Intel XE#653]) +2 other tests skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-436/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-adlp:         NOTRUN -> [SKIP][32] ([Intel XE#1201] / [Intel XE#653])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-dg2-set2:     NOTRUN -> [SKIP][33] ([Intel XE#1201] / [Intel XE#455])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-466/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-dg2-set2:     NOTRUN -> [SKIP][34] ([Intel XE#1201] / [Intel XE#870])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-466/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-adlp:         NOTRUN -> [SKIP][35] ([Intel XE#1201] / [Intel XE#836])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_psr@fbc-psr2-primary-blt:
    - shard-dg2-set2:     NOTRUN -> [SKIP][36] ([Intel XE#1201] / [Intel XE#929])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-466/igt@kms_psr@fbc-psr2-primary-blt.html

  * igt@xe_evict@evict-beng-cm-threads-large:
    - shard-dg2-set2:     [PASS][37] -> [TIMEOUT][38] ([Intel XE#1473] / [Intel XE#392])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-433/igt@xe_evict@evict-beng-cm-threads-large.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-433/igt@xe_evict@evict-beng-cm-threads-large.html

  * igt@xe_evict@evict-beng-large-external-cm:
    - shard-adlp:         NOTRUN -> [SKIP][39] ([Intel XE#1201] / [Intel XE#261])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@xe_evict@evict-beng-large-external-cm.html

  * igt@xe_evict@evict-beng-threads-large:
    - shard-dg2-set2:     [PASS][40] -> [TIMEOUT][41] ([Intel XE#1473])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-436/igt@xe_evict@evict-beng-threads-large.html
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-466/igt@xe_evict@evict-beng-threads-large.html

  * igt@xe_exec_fault_mode@once-userptr-rebind:
    - shard-dg2-set2:     NOTRUN -> [SKIP][42] ([Intel XE#1201] / [Intel XE#288])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@xe_exec_fault_mode@once-userptr-rebind.html

  * igt@xe_exec_threads@threads-hang-userptr-invalidate-race:
    - shard-adlp:         [PASS][43] -> [DMESG-WARN][44] ([Intel XE#1214] / [Intel XE#358]) +1 other test dmesg-warn
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html

  * igt@xe_gt_freq@freq_fixed_exec:
    - shard-dg2-set2:     [PASS][45] -> [FAIL][46] ([Intel XE#1414])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-433/igt@xe_gt_freq@freq_fixed_exec.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-435/igt@xe_gt_freq@freq_fixed_exec.html

  * igt@xe_pm@s2idle-d3hot-basic-exec:
    - shard-adlp:         [PASS][47] -> [DMESG-WARN][48] ([Intel XE#1191] / [Intel XE#1214])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@xe_pm@s2idle-d3hot-basic-exec.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@xe_pm@s2idle-d3hot-basic-exec.html

  * igt@xe_pm@s3-vm-bind-unbind-all:
    - shard-dg2-set2:     [PASS][49] -> [DMESG-WARN][50] ([Intel XE#1162] / [Intel XE#1214] / [Intel XE#1941])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-433/igt@xe_pm@s3-vm-bind-unbind-all.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-463/igt@xe_pm@s3-vm-bind-unbind-all.html

  * igt@xe_pm@s3-vm-bind-userptr:
    - shard-dg2-set2:     [PASS][51] -> [DMESG-WARN][52] ([Intel XE#1214] / [Intel XE#1551] / [Intel XE#569])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-466/igt@xe_pm@s3-vm-bind-userptr.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@xe_pm@s3-vm-bind-userptr.html

  * igt@xe_pm@s4-vm-bind-unbind-all:
    - shard-adlp:         [PASS][53] -> [ABORT][54] ([Intel XE#1794])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@xe_pm@s4-vm-bind-unbind-all.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@xe_pm@s4-vm-bind-unbind-all.html

  * igt@xe_vm@large-split-binds-2147483648:
    - shard-adlp:         [PASS][55] -> [DMESG-WARN][56] ([Intel XE#1214]) +18 other tests dmesg-warn
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@xe_vm@large-split-binds-2147483648.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@xe_vm@large-split-binds-2147483648.html

  
#### Possible fixes ####

  * igt@kms_addfb_basic@bad-pitch-0:
    - shard-adlp:         [DMESG-WARN][57] ([Intel XE#1214]) -> [PASS][58] +19 other tests pass
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_addfb_basic@bad-pitch-0.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_addfb_basic@bad-pitch-0.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-adlp:         [FAIL][59] ([Intel XE#1204]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-9/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-adlp:         [DMESG-FAIL][61] ([Intel XE#324]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-4/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-adlp:         [FAIL][63] ([Intel XE#1231]) -> [PASS][64] +1 other test pass
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_color@ctm-0-50:
    - shard-adlp:         [INCOMPLETE][65] ([Intel XE#1195]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_color@ctm-0-50.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_color@ctm-0-50.html

  * igt@kms_cursor_legacy@cursora-vs-flipa-varying-size:
    - shard-adlp:         [SKIP][67] ([Intel XE#1201]) -> [PASS][68] +11 other tests pass
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html

  * igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y:
    - shard-adlp:         [FAIL][69] ([Intel XE#1874]) -> [PASS][70] +12 other tests pass
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-2/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt:
    - shard-adlp:         [FAIL][71] ([Intel XE#1861]) -> [PASS][72] +1 other test pass
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_invalid_mode@zero-clock:
    - shard-adlp:         [SKIP][73] ([Intel XE#1201] / [Intel XE#455]) -> [PASS][74] +1 other test pass
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_invalid_mode@zero-clock.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_invalid_mode@zero-clock.html

  * {igt@kms_plane@plane-position-covered@pipe-a-plane-2}:
    - {shard-lnl}:        [DMESG-FAIL][75] ([Intel XE#324]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-lnl-3/igt@kms_plane@plane-position-covered@pipe-a-plane-2.html
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-lnl-8/igt@kms_plane@plane-position-covered@pipe-a-plane-2.html

  * igt@kms_plane@plane-position-hole-dpms:
    - {shard-lnl}:        [DMESG-WARN][77] ([Intel XE#324]) -> [PASS][78] +1 other test pass
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-lnl-7/igt@kms_plane@plane-position-hole-dpms.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-lnl-7/igt@kms_plane@plane-position-hole-dpms.html

  * igt@kms_universal_plane@cursor-fb-leak:
    - shard-adlp:         [FAIL][79] ([Intel XE#771] / [Intel XE#899]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@kms_universal_plane@cursor-fb-leak.html
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_universal_plane@cursor-fb-leak.html

  * igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1:
    - shard-adlp:         [FAIL][81] ([Intel XE#899]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_universal_plane@cursor-fb-leak@pipe-a-hdmi-a-1.html

  * igt@xe_evict@evict-beng-large-multi-vm-cm:
    - shard-dg2-set2:     [FAIL][83] ([Intel XE#1600]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-433/igt@xe_evict@evict-beng-large-multi-vm-cm.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-435/igt@xe_evict@evict-beng-large-multi-vm-cm.html

  * igt@xe_evict@evict-cm-threads-large:
    - shard-dg2-set2:     [TIMEOUT][85] ([Intel XE#1473] / [Intel XE#392]) -> [PASS][86]
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-434/igt@xe_evict@evict-cm-threads-large.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-435/igt@xe_evict@evict-cm-threads-large.html

  * igt@xe_exec_basic@many-execqueues-bindexecqueue-rebind:
    - {shard-lnl}:        [FAIL][87] -> [PASS][88]
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-lnl-1/igt@xe_exec_basic@many-execqueues-bindexecqueue-rebind.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-lnl-8/igt@xe_exec_basic@many-execqueues-bindexecqueue-rebind.html

  * igt@xe_exec_compute_mode@many-bindexecqueue-userptr:
    - shard-adlp:         [TIMEOUT][89] -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@xe_exec_compute_mode@many-bindexecqueue-userptr.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@xe_exec_compute_mode@many-bindexecqueue-userptr.html

  * igt@xe_exec_compute_mode@once-bindexecqueue-userptr-invalidate:
    - shard-dg2-set2:     [INCOMPLETE][91] ([Intel XE#1195]) -> [PASS][92]
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-464/igt@xe_exec_compute_mode@once-bindexecqueue-userptr-invalidate.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-436/igt@xe_exec_compute_mode@once-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_reset@parallel-gt-reset:
    - shard-dg2-set2:     [TIMEOUT][93] ([Intel XE#2105]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-433/igt@xe_exec_reset@parallel-gt-reset.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-466/igt@xe_exec_reset@parallel-gt-reset.html

  * igt@xe_exec_threads@threads-fd-rebind:
    - shard-adlp:         [DMESG-WARN][95] ([Intel XE#1214] / [Intel XE#1638]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@xe_exec_threads@threads-fd-rebind.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-6/igt@xe_exec_threads@threads-fd-rebind.html

  * igt@xe_exec_threads@threads-hang-fd-userptr-invalidate-race:
    - shard-adlp:         [DMESG-WARN][97] ([Intel XE#1214] / [Intel XE#358]) -> [PASS][98] +1 other test pass
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@xe_exec_threads@threads-hang-fd-userptr-invalidate-race.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@xe_exec_threads@threads-hang-fd-userptr-invalidate-race.html

  * igt@xe_live_ktest@xe_bo:
    - {shard-lnl}:        [SKIP][99] ([Intel XE#1192]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-lnl-7/igt@xe_live_ktest@xe_bo.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-lnl-7/igt@xe_live_ktest@xe_bo.html

  * igt@xe_module_load@many-reload:
    - shard-adlp:         [TIMEOUT][101] ([Intel XE#2026]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-9/igt@xe_module_load@many-reload.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@xe_module_load@many-reload.html

  * igt@xe_module_load@reload:
    - shard-dg2-set2:     [DMESG-WARN][103] ([Intel XE#1214]) -> [PASS][104] +5 other tests pass
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-463/igt@xe_module_load@reload.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@xe_module_load@reload.html

  * igt@xe_pm@s4-d3hot-basic-exec:
    - {shard-lnl}:        [ABORT][105] ([Intel XE#1358] / [Intel XE#1607]) -> [PASS][106]
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-lnl-2/igt@xe_pm@s4-d3hot-basic-exec.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-lnl-4/igt@xe_pm@s4-d3hot-basic-exec.html

  * igt@xe_pm@s4-mocs:
    - shard-adlp:         [ABORT][107] ([Intel XE#1794]) -> [PASS][108]
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-9/igt@xe_pm@s4-mocs.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@xe_pm@s4-mocs.html

  * igt@xe_render_copy@render-random@render-ymajor-256x256:
    - shard-adlp:         [DMESG-WARN][109] ([Intel XE#1214] / [Intel XE#1727]) -> [PASS][110] +1 other test pass
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@xe_render_copy@render-random@render-ymajor-256x256.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-6/igt@xe_render_copy@render-random@render-ymajor-256x256.html

  * igt@xe_spin_batch@spin-fixed-duration-with-preempter:
    - shard-adlp:         [FAIL][111] ([Intel XE#1081]) -> [PASS][112]
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-2/igt@xe_spin_batch@spin-fixed-duration-with-preempter.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@xe_spin_batch@spin-fixed-duration-with-preempter.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-adlp:         [SKIP][113] ([Intel XE#1201]) -> [SKIP][114] ([Intel XE#1124] / [Intel XE#1201]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@linear-64bpp-rotate-270:
    - shard-adlp:         [SKIP][115] ([Intel XE#1201] / [Intel XE#316]) -> [SKIP][116] ([Intel XE#1201]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_big_fb@linear-64bpp-rotate-270.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_big_fb@linear-64bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-90:
    - shard-adlp:         [SKIP][117] ([Intel XE#1201]) -> [SKIP][118] ([Intel XE#1201] / [Intel XE#316])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@kms_big_fb@x-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-adlp:         [DMESG-FAIL][119] ([Intel XE#324]) -> [FAIL][120] ([Intel XE#1231])
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-270:
    - shard-adlp:         [SKIP][121] ([Intel XE#1124] / [Intel XE#1201]) -> [SKIP][122] ([Intel XE#1201]) +2 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-9/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_big_fb@yf-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-adlp:         [SKIP][123] ([Intel XE#1201]) -> [SKIP][124] ([Intel XE#1201] / [Intel XE#607])
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs:
    - shard-adlp:         [SKIP][125] ([Intel XE#1201]) -> [SKIP][126] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) +4 other tests skip
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs:
    - shard-adlp:         [SKIP][127] ([Intel XE#1201] / [Intel XE#455] / [Intel XE#787]) -> [SKIP][128] ([Intel XE#1201]) +2 other tests skip
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-mc-ccs.html

  * igt@kms_content_protection@content-type-change:
    - shard-adlp:         [SKIP][129] ([Intel XE#1201] / [Intel XE#455]) -> [SKIP][130] ([Intel XE#1201]) +2 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_content_protection@content-type-change.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_content_protection@content-type-change.html

  * igt@kms_cursor_crc@cursor-offscreen-512x170:
    - shard-adlp:         [SKIP][131] ([Intel XE#1201]) -> [SKIP][132] ([Intel XE#1201] / [Intel XE#308]) +1 other test skip
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_cursor_crc@cursor-offscreen-512x170.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-9/igt@kms_cursor_crc@cursor-offscreen-512x170.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - shard-adlp:         [SKIP][133] ([Intel XE#1201] / [Intel XE#323]) -> [SKIP][134] ([Intel XE#1201])
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
    - shard-adlp:         [SKIP][135] ([Intel XE#1201] / [Intel XE#309]) -> [SKIP][136] ([Intel XE#1201])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions:
    - shard-adlp:         [SKIP][137] ([Intel XE#1201]) -> [SKIP][138] ([Intel XE#1201] / [Intel XE#309])
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions.html

  * igt@kms_dirtyfb@psr-dirtyfb-ioctl:
    - shard-adlp:         [SKIP][139] ([Intel XE#1201]) -> [SKIP][140] ([Intel XE#1201] / [Intel XE#455]) +2 other tests skip
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-1/igt@kms_dirtyfb@psr-dirtyfb-ioctl.html

  * igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-render:
    - shard-adlp:         [SKIP][141] ([Intel XE#1201]) -> [SKIP][142] ([Intel XE#1201] / [Intel XE#651])
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-render.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_frontbuffer_tracking@drrs-1p-offscren-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt:
    - shard-adlp:         [SKIP][143] ([Intel XE#1201] / [Intel XE#651]) -> [SKIP][144] ([Intel XE#1201]) +4 other tests skip
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt:
    - shard-adlp:         [SKIP][145] ([Intel XE#1201]) -> [SKIP][146] ([Intel XE#1201] / [Intel XE#656]) +6 other tests skip
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-adlp:         [SKIP][147] ([Intel XE#1201]) -> [SKIP][148] ([Intel XE#1151] / [Intel XE#1201])
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-6/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-adlp:         [SKIP][149] ([Intel XE#1201] / [Intel XE#656]) -> [SKIP][150] ([Intel XE#1201]) +4 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary:
    - shard-adlp:         [SKIP][151] ([Intel XE#1201] / [Intel XE#653]) -> [SKIP][152] ([Intel XE#1201]) +3 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_frontbuffer_tracking@fbcpsr-indfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen:
    - shard-adlp:         [SKIP][153] ([Intel XE#1201]) -> [SKIP][154] ([Intel XE#1201] / [Intel XE#653]) +3 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-fullscreen.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-adlp:         [DMESG-FAIL][155] -> [FAIL][156] ([Intel XE#718])
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-4/igt@kms_pm_dc@dc6-dpms.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-4/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_dc@dc9-dpms:
    - shard-adlp:         [SKIP][157] ([Intel XE#1201] / [Intel XE#734]) -> [FAIL][158] ([Intel XE#1204])
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-8/igt@kms_pm_dc@dc9-dpms.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-8/igt@kms_pm_dc@dc9-dpms.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-adlp:         [FAIL][159] ([Intel XE#1874]) -> [SKIP][160] ([Intel XE#1201])
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-9/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-adlp:         [SKIP][161] ([Intel XE#1201] / [Intel XE#327]) -> [SKIP][162] ([Intel XE#1201])
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-adlp-1/igt@kms_rotation_crc@sprite-rotation-90.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-adlp-2/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-dg2-set2:     [SKIP][163] ([Intel XE#1201] / [Intel XE#1500]) -> [SKIP][164] ([Intel XE#1201] / [Intel XE#362])
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-435/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@xe_evict@evict-threads-large:
    - shard-dg2-set2:     [INCOMPLETE][165] ([Intel XE#1195] / [Intel XE#1473] / [Intel XE#392]) -> [TIMEOUT][166] ([Intel XE#1473] / [Intel XE#392])
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-466/igt@xe_evict@evict-threads-large.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@xe_evict@evict-threads-large.html

  * igt@xe_live_ktest@xe_mocs:
    - shard-dg2-set2:     [FAIL][167] ([Intel XE#1999]) -> [SKIP][168] ([Intel XE#1192] / [Intel XE#1201])
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-463/igt@xe_live_ktest@xe_mocs.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-434/igt@xe_live_ktest@xe_mocs.html

  * igt@xe_wedged@wedged-at-any-timeout:
    - shard-dg2-set2:     [DMESG-WARN][169] ([Intel XE#1214] / [Intel XE#1760]) -> [DMESG-FAIL][170] ([Intel XE#1760])
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc/shard-dg2-433/igt@xe_wedged@wedged-at-any-timeout.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-135799v1/shard-dg2-464/igt@xe_wedged@wedged-at-any-timeout.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [Intel XE#1081]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1081
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1151]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1151
  [Intel XE#1162]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1162
  [Intel XE#1191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1191
  [Intel XE#1192]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1192
  [Intel XE#1195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1195
  [Intel XE#1201]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1201
  [Intel XE#1204]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1204
  [Intel XE#1214]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1214
  [Intel XE#1231]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1231
  [Intel XE#1330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1330
  [Intel XE#1358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1358
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1399
  [Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1413
  [Intel XE#1414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1414
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
  [Intel XE#1430]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1430
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
  [Intel XE#1450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1450
  [Intel XE#1473]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1473
  [Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
  [Intel XE#1504]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1504
  [Intel XE#1551]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1551
  [Intel XE#1600]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1600
  [Intel XE#1607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1607
  [Intel XE#1638]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1638
  [Intel XE#1659]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1659
  [Intel XE#1725]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1725
  [Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#1760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1760
  [Intel XE#1794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1794
  [Intel XE#1861]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1861
  [Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
  [Intel XE#1941]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1941
  [Intel XE#1999]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1999
  [Intel XE#2026]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2026
  [Intel XE#2105]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2105
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
  [Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
  [Intel XE#294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/294
  [Intel XE#305]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/305
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/308
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#324]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/324
  [Intel XE#327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/327
  [Intel XE#352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/352
  [Intel XE#358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/358
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/392
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#498]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/498
  [Intel XE#569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/569
  [Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
  [Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#702]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/702
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#734]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/734
  [Intel XE#771]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/771
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#899]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/899
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#958]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/958


Build changes
-------------

  * IGT: IGT_7916 -> IGT_7917
  * Linux: xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc -> xe-pw-135799v1

  IGT_7916: 971cfc9d6afc8242db25d1eabd4ae00890d9144a @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_7917: a1743ac7ed91ce40d742a351b1600da4f75972b1 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-1567-cdd1a80a2d16d5213af20a29eb7570a7651db7dc: cdd1a80a2d16d5213af20a29eb7570a7651db7dc
  xe-pw-135799v1: 135799v1

== Logs ==

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

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

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

* Re: [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-05 14:52 ` [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen() Ville Syrjala
@ 2024-07-06 12:06   ` kernel test robot
  2024-07-09 20:28   ` Lucas De Marchi
  2024-07-10  8:51   ` Shankar, Uma
  2 siblings, 0 replies; 55+ messages in thread
From: kernel test robot @ 2024-07-06 12:06 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: oe-kbuild-all, intel-xe

Hi Ville,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on drm-xe/drm-xe-next drm-tip/drm-tip next-20240703]
[cannot apply to drm-intel/for-linux-next-fixes linus/master v6.10-rc6]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-fbc-Extract-intel_fbc_has_fences/20240706-041642
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
patch link:    https://lore.kernel.org/r/20240705145254.3355-17-ville.syrjala%40linux.intel.com
patch subject: [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
config: x86_64-randconfig-014-20240706 (https://download.01.org/0day-ci/archive/20240706/202407061958.ScN1NFtC-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240706/202407061958.ScN1NFtC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407061958.ScN1NFtC-lkp@intel.com/

All errors (new ones prefixed by >>, old ones prefixed by <<):

WARNING: modpost: missing MODULE_DESCRIPTION() in mm/kasan/kasan_test_module.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/ext4/ext4-inode-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/fat/fat_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nfs/nfsv4.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp437.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp775.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp855.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp861.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp862.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp863.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp865.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp866.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp869.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp874.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp949.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp950.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ascii.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-2.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-3.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-4.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-5.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-13.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-celtic.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-centeuro.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-iceland.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ucs2_utils.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/cramfs/cramfs.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/hfs/hfs.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/qnx4/qnx4.o
WARNING: modpost: missing MODULE_DESCRIPTION() in fs/adfs/adfs.o
WARNING: modpost: missing MODULE_DESCRIPTION() in security/keys/trusted-keys/trusted.o
WARNING: modpost: missing MODULE_DESCRIPTION() in security/keys/encrypted-keys/encrypted-keys.o
WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/xor.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/kunit/kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/kunit/kunit-test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/math/prime_numbers.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/zlib_deflate/zlib_deflate.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/pinctrl/pinctrl-mcp23s08_i2c.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/pinctrl/pinctrl-mcp23s08.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/video/backlight/platform_lcd.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/video/fbdev/matrox/matroxfb_accel.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/video/fbdev/matrox/matroxfb_DAC1064.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/video/fbdev/matrox/matroxfb_Ti3026.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/video/fbdev/vfb.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/acpi/platform_profile.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/clk/clk-gate_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/clk/clk-fractional-divider_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/virtio/virtio_dma_buf.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/regulator/max20411-regulator.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/regulator/rt4831-regulator.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/agp/intel-agp.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/agp/intel-gtt.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/agp/via-agp.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/tlclk.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_kunit_helpers.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_buddy_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_cmdline_parser_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_connector_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_damage_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_dp_mst_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_exec_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_format_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_framebuffer_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_gem_shmem_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_managed_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_mm_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_modes_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_plane_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_probe_helper_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tests/drm_rect_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tiny/bochs.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/tiny/cirrus.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/drm_panel_orientation_quirks.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/base/regmap/regmap-kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/base/regmap/regmap-ram.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/base/regmap/regmap-raw-ram.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mfd/arizona.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mfd/pcf50633-gpio.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/dax/device_dax.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/dax/dax_cxl.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/scsi/scsi_common.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/scsi/BusLogic.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/scsi/aha1740.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/scsi/atp870u.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/touchscreen/cyttsp_i2c_common.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/tests/input_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/rtc/lib_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mmc/core/sdio_uart.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/platform/x86/ibm_rtl.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/platform/x86/firmware_attributes_class.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/platform/x86/siemens/simatic-ipc.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/devfreq/governor_performance.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hwtracing/intel_th/intel_th_msu_sink.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/greybus/greybus.o
WARNING: modpost: missing MODULE_DESCRIPTION() in samples/kfifo/bytestream-example.o
WARNING: modpost: missing MODULE_DESCRIPTION() in samples/kfifo/dma-example.o
WARNING: modpost: missing MODULE_DESCRIPTION() in samples/kfifo/inttype-example.o
WARNING: modpost: missing MODULE_DESCRIPTION() in samples/kfifo/record-example.o
WARNING: modpost: missing MODULE_DESCRIPTION() in samples/kobject/kobject-example.o
WARNING: modpost: missing MODULE_DESCRIPTION() in samples/kobject/kset-example.o
>> ERROR: modpost: "intel_fbdev_fb_prefer_stolen" [drivers/gpu/drm/i915/i915.ko] undefined!

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

* Re: [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences()
  2024-07-05 14:52 ` [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences() Ville Syrjala
@ 2024-07-09 19:46   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:46 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:35PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the "do we have fences?" check into a single helper in the FBC
> code. Avoids having to call to outside the display code in multiple
> places for this.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 8488f82143a4..ba9820d4b78f 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -229,6 +229,11 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
>  	return 0;
>  }
>  
> +static bool intel_fbc_has_fences(struct drm_i915_private *i915)
> +{
> +	return intel_gt_support_legacy_fencing(to_gt(i915));
> +}
> +
>  static u32 i8xx_fbc_ctl(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> @@ -620,7 +625,7 @@ static void ivb_fbc_activate(struct intel_fbc *fbc)
>  	else if (DISPLAY_VER(i915) == 9)
>  		skl_fbc_program_cfb_stride(fbc);
>  
> -	if (intel_gt_support_legacy_fencing(to_gt(i915)))
> +	if (intel_fbc_has_fences(i915))
>  		snb_fbc_program_fence(fbc);
>  
>  	/* wa_14019417088 Alternative WA*/
> @@ -1154,7 +1159,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
>  	fbc_state->fence_y_offset = intel_plane_fence_y_offset(plane_state);
>  
>  	drm_WARN_ON(&i915->drm, plane_state->flags & PLANE_HAS_FENCE &&
> -		    !intel_gt_support_legacy_fencing(to_gt(i915)));
> +		    !intel_fbc_has_fences(i915));
>  
>  	if (plane_state->flags & PLANE_HAS_FENCE)
>  		fbc_state->fence_id =  i915_vma_fence_id(plane_state->ggtt_vma);
> -- 
> 2.44.2
> 

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

* Re: [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly
  2024-07-05 14:52 ` [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly Ville Syrjala
@ 2024-07-09 19:49   ` Rodrigo Vivi
  2024-07-12 21:38     ` Ville Syrjälä
  0 siblings, 1 reply; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:49 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:36PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Switch the FBC code over to intel_display from i915, as
> much as possible. This is the future direction so that
> the display code can be shared between i915 and xe more
> cleanly.
> 
> Some of the platform checks and the stolen mem facing stiff
> still need i915 around though.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  .../drm/i915/display/intel_display_debugfs.c  |   4 +-
>  .../drm/i915/display/intel_display_driver.c   |   4 +-
>  drivers/gpu/drm/i915/display/intel_fbc.c      | 422 ++++++++++--------
>  drivers/gpu/drm/i915/display/intel_fbc.h      |  13 +-
>  .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
>  .../drm/i915/display/intel_modeset_setup.c    |   2 +-
>  6 files changed, 239 insertions(+), 208 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 91757fed9c6d..5cf9b4af9adf 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -1008,7 +1008,7 @@ i915_fifo_underrun_reset_write(struct file *filp,
>  			return ret;
>  	}
>  
> -	intel_fbc_reset_underrun(dev_priv);
> +	intel_fbc_reset_underrun(&dev_priv->display);
>  
>  	return cnt;
>  }
> @@ -1063,7 +1063,7 @@ void intel_display_debugfs_register(struct drm_i915_private *i915)
>  	intel_bios_debugfs_register(i915);
>  	intel_cdclk_debugfs_register(i915);
>  	intel_dmc_debugfs_register(i915);
> -	intel_fbc_debugfs_register(i915);
> +	intel_fbc_debugfs_register(&i915->display);
>  	intel_hpd_debugfs_register(i915);
>  	intel_opregion_debugfs_register(i915);
>  	intel_psr_debugfs_register(i915);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
> index 794b4af38055..13e206ec450f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_driver.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
> @@ -265,7 +265,7 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
>  
>  	intel_init_quirks(display);
>  
> -	intel_fbc_init(i915);
> +	intel_fbc_init(display);
>  
>  	return 0;
>  
> @@ -607,7 +607,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
>  	destroy_workqueue(i915->display.wq.flip);
>  	destroy_workqueue(i915->display.wq.modeset);
>  
> -	intel_fbc_cleanup(i915);
> +	intel_fbc_cleanup(&i915->display);
>  }
>  
>  /* part #3: call after gem init */
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index ba9820d4b78f..de8caa69a0dd 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -61,13 +61,13 @@
>  #include "intel_fbc_regs.h"
>  #include "intel_frontbuffer.h"
>  
> -#define for_each_fbc_id(__dev_priv, __fbc_id) \
> +#define for_each_fbc_id(__display, __fbc_id) \
>  	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS; (__fbc_id)++) \
> -		for_each_if(DISPLAY_RUNTIME_INFO(__dev_priv)->fbc_mask & BIT(__fbc_id))
> +		for_each_if(DISPLAY_RUNTIME_INFO(__display)->fbc_mask & BIT(__fbc_id))
>  
> -#define for_each_intel_fbc(__dev_priv, __fbc, __fbc_id) \
> -	for_each_fbc_id((__dev_priv), (__fbc_id)) \
> -		for_each_if((__fbc) = (__dev_priv)->display.fbc[(__fbc_id)])
> +#define for_each_intel_fbc(__display, __fbc, __fbc_id) \
> +	for_each_fbc_id((__display), (__fbc_id)) \
> +		for_each_if((__fbc) = (__display)->fbc[(__fbc_id)])
>  
>  struct intel_fbc_funcs {
>  	void (*activate)(struct intel_fbc *fbc);
> @@ -90,7 +90,7 @@ struct intel_fbc_state {
>  };
>  
>  struct intel_fbc {
> -	struct drm_i915_private *i915;
> +	struct intel_display *display;
>  	const struct intel_fbc_funcs *funcs;
>  
>  	/*
> @@ -151,7 +151,7 @@ static unsigned int _intel_fbc_cfb_stride(const struct intel_plane_state *plane_
>  /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */
>  static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
>  	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
>  	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
> @@ -165,7 +165,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
>  	 * Wa_16011863758: icl+
>  	 * Avoid some hardware segment address miscalculation.
>  	 */
> -	if (DISPLAY_VER(i915) >= 11)
> +	if (DISPLAY_VER(display) >= 11)
>  		stride += 64;
>  
>  	/*
> @@ -181,7 +181,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
>  /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */
>  static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
>  
>  	/*
> @@ -189,7 +189,7 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
>  	 * be 512 byte aligned. Aligning each line to 512 bytes guarantees
>  	 * that regardless of the compression limit we choose later.
>  	 */
> -	if (DISPLAY_VER(i915) >= 9)
> +	if (DISPLAY_VER(display) >= 9)
>  		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(plane_state));
>  	else
>  		return stride;
> @@ -197,12 +197,12 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
>  
>  static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	int lines = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
> -	if (DISPLAY_VER(i915) == 7)
> +	if (DISPLAY_VER(display) == 7)
>  		lines = min(lines, 2048);
> -	else if (DISPLAY_VER(i915) >= 8)
> +	else if (DISPLAY_VER(display) >= 8)
>  		lines = min(lines, 2560);
>  
>  	return lines * intel_fbc_cfb_stride(plane_state);
> @@ -210,7 +210,7 @@ static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_sta
>  
>  static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	unsigned int stride_aligned = intel_fbc_cfb_stride(plane_state);
>  	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> @@ -223,28 +223,31 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
>  	 * we always need to use the override there.
>  	 */
>  	if (stride != stride_aligned ||
> -	    (DISPLAY_VER(i915) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
> +	    (DISPLAY_VER(display) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
>  		return stride_aligned * 4 / 64;
>  
>  	return 0;
>  }
>  
> -static bool intel_fbc_has_fences(struct drm_i915_private *i915)
> +static bool intel_fbc_has_fences(struct intel_display *display)
>  {
> +	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);

I was going to ask why __maybe_unused,
but then I remember about the xe compat-headers where below function is
defined to 0...


Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>


> +
>  	return intel_gt_support_legacy_fencing(to_gt(i915));
>  }
>  
>  static u32 i8xx_fbc_ctl(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	unsigned int cfb_stride;
>  	u32 fbc_ctl;
>  
>  	cfb_stride = fbc_state->cfb_stride / fbc->limit;
>  
>  	/* FBC_CTL wants 32B or 64B units */
> -	if (DISPLAY_VER(i915) == 2)
> +	if (DISPLAY_VER(display) == 2)
>  		cfb_stride = (cfb_stride / 32) - 1;
>  	else
>  		cfb_stride = (cfb_stride / 64) - 1;
> @@ -278,21 +281,21 @@ static u32 i965_fbc_ctl2(struct intel_fbc *fbc)
>  
>  static void i8xx_fbc_deactivate(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 fbc_ctl;
>  
>  	/* Disable compression */
> -	fbc_ctl = intel_de_read(i915, FBC_CONTROL);
> +	fbc_ctl = intel_de_read(display, FBC_CONTROL);
>  	if ((fbc_ctl & FBC_CTL_EN) == 0)
>  		return;
>  
>  	fbc_ctl &= ~FBC_CTL_EN;
> -	intel_de_write(i915, FBC_CONTROL, fbc_ctl);
> +	intel_de_write(display, FBC_CONTROL, fbc_ctl);
>  
>  	/* Wait for compressing bit to clear */
> -	if (intel_de_wait_for_clear(i915, FBC_STATUS,
> +	if (intel_de_wait_for_clear(display, FBC_STATUS,
>  				    FBC_STAT_COMPRESSING, 10)) {
> -		drm_dbg_kms(&i915->drm, "FBC idle timed out\n");
> +		drm_dbg_kms(display->drm, "FBC idle timed out\n");
>  		return;
>  	}
>  }
> @@ -300,32 +303,32 @@ static void i8xx_fbc_deactivate(struct intel_fbc *fbc)
>  static void i8xx_fbc_activate(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	int i;
>  
>  	/* Clear old tags */
>  	for (i = 0; i < (FBC_LL_SIZE / 32) + 1; i++)
> -		intel_de_write(i915, FBC_TAG(i), 0);
> +		intel_de_write(display, FBC_TAG(i), 0);
>  
> -	if (DISPLAY_VER(i915) == 4) {
> -		intel_de_write(i915, FBC_CONTROL2,
> +	if (DISPLAY_VER(display) == 4) {
> +		intel_de_write(display, FBC_CONTROL2,
>  			       i965_fbc_ctl2(fbc));
> -		intel_de_write(i915, FBC_FENCE_OFF,
> +		intel_de_write(display, FBC_FENCE_OFF,
>  			       fbc_state->fence_y_offset);
>  	}
>  
> -	intel_de_write(i915, FBC_CONTROL,
> +	intel_de_write(display, FBC_CONTROL,
>  		       FBC_CTL_EN | i8xx_fbc_ctl(fbc));
>  }
>  
>  static bool i8xx_fbc_is_active(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, FBC_CONTROL) & FBC_CTL_EN;
> +	return intel_de_read(fbc->display, FBC_CONTROL) & FBC_CTL_EN;
>  }
>  
>  static bool i8xx_fbc_is_compressing(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, FBC_STATUS) &
> +	return intel_de_read(fbc->display, FBC_STATUS) &
>  		(FBC_STAT_COMPRESSING | FBC_STAT_COMPRESSED);
>  }
>  
> @@ -333,7 +336,7 @@ static void i8xx_fbc_nuke(struct intel_fbc *fbc)
>  {
>  	struct intel_fbc_state *fbc_state = &fbc->state;
>  	enum i9xx_plane_id i9xx_plane = fbc_state->plane->i9xx_plane;
> -	struct drm_i915_private *dev_priv = fbc->i915;
> +	struct drm_i915_private *dev_priv = to_i915(fbc->display->drm);
>  
>  	intel_de_write_fw(dev_priv, DSPADDR(dev_priv, i9xx_plane),
>  			  intel_de_read_fw(dev_priv, DSPADDR(dev_priv, i9xx_plane)));
> @@ -341,13 +344,14 @@ static void i8xx_fbc_nuke(struct intel_fbc *fbc)
>  
>  static void i8xx_fbc_program_cfb(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	drm_WARN_ON(&i915->drm,
> +	drm_WARN_ON(display->drm,
>  		    range_overflows_end_t(u64, i915_gem_stolen_area_address(i915),
>  					  i915_gem_stolen_node_offset(&fbc->compressed_fb),
>  					  U32_MAX));
> -	drm_WARN_ON(&i915->drm,
> +	drm_WARN_ON(display->drm,
>  		    range_overflows_end_t(u64, i915_gem_stolen_area_address(i915),
>  					  i915_gem_stolen_node_offset(&fbc->compressed_llb),
>  					  U32_MAX));
> @@ -370,7 +374,7 @@ static void i965_fbc_nuke(struct intel_fbc *fbc)
>  {
>  	struct intel_fbc_state *fbc_state = &fbc->state;
>  	enum i9xx_plane_id i9xx_plane = fbc_state->plane->i9xx_plane;
> -	struct drm_i915_private *dev_priv = fbc->i915;
> +	struct drm_i915_private *dev_priv = to_i915(fbc->display->drm);
>  
>  	intel_de_write_fw(dev_priv, DSPSURF(dev_priv, i9xx_plane),
>  			  intel_de_read_fw(dev_priv, DSPSURF(dev_priv, i9xx_plane)));
> @@ -403,7 +407,8 @@ static u32 g4x_dpfc_ctl_limit(struct intel_fbc *fbc)
>  static u32 g4x_dpfc_ctl(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	u32 dpfc_ctl;
>  
>  	dpfc_ctl = g4x_dpfc_ctl_limit(fbc) |
> @@ -415,7 +420,7 @@ static u32 g4x_dpfc_ctl(struct intel_fbc *fbc)
>  	if (fbc_state->fence_id >= 0) {
>  		dpfc_ctl |= DPFC_CTL_FENCE_EN_G4X;
>  
> -		if (DISPLAY_VER(i915) < 6)
> +		if (DISPLAY_VER(display) < 6)
>  			dpfc_ctl |= DPFC_CTL_FENCENO(fbc_state->fence_id);
>  	}
>  
> @@ -425,43 +430,43 @@ static u32 g4x_dpfc_ctl(struct intel_fbc *fbc)
>  static void g4x_fbc_activate(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
> -	intel_de_write(i915, DPFC_FENCE_YOFF,
> +	intel_de_write(display, DPFC_FENCE_YOFF,
>  		       fbc_state->fence_y_offset);
>  
> -	intel_de_write(i915, DPFC_CONTROL,
> +	intel_de_write(display, DPFC_CONTROL,
>  		       DPFC_CTL_EN | g4x_dpfc_ctl(fbc));
>  }
>  
>  static void g4x_fbc_deactivate(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 dpfc_ctl;
>  
>  	/* Disable compression */
> -	dpfc_ctl = intel_de_read(i915, DPFC_CONTROL);
> +	dpfc_ctl = intel_de_read(display, DPFC_CONTROL);
>  	if (dpfc_ctl & DPFC_CTL_EN) {
>  		dpfc_ctl &= ~DPFC_CTL_EN;
> -		intel_de_write(i915, DPFC_CONTROL, dpfc_ctl);
> +		intel_de_write(display, DPFC_CONTROL, dpfc_ctl);
>  	}
>  }
>  
>  static bool g4x_fbc_is_active(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, DPFC_CONTROL) & DPFC_CTL_EN;
> +	return intel_de_read(fbc->display, DPFC_CONTROL) & DPFC_CTL_EN;
>  }
>  
>  static bool g4x_fbc_is_compressing(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, DPFC_STATUS) & DPFC_COMP_SEG_MASK;
> +	return intel_de_read(fbc->display, DPFC_STATUS) & DPFC_COMP_SEG_MASK;
>  }
>  
>  static void g4x_fbc_program_cfb(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
> -	intel_de_write(i915, DPFC_CB_BASE,
> +	intel_de_write(display, DPFC_CB_BASE,
>  		       i915_gem_stolen_node_offset(&fbc->compressed_fb));
>  }
>  
> @@ -477,43 +482,43 @@ static const struct intel_fbc_funcs g4x_fbc_funcs = {
>  static void ilk_fbc_activate(struct intel_fbc *fbc)
>  {
>  	struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
> -	intel_de_write(i915, ILK_DPFC_FENCE_YOFF(fbc->id),
> +	intel_de_write(display, ILK_DPFC_FENCE_YOFF(fbc->id),
>  		       fbc_state->fence_y_offset);
>  
> -	intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id),
> +	intel_de_write(display, ILK_DPFC_CONTROL(fbc->id),
>  		       DPFC_CTL_EN | g4x_dpfc_ctl(fbc));
>  }
>  
>  static void ilk_fbc_deactivate(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 dpfc_ctl;
>  
>  	/* Disable compression */
> -	dpfc_ctl = intel_de_read(i915, ILK_DPFC_CONTROL(fbc->id));
> +	dpfc_ctl = intel_de_read(display, ILK_DPFC_CONTROL(fbc->id));
>  	if (dpfc_ctl & DPFC_CTL_EN) {
>  		dpfc_ctl &= ~DPFC_CTL_EN;
> -		intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
> +		intel_de_write(display, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
>  	}
>  }
>  
>  static bool ilk_fbc_is_active(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, ILK_DPFC_CONTROL(fbc->id)) & DPFC_CTL_EN;
> +	return intel_de_read(fbc->display, ILK_DPFC_CONTROL(fbc->id)) & DPFC_CTL_EN;
>  }
>  
>  static bool ilk_fbc_is_compressing(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, ILK_DPFC_STATUS(fbc->id)) & DPFC_COMP_SEG_MASK;
> +	return intel_de_read(fbc->display, ILK_DPFC_STATUS(fbc->id)) & DPFC_COMP_SEG_MASK;
>  }
>  
>  static void ilk_fbc_program_cfb(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
> -	intel_de_write(i915, ILK_DPFC_CB_BASE(fbc->id),
> +	intel_de_write(display, ILK_DPFC_CB_BASE(fbc->id),
>  		       i915_gem_stolen_node_offset(&fbc->compressed_fb));
>  }
>  
> @@ -529,14 +534,14 @@ static const struct intel_fbc_funcs ilk_fbc_funcs = {
>  static void snb_fbc_program_fence(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 ctl = 0;
>  
>  	if (fbc_state->fence_id >= 0)
>  		ctl = SNB_DPFC_FENCE_EN | SNB_DPFC_FENCENO(fbc_state->fence_id);
>  
> -	intel_de_write(i915, SNB_DPFC_CTL_SA, ctl);
> -	intel_de_write(i915, SNB_DPFC_CPU_FENCE_OFFSET, fbc_state->fence_y_offset);
> +	intel_de_write(display, SNB_DPFC_CTL_SA, ctl);
> +	intel_de_write(display, SNB_DPFC_CPU_FENCE_OFFSET, fbc_state->fence_y_offset);
>  }
>  
>  static void snb_fbc_activate(struct intel_fbc *fbc)
> @@ -548,10 +553,10 @@ static void snb_fbc_activate(struct intel_fbc *fbc)
>  
>  static void snb_fbc_nuke(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
> -	intel_de_write(i915, MSG_FBC_REND_STATE(fbc->id), FBC_REND_NUKE);
> -	intel_de_posting_read(i915, MSG_FBC_REND_STATE(fbc->id));
> +	intel_de_write(display, MSG_FBC_REND_STATE(fbc->id), FBC_REND_NUKE);
> +	intel_de_posting_read(display, MSG_FBC_REND_STATE(fbc->id));
>  }
>  
>  static const struct intel_fbc_funcs snb_fbc_funcs = {
> @@ -566,20 +571,20 @@ static const struct intel_fbc_funcs snb_fbc_funcs = {
>  static void glk_fbc_program_cfb_stride(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 val = 0;
>  
>  	if (fbc_state->override_cfb_stride)
>  		val |= FBC_STRIDE_OVERRIDE |
>  			FBC_STRIDE(fbc_state->override_cfb_stride / fbc->limit);
>  
> -	intel_de_write(i915, GLK_FBC_STRIDE(fbc->id), val);
> +	intel_de_write(display, GLK_FBC_STRIDE(fbc->id), val);
>  }
>  
>  static void skl_fbc_program_cfb_stride(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 val = 0;
>  
>  	/* Display WA #0529: skl, kbl, bxt. */
> @@ -587,7 +592,7 @@ static void skl_fbc_program_cfb_stride(struct intel_fbc *fbc)
>  		val |= CHICKEN_FBC_STRIDE_OVERRIDE |
>  			CHICKEN_FBC_STRIDE(fbc_state->override_cfb_stride / fbc->limit);
>  
> -	intel_de_rmw(i915, CHICKEN_MISC_4,
> +	intel_de_rmw(display, CHICKEN_MISC_4,
>  		     CHICKEN_FBC_STRIDE_OVERRIDE |
>  		     CHICKEN_FBC_STRIDE_MASK, val);
>  }
> @@ -595,7 +600,8 @@ static void skl_fbc_program_cfb_stride(struct intel_fbc *fbc)
>  static u32 ivb_dpfc_ctl(struct intel_fbc *fbc)
>  {
>  	const struct intel_fbc_state *fbc_state = &fbc->state;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	u32 dpfc_ctl;
>  
>  	dpfc_ctl = g4x_dpfc_ctl_limit(fbc);
> @@ -603,7 +609,7 @@ static u32 ivb_dpfc_ctl(struct intel_fbc *fbc)
>  	if (IS_IVYBRIDGE(i915))
>  		dpfc_ctl |= DPFC_CTL_PLANE_IVB(fbc_state->plane->i9xx_plane);
>  
> -	if (DISPLAY_VER(i915) >= 20)
> +	if (DISPLAY_VER(display) >= 20)
>  		dpfc_ctl |= DPFC_CTL_PLANE_BINDING(fbc_state->plane->id);
>  
>  	if (fbc_state->fence_id >= 0)
> @@ -617,35 +623,35 @@ static u32 ivb_dpfc_ctl(struct intel_fbc *fbc)
>  
>  static void ivb_fbc_activate(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	u32 dpfc_ctl;
>  
> -	if (DISPLAY_VER(i915) >= 10)
> +	if (DISPLAY_VER(display) >= 10)
>  		glk_fbc_program_cfb_stride(fbc);
> -	else if (DISPLAY_VER(i915) == 9)
> +	else if (DISPLAY_VER(display) == 9)
>  		skl_fbc_program_cfb_stride(fbc);
>  
> -	if (intel_fbc_has_fences(i915))
> +	if (intel_fbc_has_fences(display))
>  		snb_fbc_program_fence(fbc);
>  
>  	/* wa_14019417088 Alternative WA*/
>  	dpfc_ctl = ivb_dpfc_ctl(fbc);
> -	if (DISPLAY_VER(i915) >= 20)
> -		intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
> +	if (DISPLAY_VER(display) >= 20)
> +		intel_de_write(display, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
>  
> -	intel_de_write(i915, ILK_DPFC_CONTROL(fbc->id),
> +	intel_de_write(display, ILK_DPFC_CONTROL(fbc->id),
>  		       DPFC_CTL_EN | dpfc_ctl);
>  }
>  
>  static bool ivb_fbc_is_compressing(struct intel_fbc *fbc)
>  {
> -	return intel_de_read(fbc->i915, ILK_DPFC_STATUS2(fbc->id)) & DPFC_COMP_SEG_MASK_IVB;
> +	return intel_de_read(fbc->display, ILK_DPFC_STATUS2(fbc->id)) & DPFC_COMP_SEG_MASK_IVB;
>  }
>  
>  static void ivb_fbc_set_false_color(struct intel_fbc *fbc,
>  				    bool enable)
>  {
> -	intel_de_rmw(fbc->i915, ILK_DPFC_CONTROL(fbc->id),
> +	intel_de_rmw(fbc->display, ILK_DPFC_CONTROL(fbc->id),
>  		     DPFC_CTL_FALSE_COLOR, enable ? DPFC_CTL_FALSE_COLOR : 0);
>  }
>  
> @@ -690,10 +696,10 @@ static bool intel_fbc_is_compressing(struct intel_fbc *fbc)
>  
>  static void intel_fbc_nuke(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
>  	lockdep_assert_held(&fbc->lock);
> -	drm_WARN_ON(&i915->drm, fbc->flip_pending);
> +	drm_WARN_ON(display->drm, fbc->flip_pending);
>  
>  	trace_intel_fbc_nuke(fbc->state.plane);
>  
> @@ -720,29 +726,32 @@ static void intel_fbc_deactivate(struct intel_fbc *fbc, const char *reason)
>  	fbc->no_fbc_reason = reason;
>  }
>  
> -static u64 intel_fbc_cfb_base_max(struct drm_i915_private *i915)
> +static u64 intel_fbc_cfb_base_max(struct intel_display *display)
>  {
> -	if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> +
> +	if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
>  		return BIT_ULL(28);
>  	else
>  		return BIT_ULL(32);
>  }
>  
> -static u64 intel_fbc_stolen_end(struct drm_i915_private *i915)
> +static u64 intel_fbc_stolen_end(struct intel_display *display)
>  {
> +	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);
>  	u64 end;
>  
>  	/* The FBC hardware for BDW/SKL doesn't have access to the stolen
>  	 * reserved range size, so it always assumes the maximum (8mb) is used.
>  	 * If we enable FBC using a CFB on that memory range we'll get FIFO
>  	 * underruns, even if that range is not reserved by the BIOS. */
> -	if (IS_BROADWELL(i915) ||
> -	    (DISPLAY_VER(i915) == 9 && !IS_BROXTON(i915)))
> +	if (IS_BROADWELL(to_i915(display->drm)) ||
> +	    (DISPLAY_VER(display) == 9 && !IS_BROXTON(to_i915(display->drm))))
>  		end = i915_gem_stolen_area_size(i915) - 8 * 1024 * 1024;
>  	else
>  		end = U64_MAX;
>  
> -	return min(end, intel_fbc_cfb_base_max(i915));
> +	return min(end, intel_fbc_cfb_base_max(display));
>  }
>  
>  static int intel_fbc_min_limit(const struct intel_plane_state *plane_state)
> @@ -750,8 +759,10 @@ static int intel_fbc_min_limit(const struct intel_plane_state *plane_state)
>  	return plane_state->hw.fb->format->cpp[0] == 2 ? 2 : 1;
>  }
>  
> -static int intel_fbc_max_limit(struct drm_i915_private *i915)
> +static int intel_fbc_max_limit(struct intel_display *display)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> +
>  	/* WaFbcOnly1to1Ratio:ctg */
>  	if (IS_G4X(i915))
>  		return 1;
> @@ -766,8 +777,9 @@ static int intel_fbc_max_limit(struct drm_i915_private *i915)
>  static int find_compression_limit(struct intel_fbc *fbc,
>  				  unsigned int size, int min_limit)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> -	u64 end = intel_fbc_stolen_end(i915);
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> +	u64 end = intel_fbc_stolen_end(display);
>  	int ret, limit = min_limit;
>  
>  	size /= limit;
> @@ -778,7 +790,7 @@ static int find_compression_limit(struct intel_fbc *fbc,
>  	if (ret == 0)
>  		return limit;
>  
> -	for (; limit <= intel_fbc_max_limit(i915); limit <<= 1) {
> +	for (; limit <= intel_fbc_max_limit(display); limit <<= 1) {
>  		ret = i915_gem_stolen_insert_node_in_range(i915, &fbc->compressed_fb,
>  							   size >>= 1, 4096, 0, end);
>  		if (ret == 0)
> @@ -791,15 +803,16 @@ static int find_compression_limit(struct intel_fbc *fbc,
>  static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
>  			       unsigned int size, int min_limit)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	int ret;
>  
> -	drm_WARN_ON(&i915->drm,
> +	drm_WARN_ON(display->drm,
>  		    i915_gem_stolen_node_allocated(&fbc->compressed_fb));
> -	drm_WARN_ON(&i915->drm,
> +	drm_WARN_ON(display->drm,
>  		    i915_gem_stolen_node_allocated(&fbc->compressed_llb));
>  
> -	if (DISPLAY_VER(i915) < 5 && !IS_G4X(i915)) {
> +	if (DISPLAY_VER(display) < 5 && !IS_G4X(to_i915(display->drm))) {
>  		ret = i915_gem_stolen_insert_node(i915, &fbc->compressed_llb,
>  						  4096, 4096);
>  		if (ret)
> @@ -810,12 +823,12 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
>  	if (!ret)
>  		goto err_llb;
>  	else if (ret > min_limit)
> -		drm_info_once(&i915->drm,
> +		drm_info_once(display->drm,
>  			      "Reducing the compressed framebuffer size. This may lead to less power savings than a non-reduced-size. Try to increase stolen memory size if available in BIOS.\n");
>  
>  	fbc->limit = ret;
>  
> -	drm_dbg_kms(&i915->drm,
> +	drm_dbg_kms(display->drm,
>  		    "reserved %llu bytes of contiguous stolen space for FBC, limit: %d\n",
>  		    i915_gem_stolen_node_size(&fbc->compressed_fb), fbc->limit);
>  	return 0;
> @@ -825,7 +838,8 @@ static int intel_fbc_alloc_cfb(struct intel_fbc *fbc,
>  		i915_gem_stolen_remove_node(i915, &fbc->compressed_llb);
>  err:
>  	if (i915_gem_stolen_initialized(i915))
> -		drm_info_once(&i915->drm, "not enough stolen space for compressed buffer (need %d more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.\n", size);
> +		drm_info_once(display->drm,
> +			      "not enough stolen space for compressed buffer (need %d more bytes), disabling. Hint: you may be able to increase stolen memory size in the BIOS to avoid this.\n", size);
>  	return -ENOSPC;
>  }
>  
> @@ -836,14 +850,15 @@ static void intel_fbc_program_cfb(struct intel_fbc *fbc)
>  
>  static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
>  	if (IS_SKYLAKE(i915) || IS_BROXTON(i915)) {
>  		/*
>  		 * WaFbcHighMemBwCorruptionAvoidance:skl,bxt
>  		 * Display WA #0883: skl,bxt
>  		 */
> -		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
> +		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
>  			     0, DPFC_DISABLE_DUMMY0);
>  	}
>  
> @@ -853,24 +868,25 @@ static void intel_fbc_program_workarounds(struct intel_fbc *fbc)
>  		 * WaFbcNukeOnHostModify:skl,kbl,cfl
>  		 * Display WA #0873: skl,kbl,cfl
>  		 */
> -		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
> +		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
>  			     0, DPFC_NUKE_ON_ANY_MODIFICATION);
>  	}
>  
>  	/* Wa_1409120013:icl,jsl,tgl,dg1 */
> -	if (IS_DISPLAY_VER(i915, 11, 12))
> -		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
> +	if (IS_DISPLAY_VER(display, 11, 12))
> +		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
>  			     0, DPFC_CHICKEN_COMP_DUMMY_PIXEL);
>  
>  	/* Wa_22014263786:icl,jsl,tgl,dg1,rkl,adls,adlp,mtl */
> -	if (DISPLAY_VER(i915) >= 11 && !IS_DG2(i915))
> -		intel_de_rmw(i915, ILK_DPFC_CHICKEN(fbc->id),
> +	if (DISPLAY_VER(display) >= 11 && !IS_DG2(i915))
> +		intel_de_rmw(display, ILK_DPFC_CHICKEN(fbc->id),
>  			     0, DPFC_CHICKEN_FORCE_SLB_INVALIDATION);
>  }
>  
>  static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
>  	if (WARN_ON(intel_fbc_hw_is_active(fbc)))
>  		return;
> @@ -881,12 +897,12 @@ static void __intel_fbc_cleanup_cfb(struct intel_fbc *fbc)
>  		i915_gem_stolen_remove_node(i915, &fbc->compressed_fb);
>  }
>  
> -void intel_fbc_cleanup(struct drm_i915_private *i915)
> +void intel_fbc_cleanup(struct intel_display *display)
>  {
>  	struct intel_fbc *fbc;
>  	enum intel_fbc_id fbc_id;
>  
> -	for_each_intel_fbc(i915, fbc, fbc_id) {
> +	for_each_intel_fbc(display, fbc, fbc_id) {
>  		mutex_lock(&fbc->lock);
>  		__intel_fbc_cleanup_cfb(fbc);
>  		mutex_unlock(&fbc->lock);
> @@ -938,15 +954,16 @@ static bool icl_fbc_stride_is_valid(const struct intel_plane_state *plane_state)
>  
>  static bool stride_is_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	if (DISPLAY_VER(i915) >= 11)
> +	if (DISPLAY_VER(display) >= 11)
>  		return icl_fbc_stride_is_valid(plane_state);
> -	else if (DISPLAY_VER(i915) >= 9)
> +	else if (DISPLAY_VER(display) >= 9)
>  		return skl_fbc_stride_is_valid(plane_state);
> -	else if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
> +	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
>  		return g4x_fbc_stride_is_valid(plane_state);
> -	else if (DISPLAY_VER(i915) == 4)
> +	else if (DISPLAY_VER(display) == 4)
>  		return i965_fbc_stride_is_valid(plane_state);
>  	else
>  		return i8xx_fbc_stride_is_valid(plane_state);
> @@ -954,7 +971,7 @@ static bool stride_is_valid(const struct intel_plane_state *plane_state)
>  
>  static bool i8xx_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  
>  	switch (fb->format->format) {
> @@ -964,7 +981,7 @@ static bool i8xx_fbc_pixel_format_is_valid(const struct intel_plane_state *plane
>  	case DRM_FORMAT_XRGB1555:
>  	case DRM_FORMAT_RGB565:
>  		/* 16bpp not supported on gen2 */
> -		if (DISPLAY_VER(i915) == 2)
> +		if (DISPLAY_VER(display) == 2)
>  			return false;
>  		return true;
>  	default:
> @@ -974,7 +991,8 @@ static bool i8xx_fbc_pixel_format_is_valid(const struct intel_plane_state *plane
>  
>  static bool g4x_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  
>  	switch (fb->format->format) {
> @@ -1009,11 +1027,12 @@ static bool lnl_fbc_pixel_format_is_valid(const struct intel_plane_state *plane_
>  
>  static bool pixel_format_is_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	if (DISPLAY_VER(i915) >= 20)
> +	if (DISPLAY_VER(display) >= 20)
>  		return lnl_fbc_pixel_format_is_valid(plane_state);
> -	else if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
> +	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
>  		return g4x_fbc_pixel_format_is_valid(plane_state);
>  	else
>  		return i8xx_fbc_pixel_format_is_valid(plane_state);
> @@ -1043,11 +1062,12 @@ static bool skl_fbc_rotation_is_valid(const struct intel_plane_state *plane_stat
>  
>  static bool rotation_is_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	if (DISPLAY_VER(i915) >= 9)
> +	if (DISPLAY_VER(display) >= 9)
>  		return skl_fbc_rotation_is_valid(plane_state);
> -	else if (DISPLAY_VER(i915) >= 5 || IS_G4X(i915))
> +	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
>  		return g4x_fbc_rotation_is_valid(plane_state);
>  	else
>  		return i8xx_fbc_rotation_is_valid(plane_state);
> @@ -1061,19 +1081,20 @@ static bool rotation_is_valid(const struct intel_plane_state *plane_state)
>   */
>  static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	unsigned int effective_w, effective_h, max_w, max_h;
>  
> -	if (DISPLAY_VER(i915) >= 11) {
> +	if (DISPLAY_VER(display) >= 11) {
>  		max_w = 8192;
>  		max_h = 4096;
> -	} else if (DISPLAY_VER(i915) >= 10) {
> +	} else if (DISPLAY_VER(display) >= 10) {
>  		max_w = 5120;
>  		max_h = 4096;
> -	} else if (DISPLAY_VER(i915) >= 7) {
> +	} else if (DISPLAY_VER(display) >= 7) {
>  		max_w = 4096;
>  		max_h = 4096;
> -	} else if (IS_G4X(i915) || DISPLAY_VER(i915) >= 5) {
> +	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
>  		max_w = 4096;
>  		max_h = 2048;
>  	} else {
> @@ -1091,16 +1112,17 @@ static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *
>  
>  static bool intel_fbc_plane_size_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	unsigned int w, h, max_w, max_h;
>  
> -	if (DISPLAY_VER(i915) >= 10) {
> +	if (DISPLAY_VER(display) >= 10) {
>  		max_w = 5120;
>  		max_h = 4096;
> -	} else if (DISPLAY_VER(i915) >= 8 || IS_HASWELL(i915)) {
> +	} else if (DISPLAY_VER(display) >= 8 || IS_HASWELL(i915)) {
>  		max_w = 4096;
>  		max_h = 4096;
> -	} else if (IS_G4X(i915) || DISPLAY_VER(i915) >= 5) {
> +	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
>  		max_w = 4096;
>  		max_h = 2048;
>  	} else {
> @@ -1128,9 +1150,9 @@ static bool skl_fbc_tiling_valid(const struct intel_plane_state *plane_state)
>  
>  static bool tiling_is_valid(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  
> -	if (DISPLAY_VER(i915) >= 9)
> +	if (DISPLAY_VER(display) >= 9)
>  		return skl_fbc_tiling_valid(plane_state);
>  	else
>  		return i8xx_fbc_tiling_valid(plane_state);
> @@ -1140,7 +1162,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
>  				   struct intel_crtc *crtc,
>  				   struct intel_plane *plane)
>  {
> -	struct drm_i915_private *i915 = to_i915(state->base.dev);
> +	struct intel_display *display = to_intel_display(state->base.dev);
>  	const struct intel_crtc_state *crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	const struct intel_plane_state *plane_state =
> @@ -1158,8 +1180,8 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
>  
>  	fbc_state->fence_y_offset = intel_plane_fence_y_offset(plane_state);
>  
> -	drm_WARN_ON(&i915->drm, plane_state->flags & PLANE_HAS_FENCE &&
> -		    !intel_fbc_has_fences(i915));
> +	drm_WARN_ON(display->drm, plane_state->flags & PLANE_HAS_FENCE &&
> +		    !intel_fbc_has_fences(display));
>  
>  	if (plane_state->flags & PLANE_HAS_FENCE)
>  		fbc_state->fence_id =  i915_vma_fence_id(plane_state->ggtt_vma);
> @@ -1173,7 +1195,7 @@ static void intel_fbc_update_state(struct intel_atomic_state *state,
>  
>  static bool intel_fbc_is_fence_ok(const struct intel_plane_state *plane_state)
>  {
> -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  
>  	/*
>  	 * The use of a CPU fence is one of two ways to detect writes by the
> @@ -1187,7 +1209,7 @@ static bool intel_fbc_is_fence_ok(const struct intel_plane_state *plane_state)
>  	 * so have no fence associated with it) due to aperture constraints
>  	 * at the time of pinning.
>  	 */
> -	return DISPLAY_VER(i915) >= 9 ||
> +	return DISPLAY_VER(display) >= 9 ||
>  		(plane_state->flags & PLANE_HAS_FENCE &&
>  		 i915_vma_fence_id(plane_state->ggtt_vma) != -1);
>  }
> @@ -1212,7 +1234,8 @@ static bool intel_fbc_is_ok(const struct intel_plane_state *plane_state)
>  static int intel_fbc_check_plane(struct intel_atomic_state *state,
>  				 struct intel_plane *plane)
>  {
> -	struct drm_i915_private *i915 = to_i915(state->base.dev);
> +	struct intel_display *display = to_intel_display(state->base.dev);
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct intel_plane_state *plane_state =
>  		intel_atomic_get_new_plane_state(state, plane);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> @@ -1233,7 +1256,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
>  		return 0;
>  	}
>  
> -	if (!i915->display.params.enable_fbc) {
> +	if (!display->params.enable_fbc) {
>  		plane_state->no_fbc_reason = "disabled per module param or by default";
>  		return 0;
>  	}
> @@ -1271,14 +1294,14 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
>  	 * Recommendation is to keep this combination disabled
>  	 * Bspec: 50422 HSD: 14010260002
>  	 */
> -	if (IS_DISPLAY_VER(i915, 12, 14) && crtc_state->has_sel_update &&
> +	if (IS_DISPLAY_VER(display, 12, 14) && crtc_state->has_sel_update &&
>  	    !crtc_state->has_panel_replay) {
>  		plane_state->no_fbc_reason = "PSR2 enabled";
>  		return 0;
>  	}
>  
>  	/* Wa_14016291713 */
> -	if ((IS_DISPLAY_VER(i915, 12, 13) ||
> +	if ((IS_DISPLAY_VER(display, 12, 13) ||
>  	     IS_DISPLAY_IP_STEP(i915, IP_VER(14, 0), STEP_A0, STEP_C0)) &&
>  	    crtc_state->has_psr && !crtc_state->has_panel_replay) {
>  		plane_state->no_fbc_reason = "PSR1 enabled (Wa_14016291713)";
> @@ -1305,7 +1328,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
>  		return 0;
>  	}
>  
> -	if (DISPLAY_VER(i915) < 20 &&
> +	if (DISPLAY_VER(display) < 20 &&
>  	    plane_state->hw.pixel_blend_mode != DRM_MODE_BLEND_PIXEL_NONE &&
>  	    fb->format->has_alpha) {
>  		plane_state->no_fbc_reason = "per-pixel alpha not supported";
> @@ -1327,14 +1350,14 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
>  	 * having a Y offset that isn't divisible by 4 causes FIFO underrun
>  	 * and screen flicker.
>  	 */
> -	if (DISPLAY_VER(i915) >= 9 &&
> +	if (DISPLAY_VER(display) >= 9 &&
>  	    plane_state->view.color_plane[0].y & 3) {
>  		plane_state->no_fbc_reason = "plane start Y offset misaligned";
>  		return 0;
>  	}
>  
>  	/* Wa_22010751166: icl, ehl, tgl, dg1, rkl */
> -	if (DISPLAY_VER(i915) >= 11 &&
> +	if (DISPLAY_VER(display) >= 11 &&
>  	    (plane_state->view.color_plane[0].y +
>  	     (drm_rect_height(&plane_state->uapi.src) >> 16)) & 3) {
>  		plane_state->no_fbc_reason = "plane end Y offset misaligned";
> @@ -1410,7 +1433,7 @@ static bool __intel_fbc_pre_update(struct intel_atomic_state *state,
>  				   struct intel_crtc *crtc,
>  				   struct intel_plane *plane)
>  {
> -	struct drm_i915_private *i915 = to_i915(state->base.dev);
> +	struct intel_display *display = to_intel_display(state->base.dev);
>  	struct intel_fbc *fbc = plane->fbc;
>  	bool need_vblank_wait = false;
>  
> @@ -1436,7 +1459,7 @@ static bool __intel_fbc_pre_update(struct intel_atomic_state *state,
>  	 * and skipping the extra vblank wait before the plane update
>  	 * if at least one frame has already passed.
>  	 */
> -	if (fbc->activated && DISPLAY_VER(i915) >= 10)
> +	if (fbc->activated && DISPLAY_VER(display) >= 10)
>  		need_vblank_wait = true;
>  	fbc->activated = false;
>  
> @@ -1470,13 +1493,13 @@ bool intel_fbc_pre_update(struct intel_atomic_state *state,
>  
>  static void __intel_fbc_disable(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  	struct intel_plane *plane = fbc->state.plane;
>  
>  	lockdep_assert_held(&fbc->lock);
> -	drm_WARN_ON(&i915->drm, fbc->active);
> +	drm_WARN_ON(display->drm, fbc->active);
>  
> -	drm_dbg_kms(&i915->drm, "Disabling FBC on [PLANE:%d:%s]\n",
> +	drm_dbg_kms(display->drm, "Disabling FBC on [PLANE:%d:%s]\n",
>  		    plane->base.base.id, plane->base.name);
>  
>  	__intel_fbc_cleanup_cfb(fbc);
> @@ -1553,7 +1576,7 @@ void intel_fbc_invalidate(struct drm_i915_private *i915,
>  	struct intel_fbc *fbc;
>  	enum intel_fbc_id fbc_id;
>  
> -	for_each_intel_fbc(i915, fbc, fbc_id)
> +	for_each_intel_fbc(&i915->display, fbc, fbc_id)
>  		__intel_fbc_invalidate(fbc, frontbuffer_bits, origin);
>  
>  }
> @@ -1592,7 +1615,7 @@ void intel_fbc_flush(struct drm_i915_private *i915,
>  	struct intel_fbc *fbc;
>  	enum intel_fbc_id fbc_id;
>  
> -	for_each_intel_fbc(i915, fbc, fbc_id)
> +	for_each_intel_fbc(&i915->display, fbc, fbc_id)
>  		__intel_fbc_flush(fbc, frontbuffer_bits, origin);
>  }
>  
> @@ -1617,7 +1640,7 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
>  			       struct intel_crtc *crtc,
>  			       struct intel_plane *plane)
>  {
> -	struct drm_i915_private *i915 = to_i915(state->base.dev);
> +	struct intel_display *display = to_intel_display(state->base.dev);
>  	const struct intel_plane_state *plane_state =
>  		intel_atomic_get_new_plane_state(state, plane);
>  	struct intel_fbc *fbc = plane->fbc;
> @@ -1636,7 +1659,7 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
>  		__intel_fbc_disable(fbc);
>  	}
>  
> -	drm_WARN_ON(&i915->drm, fbc->active);
> +	drm_WARN_ON(display->drm, fbc->active);
>  
>  	fbc->no_fbc_reason = plane_state->no_fbc_reason;
>  	if (fbc->no_fbc_reason)
> @@ -1658,7 +1681,7 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
>  		return;
>  	}
>  
> -	drm_dbg_kms(&i915->drm, "Enabling FBC on [PLANE:%d:%s]\n",
> +	drm_dbg_kms(display->drm, "Enabling FBC on [PLANE:%d:%s]\n",
>  		    plane->base.base.id, plane->base.name);
>  	fbc->no_fbc_reason = "FBC enabled but not active yet\n";
>  
> @@ -1676,10 +1699,10 @@ static void __intel_fbc_enable(struct intel_atomic_state *state,
>   */
>  void intel_fbc_disable(struct intel_crtc *crtc)
>  {
> -	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	struct intel_display *display = to_intel_display(crtc->base.dev);
>  	struct intel_plane *plane;
>  
> -	for_each_intel_plane(&i915->drm, plane) {
> +	for_each_intel_plane(display->drm, plane) {
>  		struct intel_fbc *fbc = plane->fbc;
>  
>  		if (!fbc || plane->pipe != crtc->pipe)
> @@ -1724,7 +1747,8 @@ void intel_fbc_update(struct intel_atomic_state *state,
>  static void intel_fbc_underrun_work_fn(struct work_struct *work)
>  {
>  	struct intel_fbc *fbc = container_of(work, typeof(*fbc), underrun_work);
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
>  	mutex_lock(&fbc->lock);
>  
> @@ -1732,7 +1756,7 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
>  	if (fbc->underrun_detected || !fbc->state.plane)
>  		goto out;
>  
> -	drm_dbg_kms(&i915->drm, "Disabling FBC due to FIFO underrun.\n");
> +	drm_dbg_kms(display->drm, "Disabling FBC due to FIFO underrun.\n");
>  	fbc->underrun_detected = true;
>  
>  	intel_fbc_deactivate(fbc, "FIFO underrun");
> @@ -1745,14 +1769,14 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
>  
>  static void __intel_fbc_reset_underrun(struct intel_fbc *fbc)
>  {
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
>  
>  	cancel_work_sync(&fbc->underrun_work);
>  
>  	mutex_lock(&fbc->lock);
>  
>  	if (fbc->underrun_detected) {
> -		drm_dbg_kms(&i915->drm,
> +		drm_dbg_kms(display->drm,
>  			    "Re-allowing FBC after fifo underrun\n");
>  		fbc->no_fbc_reason = "FIFO underrun cleared";
>  	}
> @@ -1763,22 +1787,24 @@ static void __intel_fbc_reset_underrun(struct intel_fbc *fbc)
>  
>  /*
>   * intel_fbc_reset_underrun - reset FBC fifo underrun status.
> - * @i915: the i915 device
> + * @display: display
>   *
>   * See intel_fbc_handle_fifo_underrun_irq(). For automated testing we
>   * want to re-enable FBC after an underrun to increase test coverage.
>   */
> -void intel_fbc_reset_underrun(struct drm_i915_private *i915)
> +void intel_fbc_reset_underrun(struct intel_display *display)
>  {
>  	struct intel_fbc *fbc;
>  	enum intel_fbc_id fbc_id;
>  
> -	for_each_intel_fbc(i915, fbc, fbc_id)
> +	for_each_intel_fbc(display, fbc, fbc_id)
>  		__intel_fbc_reset_underrun(fbc);
>  }
>  
>  static void __intel_fbc_handle_fifo_underrun_irq(struct intel_fbc *fbc)
>  {
> +	struct drm_i915_private *i915 = to_i915(fbc->display->drm);
> +
>  	/*
>  	 * There's no guarantee that underrun_detected won't be set to true
>  	 * right after this check and before the work is scheduled, but that's
> @@ -1790,12 +1816,12 @@ static void __intel_fbc_handle_fifo_underrun_irq(struct intel_fbc *fbc)
>  	if (READ_ONCE(fbc->underrun_detected))
>  		return;
>  
> -	queue_work(fbc->i915->unordered_wq, &fbc->underrun_work);
> +	queue_work(i915->unordered_wq, &fbc->underrun_work);
>  }
>  
>  /**
>   * intel_fbc_handle_fifo_underrun_irq - disable FBC when we get a FIFO underrun
> - * @i915: i915 device
> + * @display: display
>   *
>   * Without FBC, most underruns are harmless and don't really cause too many
>   * problems, except for an annoying message on dmesg. With FBC, underruns can
> @@ -1807,12 +1833,12 @@ static void __intel_fbc_handle_fifo_underrun_irq(struct intel_fbc *fbc)
>   *
>   * This function is called from the IRQ handler.
>   */
> -void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915)
> +void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display)
>  {
>  	struct intel_fbc *fbc;
>  	enum intel_fbc_id fbc_id;
>  
> -	for_each_intel_fbc(i915, fbc, fbc_id)
> +	for_each_intel_fbc(display, fbc, fbc_id)
>  		__intel_fbc_handle_fifo_underrun_irq(fbc);
>  }
>  
> @@ -1825,15 +1851,17 @@ void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915)
>   * space to change the value during runtime without sanitizing it again. IGT
>   * relies on being able to change i915.enable_fbc at runtime.
>   */
> -static int intel_sanitize_fbc_option(struct drm_i915_private *i915)
> +static int intel_sanitize_fbc_option(struct intel_display *display)
>  {
> -	if (i915->display.params.enable_fbc >= 0)
> -		return !!i915->display.params.enable_fbc;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  
> -	if (!HAS_FBC(i915))
> +	if (display->params.enable_fbc >= 0)
> +		return !!display->params.enable_fbc;
> +
> +	if (!HAS_FBC(display))
>  		return 0;
>  
> -	if (IS_BROADWELL(i915) || DISPLAY_VER(i915) >= 9)
> +	if (IS_BROADWELL(i915) || DISPLAY_VER(display) >= 9)
>  		return 1;
>  
>  	return 0;
> @@ -1844,9 +1872,10 @@ void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane)
>  	plane->fbc = fbc;
>  }
>  
> -static struct intel_fbc *intel_fbc_create(struct drm_i915_private *i915,
> +static struct intel_fbc *intel_fbc_create(struct intel_display *display,
>  					  enum intel_fbc_id fbc_id)
>  {
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct intel_fbc *fbc;
>  
>  	fbc = kzalloc(sizeof(*fbc), GFP_KERNEL);
> @@ -1854,19 +1883,19 @@ static struct intel_fbc *intel_fbc_create(struct drm_i915_private *i915,
>  		return NULL;
>  
>  	fbc->id = fbc_id;
> -	fbc->i915 = i915;
> +	fbc->display = display;
>  	INIT_WORK(&fbc->underrun_work, intel_fbc_underrun_work_fn);
>  	mutex_init(&fbc->lock);
>  
> -	if (DISPLAY_VER(i915) >= 7)
> +	if (DISPLAY_VER(display) >= 7)
>  		fbc->funcs = &ivb_fbc_funcs;
> -	else if (DISPLAY_VER(i915) == 6)
> +	else if (DISPLAY_VER(display) == 6)
>  		fbc->funcs = &snb_fbc_funcs;
> -	else if (DISPLAY_VER(i915) == 5)
> +	else if (DISPLAY_VER(display) == 5)
>  		fbc->funcs = &ilk_fbc_funcs;
>  	else if (IS_G4X(i915))
>  		fbc->funcs = &g4x_fbc_funcs;
> -	else if (DISPLAY_VER(i915) == 4)
> +	else if (DISPLAY_VER(display) == 4)
>  		fbc->funcs = &i965_fbc_funcs;
>  	else
>  		fbc->funcs = &i8xx_fbc_funcs;
> @@ -1876,36 +1905,36 @@ static struct intel_fbc *intel_fbc_create(struct drm_i915_private *i915,
>  
>  /**
>   * intel_fbc_init - Initialize FBC
> - * @i915: the i915 device
> + * @display: display
>   *
>   * This function might be called during PM init process.
>   */
> -void intel_fbc_init(struct drm_i915_private *i915)
> +void intel_fbc_init(struct intel_display *display)
>  {
>  	enum intel_fbc_id fbc_id;
>  
> -	i915->display.params.enable_fbc = intel_sanitize_fbc_option(i915);
> -	drm_dbg_kms(&i915->drm, "Sanitized enable_fbc value: %d\n",
> -		    i915->display.params.enable_fbc);
> +	display->params.enable_fbc = intel_sanitize_fbc_option(display);
> +	drm_dbg_kms(display->drm, "Sanitized enable_fbc value: %d\n",
> +		    display->params.enable_fbc);
>  
> -	for_each_fbc_id(i915, fbc_id)
> -		i915->display.fbc[fbc_id] = intel_fbc_create(i915, fbc_id);
> +	for_each_fbc_id(display, fbc_id)
> +		display->fbc[fbc_id] = intel_fbc_create(display, fbc_id);
>  }
>  
>  /**
>   * intel_fbc_sanitize - Sanitize FBC
> - * @i915: the i915 device
> + * @display: display
>   *
>   * Make sure FBC is initially disabled since we have no
>   * idea eg. into which parts of stolen it might be scribbling
>   * into.
>   */
> -void intel_fbc_sanitize(struct drm_i915_private *i915)
> +void intel_fbc_sanitize(struct intel_display *display)
>  {
>  	struct intel_fbc *fbc;
>  	enum intel_fbc_id fbc_id;
>  
> -	for_each_intel_fbc(i915, fbc, fbc_id) {
> +	for_each_intel_fbc(display, fbc, fbc_id) {
>  		if (intel_fbc_hw_is_active(fbc))
>  			intel_fbc_hw_deactivate(fbc);
>  	}
> @@ -1914,11 +1943,12 @@ void intel_fbc_sanitize(struct drm_i915_private *i915)
>  static int intel_fbc_debugfs_status_show(struct seq_file *m, void *unused)
>  {
>  	struct intel_fbc *fbc = m->private;
> -	struct drm_i915_private *i915 = fbc->i915;
> +	struct intel_display *display = fbc->display;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
>  	struct intel_plane *plane;
>  	intel_wakeref_t wakeref;
>  
> -	drm_modeset_lock_all(&i915->drm);
> +	drm_modeset_lock_all(display->drm);
>  
>  	wakeref = intel_runtime_pm_get(&i915->runtime_pm);
>  	mutex_lock(&fbc->lock);
> @@ -1931,7 +1961,7 @@ static int intel_fbc_debugfs_status_show(struct seq_file *m, void *unused)
>  		seq_printf(m, "FBC disabled: %s\n", fbc->no_fbc_reason);
>  	}
>  
> -	for_each_intel_plane(&i915->drm, plane) {
> +	for_each_intel_plane(display->drm, plane) {
>  		const struct intel_plane_state *plane_state =
>  			to_intel_plane_state(plane->base.state);
>  
> @@ -1947,7 +1977,7 @@ static int intel_fbc_debugfs_status_show(struct seq_file *m, void *unused)
>  	mutex_unlock(&fbc->lock);
>  	intel_runtime_pm_put(&i915->runtime_pm, wakeref);
>  
> -	drm_modeset_unlock_all(&i915->drm);
> +	drm_modeset_unlock_all(display->drm);
>  
>  	return 0;
>  }
> @@ -2004,12 +2034,12 @@ void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc)
>  }
>  
>  /* FIXME: remove this once igt is on board with per-crtc stuff */
> -void intel_fbc_debugfs_register(struct drm_i915_private *i915)
> +void intel_fbc_debugfs_register(struct intel_display *display)
>  {
> -	struct drm_minor *minor = i915->drm.primary;
> +	struct drm_minor *minor = display->drm->primary;
>  	struct intel_fbc *fbc;
>  
> -	fbc = i915->display.fbc[INTEL_FBC_A];
> +	fbc = display->fbc[INTEL_FBC_A];
>  	if (fbc)
>  		intel_fbc_debugfs_add(fbc, minor->debugfs_root);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
> index 6720ec8ee8a2..834b271505b1 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.h
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.h
> @@ -13,6 +13,7 @@ struct drm_i915_private;
>  struct intel_atomic_state;
>  struct intel_crtc;
>  struct intel_crtc_state;
> +struct intel_display;
>  struct intel_fbc;
>  struct intel_plane;
>  struct intel_plane_state;
> @@ -31,9 +32,9 @@ bool intel_fbc_pre_update(struct intel_atomic_state *state,
>  			  struct intel_crtc *crtc);
>  void intel_fbc_post_update(struct intel_atomic_state *state,
>  			   struct intel_crtc *crtc);
> -void intel_fbc_init(struct drm_i915_private *dev_priv);
> -void intel_fbc_cleanup(struct drm_i915_private *dev_priv);
> -void intel_fbc_sanitize(struct drm_i915_private *dev_priv);
> +void intel_fbc_init(struct intel_display *dev_priv);
> +void intel_fbc_cleanup(struct intel_display *dev_priv);
> +void intel_fbc_sanitize(struct intel_display *dev_priv);
>  void intel_fbc_update(struct intel_atomic_state *state,
>  		      struct intel_crtc *crtc);
>  void intel_fbc_disable(struct intel_crtc *crtc);
> @@ -43,9 +44,9 @@ void intel_fbc_invalidate(struct drm_i915_private *dev_priv,
>  void intel_fbc_flush(struct drm_i915_private *dev_priv,
>  		     unsigned int frontbuffer_bits, enum fb_op_origin origin);
>  void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane);
> -void intel_fbc_handle_fifo_underrun_irq(struct drm_i915_private *i915);
> -void intel_fbc_reset_underrun(struct drm_i915_private *i915);
> +void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display);
> +void intel_fbc_reset_underrun(struct intel_display *display);
>  void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);
> -void intel_fbc_debugfs_register(struct drm_i915_private *i915);
> +void intel_fbc_debugfs_register(struct intel_display *display);
>  
>  #endif /* __INTEL_FBC_H__ */
> diff --git a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
> index e5e4ca7cc499..8949fbb1cc60 100644
> --- a/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
> +++ b/drivers/gpu/drm/i915/display/intel_fifo_underrun.c
> @@ -440,7 +440,7 @@ void intel_cpu_fifo_underrun_irq_handler(struct drm_i915_private *dev_priv,
>  			drm_err(&dev_priv->drm, "CPU pipe %c FIFO underrun\n", pipe_name(pipe));
>  	}
>  
> -	intel_fbc_handle_fifo_underrun_irq(dev_priv);
> +	intel_fbc_handle_fifo_underrun_irq(&dev_priv->display);
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/i915/display/intel_modeset_setup.c b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> index 7602cb30ebf1..6f85f5352455 100644
> --- a/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> +++ b/drivers/gpu/drm/i915/display/intel_modeset_setup.c
> @@ -966,7 +966,7 @@ void intel_modeset_setup_hw_state(struct drm_i915_private *i915,
>  		}
>  	}
>  
> -	intel_fbc_sanitize(i915);
> +	intel_fbc_sanitize(&i915->display);
>  
>  	intel_sanitize_plane_mapping(i915);
>  
> -- 
> 2.44.2
> 

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

* Re: [PATCH 03/20] drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/
  2024-07-05 14:52 ` [PATCH 03/20] drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/ Ville Syrjala
@ 2024-07-09 19:50   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:50 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:37PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> _intel_fbc_cfb_stride() calculates the CFB stride the hardware would
> automagically generate from the plane's stride. Rename the function
> to intel_fbc_plane_cfb_stride() to better reflect its purpose.
> 

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index de8caa69a0dd..8f3b8f2cbf7b 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -141,7 +141,7 @@ static unsigned int intel_fbc_plane_stride(const struct intel_plane_state *plane
>  }
>  
>  /* plane stride based cfb stride in bytes, assuming 1:1 compression limit */
> -static unsigned int _intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
> +static unsigned int intel_fbc_plane_cfb_stride(const struct intel_plane_state *plane_state)
>  {
>  	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
>  
> @@ -182,7 +182,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
>  static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
>  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> -	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
> +	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
>  
>  	/*
>  	 * At least some of the platforms require each 4 line segment to
> @@ -212,7 +212,7 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
>  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	unsigned int stride_aligned = intel_fbc_cfb_stride(plane_state);
> -	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
> +	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  
>  	/*
> -- 
> 2.44.2
> 

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

* Re: [PATCH 04/20] drm/i915/fbc: Extract intel_fbc_max_plane_size()
  2024-07-05 14:52 ` [PATCH 04/20] drm/i915/fbc: Extract intel_fbc_max_plane_size() Ville Syrjala
@ 2024-07-09 19:51   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:51 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:38PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Extract intel_fbc_max_plane_size() from intel_fbc_plane_size_valid().
> We'll have another use for this soon in determining how much stolen
> memory we'd like to keep reserved for FBC.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 29 +++++++++++++++---------
>  1 file changed, 18 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 8f3b8f2cbf7b..08a431cfbbb3 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1110,25 +1110,32 @@ static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *
>  	return effective_w <= max_w && effective_h <= max_h;
>  }
>  
> -static bool intel_fbc_plane_size_valid(const struct intel_plane_state *plane_state)
> +static void intel_fbc_max_plane_size(struct intel_display *display,
> +				     unsigned int *w, unsigned int *h)
>  {
> -	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	struct drm_i915_private *i915 = to_i915(display->drm);
> -	unsigned int w, h, max_w, max_h;
>  
>  	if (DISPLAY_VER(display) >= 10) {
> -		max_w = 5120;
> -		max_h = 4096;
> +		*w = 5120;
> +		*h = 4096;
>  	} else if (DISPLAY_VER(display) >= 8 || IS_HASWELL(i915)) {
> -		max_w = 4096;
> -		max_h = 4096;
> +		*w = 4096;
> +		*h = 4096;
>  	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
> -		max_w = 4096;
> -		max_h = 2048;
> +		*w = 4096;
> +		*h = 2048;
>  	} else {
> -		max_w = 2048;
> -		max_h = 1536;
> +		*w = 2048;
> +		*h = 1536;
>  	}
> +}
> +
> +static bool intel_fbc_plane_size_valid(const struct intel_plane_state *plane_state)
> +{
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> +	unsigned int w, h, max_w, max_h;
> +
> +	intel_fbc_max_plane_size(display, &max_w, &max_h);
>  
>  	w = drm_rect_width(&plane_state->uapi.src) >> 16;
>  	h = drm_rect_height(&plane_state->uapi.src) >> 16;
> -- 
> 2.44.2
> 

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

* Re: [PATCH 05/20] drm/i915/fbc: Extract intel_fbc_max_surface_size()
  2024-07-05 14:52 ` [PATCH 05/20] drm/i915/fbc: Extract intel_fbc_max_surface_size() Ville Syrjala
@ 2024-07-09 19:51   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:51 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:39PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Extract intel_fbc_max_surface_size() from
> intel_fbc_hw_tracking_covers_screen(), mainly to mirror the
> "max plane size" counterparts.
> 

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 41 ++++++++++++++----------
>  1 file changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 08a431cfbbb3..c7fd774440a8 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1073,6 +1073,29 @@ static bool rotation_is_valid(const struct intel_plane_state *plane_state)
>  		return i8xx_fbc_rotation_is_valid(plane_state);
>  }
>  
> +static void intel_fbc_max_surface_size(struct intel_display *display,
> +				       unsigned int *w, unsigned int *h)
> +{
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> +
> +	if (DISPLAY_VER(display) >= 11) {
> +		*w = 8192;
> +		*h = 4096;
> +	} else if (DISPLAY_VER(display) >= 10) {
> +		*w = 5120;
> +		*h = 4096;
> +	} else if (DISPLAY_VER(display) >= 7) {
> +		*w = 4096;
> +		*h = 4096;
> +	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
> +		*w = 4096;
> +		*h = 2048;
> +	} else {
> +		*w = 2048;
> +		*h = 1536;
> +	}
> +}
> +
>  /*
>   * For some reason, the hardware tracking starts looking at whatever we
>   * programmed as the display plane base address register. It does not look at
> @@ -1082,25 +1105,9 @@ static bool rotation_is_valid(const struct intel_plane_state *plane_state)
>  static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *plane_state)
>  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> -	struct drm_i915_private *i915 = to_i915(display->drm);
>  	unsigned int effective_w, effective_h, max_w, max_h;
>  
> -	if (DISPLAY_VER(display) >= 11) {
> -		max_w = 8192;
> -		max_h = 4096;
> -	} else if (DISPLAY_VER(display) >= 10) {
> -		max_w = 5120;
> -		max_h = 4096;
> -	} else if (DISPLAY_VER(display) >= 7) {
> -		max_w = 4096;
> -		max_h = 4096;
> -	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
> -		max_w = 4096;
> -		max_h = 2048;
> -	} else {
> -		max_w = 2048;
> -		max_h = 1536;
> -	}
> +	intel_fbc_max_surface_size(display, &max_w, &max_h);
>  
>  	effective_w = plane_state->view.color_plane[0].x +
>  		(drm_rect_width(&plane_state->uapi.src) >> 16);
> -- 
> 2.44.2
> 

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

* Re: [PATCH 06/20] drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/
  2024-07-05 14:52 ` [PATCH 06/20] drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/ Ville Syrjala
@ 2024-07-09 19:52   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:52 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:40PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Rename intel_fbc_hw_tracking_covers_screen() to intel_fbc_surface_size_ok()
> so that the naming scheme is the same for the surface size vs. plane
> size checks. "surface size" is what bspec talks about.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index c7fd774440a8..40a3b4937dc5 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1102,7 +1102,7 @@ static void intel_fbc_max_surface_size(struct intel_display *display,
>   * the X and Y offset registers. That's why we include the src x/y offsets
>   * instead of just looking at the plane size.
>   */
> -static bool intel_fbc_hw_tracking_covers_screen(const struct intel_plane_state *plane_state)
> +static bool intel_fbc_surface_size_ok(const struct intel_plane_state *plane_state)
>  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	unsigned int effective_w, effective_h, max_w, max_h;
> @@ -1354,7 +1354,7 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
>  		return 0;
>  	}
>  
> -	if (!intel_fbc_hw_tracking_covers_screen(plane_state)) {
> +	if (!intel_fbc_surface_size_ok(plane_state)) {
>  		plane_state->no_fbc_reason = "surface size too big";
>  		return 0;
>  	}
> -- 
> 2.44.2
> 

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

* Re: [PATCH 07/20] drm/i915/fbc: Adjust g4x+ platform checks
  2024-07-05 14:52 ` [PATCH 07/20] drm/i915/fbc: Adjust g4x+ platform checks Ville Syrjala
@ 2024-07-09 19:54   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 19:54 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:41PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Do the "is this ilk+ or g4x" checks in the customary order instead
> of the reverse order. Easier for the poor brain to parse this
> when it's always done the same way.

my poor and lazy brain thanks this!
I would likely stop reading at 'G4' if trying to read code for newer
platforms...

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 40a3b4937dc5..5ba3d8797243 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1087,7 +1087,7 @@ static void intel_fbc_max_surface_size(struct intel_display *display,
>  	} else if (DISPLAY_VER(display) >= 7) {
>  		*w = 4096;
>  		*h = 4096;
> -	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
> +	} else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915)) {
>  		*w = 4096;
>  		*h = 2048;
>  	} else {
> @@ -1128,7 +1128,7 @@ static void intel_fbc_max_plane_size(struct intel_display *display,
>  	} else if (DISPLAY_VER(display) >= 8 || IS_HASWELL(i915)) {
>  		*w = 4096;
>  		*h = 4096;
> -	} else if (IS_G4X(i915) || DISPLAY_VER(display) >= 5) {
> +	} else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915)) {
>  		*w = 4096;
>  		*h = 2048;
>  	} else {
> -- 
> 2.44.2
> 

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

* Re: [PATCH 09/20] drm/i915/fbc: s/lines/height/
  2024-07-05 14:52 ` [PATCH 09/20] drm/i915/fbc: s/lines/height/ Ville Syrjala
@ 2024-07-09 20:00   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 20:00 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:43PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Use the more customary name 'height' instead of 'lines'.
> 

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 4a9321f5218f..4d25ebb5ae9d 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -204,14 +204,14 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
>  static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
>  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> -	int lines = drm_rect_height(&plane_state->uapi.src) >> 16;
> +	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
>  	if (DISPLAY_VER(display) == 7)
> -		lines = min(lines, 2048);
> +		height = min(height, 2048);
>  	else if (DISPLAY_VER(display) >= 8)
> -		lines = min(lines, 2560);
> +		height = min(height, 2560);
>  
> -	return lines * intel_fbc_cfb_stride(plane_state);
> +	return height * intel_fbc_cfb_stride(plane_state);
>  }
>  
>  static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
> -- 
> 2.44.2
> 

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

* Re: [PATCH 10/20] drm/i915/fbc: Reoder CFB max height platform checks
  2024-07-05 14:52 ` [PATCH 10/20] drm/i915/fbc: Reoder CFB max height platform checks Ville Syrjala
@ 2024-07-09 20:00   ` Rodrigo Vivi
  0 siblings, 0 replies; 55+ messages in thread
From: Rodrigo Vivi @ 2024-07-09 20:00 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:44PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Rearrange the max CFB max height platform into the
> more common "new first, old last" order.
> 

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 4d25ebb5ae9d..cf5750ed4681 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -206,10 +206,10 @@ static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_sta
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
>  	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
> -	if (DISPLAY_VER(display) == 7)
> -		height = min(height, 2048);
> -	else if (DISPLAY_VER(display) >= 8)
> +	if (DISPLAY_VER(display) >= 8)
>  		height = min(height, 2560);
> +	else if (DISPLAY_VER(display) == 7)
> +		height = min(height, 2048);
>  
>  	return height * intel_fbc_cfb_stride(plane_state);
>  }
> -- 
> 2.44.2
> 

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

* Re: [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-05 14:52 ` [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen() Ville Syrjala
  2024-07-06 12:06   ` kernel test robot
@ 2024-07-09 20:28   ` Lucas De Marchi
  2024-07-10 11:47     ` Ville Syrjälä
  2024-07-10  8:51   ` Shankar, Uma
  2 siblings, 1 reply; 55+ messages in thread
From: Lucas De Marchi @ 2024-07-09 20:28 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: intel-gfx, intel-xe

On Fri, Jul 05, 2024 at 05:52:50PM GMT, Ville Syrjälä wrote:
>From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
>Consolidate the "should we allocate fbdev fb in stolen?"
>check into a helper function. Makes it easier to change the
>heuristics without having to change so many places.
>
>Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>---
> drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 24 ++++++++++++-------
> drivers/gpu/drm/i915/display/intel_fbdev_fb.h |  5 +++-
> .../drm/i915/display/intel_plane_initial.c    | 10 +++-----
> 3 files changed, 23 insertions(+), 16 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
>index 497525ef9668..0a6445acb100 100644
>--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
>+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
>@@ -11,6 +11,19 @@
> #include "intel_display_types.h"
> #include "intel_fbdev_fb.h"
>
>+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
>+				  unsigned int size)
>+{
>+	struct drm_i915_private *i915 = to_i915(display->drm);
>+
>+	/*
>+	 * If the FB is too big, just don't use it since fbdev is not very
>+	 * important and we should probably use that space with FBC or other
>+	 * features.
>+	 */
>+	return i915->dsm.usable_size >= size * 2;
>+}
>+
> struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> 					       struct drm_fb_helper_surface_size *sizes)
> {
>@@ -42,14 +55,9 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> 						  I915_BO_ALLOC_CONTIGUOUS |
> 						  I915_BO_ALLOC_USER);
> 	} else {
>-		/*
>-		 * If the FB is too big, just don't use it since fbdev is not very
>-		 * important and we should probably use that space with FBC or other
>-		 * features.
>-		 *
>-		 * Also skip stolen on MTL as Wa_22018444074 mitigation.
>-		 */
>-		if (!(IS_METEORLAKE(dev_priv)) && size * 2 < dev_priv->dsm.usable_size)
>+		/* skip stolen on MTL as Wa_22018444074 mitigation */
>+		if (!IS_METEORLAKE(dev_priv) &&

shouldn't this be inside intel_fbdev_fb_prefer_stolen()?

And also pull the same logic on the xe side a few patches after this.

Lucas De Marchi

>+		    intel_fbdev_fb_prefer_stolen(&dev_priv->display, size))
> 			obj = i915_gem_object_create_stolen(dev_priv, size);
> 		if (IS_ERR(obj))
> 			obj = i915_gem_object_create_shmem(dev_priv, size);
>diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
>index 4832fe688fbf..3b9033bd2160 100644
>--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
>+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
>@@ -6,16 +6,19 @@
> #ifndef __INTEL_FBDEV_FB_H__
> #define __INTEL_FBDEV_FB_H__
>
>+#include <linux/types.h>
>+
> struct drm_fb_helper;
> struct drm_fb_helper_surface_size;
> struct drm_i915_gem_object;
> struct drm_i915_private;
> struct fb_info;
> struct i915_vma;
>+struct intel_display;
>
> struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> 					       struct drm_fb_helper_surface_size *sizes);
> int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info *info,
> 			     struct drm_i915_gem_object *obj, struct i915_vma *vma);
>-
>+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display, unsigned int size);
> #endif
>diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
>index ada1792df5b3..4622bb5f3426 100644
>--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
>+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
>@@ -11,6 +11,7 @@
> #include "intel_display.h"
> #include "intel_display_types.h"
> #include "intel_fb.h"
>+#include "intel_fbdev_fb.h"
> #include "intel_frontbuffer.h"
> #include "intel_plane_initial.h"
>
>@@ -160,15 +161,10 @@ initial_plane_vma(struct drm_i915_private *i915,
> 			mem->min_page_size);
> 	size -= base;
>
>-	/*
>-	 * If the FB is too big, just don't use it since fbdev is not very
>-	 * important and we should probably use that space with FBC or other
>-	 * features.
>-	 */
> 	if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
> 	    mem == i915->mm.stolen_region &&
>-	    size * 2 > i915->dsm.usable_size) {
>-		drm_dbg_kms(&i915->drm, "Initial FB size exceeds half of stolen, discarding\n");
>+	    !intel_fbdev_fb_prefer_stolen(&i915->display, size)) {
>+		drm_dbg_kms(&i915->drm, "Initial FB size uses too much stolen, discarding\n");
> 		return NULL;
> 	}
>
>-- 
>2.44.2
>

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

* RE: [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride()
  2024-07-05 14:52 ` [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride() Ville Syrjala
@ 2024-07-10  8:01   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:01 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the lower level stuff out from intel_fbc_cfb_stride() into a separate function
> that doesn't depend on the plane_state.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 22 ++++++++++++++--------
>  1 file changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 5ba3d8797243..4a9321f5218f 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -149,12 +149,11 @@ static unsigned int intel_fbc_plane_cfb_stride(const
> struct intel_plane_state *p  }
> 
>  /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */ -
> static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state
> *plane_state)
> +static unsigned int skl_fbc_min_cfb_stride(struct intel_display *display,
> +					   unsigned int width)
>  {
> -	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
>  	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
>  	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
> -	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
>  	unsigned int height = 4; /* FBC segment is 4 lines */
>  	unsigned int stride;
> 
> @@ -179,22 +178,29 @@ static unsigned int skl_fbc_min_cfb_stride(const struct
> intel_plane_state *plane  }
> 
>  /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */ -static
> unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
> +static unsigned int _intel_fbc_cfb_stride(struct intel_display *display,
> +					  unsigned int width, unsigned int stride)
>  {
> -	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
> -	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
> -
>  	/*
>  	 * At least some of the platforms require each 4 line segment to
>  	 * be 512 byte aligned. Aligning each line to 512 bytes guarantees
>  	 * that regardless of the compression limit we choose later.
>  	 */
>  	if (DISPLAY_VER(display) >= 9)
> -		return max(ALIGN(stride, 512),
> skl_fbc_min_cfb_stride(plane_state));
> +		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(display,
> +width));
>  	else
>  		return stride;
>  }
> 
> +static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state
> +*plane_state) {
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
> +	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
> +	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
> +
> +	return _intel_fbc_cfb_stride(display, width, stride); }
> +
>  static unsigned int intel_fbc_cfb_size(const struct intel_plane_state
> *plane_state)  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
> --
> 2.44.2


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

* RE: [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height()
  2024-07-05 14:52 ` [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height() Ville Syrjala
@ 2024-07-10  8:26   ` Shankar, Uma
  2024-07-12 21:34     ` Ville Syrjälä
  0 siblings, 1 reply; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:26 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the code to determine the maximum CFB height into a separate function. For
> pre-HSW the maximum CFB height is the same as the maximum plane height (ie.
> the older hardware supposedely doens't have the trick of leaving the extra lines
> uncompressed).
> 

Nit: Typo in supposedly and doesn't.

Limit is also altered along with refactor; would a separate patch be better ?
Leave it your judgement. Overall logic looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 27 ++++++++++++++++++------
>  1 file changed, 20 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index cf5750ed4681..47b715e5d533 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -201,17 +201,30 @@ static unsigned int intel_fbc_cfb_stride(const struct
> intel_plane_state *plane_s
>  	return _intel_fbc_cfb_stride(display, width, stride);  }
> 
> -static unsigned int intel_fbc_cfb_size(const struct intel_plane_state
> *plane_state)
> +/*
> + * Maximum height the hardware will compress, on HSW+
> + * additional lines (up to the actual plane height) will
> + * remain uncompressed.
> + */
> +static unsigned int intel_fbc_max_cfb_height(struct intel_display
> +*display)
>  {
> -	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
> -	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> 
>  	if (DISPLAY_VER(display) >= 8)
> -		height = min(height, 2560);
> -	else if (DISPLAY_VER(display) == 7)
> -		height = min(height, 2048);
> +		return 2560;
> +	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
> +		return 2048;
> +	else
> +		return 1536;
> +}
> 
> -	return height * intel_fbc_cfb_stride(plane_state);
> +static unsigned int intel_fbc_cfb_size(const struct intel_plane_state
> +*plane_state) {
> +	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
> +	unsigned int height = drm_rect_height(&plane_state->uapi.src) >> 16;
> +
> +	return min(height, intel_fbc_max_cfb_height(display)) *
> +		intel_fbc_cfb_stride(plane_state);
>  }
> 
>  static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state
> *plane_state)
> --
> 2.44.2


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

* RE: [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size()
  2024-07-05 14:52 ` [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size() Ville Syrjala
@ 2024-07-10  8:28   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:28 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the lower level stuff out from intel_fbc_cfb_size() into a separate function
> that doesn't depend on the plane_state.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 47b715e5d533..293e1a3b9a9d 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -218,13 +218,18 @@ static unsigned int intel_fbc_max_cfb_height(struct
> intel_display *display)
>  		return 1536;
>  }
> 
> +static unsigned int _intel_fbc_cfb_size(struct intel_display *display,
> +					unsigned int height, unsigned int stride)
> {
> +	return min(height, intel_fbc_max_cfb_height(display)) * stride; }
> +
>  static unsigned int intel_fbc_cfb_size(const struct intel_plane_state
> *plane_state)  {
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
>  	unsigned int height = drm_rect_height(&plane_state->uapi.src) >> 16;
> 
> -	return min(height, intel_fbc_max_cfb_height(display)) *
> -		intel_fbc_cfb_stride(plane_state);
> +	return _intel_fbc_cfb_size(display, height,
> +intel_fbc_cfb_stride(plane_state));
>  }
> 
>  static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state
> *plane_state)
> --
> 2.44.2


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

* RE: [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp()
  2024-07-05 14:52 ` [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp() Ville Syrjala
@ 2024-07-10  8:30   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:30 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Extract a helper to determine the CFB bytes per pixel value.
> Currently this is always 4, but that could change in the future.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 18 ++++++++++++------
>  1 file changed, 12 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 293e1a3b9a9d..a0e539bc80f1 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -140,20 +140,24 @@ static unsigned int intel_fbc_plane_stride(const struct
> intel_plane_state *plane
>  	return stride;
>  }
> 
> +static unsigned int intel_fbc_cfb_cpp(void) {
> +	return 4; /* FBC always 4 bytes per pixel */ }
> +
>  /* plane stride based cfb stride in bytes, assuming 1:1 compression limit */  static
> unsigned int intel_fbc_plane_cfb_stride(const struct intel_plane_state
> *plane_state)  {
> -	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
> +	unsigned int cpp = intel_fbc_cfb_cpp();
> 
>  	return intel_fbc_plane_stride(plane_state) * cpp;  }
> 
>  /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */
> static unsigned int skl_fbc_min_cfb_stride(struct intel_display *display,
> -					   unsigned int width)
> +					   unsigned int cpp, unsigned int width)
>  {
>  	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
> -	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
>  	unsigned int height = 4; /* FBC segment is 4 lines */
>  	unsigned int stride;
> 
> @@ -179,7 +183,8 @@ static unsigned int skl_fbc_min_cfb_stride(struct
> intel_display *display,
> 
>  /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */  static
> unsigned int _intel_fbc_cfb_stride(struct intel_display *display,
> -					  unsigned int width, unsigned int stride)
> +					  unsigned int cpp, unsigned int width,
> +					  unsigned int stride)
>  {
>  	/*
>  	 * At least some of the platforms require each 4 line segment to @@ -
> 187,7 +192,7 @@ static unsigned int _intel_fbc_cfb_stride(struct intel_display
> *display,
>  	 * that regardless of the compression limit we choose later.
>  	 */
>  	if (DISPLAY_VER(display) >= 9)
> -		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(display,
> width));
> +		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(display,
> cpp,
> +width));
>  	else
>  		return stride;
>  }
> @@ -197,8 +202,9 @@ static unsigned int intel_fbc_cfb_stride(const struct
> intel_plane_state *plane_s
>  	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> >dev);
>  	unsigned int stride = intel_fbc_plane_cfb_stride(plane_state);
>  	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
> +	unsigned int cpp = intel_fbc_cfb_cpp();
> 
> -	return _intel_fbc_cfb_stride(display, width, stride);
> +	return _intel_fbc_cfb_stride(display, cpp, width, stride);
>  }
> 
>  /*
> --
> 2.44.2


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

* RE: [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
  2024-07-05 14:52 ` [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size() Ville Syrjala
@ 2024-07-10  8:36   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:36 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Allow the code to declare roughly how much stolen memory should remain
> available for the CFB. Since we don't know the actual resolutions that will
> eventually be used simply assume that the maximum plane size (with no extra
> stride
> padding) is enough, with 1:1 compression ratio limit.
> 
> This should be useful for the fbdev code to determine whether to allocate/keep
> the fbdev framebuffer in stolen or not.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 17 +++++++++++++++++
> drivers/gpu/drm/i915/display/intel_fbc.h |  1 +
>  2 files changed, 18 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index a0e539bc80f1..efe0a554a281 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1911,6 +1911,23 @@ static int intel_sanitize_fbc_option(struct
> intel_display *display)
>  	return 0;
>  }
> 
> +unsigned int intel_fbc_preferred_cfb_size(struct intel_display
> +*display) {
> +	unsigned int cpp, width, height, stride;
> +
> +	if (!HAS_FBC(display))
> +		return 0;
> +
> +	intel_fbc_max_plane_size(display, &width, &height);
> +
> +	cpp = intel_fbc_cfb_cpp();
> +
> +	/* assume stride matches width to keep this simple */
> +	stride = _intel_fbc_cfb_stride(display, cpp, width, width * cpp);
> +
> +	return _intel_fbc_cfb_size(display, height, stride); }
> +
>  void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane)  {
>  	plane->fbc = fbc;
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h
> b/drivers/gpu/drm/i915/display/intel_fbc.h
> index 834b271505b1..40d8efec6d9d 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.h
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.h
> @@ -46,6 +46,7 @@ void intel_fbc_flush(struct drm_i915_private *dev_priv,
> void intel_fbc_add_plane(struct intel_fbc *fbc, struct intel_plane *plane);  void
> intel_fbc_handle_fifo_underrun_irq(struct intel_display *display);  void
> intel_fbc_reset_underrun(struct intel_display *display);
> +unsigned int intel_fbc_preferred_cfb_size(struct intel_display
> +*display);
>  void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);  void
> intel_fbc_debugfs_register(struct intel_display *display);
> 
> --
> 2.44.2


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

* RE: [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke
  2024-07-05 14:52 ` [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke Ville Syrjala
@ 2024-07-10  8:42   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:42 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke

Nit: Typo in vs and check

> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Looks like stolen->size is in bytes, not pages. Remove the bogus PAGE_SHIFT stuff.
> 
> Also for some rnadom reason xe rejects the FB if it takes up exactly half of stolen,

Typo in random.

> whereas i915 allows it to be used in that case. Adjust xe to follow the i915 rule for
> consistency.

With the typos fixed,  Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> index 5eccd6abb3ef..21965cc8a9ca 100644
> --- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> +++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> @@ -110,7 +110,7 @@ initial_plane_bo(struct xe_device *xe,
>  		 * features.
>  		 */
>  		if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
> -		    plane_config->size * 2 >> PAGE_SHIFT >= stolen->size)
> +		    plane_config->size * 2 > stolen->size)
>  			return NULL;
>  	}
> 
> --
> 2.44.2


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

* RE: [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-05 14:52 ` [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen() Ville Syrjala
  2024-07-06 12:06   ` kernel test robot
  2024-07-09 20:28   ` Lucas De Marchi
@ 2024-07-10  8:51   ` Shankar, Uma
  2 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:51 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Consolidate the "should we allocate fbdev fb in stolen?"
> check into a helper function. Makes it easier to change the heuristics without
> having to change so many places.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 24 ++++++++++++-------
> drivers/gpu/drm/i915/display/intel_fbdev_fb.h |  5 +++-
>  .../drm/i915/display/intel_plane_initial.c    | 10 +++-----
>  3 files changed, 23 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> index 497525ef9668..0a6445acb100 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> @@ -11,6 +11,19 @@
>  #include "intel_display_types.h"
>  #include "intel_fbdev_fb.h"
> 
> +bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
> +				  unsigned int size)
> +{
> +	struct drm_i915_private *i915 = to_i915(display->drm);
> +
> +	/*
> +	 * If the FB is too big, just don't use it since fbdev is not very
> +	 * important and we should probably use that space with FBC or other
> +	 * features.
> +	 */
> +	return i915->dsm.usable_size >= size * 2; }
> +
>  struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
>  					       struct drm_fb_helper_surface_size
> *sizes)  { @@ -42,14 +55,9 @@ struct intel_framebuffer
> *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> 
> I915_BO_ALLOC_CONTIGUOUS |
>  						  I915_BO_ALLOC_USER);
>  	} else {
> -		/*
> -		 * If the FB is too big, just don't use it since fbdev is not very
> -		 * important and we should probably use that space with FBC or
> other
> -		 * features.
> -		 *
> -		 * Also skip stolen on MTL as Wa_22018444074 mitigation.
> -		 */
> -		if (!(IS_METEORLAKE(dev_priv)) && size * 2 < dev_priv-
> >dsm.usable_size)
> +		/* skip stolen on MTL as Wa_22018444074 mitigation */
> +		if (!IS_METEORLAKE(dev_priv) &&

Its better to move this platform check as well to the helper.

Also maybe we can extend this to LNL+ as well given the limitations (can be a separate change though).
Thoughts ?

> +		    intel_fbdev_fb_prefer_stolen(&dev_priv->display, size))
>  			obj = i915_gem_object_create_stolen(dev_priv, size);
>  		if (IS_ERR(obj))
>  			obj = i915_gem_object_create_shmem(dev_priv, size);
> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> index 4832fe688fbf..3b9033bd2160 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> @@ -6,16 +6,19 @@
>  #ifndef __INTEL_FBDEV_FB_H__
>  #define __INTEL_FBDEV_FB_H__
> 
> +#include <linux/types.h>
> +
>  struct drm_fb_helper;
>  struct drm_fb_helper_surface_size;
>  struct drm_i915_gem_object;
>  struct drm_i915_private;
>  struct fb_info;
>  struct i915_vma;
> +struct intel_display;
> 
>  struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
>  					       struct drm_fb_helper_surface_size
> *sizes);  int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info
> *info,
>  			     struct drm_i915_gem_object *obj, struct i915_vma
> *vma);
> -
> +bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
> +unsigned int size);
>  #endif
> diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c
> b/drivers/gpu/drm/i915/display/intel_plane_initial.c
> index ada1792df5b3..4622bb5f3426 100644
> --- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
> +++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
> @@ -11,6 +11,7 @@
>  #include "intel_display.h"
>  #include "intel_display_types.h"
>  #include "intel_fb.h"
> +#include "intel_fbdev_fb.h"
>  #include "intel_frontbuffer.h"
>  #include "intel_plane_initial.h"
> 
> @@ -160,15 +161,10 @@ initial_plane_vma(struct drm_i915_private *i915,
>  			mem->min_page_size);
>  	size -= base;
> 
> -	/*
> -	 * If the FB is too big, just don't use it since fbdev is not very
> -	 * important and we should probably use that space with FBC or other
> -	 * features.
> -	 */
>  	if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
>  	    mem == i915->mm.stolen_region &&
> -	    size * 2 > i915->dsm.usable_size) {
> -		drm_dbg_kms(&i915->drm, "Initial FB size exceeds half of stolen,
> discarding\n");
> +	    !intel_fbdev_fb_prefer_stolen(&i915->display, size)) {
> +		drm_dbg_kms(&i915->drm, "Initial FB size uses too much stolen,
> +discarding\n");
>  		return NULL;
>  	}
> 
> --
> 2.44.2


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

* RE: [PATCH 17/20] drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-05 14:52 ` [PATCH 17/20] drm/xe/fbdev: " Ville Syrjala
@ 2024-07-10  8:58   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  8:58 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 17/20] drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pull the "should we keep the bios fb in stolen?" logic into into a helper function,
> same as was done for i915. Gives us a single place where to tweak the heuristics.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/xe/display/intel_fbdev_fb.c   | 18 ++++++++++++++++++
>  drivers/gpu/drm/xe/display/xe_plane_initial.c |  8 ++------
>  2 files changed, 20 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> index 816ad13821a8..f7905b382d06 100644
> --- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> +++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> @@ -11,6 +11,24 @@
>  #include "xe_gt.h"
>  #include "xe_ttm_stolen_mgr.h"
> 
> +bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
> +				  unsigned int size)
> +{
> +	struct xe_device *xe = to_xe_device(display->drm);
> +	struct ttm_resource_manager *stolen;
> +
> +	stolen = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
> +	if (!stolen)
> +		return false;
> +
> +	/*
> +	 * If the FB is too big, just don't use it since fbdev is not very
> +	 * important and we should probably use that space with FBC or other
> +	 * features.
> +	 */
> +	return stolen->size >= size * 2;
> +}
> +
>  struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
>  					       struct drm_fb_helper_surface_size
> *sizes)  { diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> index 21965cc8a9ca..4c000e95aea5 100644
> --- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> +++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> @@ -15,6 +15,7 @@
>  #include "intel_display_types.h"
>  #include "intel_fb.h"
>  #include "intel_fb_pin.h"
> +#include "intel_fbdev_fb.h"
>  #include "intel_frontbuffer.h"
>  #include "intel_plane_initial.h"
>  #include "xe_bo.h"
> @@ -104,13 +105,8 @@ initial_plane_bo(struct xe_device *xe,
>  		phys_base = base;
>  		flags |= XE_BO_FLAG_STOLEN;
> 
> -		/*
> -		 * If the FB is too big, just don't use it since fbdev is not very
> -		 * important and we should probably use that space with FBC or
> other
> -		 * features.
> -		 */
>  		if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
> -		    plane_config->size * 2 > stolen->size)
> +		    !intel_fbdev_fb_prefer_stolen(&xe->display, plane_config-
> >size))
>  			return NULL;
>  	}
> 
> --
> 2.44.2


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

* RE: [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation
  2024-07-05 14:52 ` [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation Ville Syrjala
@ 2024-07-10  9:08   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  9:08 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen
> takever and fresh allocation
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Currently xe only checks that the BIOS FB doesn't take up too much stolen
> memory, but does no such check when allocating a fresh FB from stolen. Use the
> same rule for both, just like i915 does.

Would be good to add restriction for LNL+ as well.

However, current change looks good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> index f7905b382d06..f67bc0fd803b 100644
> --- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> +++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> @@ -17,6 +17,9 @@ bool intel_fbdev_fb_prefer_stolen(struct intel_display
> *display,
>  	struct xe_device *xe = to_xe_device(display->drm);
>  	struct ttm_resource_manager *stolen;
> 
> +	if (IS_DGFX(xe))
> +		return false;
> +
>  	stolen = ttm_manager_type(&xe->ttm, XE_PL_STOLEN);
>  	if (!stolen)
>  		return false;
> @@ -55,7 +58,7 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct
> drm_fb_helper *helper,
>  	size = PAGE_ALIGN(size);
>  	obj = ERR_PTR(-ENODEV);
> 
> -	if (!IS_DGFX(xe)) {
> +	if (intel_fbdev_fb_prefer_stolen(&xe->display, size)) {
>  		obj = xe_bo_create_pin_map(xe, xe_device_get_root_tile(xe),
>  					   NULL, size,
>  					   ttm_bo_type_kernel,
> XE_BO_FLAG_SCANOUT |
> --
> 2.44.2


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

* RE: [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
  2024-07-05 14:52 ` [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic Ville Syrjala
@ 2024-07-10  9:11   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  9:11 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville
> Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Replace the "1/2 of stolen size" fbdev fb size heuristic with something a bit more
> clever, that is ask the FBC code how much stolen mem it would like to have
> avaialable for its CFB use.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> TODO:
> - This doesn't account for the fact that FBC's idea
>   usable stolen size might differ from other users of stolen
> - Would be nice to share the code with xe, but need to
>   figure out how to abstract the stolen size and
>   dgpu/lmem stuff
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> index 0a6445acb100..29f3241c9270 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> @@ -16,12 +16,11 @@ bool intel_fbdev_fb_prefer_stolen(struct intel_display
> *display,  {
>  	struct drm_i915_private *i915 = to_i915(display->drm);
> 
> -	/*
> -	 * If the FB is too big, just don't use it since fbdev is not very
> -	 * important and we should probably use that space with FBC or other
> -	 * features.
> -	 */
> -	return i915->dsm.usable_size >= size * 2;
> +	if (size > i915->dsm.usable_size)
> +		return false;
> +
> +	/* try to ensure FBC has enough stolen to do its job well */
> +	return i915->dsm.usable_size - size >=
> +intel_fbc_preferred_cfb_size(&i915->display);
>  }
> 
>  struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> --
> 2.44.2


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

* RE: [PATCH 20/20] drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic
  2024-07-05 14:52 ` [PATCH 20/20] drm/xe/fbdev: " Ville Syrjala
@ 2024-07-10  9:12   ` Shankar, Uma
  0 siblings, 0 replies; 55+ messages in thread
From: Shankar, Uma @ 2024-07-10  9:12 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx@lists.freedesktop.org
  Cc: intel-xe@lists.freedesktop.org



> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> Sent: Friday, July 5, 2024 8:23 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: intel-xe@lists.freedesktop.org
> Subject: [PATCH 20/20] drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic
> 
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Replace the "1/2 of stolen size" fbdev fb size heuristic with something a bit more
> clever, that is ask the FBC code how much stolen mem it would like to have
> avaialable for its CFB use.

Looks Good to me.
Reviewed-by: Uma Shankar <uma.shankar@intel.com>

> TODO:
> - This doesn't account for the fact that FBC's idea
>   usable stolen size might differ from other users of stolen
> - Would be nice to share the code with i915, but need to
>   figure out how to abstract the stolen size and
>   dgpu/lmem stuff
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> index f67bc0fd803b..62e1d176b07f 100644
> --- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> +++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> @@ -24,12 +24,11 @@ bool intel_fbdev_fb_prefer_stolen(struct intel_display
> *display,
>  	if (!stolen)
>  		return false;
> 
> -	/*
> -	 * If the FB is too big, just don't use it since fbdev is not very
> -	 * important and we should probably use that space with FBC or other
> -	 * features.
> -	 */
> -	return stolen->size >= size * 2;
> +	if (size > stolen->size)
> +		return false;
> +
> +	/* try to ensure FBC has enough stolen to do its job well */
> +	return stolen->size - size >=
> +intel_fbc_preferred_cfb_size(&xe->display);
>  }
> 
>  struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> --
> 2.44.2


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

* Re: [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
  2024-07-09 20:28   ` Lucas De Marchi
@ 2024-07-10 11:47     ` Ville Syrjälä
  0 siblings, 0 replies; 55+ messages in thread
From: Ville Syrjälä @ 2024-07-10 11:47 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-gfx, intel-xe

On Tue, Jul 09, 2024 at 03:28:15PM -0500, Lucas De Marchi wrote:
> On Fri, Jul 05, 2024 at 05:52:50PM GMT, Ville Syrjälä wrote:
> >From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> >Consolidate the "should we allocate fbdev fb in stolen?"
> >check into a helper function. Makes it easier to change the
> >heuristics without having to change so many places.
> >
> >Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >---
> > drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 24 ++++++++++++-------
> > drivers/gpu/drm/i915/display/intel_fbdev_fb.h |  5 +++-
> > .../drm/i915/display/intel_plane_initial.c    | 10 +++-----
> > 3 files changed, 23 insertions(+), 16 deletions(-)
> >
> >diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> >index 497525ef9668..0a6445acb100 100644
> >--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> >+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
> >@@ -11,6 +11,19 @@
> > #include "intel_display_types.h"
> > #include "intel_fbdev_fb.h"
> >
> >+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display,
> >+				  unsigned int size)
> >+{
> >+	struct drm_i915_private *i915 = to_i915(display->drm);
> >+
> >+	/*
> >+	 * If the FB is too big, just don't use it since fbdev is not very
> >+	 * important and we should probably use that space with FBC or other
> >+	 * features.
> >+	 */
> >+	return i915->dsm.usable_size >= size * 2;
> >+}
> >+
> > struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> > 					       struct drm_fb_helper_surface_size *sizes)
> > {
> >@@ -42,14 +55,9 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> > 						  I915_BO_ALLOC_CONTIGUOUS |
> > 						  I915_BO_ALLOC_USER);
> > 	} else {
> >-		/*
> >-		 * If the FB is too big, just don't use it since fbdev is not very
> >-		 * important and we should probably use that space with FBC or other
> >-		 * features.
> >-		 *
> >-		 * Also skip stolen on MTL as Wa_22018444074 mitigation.
> >-		 */
> >-		if (!(IS_METEORLAKE(dev_priv)) && size * 2 < dev_priv->dsm.usable_size)
> >+		/* skip stolen on MTL as Wa_22018444074 mitigation */
> >+		if (!IS_METEORLAKE(dev_priv) &&
> 
> shouldn't this be inside intel_fbdev_fb_prefer_stolen()?

That would also apply it to the BIOS fb takeover, so change the
behaviour. The correct answer is likely just removing the MTL check
entirely, but I left that out for now to avoid too many functional
changes.

> 
> And also pull the same logic on the xe side a few patches after this.
> 
> Lucas De Marchi
> 
> >+		    intel_fbdev_fb_prefer_stolen(&dev_priv->display, size))
> > 			obj = i915_gem_object_create_stolen(dev_priv, size);
> > 		if (IS_ERR(obj))
> > 			obj = i915_gem_object_create_shmem(dev_priv, size);
> >diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> >index 4832fe688fbf..3b9033bd2160 100644
> >--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> >+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.h
> >@@ -6,16 +6,19 @@
> > #ifndef __INTEL_FBDEV_FB_H__
> > #define __INTEL_FBDEV_FB_H__
> >
> >+#include <linux/types.h>
> >+
> > struct drm_fb_helper;
> > struct drm_fb_helper_surface_size;
> > struct drm_i915_gem_object;
> > struct drm_i915_private;
> > struct fb_info;
> > struct i915_vma;
> >+struct intel_display;
> >
> > struct intel_framebuffer *intel_fbdev_fb_alloc(struct drm_fb_helper *helper,
> > 					       struct drm_fb_helper_surface_size *sizes);
> > int intel_fbdev_fb_fill_info(struct drm_i915_private *i915, struct fb_info *info,
> > 			     struct drm_i915_gem_object *obj, struct i915_vma *vma);
> >-
> >+bool intel_fbdev_fb_prefer_stolen(struct intel_display *display, unsigned int size);
> > #endif
> >diff --git a/drivers/gpu/drm/i915/display/intel_plane_initial.c b/drivers/gpu/drm/i915/display/intel_plane_initial.c
> >index ada1792df5b3..4622bb5f3426 100644
> >--- a/drivers/gpu/drm/i915/display/intel_plane_initial.c
> >+++ b/drivers/gpu/drm/i915/display/intel_plane_initial.c
> >@@ -11,6 +11,7 @@
> > #include "intel_display.h"
> > #include "intel_display_types.h"
> > #include "intel_fb.h"
> >+#include "intel_fbdev_fb.h"
> > #include "intel_frontbuffer.h"
> > #include "intel_plane_initial.h"
> >
> >@@ -160,15 +161,10 @@ initial_plane_vma(struct drm_i915_private *i915,
> > 			mem->min_page_size);
> > 	size -= base;
> >
> >-	/*
> >-	 * If the FB is too big, just don't use it since fbdev is not very
> >-	 * important and we should probably use that space with FBC or other
> >-	 * features.
> >-	 */
> > 	if (IS_ENABLED(CONFIG_FRAMEBUFFER_CONSOLE) &&
> > 	    mem == i915->mm.stolen_region &&
> >-	    size * 2 > i915->dsm.usable_size) {
> >-		drm_dbg_kms(&i915->drm, "Initial FB size exceeds half of stolen, discarding\n");
> >+	    !intel_fbdev_fb_prefer_stolen(&i915->display, size)) {
> >+		drm_dbg_kms(&i915->drm, "Initial FB size uses too much stolen, discarding\n");
> > 		return NULL;
> > 	}
> >
> >-- 
> >2.44.2
> >

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height()
  2024-07-10  8:26   ` Shankar, Uma
@ 2024-07-12 21:34     ` Ville Syrjälä
  0 siblings, 0 replies; 55+ messages in thread
From: Ville Syrjälä @ 2024-07-12 21:34 UTC (permalink / raw)
  To: Shankar, Uma
  Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org

On Wed, Jul 10, 2024 at 08:26:54AM +0000, Shankar, Uma wrote:
> 
> 
> > -----Original Message-----
> > From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Ville Syrjala
> > Sent: Friday, July 5, 2024 8:23 PM
> > To: intel-gfx@lists.freedesktop.org
> > Cc: intel-xe@lists.freedesktop.org
> > Subject: [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height()
> > 
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Pull the code to determine the maximum CFB height into a separate function. For
> > pre-HSW the maximum CFB height is the same as the maximum plane height (ie.
> > the older hardware supposedely doens't have the trick of leaving the extra lines
> > uncompressed).
> > 
> 
> Nit: Typo in supposedly and doesn't.
> 
> Limit is also altered along with refactor; would a separate patch be better ?

It doesn't actually change anything as that's just the max plane
height for older platforms, so anything taller would have been
already been rejected earlier.

I suppose I could have added the explicit limit first, and then
did the extraction. But seems harmless enough as is, so kept it
like this but adjusted the commit message a bit to highlight this
fact a little better.

> Leave it your judgement. Overall logic looks Good to me.
> Reviewed-by: Uma Shankar <uma.shankar@intel.com>
> 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_fbc.c | 27 ++++++++++++++++++------
> >  1 file changed, 20 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > index cf5750ed4681..47b715e5d533 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > @@ -201,17 +201,30 @@ static unsigned int intel_fbc_cfb_stride(const struct
> > intel_plane_state *plane_s
> >  	return _intel_fbc_cfb_stride(display, width, stride);  }
> > 
> > -static unsigned int intel_fbc_cfb_size(const struct intel_plane_state
> > *plane_state)
> > +/*
> > + * Maximum height the hardware will compress, on HSW+
> > + * additional lines (up to the actual plane height) will
> > + * remain uncompressed.
> > + */
> > +static unsigned int intel_fbc_max_cfb_height(struct intel_display
> > +*display)
> >  {
> > -	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> > >dev);
> > -	int height = drm_rect_height(&plane_state->uapi.src) >> 16;
> > +	struct drm_i915_private *i915 = to_i915(display->drm);
> > 
> >  	if (DISPLAY_VER(display) >= 8)
> > -		height = min(height, 2560);
> > -	else if (DISPLAY_VER(display) == 7)
> > -		height = min(height, 2048);
> > +		return 2560;
> > +	else if (DISPLAY_VER(display) >= 5 || IS_G4X(i915))
> > +		return 2048;
> > +	else
> > +		return 1536;
> > +}
> > 
> > -	return height * intel_fbc_cfb_stride(plane_state);
> > +static unsigned int intel_fbc_cfb_size(const struct intel_plane_state
> > +*plane_state) {
> > +	struct intel_display *display = to_intel_display(plane_state->uapi.plane-
> > >dev);
> > +	unsigned int height = drm_rect_height(&plane_state->uapi.src) >> 16;
> > +
> > +	return min(height, intel_fbc_max_cfb_height(display)) *
> > +		intel_fbc_cfb_stride(plane_state);
> >  }
> > 
> >  static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state
> > *plane_state)
> > --
> > 2.44.2
> 

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly
  2024-07-09 19:49   ` Rodrigo Vivi
@ 2024-07-12 21:38     ` Ville Syrjälä
  0 siblings, 0 replies; 55+ messages in thread
From: Ville Syrjälä @ 2024-07-12 21:38 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: intel-gfx, intel-xe

On Tue, Jul 09, 2024 at 03:49:29PM -0400, Rodrigo Vivi wrote:
> On Fri, Jul 05, 2024 at 05:52:36PM +0300, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Switch the FBC code over to intel_display from i915, as
> > much as possible. This is the future direction so that
> > the display code can be shared between i915 and xe more
> > cleanly.
> > 
> > Some of the platform checks and the stolen mem facing stiff
> > still need i915 around though.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >  .../drm/i915/display/intel_display_debugfs.c  |   4 +-
> >  .../drm/i915/display/intel_display_driver.c   |   4 +-
> >  drivers/gpu/drm/i915/display/intel_fbc.c      | 422 ++++++++++--------
> >  drivers/gpu/drm/i915/display/intel_fbc.h      |  13 +-
> >  .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
> >  .../drm/i915/display/intel_modeset_setup.c    |   2 +-
> >  6 files changed, 239 insertions(+), 208 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> > index 91757fed9c6d..5cf9b4af9adf 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> > @@ -1008,7 +1008,7 @@ i915_fifo_underrun_reset_write(struct file *filp,
> >  			return ret;
> >  	}
> >  
> > -	intel_fbc_reset_underrun(dev_priv);
> > +	intel_fbc_reset_underrun(&dev_priv->display);
> >  
> >  	return cnt;
> >  }
> > @@ -1063,7 +1063,7 @@ void intel_display_debugfs_register(struct drm_i915_private *i915)
> >  	intel_bios_debugfs_register(i915);
> >  	intel_cdclk_debugfs_register(i915);
> >  	intel_dmc_debugfs_register(i915);
> > -	intel_fbc_debugfs_register(i915);
> > +	intel_fbc_debugfs_register(&i915->display);
> >  	intel_hpd_debugfs_register(i915);
> >  	intel_opregion_debugfs_register(i915);
> >  	intel_psr_debugfs_register(i915);
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
> > index 794b4af38055..13e206ec450f 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_driver.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
> > @@ -265,7 +265,7 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
> >  
> >  	intel_init_quirks(display);
> >  
> > -	intel_fbc_init(i915);
> > +	intel_fbc_init(display);
> >  
> >  	return 0;
> >  
> > @@ -607,7 +607,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
> >  	destroy_workqueue(i915->display.wq.flip);
> >  	destroy_workqueue(i915->display.wq.modeset);
> >  
> > -	intel_fbc_cleanup(i915);
> > +	intel_fbc_cleanup(&i915->display);
> >  }
> >  
> >  /* part #3: call after gem init */
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> > index ba9820d4b78f..de8caa69a0dd 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > @@ -61,13 +61,13 @@
> >  #include "intel_fbc_regs.h"
> >  #include "intel_frontbuffer.h"
> >  
> > -#define for_each_fbc_id(__dev_priv, __fbc_id) \
> > +#define for_each_fbc_id(__display, __fbc_id) \
> >  	for ((__fbc_id) = INTEL_FBC_A; (__fbc_id) < I915_MAX_FBCS; (__fbc_id)++) \
> > -		for_each_if(DISPLAY_RUNTIME_INFO(__dev_priv)->fbc_mask & BIT(__fbc_id))
> > +		for_each_if(DISPLAY_RUNTIME_INFO(__display)->fbc_mask & BIT(__fbc_id))
> >  
> > -#define for_each_intel_fbc(__dev_priv, __fbc, __fbc_id) \
> > -	for_each_fbc_id((__dev_priv), (__fbc_id)) \
> > -		for_each_if((__fbc) = (__dev_priv)->display.fbc[(__fbc_id)])
> > +#define for_each_intel_fbc(__display, __fbc, __fbc_id) \
> > +	for_each_fbc_id((__display), (__fbc_id)) \
> > +		for_each_if((__fbc) = (__display)->fbc[(__fbc_id)])
> >  
> >  struct intel_fbc_funcs {
> >  	void (*activate)(struct intel_fbc *fbc);
> > @@ -90,7 +90,7 @@ struct intel_fbc_state {
> >  };
> >  
> >  struct intel_fbc {
> > -	struct drm_i915_private *i915;
> > +	struct intel_display *display;
> >  	const struct intel_fbc_funcs *funcs;
> >  
> >  	/*
> > @@ -151,7 +151,7 @@ static unsigned int _intel_fbc_cfb_stride(const struct intel_plane_state *plane_
> >  /* minimum acceptable cfb stride in bytes, assuming 1:1 compression limit */
> >  static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane_state)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> > +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> >  	unsigned int limit = 4; /* 1:4 compression limit is the worst case */
> >  	unsigned int cpp = 4; /* FBC always 4 bytes per pixel */
> >  	unsigned int width = drm_rect_width(&plane_state->uapi.src) >> 16;
> > @@ -165,7 +165,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
> >  	 * Wa_16011863758: icl+
> >  	 * Avoid some hardware segment address miscalculation.
> >  	 */
> > -	if (DISPLAY_VER(i915) >= 11)
> > +	if (DISPLAY_VER(display) >= 11)
> >  		stride += 64;
> >  
> >  	/*
> > @@ -181,7 +181,7 @@ static unsigned int skl_fbc_min_cfb_stride(const struct intel_plane_state *plane
> >  /* properly aligned cfb stride in bytes, assuming 1:1 compression limit */
> >  static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_state)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> > +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> >  	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
> >  
> >  	/*
> > @@ -189,7 +189,7 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
> >  	 * be 512 byte aligned. Aligning each line to 512 bytes guarantees
> >  	 * that regardless of the compression limit we choose later.
> >  	 */
> > -	if (DISPLAY_VER(i915) >= 9)
> > +	if (DISPLAY_VER(display) >= 9)
> >  		return max(ALIGN(stride, 512), skl_fbc_min_cfb_stride(plane_state));
> >  	else
> >  		return stride;
> > @@ -197,12 +197,12 @@ static unsigned int intel_fbc_cfb_stride(const struct intel_plane_state *plane_s
> >  
> >  static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_state)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> > +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> >  	int lines = drm_rect_height(&plane_state->uapi.src) >> 16;
> >  
> > -	if (DISPLAY_VER(i915) == 7)
> > +	if (DISPLAY_VER(display) == 7)
> >  		lines = min(lines, 2048);
> > -	else if (DISPLAY_VER(i915) >= 8)
> > +	else if (DISPLAY_VER(display) >= 8)
> >  		lines = min(lines, 2560);
> >  
> >  	return lines * intel_fbc_cfb_stride(plane_state);
> > @@ -210,7 +210,7 @@ static unsigned int intel_fbc_cfb_size(const struct intel_plane_state *plane_sta
> >  
> >  static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_state)
> >  {
> > -	struct drm_i915_private *i915 = to_i915(plane_state->uapi.plane->dev);
> > +	struct intel_display *display = to_intel_display(plane_state->uapi.plane->dev);
> >  	unsigned int stride_aligned = intel_fbc_cfb_stride(plane_state);
> >  	unsigned int stride = _intel_fbc_cfb_stride(plane_state);
> >  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> > @@ -223,28 +223,31 @@ static u16 intel_fbc_override_cfb_stride(const struct intel_plane_state *plane_s
> >  	 * we always need to use the override there.
> >  	 */
> >  	if (stride != stride_aligned ||
> > -	    (DISPLAY_VER(i915) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
> > +	    (DISPLAY_VER(display) == 9 && fb->modifier == DRM_FORMAT_MOD_LINEAR))
> >  		return stride_aligned * 4 / 64;
> >  
> >  	return 0;
> >  }
> >  
> > -static bool intel_fbc_has_fences(struct drm_i915_private *i915)
> > +static bool intel_fbc_has_fences(struct intel_display *display)
> >  {
> > +	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);
> 
> I was going to ask why __maybe_unused,
> but then I remember about the xe compat-headers where below function is
> defined to 0...

Yaeh this one is needed.


 >  
> > -static u64 intel_fbc_stolen_end(struct drm_i915_private *i915)
> > +static u64 intel_fbc_stolen_end(struct intel_display *display)
> >  {
> > +	struct drm_i915_private __maybe_unused *i915 = to_i915(display->drm);

This one was only needed because I accidentally used to_i915() below
instead of using the local i915 variable. I adjusted this while pushing.

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH 00/20] drm/{i915,xe}: FBC cleanups + tweak fbdev stolen usage
  2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
                   ` (27 preceding siblings ...)
  2024-07-05 17:43 ` ✗ CI.FULL: failure " Patchwork
@ 2024-07-12 21:39 ` Ville Syrjälä
  28 siblings, 0 replies; 55+ messages in thread
From: Ville Syrjälä @ 2024-07-12 21:39 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe

On Fri, Jul 05, 2024 at 05:52:34PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Here's an idea for a slightly better heuristic to answer
> the "should fbdev use stolen or not?" question.
> 
> Ended up with a pile of refactoring and cleanups in
> the FBC code as a result.
> 
> Ville Syrjälä (20):
>   drm/i915/fbc: Extract intel_fbc_has_fences()
>   drm/i915/fbc: Convert to intel_display, mostly
>   drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/
>   drm/i915/fbc: Extract intel_fbc_max_plane_size()
>   drm/i915/fbc: Extract intel_fbc_max_surface_size()
>   drm/i915/fbc:
>     s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/
>   drm/i915/fbc: Adjust g4x+ platform checks
>   drm/i915/fbc: Extract _intel_fbc_cfb_stride()
>   drm/i915/fbc: s/lines/height/
>   drm/i915/fbc: Reoder CFB max height platform checks
>   drm/i915/fbc: Extract intel_fbc_max_cfb_height()
>   drm/i915/fbc: Extract _intel_fbc_cfb_size()
>   drm/i915/fbc: Extract intel_fbc_cfb_cpp()

Pushed all the FBC code refactoring. Thanks for the reviews.

>   drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size()
>   drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke
>   drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen()
>   drm/xe/fbdev: Extract intel_fbdev_fb_prefer_stolen()
>   drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh
>     allocation
>   drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic
>   drm/xe/fbdev: Adjust fbdev stolen mem usage heuristic

Left out the rest for now. This should go in after the more
urgent LNL/etc. stolen issues are sorted.

> 
>  .../drm/i915/display/intel_display_debugfs.c  |   4 +-
>  .../drm/i915/display/intel_display_driver.c   |   4 +-
>  drivers/gpu/drm/i915/display/intel_fbc.c      | 564 ++++++++++--------
>  drivers/gpu/drm/i915/display/intel_fbc.h      |  14 +-
>  drivers/gpu/drm/i915/display/intel_fbdev_fb.c |  23 +-
>  drivers/gpu/drm/i915/display/intel_fbdev_fb.h |   5 +-
>  .../drm/i915/display/intel_fifo_underrun.c    |   2 +-
>  .../drm/i915/display/intel_modeset_setup.c    |   2 +-
>  .../drm/i915/display/intel_plane_initial.c    |  10 +-
>  drivers/gpu/drm/xe/display/intel_fbdev_fb.c   |  22 +-
>  drivers/gpu/drm/xe/display/xe_plane_initial.c |   8 +-
>  11 files changed, 389 insertions(+), 269 deletions(-)
> 
> -- 
> 2.44.2

-- 
Ville Syrjälä
Intel

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

end of thread, other threads:[~2024-07-12 21:39 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-05 14:52 [PATCH 00/20] drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Ville Syrjala
2024-07-05 14:52 ` [PATCH 01/20] drm/i915/fbc: Extract intel_fbc_has_fences() Ville Syrjala
2024-07-09 19:46   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 02/20] drm/i915/fbc: Convert to intel_display, mostly Ville Syrjala
2024-07-09 19:49   ` Rodrigo Vivi
2024-07-12 21:38     ` Ville Syrjälä
2024-07-05 14:52 ` [PATCH 03/20] drm/i915/fbc: s/_intel_fbc_cfb_stride()/intel_fbc_plane_cfb_stride()/ Ville Syrjala
2024-07-09 19:50   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 04/20] drm/i915/fbc: Extract intel_fbc_max_plane_size() Ville Syrjala
2024-07-09 19:51   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 05/20] drm/i915/fbc: Extract intel_fbc_max_surface_size() Ville Syrjala
2024-07-09 19:51   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 06/20] drm/i915/fbc: s/intel_fbc_hw_tracking_covers_screen()/intel_fbc_surface_size_ok()/ Ville Syrjala
2024-07-09 19:52   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 07/20] drm/i915/fbc: Adjust g4x+ platform checks Ville Syrjala
2024-07-09 19:54   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 08/20] drm/i915/fbc: Extract _intel_fbc_cfb_stride() Ville Syrjala
2024-07-10  8:01   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 09/20] drm/i915/fbc: s/lines/height/ Ville Syrjala
2024-07-09 20:00   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 10/20] drm/i915/fbc: Reoder CFB max height platform checks Ville Syrjala
2024-07-09 20:00   ` Rodrigo Vivi
2024-07-05 14:52 ` [PATCH 11/20] drm/i915/fbc: Extract intel_fbc_max_cfb_height() Ville Syrjala
2024-07-10  8:26   ` Shankar, Uma
2024-07-12 21:34     ` Ville Syrjälä
2024-07-05 14:52 ` [PATCH 12/20] drm/i915/fbc: Extract _intel_fbc_cfb_size() Ville Syrjala
2024-07-10  8:28   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 13/20] drm/i915/fbc: Extract intel_fbc_cfb_cpp() Ville Syrjala
2024-07-10  8:30   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 14/20] drm/i915/fbc: Introduce intel_fbc_preferred_cfb_size() Ville Syrjala
2024-07-10  8:36   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 15/20] drm/xe/fbdev: Fix BIOS FB vs.s stolen size checke Ville Syrjala
2024-07-10  8:42   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 16/20] drm/i915/fbdev: Extract intel_fbdev_fb_prefer_stolen() Ville Syrjala
2024-07-06 12:06   ` kernel test robot
2024-07-09 20:28   ` Lucas De Marchi
2024-07-10 11:47     ` Ville Syrjälä
2024-07-10  8:51   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 17/20] drm/xe/fbdev: " Ville Syrjala
2024-07-10  8:58   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 18/20] drm/xe/fbdev: Use the same logic for fbdev stolen takever and fresh allocation Ville Syrjala
2024-07-10  9:08   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 19/20] drm/i915/fbdev: Adjust fbdev stolen mem usage heuristic Ville Syrjala
2024-07-10  9:11   ` Shankar, Uma
2024-07-05 14:52 ` [PATCH 20/20] drm/xe/fbdev: " Ville Syrjala
2024-07-10  9:12   ` Shankar, Uma
2024-07-05 14:58 ` ✓ CI.Patch_applied: success for drm/{i915, xe}: FBC cleanups + tweak fbdev stolen usage Patchwork
2024-07-05 14:58 ` ✗ CI.checkpatch: warning " Patchwork
2024-07-05 15:00 ` ✓ CI.KUnit: success " Patchwork
2024-07-05 15:12 ` ✓ CI.Build: " Patchwork
2024-07-05 15:14 ` ✓ CI.Hooks: " Patchwork
2024-07-05 15:15 ` ✗ CI.checksparse: warning " Patchwork
2024-07-05 15:38 ` ✓ CI.BAT: success " Patchwork
2024-07-05 17:43 ` ✗ CI.FULL: failure " Patchwork
2024-07-12 21:39 ` [PATCH 00/20] drm/{i915,xe}: " Ville Syrjälä

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).