All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds
@ 2023-05-16 22:19 Lucas De Marchi
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation Lucas De Marchi
                   ` (12 more replies)
  0 siblings, 13 replies; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

Third version adding OOB workarounds, third different approach.
Gone is the special ELF section and now it's implemented by
creating a new RTP struct that holds tables containing only rules,
without the actions interacting with reg-save-restore.

Now a common approach between all types of workarounds is used for
marking the "active" workarounds. These are the ones in play for the
running system.  They can be queried over debugfs and for the OOB,
are checked throughout the code. Last patch converts xe_guc.c to the
new infra.

In order to be able to implement the simpler XE_WA() requested in
previous versions, and at the same time avoiding error-prone updates
in different places of the code, a simple program was written to
generate xe_wa_oob.c and xe_wa_oob.h. The syntax is kept very simple
on purpose, with the following goals:

	1) Be similar to the rest of the workarounds. The codegen
	   just paste together the info in the .rules file
	   and updated header/source with the appropriate values
	2) Doesn't increase the build dependencies of the kernel,
	   so it's implemented in C and built as a hostprog.

Tested on a single DG2 system.

Lucas De Marchi

Lucas De Marchi (9):
  drm/xe: Fix Wa_22011802037 annotation
  drm/xe/rtp: Split rtp process initialization
  drm/xe/rtp: Add "_sr" to entry/function names
  drm/xe/rtp: Allow to track active workarounds
  drm/xe/wa: Track gt/engine/lrc active workarounds
  drm/xe/debugfs: Dump active workarounds
  drm/xe/rtp: Add support for entries with no action
  drm/xe: Add support for OOB workarounds
  drm/xe/guc: Port workarounds to OOB infra

 drivers/gpu/drm/xe/Makefile            |  14 ++
 drivers/gpu/drm/xe/tests/xe_rtp_test.c |  23 ++--
 drivers/gpu/drm/xe/xe_debugfs.c        |  12 ++
 drivers/gpu/drm/xe/xe_device.c         |   7 +
 drivers/gpu/drm/xe/xe_device_types.h   |  12 ++
 drivers/gpu/drm/xe/xe_gen_wa_oob.c     | 165 +++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_guc.c            |  49 +++----
 drivers/gpu/drm/xe/xe_hw_engine.c      |  10 +-
 drivers/gpu/drm/xe/xe_reg_whitelist.c  |   6 +-
 drivers/gpu/drm/xe/xe_rtp.c            | 180 +++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_rtp.h            |  31 +++--
 drivers/gpu/drm/xe/xe_rtp_types.h      |  28 +++-
 drivers/gpu/drm/xe/xe_tuning.c         |  12 +-
 drivers/gpu/drm/xe/xe_wa.c             | 106 +++++++++++++--
 drivers/gpu/drm/xe/xe_wa.h             |  13 ++
 drivers/gpu/drm/xe/xe_wa_oob.rules     |  16 +++
 16 files changed, 584 insertions(+), 100 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_gen_wa_oob.c
 create mode 100644 drivers/gpu/drm/xe/xe_wa_oob.rules

-- 
2.40.1


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

* [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 16:20   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization Lucas De Marchi
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

It was missing one digit, so not showing up as a proper WA number. Add
the missing number and annotate it with a FIXME as there are more to be
implemented to consider this WA done: ensure CS is stop before doing a
reset, wait for pending.

Also, this WA applies to platforms up to graphics version 1270 (with the
exception of MTL A*, that are not supported in xe). Fix platform check.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_guc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index eb4af4c71124..1b5d0b6ad180 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -162,9 +162,11 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
 		flags |= GUC_WA_DUAL_QUEUE;
 
 	/*
-	 * Wa_2201180203
+	 * Wa_22011802037: FIXME - there's more to be done than simply setting
+	 * this flag: make sure each CS is stopped when preparing for GT reset
+	 * and wait for pending MI_FW.
 	 */
-	if (GRAPHICS_VER(xe) <= 12)
+	if (GRAPHICS_VERx100(xe) < 1270)
 		flags |= GUC_WA_PRE_PARSER;
 
 	/* Wa_16011777198 */
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 17:11   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 3/9] drm/xe/rtp: Add "_sr" to entry/function names Lucas De Marchi
                   ` (10 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

The selection between hwe and gt is exposed to the outside of rtp, by
the xe_rtp_process() function. It doesn't make sense to pass a hwe and a
gt as argument since the gt should always be the one containing the hwe.

This clarifies the interface by separating the context creation into an
initializer. The initializer then passes the correct value and there
should never be a case with hwe and gt set. Internally the functions
continue receiving the argument separately.

Also, since most of the rtp rules match against device characteristics,
add support for processing rules based solely on the device. This will
be used by follow up commits to process some workarounds.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/tests/xe_rtp_test.c |  3 +-
 drivers/gpu/drm/xe/xe_hw_engine.c      |  8 +--
 drivers/gpu/drm/xe/xe_reg_whitelist.c  |  4 +-
 drivers/gpu/drm/xe/xe_rtp.c            | 71 ++++++++++++++++++++------
 drivers/gpu/drm/xe/xe_rtp.h            | 10 +++-
 drivers/gpu/drm/xe/xe_rtp_types.h      | 15 ++++++
 drivers/gpu/drm/xe/xe_tuning.c         |  8 ++-
 drivers/gpu/drm/xe/xe_wa.c             | 12 +++--
 8 files changed, 102 insertions(+), 29 deletions(-)

diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
index 4b2aac5ccf28..f96ef1987719 100644
--- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
+++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
@@ -238,10 +238,11 @@ static void xe_rtp_process_tests(struct kunit *test)
 	struct xe_device *xe = test->priv;
 	struct xe_reg_sr *reg_sr = &xe->gt[0].reg_sr;
 	const struct xe_reg_sr_entry *sre, *sr_entry = NULL;
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(&xe->gt[0]);
 	unsigned long idx, count = 0;
 
 	xe_reg_sr_init(reg_sr, "xe_rtp_tests", xe);
-	xe_rtp_process(param->entries, reg_sr, &xe->gt[0], NULL);
+	xe_rtp_process(&ctx, param->entries, reg_sr);
 
 	xa_for_each(&reg_sr->xa, idx, sre) {
 		if (idx == param->expected_reg.addr)
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 751f6c3bba17..1bf28b1ad319 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -281,6 +281,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
 	const u8 mocs_read_idx = gt->mocs.uc_index;
 	u32 blit_cctl_val = REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, mocs_write_idx) |
 			    REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, mocs_read_idx);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
 	const struct xe_rtp_entry lrc_was[] = {
 		/*
 		 * Some blitter commands do not have a field for MOCS, those
@@ -299,7 +300,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
 		{}
 	};
 
-	xe_rtp_process(lrc_was, &hwe->reg_lrc, gt, hwe);
+	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
 }
 
 static void
@@ -311,7 +312,8 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
 	const u8 mocs_read_idx = gt->mocs.uc_index;
 	u32 ring_cmd_cctl_val = REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
 			        REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
-	const struct xe_rtp_entry engine_was[] = {
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+	const struct xe_rtp_entry engine_entries[] = {
 		/*
 		 * RING_CMD_CCTL specifies the default MOCS entry that will be
 		 * used by the command streamer when executing commands that
@@ -332,7 +334,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
 		{}
 	};
 
-	xe_rtp_process(engine_was, &hwe->reg_sr, gt, hwe);
+	xe_rtp_process(&ctx, engine_entries, &hwe->reg_sr);
 }
 
 static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
index 7a2bb60ebd85..98f678d74445 100644
--- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
+++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
@@ -63,7 +63,9 @@ static const struct xe_rtp_entry register_whitelist[] = {
  */
 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe)
 {
-	xe_rtp_process(register_whitelist, &hwe->reg_whitelist, hwe->gt, hwe);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+
+	xe_rtp_process(&ctx, register_whitelist, &hwe->reg_whitelist);
 }
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index 0c6a23e14a71..648a38bf8f0c 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -23,11 +23,11 @@
  * the values to the registers that have matching rules.
  */
 
-static bool rule_matches(struct xe_gt *gt,
+static bool rule_matches(const struct xe_device *xe,
+			 struct xe_gt *gt,
 			 struct xe_hw_engine *hwe,
 			 const struct xe_rtp_entry *entry)
 {
-	const struct xe_device *xe = gt_to_xe(gt);
 	const struct xe_rtp_rule *r;
 	unsigned int i;
 	bool match;
@@ -62,22 +62,30 @@ static bool rule_matches(struct xe_gt *gt,
 			match = xe->info.step.graphics >= r->step_start &&
 				xe->info.step.graphics < r->step_end;
 			break;
+		case XE_RTP_MATCH_INTEGRATED:
+			match = !xe->info.is_dgfx;
+			break;
+		case XE_RTP_MATCH_DISCRETE:
+			match = xe->info.is_dgfx;
+			break;
 		case XE_RTP_MATCH_ENGINE_CLASS:
+			if (drm_WARN_ON(&xe->drm, !hwe))
+				return false;
+
 			match = hwe->class == r->engine_class;
 			break;
 		case XE_RTP_MATCH_NOT_ENGINE_CLASS:
+			if (drm_WARN_ON(&xe->drm, !hwe))
+				return false;
+
 			match = hwe->class != r->engine_class;
 			break;
 		case XE_RTP_MATCH_FUNC:
+			if (drm_WARN_ON(&xe->drm, !gt))
+				return false;
+
 			match = r->match_func(gt, hwe);
 			break;
-		case XE_RTP_MATCH_INTEGRATED:
-			match = !xe->info.is_dgfx;
-			break;
-		case XE_RTP_MATCH_DISCRETE:
-			match = xe->info.is_dgfx;
-			break;
-
 		default:
 			XE_WARN_ON(r->match_type);
 		}
@@ -105,14 +113,15 @@ static void rtp_add_sr_entry(const struct xe_rtp_action *action,
 	xe_reg_sr_add(sr, &sr_entry);
 }
 
-static void rtp_process_one(const struct xe_rtp_entry *entry, struct xe_gt *gt,
+static void rtp_process_one(const struct xe_rtp_entry *entry,
+			    struct xe_device *xe, struct xe_gt *gt,
 			    struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
 {
 	const struct xe_rtp_action *action;
 	u32 mmio_base;
 	unsigned int i;
 
-	if (!rule_matches(gt, hwe, entry))
+	if (!rule_matches(xe, gt, hwe, entry))
 		return;
 
 	for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
@@ -126,23 +135,51 @@ static void rtp_process_one(const struct xe_rtp_entry *entry, struct xe_gt *gt,
 	}
 }
 
+static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
+			    struct xe_hw_engine **hwe,
+			    struct xe_gt **gt,
+			    struct xe_device **xe)
+{
+	switch (ctx->type) {
+	case XE_RTP_PROCESS_TYPE_DEVICE:
+		*hwe = NULL;
+		*gt = NULL;
+		*xe = ctx->xe;
+		break;
+	case XE_RTP_PROCESS_TYPE_GT:
+		*hwe = NULL;
+		*gt = ctx->gt;
+		*xe = gt_to_xe(*gt);
+		break;
+	case XE_RTP_PROCESS_TYPE_ENGINE:
+		*hwe = ctx->hwe;
+		*gt = (*hwe)->gt;
+		*xe = gt_to_xe(*gt);
+		break;
+	};
+}
+
 /**
  * xe_rtp_process - Process all rtp @entries, adding the matching ones to @sr
+ * @ctx: The context for processing the table, with one of device, gt or hwe
  * @entries: Table with RTP definitions
  * @sr: Where to add an entry to with the values for matching. This can be
  *      viewed as the "coalesced view" of multiple the tables. The bits for each
  *      register set are expected not to collide with previously added entries
- * @gt: The GT to be used for matching rules
- * @hwe: Engine instance to use for matching rules and as mmio base
  *
  * Walk the table pointed by @entries (with an empty sentinel) and add all
  * entries with matching rules to @sr. If @hwe is not NULL, its mmio_base is
  * used to calculate the right register offset
  */
-void xe_rtp_process(const struct xe_rtp_entry *entries, struct xe_reg_sr *sr,
-		    struct xe_gt *gt, struct xe_hw_engine *hwe)
+void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
+		    const struct xe_rtp_entry *entries, struct xe_reg_sr *sr)
 {
 	const struct xe_rtp_entry *entry;
+	struct xe_hw_engine *hwe;
+	struct xe_gt *gt;
+	struct xe_device *xe;
+
+	rtp_get_context(ctx, &hwe, &gt, &xe);
 
 	for (entry = entries; entry && entry->name; entry++) {
 		if (entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) {
@@ -150,9 +187,9 @@ void xe_rtp_process(const struct xe_rtp_entry *entries, struct xe_reg_sr *sr,
 			enum xe_hw_engine_id id;
 
 			for_each_hw_engine(each_hwe, gt, id)
-				rtp_process_one(entry, gt, each_hwe, sr);
+				rtp_process_one(entry, xe, gt, each_hwe, sr);
 		} else {
-			rtp_process_one(entry, gt, hwe, sr);
+			rtp_process_one(entry, xe, gt, hwe, sr);
 		}
 	}
 }
diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
index 8bc946694bfc..e7f254fb1b31 100644
--- a/drivers/gpu/drm/xe/xe_rtp.h
+++ b/drivers/gpu/drm/xe/xe_rtp.h
@@ -358,8 +358,14 @@ struct xe_reg_sr;
 		XE_RTP_PASTE_FOREACH(ACTION_, COMMA, (__VA_ARGS__))	\
 	}
 
-void xe_rtp_process(const struct xe_rtp_entry *entries, struct xe_reg_sr *sr,
-		    struct xe_gt *gt, struct xe_hw_engine *hwe);
+#define XE_RTP_PROCESS_CTX_INITIALIZER(arg__) _Generic((arg__),							\
+	struct xe_hw_engine *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_ENGINE },	\
+	struct xe_gt *:		(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_GT },	\
+	struct xe_device *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_DEVICE })
+
+void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
+		    const struct xe_rtp_entry *entries,
+		    struct xe_reg_sr *sr);
 
 /* Match functions to be used with XE_RTP_MATCH_FUNC */
 
diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index 12df8a9e9c45..6d9ab9eb91ba 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -95,4 +95,19 @@ struct xe_rtp_entry {
 	u8 flags;
 };
 
+enum xe_rtp_process_type {
+	XE_RTP_PROCESS_TYPE_DEVICE,
+	XE_RTP_PROCESS_TYPE_GT,
+	XE_RTP_PROCESS_TYPE_ENGINE,
+};
+
+struct xe_rtp_process_ctx {
+	union {
+		struct xe_device *xe;
+		struct xe_gt *gt;
+		struct xe_hw_engine *hwe;
+	};
+	enum xe_rtp_process_type type;
+};
+
 #endif
diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
index 5fc6a408429b..c2810ede3a65 100644
--- a/drivers/gpu/drm/xe/xe_tuning.c
+++ b/drivers/gpu/drm/xe/xe_tuning.c
@@ -59,7 +59,9 @@ static const struct xe_rtp_entry lrc_tunings[] = {
 
 void xe_tuning_process_gt(struct xe_gt *gt)
 {
-	xe_rtp_process(gt_tunings, &gt->reg_sr, gt, NULL);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
+
+	xe_rtp_process(&ctx, gt_tunings, &gt->reg_sr);
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
 
@@ -73,5 +75,7 @@ EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
  */
 void xe_tuning_process_lrc(struct xe_hw_engine *hwe)
 {
-	xe_rtp_process(lrc_tunings, &hwe->reg_lrc, hwe->gt, hwe);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+
+	xe_rtp_process(&ctx, lrc_tunings, &hwe->reg_lrc);
 }
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index b0bb2f4438f4..4b236b6f4c8e 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -579,7 +579,9 @@ __diag_pop();
  */
 void xe_wa_process_gt(struct xe_gt *gt)
 {
-	xe_rtp_process(gt_was, &gt->reg_sr, gt, NULL);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
+
+	xe_rtp_process(&ctx, gt_was, &gt->reg_sr);
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
 
@@ -593,7 +595,9 @@ EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
  */
 void xe_wa_process_engine(struct xe_hw_engine *hwe)
 {
-	xe_rtp_process(engine_was, &hwe->reg_sr, hwe->gt, hwe);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+
+	xe_rtp_process(&ctx, engine_was, &hwe->reg_sr);
 }
 
 /**
@@ -606,5 +610,7 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
  */
 void xe_wa_process_lrc(struct xe_hw_engine *hwe)
 {
-	xe_rtp_process(lrc_was, &hwe->reg_lrc, hwe->gt, hwe);
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+
+	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
 }
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 3/9] drm/xe/rtp: Add "_sr" to entry/function names
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation Lucas De Marchi
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 17:13   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 4/9] drm/xe/rtp: Allow to track active workarounds Lucas De Marchi
                   ` (9 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

The xe_rtp_process() function and xe_rtp_entry depend on the
save-restore struct. In future it will be desired to process rtp rules,
regardless of adding them to a save-restore. Rename the struct and
function so the intent is clear and the name is freed for future uses.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/tests/xe_rtp_test.c | 22 +++++++++++-----------
 drivers/gpu/drm/xe/xe_hw_engine.c      |  8 ++++----
 drivers/gpu/drm/xe/xe_reg_whitelist.c  |  4 ++--
 drivers/gpu/drm/xe/xe_rtp.c            | 26 ++++++++++++++------------
 drivers/gpu/drm/xe/xe_rtp.h            | 20 ++++++++++----------
 drivers/gpu/drm/xe/xe_rtp_types.h      |  4 ++--
 drivers/gpu/drm/xe/xe_tuning.c         |  8 ++++----
 drivers/gpu/drm/xe/xe_wa.c             | 12 ++++++------
 8 files changed, 53 insertions(+), 51 deletions(-)

diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
index f96ef1987719..ab6f7a47db50 100644
--- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
+++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
@@ -36,7 +36,7 @@ struct rtp_test_case {
 	u32 expected_clr_bits;
 	unsigned long expected_count;
 	unsigned int expected_sr_errors;
-	const struct xe_rtp_entry *entries;
+	const struct xe_rtp_entry_sr *entries;
 };
 
 static bool match_yes(const struct xe_gt *gt, const struct xe_hw_engine *hwe)
@@ -57,7 +57,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0) | REG_BIT(1),
 		.expected_count = 1,
 		/* Different bits on the same register: create a single entry */
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -76,7 +76,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0),
 		.expected_count = 1,
 		/* Don't coalesce second entry since rules don't match */
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -95,7 +95,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0),
 		.expected_count = 1,
 		/* Don't coalesce second entry due to one of the rules */
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -114,7 +114,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0),
 		.expected_count = 2,
 		/* Same bits on different registers are not coalesced */
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -133,7 +133,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(1) | REG_BIT(0),
 		.expected_count = 1,
 		/* Check clr vs set actions on different bits */
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -154,7 +154,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = TEMP_MASK,
 		.expected_count = 1,
 		/* Check FIELD_SET works */
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(FIELD_SET(REGULAR_REG1,
@@ -172,7 +172,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0),
 		.expected_count = 1,
 		.expected_sr_errors = 1,
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -192,7 +192,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0),
 		.expected_count = 1,
 		.expected_sr_errors = 1,
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -212,7 +212,7 @@ static const struct rtp_test_case cases[] = {
 		.expected_clr_bits = REG_BIT(0),
 		.expected_count = 1,
 		.expected_sr_errors = 2,
-		.entries = (const struct xe_rtp_entry[]) {
+		.entries = (const struct xe_rtp_entry_sr[]) {
 			{ XE_RTP_NAME("basic-1"),
 			  XE_RTP_RULES(FUNC(match_yes)),
 			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
@@ -242,7 +242,7 @@ static void xe_rtp_process_tests(struct kunit *test)
 	unsigned long idx, count = 0;
 
 	xe_reg_sr_init(reg_sr, "xe_rtp_tests", xe);
-	xe_rtp_process(&ctx, param->entries, reg_sr);
+	xe_rtp_process_to_sr(&ctx, param->entries, reg_sr);
 
 	xa_for_each(&reg_sr->xa, idx, sre) {
 		if (idx == param->expected_reg.addr)
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 1bf28b1ad319..b072682a6988 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -282,7 +282,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
 	u32 blit_cctl_val = REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, mocs_write_idx) |
 			    REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, mocs_read_idx);
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
-	const struct xe_rtp_entry lrc_was[] = {
+	const struct xe_rtp_entry_sr lrc_was[] = {
 		/*
 		 * Some blitter commands do not have a field for MOCS, those
 		 * commands will use MOCS index pointed by BLIT_CCTL.
@@ -300,7 +300,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
 		{}
 	};
 
-	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
+	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
 }
 
 static void
@@ -313,7 +313,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
 	u32 ring_cmd_cctl_val = REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
 			        REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
-	const struct xe_rtp_entry engine_entries[] = {
+	const struct xe_rtp_entry_sr engine_entries[] = {
 		/*
 		 * RING_CMD_CCTL specifies the default MOCS entry that will be
 		 * used by the command streamer when executing commands that
@@ -334,7 +334,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
 		{}
 	};
 
-	xe_rtp_process(&ctx, engine_entries, &hwe->reg_sr);
+	xe_rtp_process_to_sr(&ctx, engine_entries, &hwe->reg_sr);
 }
 
 static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
index 98f678d74445..70892f134718 100644
--- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
+++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
@@ -20,7 +20,7 @@ static bool match_not_render(const struct xe_gt *gt,
 	return hwe->class != XE_ENGINE_CLASS_RENDER;
 }
 
-static const struct xe_rtp_entry register_whitelist[] = {
+static const struct xe_rtp_entry_sr register_whitelist[] = {
 	{ XE_RTP_NAME("WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865"),
 	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210), ENGINE_CLASS(RENDER)),
 	  XE_RTP_ACTIONS(WHITELIST(PS_INVOCATION_COUNT,
@@ -65,7 +65,7 @@ void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
 
-	xe_rtp_process(&ctx, register_whitelist, &hwe->reg_whitelist);
+	xe_rtp_process_to_sr(&ctx, register_whitelist, &hwe->reg_whitelist);
 }
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index 648a38bf8f0c..1485e53c1496 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -26,7 +26,7 @@
 static bool rule_matches(const struct xe_device *xe,
 			 struct xe_gt *gt,
 			 struct xe_hw_engine *hwe,
-			 const struct xe_rtp_entry *entry)
+			 const struct xe_rtp_entry_sr *entry)
 {
 	const struct xe_rtp_rule *r;
 	unsigned int i;
@@ -113,9 +113,9 @@ static void rtp_add_sr_entry(const struct xe_rtp_action *action,
 	xe_reg_sr_add(sr, &sr_entry);
 }
 
-static void rtp_process_one(const struct xe_rtp_entry *entry,
-			    struct xe_device *xe, struct xe_gt *gt,
-			    struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
+static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
+			       struct xe_device *xe, struct xe_gt *gt,
+			       struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
 {
 	const struct xe_rtp_action *action;
 	u32 mmio_base;
@@ -160,10 +160,11 @@ static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
 }
 
 /**
- * xe_rtp_process - Process all rtp @entries, adding the matching ones to @sr
+ * xe_rtp_process_to_sr - Process all rtp @entries, adding the matching ones to
+ *                        the save-restore argument.
  * @ctx: The context for processing the table, with one of device, gt or hwe
  * @entries: Table with RTP definitions
- * @sr: Where to add an entry to with the values for matching. This can be
+ * @sr: Save-restore struct where matching rules execute the action. This can be
  *      viewed as the "coalesced view" of multiple the tables. The bits for each
  *      register set are expected not to collide with previously added entries
  *
@@ -171,10 +172,11 @@ static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
  * entries with matching rules to @sr. If @hwe is not NULL, its mmio_base is
  * used to calculate the right register offset
  */
-void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
-		    const struct xe_rtp_entry *entries, struct xe_reg_sr *sr)
+void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
+			  const struct xe_rtp_entry_sr *entries,
+			  struct xe_reg_sr *sr)
 {
-	const struct xe_rtp_entry *entry;
+	const struct xe_rtp_entry_sr *entry;
 	struct xe_hw_engine *hwe;
 	struct xe_gt *gt;
 	struct xe_device *xe;
@@ -187,13 +189,13 @@ void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
 			enum xe_hw_engine_id id;
 
 			for_each_hw_engine(each_hwe, gt, id)
-				rtp_process_one(entry, xe, gt, each_hwe, sr);
+				rtp_process_one_sr(entry, xe, gt, each_hwe, sr);
 		} else {
-			rtp_process_one(entry, xe, gt, hwe, sr);
+			rtp_process_one_sr(entry, xe, gt, hwe, sr);
 		}
 	}
 }
-EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process);
+EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
 
 bool xe_rtp_match_even_instance(const struct xe_gt *gt,
 				const struct xe_hw_engine *hwe)
diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
index e7f254fb1b31..f2b31be294d6 100644
--- a/drivers/gpu/drm/xe/xe_rtp.h
+++ b/drivers/gpu/drm/xe/xe_rtp.h
@@ -261,7 +261,7 @@ struct xe_reg_sr;
 #define XE_RTP_NAME(s_)	.name = (s_)
 
 /**
- * XE_RTP_ENTRY_FLAG - Helper to add multiple flags to a struct xe_rtp_entry
+ * XE_RTP_ENTRY_FLAG - Helper to add multiple flags to a struct xe_rtp_entry_sr
  * @f1_: Last part of a ``XE_RTP_ENTRY_FLAG_*``
  * @...: Additional flags, defined like @f1_
  *
@@ -270,7 +270,7 @@ struct xe_reg_sr;
  *
  * .. code-block:: c
  *
- *	const struct xe_rtp_entry wa_entries[] = {
+ *	const struct xe_rtp_entry_sr wa_entries[] = {
  *		...
  *		{ XE_RTP_NAME("test-entry"),
  *		  ...
@@ -293,7 +293,7 @@ struct xe_reg_sr;
  *
  * .. code-block:: c
  *
- *	const struct xe_rtp_entry wa_entries[] = {
+ *	const struct xe_rtp_entry_sr wa_entries[] = {
  *		...
  *		{ XE_RTP_NAME("test-entry"),
  *		  ...
@@ -307,7 +307,7 @@ struct xe_reg_sr;
 	.flags = (XE_RTP_PASTE_FOREACH(ACTION_FLAG_, BITWISE_OR, (__VA_ARGS__)))
 
 /**
- * XE_RTP_RULES - Helper to set multiple rules to a struct xe_rtp_entry entry
+ * XE_RTP_RULES - Helper to set multiple rules to a struct xe_rtp_entry_sr entry
  * @r1: Last part of XE_RTP_MATCH_*
  * @...: Additional rules, defined like @r1
  *
@@ -317,7 +317,7 @@ struct xe_reg_sr;
  *
  * .. code-block:: c
  *
- *	const struct xe_rtp_entry wa_entries[] = {
+ *	const struct xe_rtp_entry_sr wa_entries[] = {
  *		...
  *		{ XE_RTP_NAME("test-entry"),
  *		  XE_RTP_RULES(SUBPLATFORM(DG2, G10), STEP(A0, B0)),
@@ -333,7 +333,7 @@ struct xe_reg_sr;
 	}
 
 /**
- * XE_RTP_ACTIONS - Helper to set multiple actions to a struct xe_rtp_entry
+ * XE_RTP_ACTIONS - Helper to set multiple actions to a struct xe_rtp_entry_sr
  * @...: Actions to be taken
  *
  * At least one rule is needed and up to 4 are supported. Multiple rules are
@@ -342,7 +342,7 @@ struct xe_reg_sr;
  *
  * .. code-block:: c
  *
- *	const struct xe_rtp_entry wa_entries[] = {
+ *	const struct xe_rtp_entry_sr wa_entries[] = {
  *		...
  *		{ XE_RTP_NAME("test-entry"),
  *		  XE_RTP_RULES(...),
@@ -363,9 +363,9 @@ struct xe_reg_sr;
 	struct xe_gt *:		(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_GT },	\
 	struct xe_device *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_DEVICE })
 
-void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
-		    const struct xe_rtp_entry *entries,
-		    struct xe_reg_sr *sr);
+void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
+			  const struct xe_rtp_entry_sr *entries,
+			  struct xe_reg_sr *sr);
 
 /* Match functions to be used with XE_RTP_MATCH_FUNC */
 
diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index 6d9ab9eb91ba..a9e0153ff87d 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -84,8 +84,8 @@ struct xe_rtp_rule {
 	};
 };
 
-/** struct xe_rtp_entry - Entry in an rtp table */
-struct xe_rtp_entry {
+/** struct xe_rtp_entry_sr - Entry in an rtp table */
+struct xe_rtp_entry_sr {
 	const char *name;
 	const struct xe_rtp_action *actions;
 	const struct xe_rtp_rule *rules;
diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
index c2810ede3a65..412e59de9842 100644
--- a/drivers/gpu/drm/xe/xe_tuning.c
+++ b/drivers/gpu/drm/xe/xe_tuning.c
@@ -15,7 +15,7 @@
 #undef XE_REG_MCR
 #define XE_REG_MCR(...)     XE_REG(__VA_ARGS__, .mcr = 1)
 
-static const struct xe_rtp_entry gt_tunings[] = {
+static const struct xe_rtp_entry_sr gt_tunings[] = {
 	{ XE_RTP_NAME("Tuning: Blend Fill Caching Optimization Disable"),
 	  XE_RTP_RULES(PLATFORM(DG2)),
 	  XE_RTP_ACTIONS(SET(XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS))
@@ -27,7 +27,7 @@ static const struct xe_rtp_entry gt_tunings[] = {
 	{}
 };
 
-static const struct xe_rtp_entry lrc_tunings[] = {
+static const struct xe_rtp_entry_sr lrc_tunings[] = {
 	{ XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"),
 	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210)),
 	  /* read verification is ignored due to 1608008084. */
@@ -61,7 +61,7 @@ void xe_tuning_process_gt(struct xe_gt *gt)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
 
-	xe_rtp_process(&ctx, gt_tunings, &gt->reg_sr);
+	xe_rtp_process_to_sr(&ctx, gt_tunings, &gt->reg_sr);
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
 
@@ -77,5 +77,5 @@ void xe_tuning_process_lrc(struct xe_hw_engine *hwe)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
 
-	xe_rtp_process(&ctx, lrc_tunings, &hwe->reg_lrc);
+	xe_rtp_process_to_sr(&ctx, lrc_tunings, &hwe->reg_lrc);
 }
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index 4b236b6f4c8e..557e90d79f0b 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -93,7 +93,7 @@
 __diag_push();
 __diag_ignore_all("-Woverride-init", "Allow field overrides in table");
 
-static const struct xe_rtp_entry gt_was[] = {
+static const struct xe_rtp_entry_sr gt_was[] = {
 	{ XE_RTP_NAME("14011060649"),
 	  XE_RTP_RULES(MEDIA_VERSION_RANGE(1200, 1255),
 		       ENGINE_CLASS(VIDEO_DECODE),
@@ -235,7 +235,7 @@ static const struct xe_rtp_entry gt_was[] = {
 	{}
 };
 
-static const struct xe_rtp_entry engine_was[] = {
+static const struct xe_rtp_entry_sr engine_was[] = {
 	{ XE_RTP_NAME("22010931296, 18011464164, 14010919138"),
 	  XE_RTP_RULES(GRAPHICS_VERSION(1200), ENGINE_CLASS(RENDER)),
 	  XE_RTP_ACTIONS(SET(FF_THREAD_MODE,
@@ -490,7 +490,7 @@ static const struct xe_rtp_entry engine_was[] = {
 	{}
 };
 
-static const struct xe_rtp_entry lrc_was[] = {
+static const struct xe_rtp_entry_sr lrc_was[] = {
 	{ XE_RTP_NAME("1409342910, 14010698770, 14010443199, 1408979724, 1409178076, 1409207793, 1409217633, 1409252684, 1409347922, 1409142259"),
 	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210)),
 	  XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN3,
@@ -581,7 +581,7 @@ void xe_wa_process_gt(struct xe_gt *gt)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
 
-	xe_rtp_process(&ctx, gt_was, &gt->reg_sr);
+	xe_rtp_process_to_sr(&ctx, gt_was, &gt->reg_sr);
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
 
@@ -597,7 +597,7 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
 
-	xe_rtp_process(&ctx, engine_was, &hwe->reg_sr);
+	xe_rtp_process_to_sr(&ctx, engine_was, &hwe->reg_sr);
 }
 
 /**
@@ -612,5 +612,5 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
 
-	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
+	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
 }
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 4/9] drm/xe/rtp: Allow to track active workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (2 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 3/9] drm/xe/rtp: Add "_sr" to entry/function names Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 17:27   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc " Lucas De Marchi
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

Add the metadata in struct xe_rtp_process_ctx, to be set by
xe_rtp_process_ctx_enable_active_tracking(), so rtp knows how to mark
the active entries while processing the table. This can be used by the
WA infra to record what are the active workarounds.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_rtp.c | 48 +++++++++++++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_rtp.h |  4 ++++
 2 files changed, 48 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index 1485e53c1496..d20536625020 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -113,7 +113,7 @@ static void rtp_add_sr_entry(const struct xe_rtp_action *action,
 	xe_reg_sr_add(sr, &sr_entry);
 }
 
-static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
+static bool rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
 			       struct xe_device *xe, struct xe_gt *gt,
 			       struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
 {
@@ -122,7 +122,7 @@ static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
 	unsigned int i;
 
 	if (!rule_matches(xe, gt, hwe, entry))
-		return;
+		return false;
 
 	for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
 		if ((entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) ||
@@ -133,6 +133,8 @@ static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
 
 		rtp_add_sr_entry(action, gt, mmio_base, sr);
 	}
+
+	return true;
 }
 
 static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
@@ -159,6 +161,38 @@ static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
 	};
 }
 
+/**
+ * xe_rtp_process_ctx_enable_active_tracking - Enable tracking of active entries
+ *
+ * Set additional metadata to track what entries are considered "active", i.e.
+ * their rules match the condition. Bits are never cleared: entries with
+ * matching rules set the corresponding bit in the bitmap.
+ *
+ * @ctx: The context for processing the table
+ * @active_entries: bitmap to store the active entries
+ * @n_entries: number of entries to be processed
+ */
+void xe_rtp_process_ctx_enable_active_tracking(struct xe_rtp_process_ctx *ctx,
+					       unsigned long *active_entries,
+					       size_t n_entries)
+{
+	ctx->active_entries = active_entries;
+	ctx->n_entries = n_entries;
+}
+
+static void rtp_mark_active(struct xe_device *xe,
+			    struct xe_rtp_process_ctx *ctx,
+			    unsigned int bit)
+{
+	if (!ctx->active_entries)
+		return;
+
+	if (drm_WARN_ON(&xe->drm, bit > ctx->n_entries))
+		return;
+
+	bitmap_set(ctx->active_entries, bit, 1);
+}
+
 /**
  * xe_rtp_process_to_sr - Process all rtp @entries, adding the matching ones to
  *                        the save-restore argument.
@@ -184,15 +218,21 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
 	rtp_get_context(ctx, &hwe, &gt, &xe);
 
 	for (entry = entries; entry && entry->name; entry++) {
+		bool match = false;
+
 		if (entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) {
 			struct xe_hw_engine *each_hwe;
 			enum xe_hw_engine_id id;
 
 			for_each_hw_engine(each_hwe, gt, id)
-				rtp_process_one_sr(entry, xe, gt, each_hwe, sr);
+				match |= rtp_process_one_sr(entry, xe, gt,
+							    each_hwe, sr);
 		} else {
-			rtp_process_one_sr(entry, xe, gt, hwe, sr);
+			match = rtp_process_one_sr(entry, xe, gt, hwe, sr);
 		}
+
+		if (match)
+			rtp_mark_active(xe, ctx, entry - entries);
 	}
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
index f2b31be294d6..274bccaeb72d 100644
--- a/drivers/gpu/drm/xe/xe_rtp.h
+++ b/drivers/gpu/drm/xe/xe_rtp.h
@@ -363,6 +363,10 @@ struct xe_reg_sr;
 	struct xe_gt *:		(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_GT },	\
 	struct xe_device *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_DEVICE })
 
+void xe_rtp_process_ctx_enable_active_tracking(struct xe_rtp_process_ctx *ctx,
+					       unsigned long *active_entries,
+					       size_t n_entries);
+
 void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
 			  const struct xe_rtp_entry_sr *entries,
 			  struct xe_reg_sr *sr);
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc active workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (3 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 4/9] drm/xe/rtp: Allow to track active workarounds Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 17:50   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 6/9] drm/xe/debugfs: Dump " Lucas De Marchi
                   ` (7 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

Allocate the data to track workarounds on the device, and pass that to
RTP so the active workarounds are enabled. For later reporting purposes,
there's no need to differentiate the engine or gt in which the
workaround got enabled, so just use a per-device bitmap.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c       |  5 ++++
 drivers/gpu/drm/xe/xe_device_types.h | 10 ++++++++
 drivers/gpu/drm/xe/xe_rtp_types.h    |  2 ++
 drivers/gpu/drm/xe/xe_wa.c           | 36 ++++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_wa.h           |  2 ++
 5 files changed, 55 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index f7f6a6a97757..ac6898a28411 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -31,6 +31,7 @@
 #include "xe_ttm_sys_mgr.h"
 #include "xe_vm.h"
 #include "xe_vm_madvise.h"
+#include "xe_wa.h"
 #include "xe_wait_user_fence.h"
 
 static int xe_file_open(struct drm_device *dev, struct drm_file *file)
@@ -251,6 +252,10 @@ int xe_device_probe(struct xe_device *xe)
 			return err;
 	}
 
+	err = xe_wa_init(xe);
+	if (err)
+		return err;
+
 	err = xe_mmio_init(xe);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 6490a04614ce..b8d7864950c4 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -265,6 +265,16 @@ struct xe_device {
 	/** @d3cold_allowed: Indicates if d3cold is a valid device state */
 	bool d3cold_allowed;
 
+	/** @wa_active: keep track of active workarounds */
+	struct {
+		/** @gt: bitmap with active GT workarounds */
+		unsigned long *gt;
+		/** @engine: bitmap with active engine workarounds */
+		unsigned long *engine;
+		/** @lrc: bitmap with active LRC workarounds */
+		unsigned long *lrc;
+	} wa_active;
+
 	/* private: */
 
 #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index a9e0153ff87d..b1e77055f9cd 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -108,6 +108,8 @@ struct xe_rtp_process_ctx {
 		struct xe_hw_engine *hwe;
 	};
 	enum xe_rtp_process_type type;
+	unsigned long *active_entries;
+	size_t n_entries;
 };
 
 #endif
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index 557e90d79f0b..fa37b1c0425a 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -5,6 +5,7 @@
 
 #include "xe_wa.h"
 
+#include <drm/drm_managed.h>
 #include <kunit/visibility.h>
 #include <linux/compiler_types.h>
 
@@ -580,7 +581,10 @@ __diag_pop();
 void xe_wa_process_gt(struct xe_gt *gt)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
+	struct xe_device *xe = gt_to_xe(gt);
 
+	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.gt,
+						  ARRAY_SIZE(gt_was));
 	xe_rtp_process_to_sr(&ctx, gt_was, &gt->reg_sr);
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
@@ -596,7 +600,10 @@ EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
 void xe_wa_process_engine(struct xe_hw_engine *hwe)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+	struct xe_device *xe = gt_to_xe(hwe->gt);
 
+	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.engine,
+						  ARRAY_SIZE(engine_was));
 	xe_rtp_process_to_sr(&ctx, engine_was, &hwe->reg_sr);
 }
 
@@ -611,6 +618,35 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
 void xe_wa_process_lrc(struct xe_hw_engine *hwe)
 {
 	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
+	struct xe_device *xe = gt_to_xe(hwe->gt);
 
+	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.lrc,
+						  ARRAY_SIZE(lrc_was));
 	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
 }
+
+/**
+ * xe_wa_init - initialize xe with workaround bookkeeping
+ * @xe: xe device instance
+ *
+ * Returns 0 for success, negative error code otherwise.
+ */
+int xe_wa_init(struct xe_device *xe)
+{
+	size_t n_lrc, n_engine, n_gt, total;
+
+	n_gt = BITS_TO_LONGS(ARRAY_SIZE(gt_was));
+	n_engine = BITS_TO_LONGS(ARRAY_SIZE(engine_was));
+	n_lrc = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
+	total = n_gt + n_engine + n_lrc;
+
+	xe->wa_active.gt = drmm_kzalloc(&xe->drm, sizeof(long) * total,
+					GFP_KERNEL);
+	if (!xe->wa_active.gt)
+		return -ENOMEM;
+
+	xe->wa_active.engine = xe->wa_active.gt + n_gt;
+	xe->wa_active.lrc = xe->wa_active.engine + n_engine;
+
+	return 0;
+}
diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
index cd2307d58795..8edad4f92800 100644
--- a/drivers/gpu/drm/xe/xe_wa.h
+++ b/drivers/gpu/drm/xe/xe_wa.h
@@ -6,9 +6,11 @@
 #ifndef _XE_WA_
 #define _XE_WA_
 
+struct xe_device;
 struct xe_gt;
 struct xe_hw_engine;
 
+int xe_wa_init(struct xe_device *xe);
 void xe_wa_process_gt(struct xe_gt *gt);
 void xe_wa_process_engine(struct xe_hw_engine *hwe);
 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 6/9] drm/xe/debugfs: Dump active workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (4 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc " Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 17:55   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 7/9] drm/xe/rtp: Add support for entries with no action Lucas De Marchi
                   ` (6 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

Add a "workarounds" node in debugfs that can dump all the active
workarounds using the information recorded by rtp infra when those
workarounds were processed.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_debugfs.c | 12 ++++++++++++
 drivers/gpu/drm/xe/xe_wa.c      | 18 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_wa.h      |  2 ++
 3 files changed, 32 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 7827a785b020..ad1b1ab49e1d 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -13,6 +13,7 @@
 #include "xe_device.h"
 #include "xe_gt_debugfs.h"
 #include "xe_step.h"
+#include "xe_wa.h"
 
 #ifdef CONFIG_DRM_XE_DEBUG
 #include "xe_bo_evict.h"
@@ -60,8 +61,19 @@ static int info(struct seq_file *m, void *data)
 	return 0;
 }
 
+static int workarounds(struct seq_file *m, void *data)
+{
+	struct xe_device *xe = node_to_xe(m->private);
+	struct drm_printer p = drm_seq_file_printer(m);
+
+	xe_wa_dump(xe, &p);
+
+	return 0;
+}
+
 static const struct drm_info_list debugfs_list[] = {
 	{"info", info, 0},
+	{"workarounds", workarounds, 0},
 };
 
 static int forcewake_open(struct inode *inode, struct file *file)
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index fa37b1c0425a..bc2665737836 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -650,3 +650,21 @@ int xe_wa_init(struct xe_device *xe)
 
 	return 0;
 }
+
+void xe_wa_dump(struct xe_device *xe, struct drm_printer *p)
+{
+	size_t idx;
+
+	drm_printf(p, "GT Workarounds\n");
+	for_each_set_bit(idx, xe->wa_active.gt, ARRAY_SIZE(gt_was))
+		drm_printf_indent(p, 1, "%s\n", gt_was[idx].name);
+
+	drm_printf(p, "\nEngine Workarounds\n");
+	for_each_set_bit(idx, xe->wa_active.engine, ARRAY_SIZE(engine_was))
+		drm_printf_indent(p, 1, "%s\n", engine_was[idx].name);
+
+	drm_printf(p, "\nLRC Workarounds\n");
+	for_each_set_bit(idx, xe->wa_active.lrc, ARRAY_SIZE(lrc_was))
+		drm_printf_indent(p, 1, "%s\n", lrc_was[idx].name);
+}
+
diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
index 8edad4f92800..32ab34d9237f 100644
--- a/drivers/gpu/drm/xe/xe_wa.h
+++ b/drivers/gpu/drm/xe/xe_wa.h
@@ -6,6 +6,7 @@
 #ifndef _XE_WA_
 #define _XE_WA_
 
+struct drm_printer;
 struct xe_device;
 struct xe_gt;
 struct xe_hw_engine;
@@ -16,5 +17,6 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe);
 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
 
 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
+void xe_wa_dump(struct xe_device *xe, struct drm_printer *p);
 
 #endif
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 7/9] drm/xe/rtp: Add support for entries with no action
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (5 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 6/9] drm/xe/debugfs: Dump " Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 18:46   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds Lucas De Marchi
                   ` (5 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

Add a separate struct to hold entries in a table that has no action
associated with each of them. The goal is that the caller in future can
set a per-context callback, or just use the active entry marking
feature.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/xe_rtp.c       | 65 +++++++++++++++++++++++++++----
 drivers/gpu/drm/xe/xe_rtp.h       |  3 ++
 drivers/gpu/drm/xe/xe_rtp_types.h |  7 ++++
 3 files changed, 67 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index d20536625020..db0f9254efd2 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -26,14 +26,14 @@
 static bool rule_matches(const struct xe_device *xe,
 			 struct xe_gt *gt,
 			 struct xe_hw_engine *hwe,
-			 const struct xe_rtp_entry_sr *entry)
+			 const struct xe_rtp_rule *rules,
+			 unsigned int n_rules)
 {
 	const struct xe_rtp_rule *r;
 	unsigned int i;
 	bool match;
 
-	for (r = entry->rules, i = 0; i < entry->n_rules;
-	     r = &entry->rules[++i]) {
+	for (r = rules, i = 0; i < n_rules; r = &rules[++i]) {
 		switch (r->match_type) {
 		case XE_RTP_MATCH_PLATFORM:
 			match = xe->info.platform == r->platform;
@@ -121,7 +121,7 @@ static bool rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
 	u32 mmio_base;
 	unsigned int i;
 
-	if (!rule_matches(xe, gt, hwe, entry))
+	if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules))
 		return false;
 
 	for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
@@ -182,15 +182,18 @@ void xe_rtp_process_ctx_enable_active_tracking(struct xe_rtp_process_ctx *ctx,
 
 static void rtp_mark_active(struct xe_device *xe,
 			    struct xe_rtp_process_ctx *ctx,
-			    unsigned int bit)
+			    unsigned int first, unsigned int last)
 {
 	if (!ctx->active_entries)
 		return;
 
-	if (drm_WARN_ON(&xe->drm, bit > ctx->n_entries))
+	if (drm_WARN_ON(&xe->drm, last > ctx->n_entries))
 		return;
 
-	bitmap_set(ctx->active_entries, bit, 1);
+	if (first == last)
+		bitmap_set(ctx->active_entries, first, 1);
+	else
+		bitmap_set(ctx->active_entries, first, last - first + 2);
 }
 
 /**
@@ -232,11 +235,57 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
 		}
 
 		if (match)
-			rtp_mark_active(xe, ctx, entry - entries);
+			rtp_mark_active(xe, ctx, entry - entries,
+					entry - entries);
 	}
 }
 EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
 
+/**
+ * xe_rtp_process - Process all rtp @entries, without running any action
+ * @ctx: The context for processing the table, with one of device, gt or hwe
+ * @entries: Table with RTP definitions
+ *
+ * Walk the table pointed by @entries (with an empty sentinel), executing the
+ * rules. A few differences from xe_rtp_process_to_sr():
+ *
+ * 1. There is no action associated with each entry since this uses
+ *    struct xe_rtp_entry. Its main use is for marking active workarounds via
+ *    xe_rtp_process_ctx_enable_active_tracking().
+ * 2. There is support for OR operations by having entries with no name.
+ */
+void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
+		    const struct xe_rtp_entry *entries)
+{
+	const struct xe_rtp_entry *entry, *first_entry;
+	struct xe_hw_engine *hwe;
+	struct xe_gt *gt;
+	struct xe_device *xe;
+
+	rtp_get_context(ctx, &hwe, &gt, &xe);
+
+	first_entry = entries;
+	if (drm_WARN_ON(&xe->drm, !first_entry->name))
+		return;
+
+	for (entry = entries; entry && entry->rules; entry++) {
+		if (entry->name)
+			first_entry = entry;
+
+		if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules))
+			continue;
+
+		/* Fast-forward entry, eliminating the OR'ed entries */
+		for (entry++; entry && entry->rules; entry++)
+			if (entry->name)
+				break;
+		entry--;
+
+		rtp_mark_active(xe, ctx, first_entry - entries,
+				entry - entries);
+	}
+}
+
 bool xe_rtp_match_even_instance(const struct xe_gt *gt,
 				const struct xe_hw_engine *hwe)
 {
diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
index 274bccaeb72d..0fa9b584ed92 100644
--- a/drivers/gpu/drm/xe/xe_rtp.h
+++ b/drivers/gpu/drm/xe/xe_rtp.h
@@ -371,6 +371,9 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
 			  const struct xe_rtp_entry_sr *entries,
 			  struct xe_reg_sr *sr);
 
+void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
+		    const struct xe_rtp_entry *entries);
+
 /* Match functions to be used with XE_RTP_MATCH_FUNC */
 
 /**
diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index b1e77055f9cd..1091a79d0fe0 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -95,6 +95,13 @@ struct xe_rtp_entry_sr {
 	u8 flags;
 };
 
+/** struct xe_rtp_entry - Entry in an rtp table, with no action associated */
+struct xe_rtp_entry {
+	const char *name;
+	const struct xe_rtp_rule *rules;
+	u8 n_rules;
+};
+
 enum xe_rtp_process_type {
 	XE_RTP_PROCESS_TYPE_DEVICE,
 	XE_RTP_PROCESS_TYPE_GT,
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (6 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 7/9] drm/xe/rtp: Add support for entries with no action Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 20:49   ` Matt Roper
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra Lucas De Marchi
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

There are WAs that, due to their nature, cannot be applied from
a central place like xe_wa.c. Those are peppered around the rest of the
code, as needed. This gives them a new name:  "out-of-band workarounds".

These workarounds have their names and rules still grouped in xe_wa.c,
inside the xe_wa_oob array, which is generated at compile time by
xe_wa_oob.rules and the hostprog xe_gen_wa_oob. The code generation guarantees
that the header xe_wa_oob.h contains the IDs for the workarounds that match
the index in the table. This way the runtime checks that are spread throughout
the code are simple tests against the bitmap saved during initialization.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/Makefile          |  14 +++
 drivers/gpu/drm/xe/xe_device.c       |   2 +
 drivers/gpu/drm/xe/xe_device_types.h |   2 +
 drivers/gpu/drm/xe/xe_gen_wa_oob.c   | 165 +++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_wa.c           |  40 ++++++-
 drivers/gpu/drm/xe/xe_wa.h           |   9 ++
 drivers/gpu/drm/xe/xe_wa_oob.rules   |   0
 7 files changed, 227 insertions(+), 5 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_gen_wa_oob.c
 create mode 100644 drivers/gpu/drm/xe/xe_wa_oob.rules

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index b6c41cd7dbe3..fcf04951a309 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -26,6 +26,20 @@ subdir-ccflags-$(CONFIG_DRM_XE_WERROR) += -Werror
 
 subdir-ccflags-y += -I$(srctree)/$(src)
 
+# generated sources
+hostprogs := xe_gen_wa_oob
+
+XE_WA_OOB := $(obj)/generated/xe_wa_oob.c $(obj)/generated/xe_wa_oob.h
+
+quiet_cmd_wa_oob = GEN     xe_wa_oob.[ch]
+      cmd_wa_oob = $^ $(XE_WA_OOB)
+
+$(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
+	@mkdir -p $(@D)
+	$(call cmd,wa_oob)
+
+$(obj)/xe_wa.o:  $(XE_WA_OOB)
+
 # Please keep these build lists sorted!
 
 # core driver code
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index ac6898a28411..45df4354ac1f 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -280,6 +280,8 @@ int xe_device_probe(struct xe_device *xe)
 			goto err_irq_shutdown;
 	}
 
+	xe_wa_process_oob(xe);
+
 	err = xe_mmio_probe_vram(xe);
 	if (err)
 		goto err_irq_shutdown;
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index b8d7864950c4..456299836d0f 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -273,6 +273,8 @@ struct xe_device {
 		unsigned long *engine;
 		/** @lrc: bitmap with active LRC workarounds */
 		unsigned long *lrc;
+		/** @oob: bitmap with active OOB workaroudns */
+		unsigned long *oob;
 	} wa_active;
 
 	/* private: */
diff --git a/drivers/gpu/drm/xe/xe_gen_wa_oob.c b/drivers/gpu/drm/xe/xe_gen_wa_oob.c
new file mode 100644
index 000000000000..bf829348058a
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_gen_wa_oob.c
@@ -0,0 +1,165 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+#define HEADER \
+	"// SPDX-License-Identifier: MIT\n" \
+	"\n" \
+	"/*\n" \
+	" * DO NOT MODIFY.\n" \
+	" *\n" \
+	" * This file was generated from rules: %s\n" \
+	" */\n" \
+	"#ifndef _GENERATED_XE_WA_OOB_\n" \
+	"#define _GENERATED_XE_WA_OOB_\n" \
+	"\n" \
+	"enum {\n"
+
+#define FOOTER \
+	"};\n" \
+	"\n" \
+	"#endif\n"
+
+extern const char *program_invocation_short_name;
+
+static void print_usage(FILE *f)
+{
+	fprintf(f, "usage: %s <input-rule-file> <generated-c-source-file> <generated-c-header-file>\n",
+		program_invocation_short_name);
+}
+
+static void print_parse_error(const char *err_msg, const char *line,
+			      unsigned int lineno)
+{
+	fprintf(stderr, "ERROR: %s\nERROR: %u: %.60s\n",
+		err_msg, lineno, line);
+}
+
+static char *strip(char *line, size_t linelen)
+{
+	while (isspace(*(line + linelen)))
+		linelen--;
+
+	line[linelen - 1] = '\0';
+
+	return  line + strspn(line, " \f\n\r\t\v");
+}
+
+#define MAX_LINE_LEN 4096
+static int parse(FILE *input, FILE *csource, FILE *cheader)
+{
+	char line[MAX_LINE_LEN + 1];
+	char *name, *prev_name = NULL, *rules;
+	unsigned int lineno = 0, idx = 0;
+
+	while (fgets(line, sizeof(line), input)) {
+		size_t linelen;
+		bool is_continuation;
+
+		if (line[0] == '\0' || line[0] == '#' || line[0] == '\n') {
+			lineno++;
+			continue;
+		}
+
+		linelen = strlen(line);
+		if (linelen == MAX_LINE_LEN) {
+			print_parse_error("line too long", line, lineno);
+			return -EINVAL;
+		}
+
+		is_continuation = isspace(line[0]);
+		name = strip(line, linelen);
+
+		if (!is_continuation) {
+			name = strtok(name, " \t");
+			rules = strtok(NULL, "");
+		} else {
+			if (!prev_name) {
+				print_parse_error("invalid rule continuation",
+						  line, lineno);
+				return -EINVAL;
+			}
+
+			rules = name;
+			name = NULL;
+		}
+
+		if (rules[0] == '\0') {
+			print_parse_error("invalid empty rule\n", line, lineno);
+			return -EINVAL;
+		}
+
+		if (name) {
+			fprintf(cheader, "\tXE_WA_OOB_%s = %u,\n", name, idx);
+			fprintf(csource, "{ XE_RTP_NAME(\"%s\"), XE_RTP_RULES(%s) },\n",
+				name, rules);
+		} else {
+			fprintf(csource, "{ XE_RTP_NAME(NULL), XE_RTP_RULES(%s) },\n",
+				rules);
+		}
+
+		idx++;
+		lineno++;
+		prev_name = name;
+	}
+
+	fprintf(cheader, "\t_XE_WA_OOB_COUNT = %u\n", idx);
+
+	return 0;
+}
+
+int main(int argc, const char *argv[])
+{
+	enum {
+		ARGS_INPUT,
+		ARGS_CSOURCE,
+		ARGS_CHEADER,
+		_ARGS_COUNT
+	};
+	struct {
+		const char *fn;
+		const char *mode;
+		FILE *f;
+	} args[] = {
+		[ARGS_INPUT] = { .fn = argv[1], .mode = "r" },
+		[ARGS_CSOURCE] = { .fn = argv[2], .mode = "w" },
+		[ARGS_CHEADER] = { .fn = argv[3], .mode = "w" },
+	};
+	int ret = 1;
+
+	if (argc < 3) {
+		fprintf(stderr, "ERROR: wrong arguments\n");
+		print_usage(stderr);
+		return 1;
+	}
+
+	for (int i = 0; i < _ARGS_COUNT; i++) {
+		args[i].f = fopen(args[i].fn, args[i].mode);
+		if (!args[i].f) {
+			fprintf(stderr, "ERROR: Can't open %s: %m\n",
+				args[i].fn);
+			goto err;
+		}
+	}
+
+	fprintf(args[ARGS_CHEADER].f, HEADER, args[ARGS_INPUT].fn);
+	ret = parse(args[ARGS_INPUT].f, args[ARGS_CSOURCE].f,
+		    args[ARGS_CHEADER].f);
+	if (!ret)
+		fprintf(args[ARGS_CHEADER].f, FOOTER);
+
+err:
+	for (int i = 0; i < _ARGS_COUNT; i++) {
+		if (args[i].f)
+			fclose(args[i].f);
+	}
+
+	return ret;
+}
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index bc2665737836..f789be2cf8c3 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -9,6 +9,7 @@
 #include <kunit/visibility.h>
 #include <linux/compiler_types.h>
 
+#include "generated/xe_wa_oob.h"
 #include "regs/xe_engine_regs.h"
 #include "regs/xe_gt_regs.h"
 #include "regs/xe_regs.h"
@@ -73,8 +74,8 @@
  *      engine registers are restored in a context restore sequence. This is
  *      currently not used in the driver.
  *
- * - Other:  There are WAs that, due to their nature, cannot be applied from a
- *   central place. Those are peppered around the rest of the code, as needed.
+ * - Other/OOB:  There are WAs that, due to their nature, cannot be applied from
+ *   a central place. Those are peppered around the rest of the code, as needed.
  *   Workarounds related to the display IP are the main example.
  *
  * .. [1] Technically, some registers are powercontext saved & restored, so they
@@ -569,8 +570,31 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
 	{}
 };
 
+static __maybe_unused const struct xe_rtp_entry oob_was[] = {
+#include <generated/xe_wa_oob.c>
+	{}
+};
+
+static_assert(ARRAY_SIZE(oob_was) - 1 == _XE_WA_OOB_COUNT);
+
 __diag_pop();
 
+/**
+ * xe_wa_process_oob - process OOB workaround table
+ * @gt: xe device instance
+ *
+ * Process OOB workaround table for this platform, marking as active the
+ * workarounds that need to be applied.
+ */
+void xe_wa_process_oob(struct xe_device *xe)
+{
+	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(xe);
+
+	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.oob,
+						  ARRAY_SIZE(oob_was));
+	xe_rtp_process(&ctx, oob_was);
+}
+
 /**
  * xe_wa_process_gt - process GT workaround table
  * @gt: GT instance to process workarounds for
@@ -633,12 +657,13 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe)
  */
 int xe_wa_init(struct xe_device *xe)
 {
-	size_t n_lrc, n_engine, n_gt, total;
+	size_t n_oob, n_lrc, n_engine, n_gt, total;
 
 	n_gt = BITS_TO_LONGS(ARRAY_SIZE(gt_was));
 	n_engine = BITS_TO_LONGS(ARRAY_SIZE(engine_was));
 	n_lrc = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
-	total = n_gt + n_engine + n_lrc;
+	n_oob = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
+	total = n_gt + n_engine + n_lrc + n_oob;
 
 	xe->wa_active.gt = drmm_kzalloc(&xe->drm, sizeof(long) * total,
 					GFP_KERNEL);
@@ -647,6 +672,7 @@ int xe_wa_init(struct xe_device *xe)
 
 	xe->wa_active.engine = xe->wa_active.gt + n_gt;
 	xe->wa_active.lrc = xe->wa_active.engine + n_engine;
+	xe->wa_active.oob = xe->wa_active.lrc + n_lrc;
 
 	return 0;
 }
@@ -666,5 +692,9 @@ void xe_wa_dump(struct xe_device *xe, struct drm_printer *p)
 	drm_printf(p, "\nLRC Workarounds\n");
 	for_each_set_bit(idx, xe->wa_active.lrc, ARRAY_SIZE(lrc_was))
 		drm_printf_indent(p, 1, "%s\n", lrc_was[idx].name);
-}
 
+	drm_printf(p, "\nOOB Workarounds\n");
+	for_each_set_bit(idx, xe->wa_active.oob, ARRAY_SIZE(lrc_was))
+		if (oob_was[idx].name)
+			drm_printf_indent(p, 1, "%s\n", oob_was[idx].name);
+}
diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
index 32ab34d9237f..f7da9f5b9340 100644
--- a/drivers/gpu/drm/xe/xe_wa.h
+++ b/drivers/gpu/drm/xe/xe_wa.h
@@ -12,6 +12,7 @@ struct xe_gt;
 struct xe_hw_engine;
 
 int xe_wa_init(struct xe_device *xe);
+void xe_wa_process_oob(struct xe_device *xe);
 void xe_wa_process_gt(struct xe_gt *gt);
 void xe_wa_process_engine(struct xe_hw_engine *hwe);
 void xe_wa_process_lrc(struct xe_hw_engine *hwe);
@@ -19,4 +20,12 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe);
 void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
 void xe_wa_dump(struct xe_device *xe, struct drm_printer *p);
 
+/**
+ * XE_WA - Out-of-band workarounds, that don't fit the lifecycle any
+ *         other more specific type
+ * @xe__: xe device instance
+ * @id__: XE_OOB_<id__>, as generated by build system in generated/xe_wa_oob.h
+ */
+#define XE_WA(xe__, id__) test_bit(XE_WA_OOB_ ## id__, (xe__)->wa_active.oob)
+
 #endif
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
new file mode 100644
index 000000000000..e69de29bb2d1
-- 
2.40.1


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

* [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (7 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds Lucas De Marchi
@ 2023-05-16 22:19 ` Lucas De Marchi
  2023-05-17 21:25   ` Matt Roper
  2023-05-16 22:23 ` [Intel-xe] ✓ CI.Patch_applied: success for Dump + OOB workarounds Patchwork
                   ` (3 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-16 22:19 UTC (permalink / raw)
  To: intel-xe; +Cc: Lucas De Marchi, Rodrigo Vivi

Let xe_guc.c start using XE_WA() for workarounds. The one missing
workaround is left with a "FIXME" since it's not properly implemented
yet.

Also, some changes were made to a few workarounds:

	- Wa_22011383443 not implemented due to being an early PVC
	  stepping. Wa_16011759253 that has the same condition is the
	  one covering DG2.

	- Wa_22011391025 and Wa_14012197797 were split in 2, since they
	  cover different steppings and we do want to report both as
	  implemented. The latter may eventually be removed due to being
	  early DG2 steppings, but the former should remain.

	- Wa_22012727170 and Wa_22012727685 were split in 2 so both of
	  them can be reported as active, regardless if they (currently)
	  have the same rules.

	- Wa_16015675438 and Wa_18020744125 were not checking by
	  platform or IP version, hence making them not future-proof.
	  Those workarounds should only be active in PVC and DG2,
	  besides the check for "no render engine".

DG2 system used for test:
	XE_DG2 G12 56b2:0001 dgfx:1 gfx:Xe_HPG (12.55) media:Xe_HPM (12.55) ...
	Stepping = (G:A1, M:A1, D:C0, B:**)

Output is as expected for the current OOB workarounds:

	$ cat /sys/kernel/debug/dri/0/workarounds
	...
	OOB Workarounds
		14014475959
		22011391025
		14012197797
		16015675438
		16016323070

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
 drivers/gpu/drm/xe/Makefile        |  2 +-
 drivers/gpu/drm/xe/xe_guc.c        | 43 ++++++++----------------------
 drivers/gpu/drm/xe/xe_wa_oob.rules | 16 +++++++++++
 3 files changed, 28 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index fcf04951a309..07af0d022263 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -38,7 +38,7 @@ $(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
 	@mkdir -p $(@D)
 	$(call cmd,wa_oob)
 
-$(obj)/xe_wa.o:  $(XE_WA_OOB)
+$(obj)/xe_wa.o $(obj)/xe_guc.o: $(XE_WA_OOB)
 
 # Please keep these build lists sorted!
 
diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 1b5d0b6ad180..252a4bfe6d63 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -5,6 +5,7 @@
 
 #include "xe_guc.h"
 
+#include "generated/xe_wa_oob.h"
 #include "regs/xe_gt_regs.h"
 #include "regs/xe_guc_regs.h"
 #include "xe_bo.h"
@@ -20,6 +21,7 @@
 #include "xe_mmio.h"
 #include "xe_platform_types.h"
 #include "xe_uc_fw.h"
+#include "xe_wa.h"
 #include "xe_wopcm.h"
 
 #define MEDIA_GUC_HOST_INTERRUPT        XE_REG(0x190304)
@@ -136,29 +138,16 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
 	struct xe_gt *gt = guc_to_gt(guc);
 	u32 flags = 0;
 
-	/* Wa_22012773006:gen11,gen12 < XeHP */
-	if (GRAPHICS_VER(xe) >= 11 &&
-	    GRAPHICS_VERx100(xe) < 1250)
+	if (XE_WA(xe, 22012773006))
 		flags |= GUC_WA_POLLCS;
 
-	/* Wa_16011759253 */
-	/* Wa_22011383443 */
-	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_B0))
+	if (XE_WA(xe, 16011759253))
 		flags |= GUC_WA_GAM_CREDITS;
 
-	/* Wa_14014475959 */
-	if (IS_PLATFORM_STEP(xe, XE_METEORLAKE, STEP_A0, STEP_B0) ||
-	    xe->info.platform == XE_DG2)
+	if (XE_WA(xe, 14014475959))
 		flags |= GUC_WA_HOLD_CCS_SWITCHOUT;
 
-	/*
-	 * Wa_14012197797
-	 * Wa_22011391025
-	 *
-	 * The same WA bit is used for both and 22011391025 is applicable to
-	 * all DG2.
-	 */
-	if (xe->info.platform == XE_DG2)
+	if (XE_WA(xe, 22011391025) || XE_WA(xe, 14012197797))
 		flags |= GUC_WA_DUAL_QUEUE;
 
 	/*
@@ -169,27 +158,17 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
 	if (GRAPHICS_VERx100(xe) < 1270)
 		flags |= GUC_WA_PRE_PARSER;
 
-	/* Wa_16011777198 */
-	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
-	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
-				STEP_B0))
+	if (XE_WA(xe, 16011777198))
 		flags |= GUC_WA_RCS_RESET_BEFORE_RC6;
 
-	/*
-	 * Wa_22012727170
-	 * Wa_22012727685
-	 */
-	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
-	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
-				STEP_FOREVER))
+	if (XE_WA(xe, 22012727170) || XE_WA(xe, 22012727685))
 		flags |= GUC_WA_CONTEXT_ISOLATION;
 
-	/* Wa_16015675438, Wa_18020744125 */
-	if (!xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
+	if ((XE_WA(xe, 16015675438) || XE_WA(xe, 16016323070)) &&
+	    !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
 		flags |= GUC_WA_RCS_REGS_IN_CCS_REGS_LIST;
 
-	/* Wa_1509372804 */
-	if (IS_PLATFORM_STEP(xe, XE_PVC, STEP_B0, STEP_C0))
+	if (XE_WA(xe, 1509372804))
 		flags |= GUC_WA_RENDER_RST_RC6_EXIT;
 
 	return flags;
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
index e69de29bb2d1..060ff25496a7 100644
--- a/drivers/gpu/drm/xe/xe_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
@@ -0,0 +1,16 @@
+22012773006	GRAPHICS_VERSION_RANGE(1100, 1250)
+16011759253	SUBPLATFORM(DG2, G10), STEP(A0, B0)
+14014475959	PLATFORM(METEORLAKE), STEP(A0, B0)
+		PLATFORM(DG2)
+22011391025	PLATFORM(DG2)
+14012197797	PLATFORM(DG2), STEP(A0, B0)
+16011777198	SUBPLATFORM(DG2, G10), STEP(A0, C0)
+		SUBPLATFORM(DG2, G11), STEP(A0, B0)
+22012727170	SUBPLATFORM(DG2, G10), STEP(A0, C0)
+		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
+22012727685	SUBPLATFORM(DG2, G10), STEP(A0, C0)
+		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
+16015675438	PLATFORM(PVC)
+		PLATFORM(DG2)
+16016323070	PLATFORM(PVC)
+1509372804	PLATFORM(PVC), STEP(B0, C0)
-- 
2.40.1


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

* [Intel-xe] ✓ CI.Patch_applied: success for Dump + OOB workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (8 preceding siblings ...)
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra Lucas De Marchi
@ 2023-05-16 22:23 ` Patchwork
  2023-05-16 22:24 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2023-05-16 22:23 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe

== Series Details ==

Series: Dump + OOB workarounds
URL   : https://patchwork.freedesktop.org/series/117840/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: 68b73294f drm/xe: Call exit functions when xe_register_pci_driver() fails
=== git am output follows ===
.git/rebase-apply/patch:64: new blank line at EOF.
+
warning: 1 line adds whitespace errors.
Applying: drm/xe: Fix Wa_22011802037 annotation
Applying: drm/xe/rtp: Split rtp process initialization
Applying: drm/xe/rtp: Add "_sr" to entry/function names
Applying: drm/xe/rtp: Allow to track active workarounds
Applying: drm/xe/wa: Track gt/engine/lrc active workarounds
Applying: drm/xe/debugfs: Dump active workarounds
Applying: drm/xe/rtp: Add support for entries with no action
Applying: drm/xe: Add support for OOB workarounds
Applying: drm/xe/guc: Port workarounds to OOB infra



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

* [Intel-xe] ✓ CI.KUnit: success for Dump + OOB workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (9 preceding siblings ...)
  2023-05-16 22:23 ` [Intel-xe] ✓ CI.Patch_applied: success for Dump + OOB workarounds Patchwork
@ 2023-05-16 22:24 ` Patchwork
  2023-05-16 22:28 ` [Intel-xe] ✓ CI.Build: " Patchwork
  2023-05-17  4:39 ` [Intel-xe] [PATCH v3 0/9] " Lucas De Marchi
  12 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2023-05-16 22:24 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe

== Series Details ==

Series: Dump + OOB workarounds
URL   : https://patchwork.freedesktop.org/series/117840/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
stty: 'standard input': Inappropriate ioctl for device
[22:23:34] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[22:23:38] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[22:24:00] Starting KUnit Kernel (1/1)...
[22:24:00] ============================================================
[22:24:00] ==================== xe_bo (2 subtests) ====================
[22:24:00] [SKIPPED] xe_ccs_migrate_kunit
[22:24:00] [SKIPPED] xe_bo_evict_kunit
[22:24:00] ===================== [SKIPPED] xe_bo ======================
[22:24:00] ================== xe_dma_buf (1 subtest) ==================
[22:24:00] [SKIPPED] xe_dma_buf_kunit
[22:24:00] =================== [SKIPPED] xe_dma_buf ===================
[22:24:00] ================== xe_migrate (1 subtest) ==================
[22:24:00] [SKIPPED] xe_migrate_sanity_kunit
[22:24:00] =================== [SKIPPED] xe_migrate ===================
[22:24:00] =================== xe_pci (2 subtests) ====================
[22:24:00] [PASSED] xe_gmdid_graphics_ip
[22:24:00] [PASSED] xe_gmdid_media_ip
[22:24:00] ===================== [PASSED] xe_pci ======================
[22:24:00] ==================== xe_rtp (1 subtest) ====================
[22:24:00] ================== xe_rtp_process_tests  ===================
[22:24:00] [PASSED] coalesce-same-reg
[22:24:00] [PASSED] no-match-no-add
[22:24:00] [PASSED] no-match-no-add-multiple-rules
[22:24:00] [PASSED] two-regs-two-entries
[22:24:00] [PASSED] clr-one-set-other
[22:24:00] [PASSED] set-field
[22:24:00] [PASSED] conflict-duplicate
[22:24:00] [PASSED] conflict-not-disjoint
[22:24:00] [PASSED] conflict-reg-type
[22:24:00] ============== [PASSED] xe_rtp_process_tests ===============
[22:24:00] ===================== [PASSED] xe_rtp ======================
[22:24:00] ==================== xe_wa (1 subtest) =====================
[22:24:00] ======================== xe_wa_gt  =========================
[22:24:00] [PASSED] TIGERLAKE (B0)
[22:24:00] [PASSED] DG1 (A0)
[22:24:00] [PASSED] DG1 (B0)
[22:24:00] [PASSED] ALDERLAKE_S (A0)
[22:24:00] [PASSED] ALDERLAKE_S (B0)
[22:24:00] [PASSED] ALDERLAKE_S (C0)
[22:24:00] [PASSED] ALDERLAKE_S (D0)
[22:24:00] [PASSED] DG2_G10 (A0)
[22:24:00] [PASSED] DG2_G10 (A1)
[22:24:00] [PASSED] DG2_G10 (B0)
[22:24:00] [PASSED] DG2_G10 (C0)
[22:24:00] [PASSED] DG2_G11 (A0)
[22:24:00] [PASSED] DG2_G11 (B0)
[22:24:00] [PASSED] DG2_G11 (B1)
[22:24:00] [PASSED] DG2_G12 (A0)
[22:24:00] [PASSED] DG2_G12 (A1)
[22:24:00] [PASSED] PVC (B0)
[22:24:00] [PASSED] PVC (B1)
[22:24:00] [PASSED] PVC (C0)
[22:24:00] ==================== [PASSED] xe_wa_gt =====================
[22:24:00] ====================== [PASSED] xe_wa ======================
[22:24:00] ============================================================
[22:24:00] Testing complete. Ran 34 tests: passed: 30, skipped: 4
[22:24:00] Elapsed time: 26.409s total, 4.232s configuring, 22.057s building, 0.096s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[22:24:00] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[22:24:02] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[22:24:20] Starting KUnit Kernel (1/1)...
[22:24:20] ============================================================
[22:24:21] ============ drm_test_pick_cmdline (2 subtests) ============
[22:24:21] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[22:24:21] =============== drm_test_pick_cmdline_named  ===============
[22:24:21] [PASSED] NTSC
[22:24:21] [PASSED] NTSC-J
[22:24:21] [PASSED] PAL
[22:24:21] [PASSED] PAL-M
[22:24:21] =========== [PASSED] drm_test_pick_cmdline_named ===========
[22:24:21] ============== [PASSED] drm_test_pick_cmdline ==============
[22:24:21] ================== drm_buddy (6 subtests) ==================
[22:24:21] [PASSED] drm_test_buddy_alloc_limit
[22:24:21] [PASSED] drm_test_buddy_alloc_range
[22:24:21] [PASSED] drm_test_buddy_alloc_optimistic
[22:24:21] [PASSED] drm_test_buddy_alloc_pessimistic
[22:24:21] [PASSED] drm_test_buddy_alloc_smoke
[22:24:21] [PASSED] drm_test_buddy_alloc_pathological
[22:24:21] ==================== [PASSED] drm_buddy ====================
[22:24:21] ============= drm_cmdline_parser (40 subtests) =============
[22:24:21] [PASSED] drm_test_cmdline_force_d_only
[22:24:21] [PASSED] drm_test_cmdline_force_D_only_dvi
[22:24:21] [PASSED] drm_test_cmdline_force_D_only_hdmi
[22:24:21] [PASSED] drm_test_cmdline_force_D_only_not_digital
[22:24:21] [PASSED] drm_test_cmdline_force_e_only
[22:24:21] [PASSED] drm_test_cmdline_res
[22:24:21] [PASSED] drm_test_cmdline_res_vesa
[22:24:21] [PASSED] drm_test_cmdline_res_vesa_rblank
[22:24:21] [PASSED] drm_test_cmdline_res_rblank
[22:24:21] [PASSED] drm_test_cmdline_res_bpp
[22:24:21] [PASSED] drm_test_cmdline_res_refresh
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[22:24:21] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[22:24:21] [PASSED] drm_test_cmdline_res_margins_force_on
[22:24:21] [PASSED] drm_test_cmdline_res_vesa_margins
[22:24:21] [PASSED] drm_test_cmdline_name
[22:24:21] [PASSED] drm_test_cmdline_name_bpp
[22:24:21] [PASSED] drm_test_cmdline_name_option
[22:24:21] [PASSED] drm_test_cmdline_name_bpp_option
[22:24:21] [PASSED] drm_test_cmdline_rotate_0
[22:24:21] [PASSED] drm_test_cmdline_rotate_90
[22:24:21] [PASSED] drm_test_cmdline_rotate_180
[22:24:21] [PASSED] drm_test_cmdline_rotate_270
[22:24:21] [PASSED] drm_test_cmdline_hmirror
[22:24:21] [PASSED] drm_test_cmdline_vmirror
[22:24:21] [PASSED] drm_test_cmdline_margin_options
[22:24:21] [PASSED] drm_test_cmdline_multiple_options
[22:24:21] [PASSED] drm_test_cmdline_bpp_extra_and_option
[22:24:21] [PASSED] drm_test_cmdline_extra_and_option
[22:24:21] [PASSED] drm_test_cmdline_freestanding_options
[22:24:21] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[22:24:21] [PASSED] drm_test_cmdline_panel_orientation
[22:24:21] ================ drm_test_cmdline_invalid  =================
[22:24:21] [PASSED] margin_only
[22:24:21] [PASSED] interlace_only
[22:24:21] [PASSED] res_missing_x
[22:24:21] [PASSED] res_missing_y
[22:24:21] [PASSED] res_bad_y
[22:24:21] [PASSED] res_missing_y_bpp
[22:24:21] [PASSED] res_bad_bpp
[22:24:21] [PASSED] res_bad_refresh
[22:24:21] [PASSED] res_bpp_refresh_force_on_off
[22:24:21] [PASSED] res_invalid_mode
[22:24:21] [PASSED] res_bpp_wrong_place_mode
[22:24:21] [PASSED] name_bpp_refresh
[22:24:21] [PASSED] name_refresh
[22:24:21] [PASSED] name_refresh_wrong_mode
[22:24:21] [PASSED] name_refresh_invalid_mode
[22:24:21] [PASSED] rotate_multiple
[22:24:21] [PASSED] rotate_invalid_val
[22:24:21] [PASSED] rotate_truncated
[22:24:21] [PASSED] invalid_option
[22:24:21] [PASSED] invalid_tv_option
[22:24:21] [PASSED] truncated_tv_option
[22:24:21] ============ [PASSED] drm_test_cmdline_invalid =============
[22:24:21] =============== drm_test_cmdline_tv_options  ===============
[22:24:21] [PASSED] NTSC
[22:24:21] [PASSED] NTSC_443
[22:24:21] [PASSED] NTSC_J
[22:24:21] [PASSED] PAL
[22:24:21] [PASSED] PAL_M
[22:24:21] [PASSED] PAL_N
[22:24:21] [PASSED] SECAM
[22:24:21] =========== [PASSED] drm_test_cmdline_tv_options ===========
[22:24:21] =============== [PASSED] drm_cmdline_parser ================
[22:24:21] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[22:24:21] ========== drm_test_get_tv_mode_from_name_valid  ===========
[22:24:21] [PASSED] NTSC
[22:24:21] [PASSED] NTSC-443
[22:24:21] [PASSED] NTSC-J
[22:24:21] [PASSED] PAL
[22:24:21] [PASSED] PAL-M
[22:24:21] [PASSED] PAL-N
[22:24:21] [PASSED] SECAM
[22:24:21] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[22:24:21] [PASSED] drm_test_get_tv_mode_from_name_truncated
[22:24:21] ============ [PASSED] drm_get_tv_mode_from_name ============
[22:24:21] ============= drm_damage_helper (21 subtests) ==============
[22:24:21] [PASSED] drm_test_damage_iter_no_damage
[22:24:21] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[22:24:21] [PASSED] drm_test_damage_iter_no_damage_src_moved
[22:24:21] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[22:24:21] [PASSED] drm_test_damage_iter_no_damage_not_visible
[22:24:21] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[22:24:21] [PASSED] drm_test_damage_iter_no_damage_no_fb
[22:24:21] [PASSED] drm_test_damage_iter_simple_damage
[22:24:21] [PASSED] drm_test_damage_iter_single_damage
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_outside_src
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_src_moved
[22:24:21] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[22:24:21] [PASSED] drm_test_damage_iter_damage
[22:24:21] [PASSED] drm_test_damage_iter_damage_one_intersect
[22:24:21] [PASSED] drm_test_damage_iter_damage_one_outside
[22:24:21] [PASSED] drm_test_damage_iter_damage_src_moved
[22:24:21] [PASSED] drm_test_damage_iter_damage_not_visible
[22:24:21] ================ [PASSED] drm_damage_helper ================
[22:24:21] ============== drm_dp_mst_helper (2 subtests) ==============
[22:24:21] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[22:24:21] [PASSED] Clock 154000 BPP 30 DSC disabled
[22:24:21] [PASSED] Clock 234000 BPP 30 DSC disabled
[22:24:21] [PASSED] Clock 297000 BPP 24 DSC disabled
[22:24:21] [PASSED] Clock 332880 BPP 24 DSC enabled
[22:24:21] [PASSED] Clock 324540 BPP 24 DSC enabled
[22:24:21] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[22:24:21] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[22:24:21] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[22:24:21] [PASSED] DP_POWER_UP_PHY with port number
[22:24:21] [PASSED] DP_POWER_DOWN_PHY with port number
[22:24:21] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[22:24:21] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[22:24:21] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[22:24:21] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[22:24:21] [PASSED] DP_QUERY_PAYLOAD with port number
[22:24:21] [PASSED] DP_QUERY_PAYLOAD with VCPI
[22:24:21] [PASSED] DP_REMOTE_DPCD_READ with port number
[22:24:21] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[22:24:21] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[22:24:21] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[22:24:21] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[22:24:21] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[22:24:21] [PASSED] DP_REMOTE_I2C_READ with port number
[22:24:21] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[22:24:21] [PASSED] DP_REMOTE_I2C_READ with transactions array
[22:24:21] [PASSED] DP_REMOTE_I2C_WRITE with port number
[22:24:21] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[22:24:21] [PASSED] DP_REMOTE_I2C_WRITE with data array
[22:24:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[22:24:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[22:24:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[22:24:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[22:24:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[22:24:21] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[22:24:21] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[22:24:21] ================ [PASSED] drm_dp_mst_helper ================
[22:24:21] =========== drm_format_helper_test (11 subtests) ===========
[22:24:21] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[22:24:21] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[22:24:21] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[22:24:21] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[22:24:21] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[22:24:21] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[22:24:21] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[22:24:21] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[22:24:21] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[22:24:21] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[22:24:21] ============== drm_test_fb_xrgb8888_to_mono  ===============
[22:24:21] [PASSED] single_pixel_source_buffer
[22:24:21] [PASSED] single_pixel_clip_rectangle
[22:24:21] [PASSED] well_known_colors
[22:24:21] [PASSED] destination_pitch
[22:24:21] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[22:24:21] ============= [PASSED] drm_format_helper_test ==============
[22:24:21] ================= drm_format (18 subtests) =================
[22:24:21] [PASSED] drm_test_format_block_width_invalid
[22:24:21] [PASSED] drm_test_format_block_width_one_plane
[22:24:21] [PASSED] drm_test_format_block_width_two_plane
[22:24:21] [PASSED] drm_test_format_block_width_three_plane
[22:24:21] [PASSED] drm_test_format_block_width_tiled
[22:24:21] [PASSED] drm_test_format_block_height_invalid
[22:24:21] [PASSED] drm_test_format_block_height_one_plane
[22:24:21] [PASSED] drm_test_format_block_height_two_plane
[22:24:21] [PASSED] drm_test_format_block_height_three_plane
[22:24:21] [PASSED] drm_test_format_block_height_tiled
[22:24:21] [PASSED] drm_test_format_min_pitch_invalid
[22:24:21] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[22:24:21] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[22:24:21] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[22:24:21] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[22:24:21] [PASSED] drm_test_format_min_pitch_two_plane
[22:24:21] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[22:24:21] [PASSED] drm_test_format_min_pitch_tiled
[22:24:21] =================== [PASSED] drm_format ====================
[22:24:21] =============== drm_framebuffer (1 subtest) ================
[22:24:21] =============== drm_test_framebuffer_create  ===============
[22:24:21] [PASSED] ABGR8888 normal sizes
[22:24:21] [PASSED] ABGR8888 max sizes
[22:24:21] [PASSED] ABGR8888 pitch greater than min required
[22:24:21] [PASSED] ABGR8888 pitch less than min required
[22:24:21] [PASSED] ABGR8888 Invalid width
[22:24:21] [PASSED] ABGR8888 Invalid buffer handle
[22:24:21] [PASSED] No pixel format
[22:24:21] [PASSED] ABGR8888 Width 0
[22:24:21] [PASSED] ABGR8888 Height 0
[22:24:21] [PASSED] ABGR8888 Out of bound height * pitch combination
[22:24:21] [PASSED] ABGR8888 Large buffer offset
[22:24:21] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[22:24:21] [PASSED] ABGR8888 Valid buffer modifier
[22:24:21] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[22:24:21] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] NV12 Normal sizes
[22:24:21] [PASSED] NV12 Max sizes
[22:24:21] [PASSED] NV12 Invalid pitch
[22:24:21] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[22:24:21] [PASSED] NV12 different  modifier per-plane
[22:24:21] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[22:24:21] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] NV12 Modifier for inexistent plane
[22:24:21] [PASSED] NV12 Handle for inexistent plane
[22:24:21] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] YVU420 Normal sizes
[22:24:21] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[22:24:21] [PASSED] YVU420 Max sizes
[22:24:21] [PASSED] YVU420 Invalid pitch
[22:24:21] [PASSED] YVU420 Different pitches
[22:24:21] [PASSED] YVU420 Different buffer offsets/pitches
[22:24:21] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[22:24:21] [PASSED] YVU420 Valid modifier
[22:24:21] [PASSED] YVU420 Different modifiers per plane
[22:24:21] [PASSED] YVU420 Modifier for inexistent plane
[22:24:21] [PASSED] X0L2 Normal sizes
[22:24:21] [PASSED] X0L2 Max sizes
[22:24:21] [PASSED] X0L2 Invalid pitch
[22:24:21] [PASSED] X0L2 Pitch greater than minimum required
stty: 'standard input': Inappropriate ioctl for device
[22:24:21] [PASSED] X0L2 Handle for inexistent plane
[22:24:21] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[22:24:21] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[22:24:21] [PASSED] X0L2 Valid modifier
[22:24:21] [PASSED] X0L2 Modifier for inexistent plane
[22:24:21] =========== [PASSED] drm_test_framebuffer_create ===========
[22:24:21] ================= [PASSED] drm_framebuffer =================
[22:24:21] =============== drm-test-managed (1 subtest) ===============
[22:24:21] [PASSED] drm_test_managed_run_action
[22:24:21] ================ [PASSED] drm-test-managed =================
[22:24:21] =================== drm_mm (19 subtests) ===================
[22:24:21] [PASSED] drm_test_mm_init
[22:24:21] [PASSED] drm_test_mm_debug
[22:24:31] [PASSED] drm_test_mm_reserve
[22:24:40] [PASSED] drm_test_mm_insert
[22:24:41] [PASSED] drm_test_mm_replace
[22:24:41] [PASSED] drm_test_mm_insert_range
[22:24:41] [PASSED] drm_test_mm_frag
[22:24:41] [PASSED] drm_test_mm_align
[22:24:41] [PASSED] drm_test_mm_align32
[22:24:42] [PASSED] drm_test_mm_align64
[22:24:42] [PASSED] drm_test_mm_evict
[22:24:42] [PASSED] drm_test_mm_evict_range
[22:24:42] [PASSED] drm_test_mm_topdown
[22:24:42] [PASSED] drm_test_mm_bottomup
[22:24:42] [PASSED] drm_test_mm_lowest
[22:24:42] [PASSED] drm_test_mm_highest
[22:24:43] [PASSED] drm_test_mm_color
[22:24:43] [PASSED] drm_test_mm_color_evict
[22:24:43] [PASSED] drm_test_mm_color_evict_range
[22:24:43] ===================== [PASSED] drm_mm ======================
[22:24:43] ============= drm_modes_analog_tv (4 subtests) =============
[22:24:43] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[22:24:43] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[22:24:43] [PASSED] drm_test_modes_analog_tv_pal_576i
[22:24:43] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[22:24:43] =============== [PASSED] drm_modes_analog_tv ===============
[22:24:43] ============== drm_plane_helper (2 subtests) ===============
[22:24:43] =============== drm_test_check_plane_state  ================
[22:24:43] [PASSED] clipping_simple
[22:24:43] [PASSED] clipping_rotate_reflect
[22:24:43] [PASSED] positioning_simple
[22:24:43] [PASSED] upscaling
[22:24:43] [PASSED] downscaling
[22:24:43] [PASSED] rounding1
[22:24:43] [PASSED] rounding2
[22:24:43] [PASSED] rounding3
[22:24:43] [PASSED] rounding4
[22:24:43] =========== [PASSED] drm_test_check_plane_state ============
[22:24:43] =========== drm_test_check_invalid_plane_state  ============
[22:24:43] [PASSED] positioning_invalid
[22:24:43] [PASSED] upscaling_invalid
[22:24:43] [PASSED] downscaling_invalid
[22:24:43] ======= [PASSED] drm_test_check_invalid_plane_state ========
[22:24:43] ================ [PASSED] drm_plane_helper =================
[22:24:43] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[22:24:43] ====== drm_test_connector_helper_tv_get_modes_check  =======
[22:24:43] [PASSED] None
[22:24:43] [PASSED] PAL
[22:24:43] [PASSED] NTSC
[22:24:43] [PASSED] Both, NTSC Default
[22:24:43] [PASSED] Both, PAL Default
[22:24:43] [PASSED] Both, NTSC Default, with PAL on command-line
[22:24:43] [PASSED] Both, PAL Default, with NTSC on command-line
[22:24:43] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[22:24:43] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[22:24:43] ================== drm_rect (9 subtests) ===================
[22:24:43] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[22:24:43] [PASSED] drm_test_rect_clip_scaled_not_clipped
[22:24:43] [PASSED] drm_test_rect_clip_scaled_clipped
[22:24:43] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[22:24:43] ================= drm_test_rect_intersect  =================
[22:24:43] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[22:24:43] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[22:24:43] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[22:24:43] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[22:24:43] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[22:24:43] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[22:24:43] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[22:24:43] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[22:24:43] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[22:24:43] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[22:24:43] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[22:24:43] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[22:24:43] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[22:24:43] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[22:24:43] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[22:24:43] ============= [PASSED] drm_test_rect_intersect =============
[22:24:43] ================ drm_test_rect_calc_hscale  ================
[22:24:43] [PASSED] normal use
[22:24:43] [PASSED] out of max range
[22:24:43] [PASSED] out of min range
[22:24:43] [PASSED] zero dst
[22:24:43] [PASSED] negative src
[22:24:43] [PASSED] negative dst
[22:24:43] ============ [PASSED] drm_test_rect_calc_hscale ============
[22:24:43] ================ drm_test_rect_calc_vscale  ================
[22:24:43] [PASSED] normal use
[22:24:43] [PASSED] out of max range
[22:24:43] [PASSED] out of min range
[22:24:43] [PASSED] zero dst
[22:24:43] [PASSED] negative src
[22:24:43] [PASSED] negative dst
[22:24:43] ============ [PASSED] drm_test_rect_calc_vscale ============
[22:24:43] ================== drm_test_rect_rotate  ===================
[22:24:43] [PASSED] reflect-x
[22:24:43] [PASSED] reflect-y
[22:24:43] [PASSED] rotate-0
[22:24:43] [PASSED] rotate-90
[22:24:43] [PASSED] rotate-180
[22:24:43] [PASSED] rotate-270
[22:24:43] ============== [PASSED] drm_test_rect_rotate ===============
[22:24:43] ================ drm_test_rect_rotate_inv  =================
[22:24:43] [PASSED] reflect-x
[22:24:43] [PASSED] reflect-y
[22:24:43] [PASSED] rotate-0
[22:24:43] [PASSED] rotate-90
[22:24:43] [PASSED] rotate-180
[22:24:43] [PASSED] rotate-270
[22:24:43] ============ [PASSED] drm_test_rect_rotate_inv =============
[22:24:43] ==================== [PASSED] drm_rect =====================
[22:24:43] ============================================================
[22:24:43] Testing complete. Ran 333 tests: passed: 333
[22:24:43] Elapsed time: 42.928s total, 1.691s configuring, 18.358s building, 22.854s running

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



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

* [Intel-xe] ✓ CI.Build: success for Dump + OOB workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (10 preceding siblings ...)
  2023-05-16 22:24 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
@ 2023-05-16 22:28 ` Patchwork
  2023-05-17  4:39 ` [Intel-xe] [PATCH v3 0/9] " Lucas De Marchi
  12 siblings, 0 replies; 29+ messages in thread
From: Patchwork @ 2023-05-16 22:28 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe

== Series Details ==

Series: Dump + OOB workarounds
URL   : https://patchwork.freedesktop.org/series/117840/
State : success

== Summary ==

+ trap cleanup EXIT
+ cd /kernel
+ git clone https://gitlab.freedesktop.org/drm/xe/ci.git .ci
Cloning into '.ci'...
++ date +%s
+ echo -e '\e[0Ksection_start:1684275893:build_x86_64[collapsed=true]\r\e[0KBuild x86-64'
+ mkdir -p build64
^[[0Ksection_start:1684275893:build_x86_64[collapsed=true]
^[[0KBuild x86-64
+ cat .ci/kernel/kconfig
+ make O=build64 olddefconfig
make[1]: Entering directory '/kernel/build64'
  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/lexer.lex.o
  HOSTCC  scripts/kconfig/menu.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
make[1]: Leaving directory '/kernel/build64'
++ nproc
+ make O=build64 -j48
make[1]: Entering directory '/kernel/build64'
  GEN     Makefile
  WRAP    arch/x86/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/x86/include/generated/uapi/asm/errno.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  WRAP    arch/x86/include/generated/uapi/asm/fcntl.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctl.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctls.h
  SYSHDR  arch/x86/include/generated/asm/unistd_32_ia32.h
  WRAP    arch/x86/include/generated/uapi/asm/ipcbuf.h
  SYSHDR  arch/x86/include/generated/asm/unistd_64_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_64.h
  WRAP    arch/x86/include/generated/uapi/asm/param.h
  WRAP    arch/x86/include/generated/uapi/asm/resource.h
  WRAP    arch/x86/include/generated/uapi/asm/poll.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
  UPD     include/generated/uapi/linux/version.h
  UPD     include/config/kernel.release
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  UPD     include/generated/compile.h
  HOSTCC  arch/x86/tools/relocs_common.o
  WRAP    arch/x86/include/generated/asm/early_ioremap.h
  WRAP    arch/x86/include/generated/asm/export.h
  WRAP    arch/x86/include/generated/asm/mcs_spinlock.h
  WRAP    arch/x86/include/generated/asm/irq_regs.h
  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
  UPD     include/generated/utsrelease.h
  HOSTCC  scripts/unifdef
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/sorttable
  HOSTCC  scripts/asn1_compiler
  DESCEND objtool
  HOSTCC  /kernel/build64/tools/objtool/fixdep.o
  HOSTLD  /kernel/build64/tools/objtool/fixdep-in.o
  LINK    /kernel/build64/tools/objtool/fixdep
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/exec-cmd.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/help.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/pager.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/parse-options.h
  INSTALL /kernel/build64/tools/objtool/libsubcmd/include/subcmd/run-command.h
  CC      /kernel/build64/tools/objtool/libsubcmd/exec-cmd.o
  INSTALL libsubcmd_headers
  CC      /kernel/build64/tools/objtool/libsubcmd/help.o
  CC      /kernel/build64/tools/objtool/libsubcmd/pager.o
  CC      /kernel/build64/tools/objtool/libsubcmd/parse-options.o
  CC      /kernel/build64/tools/objtool/libsubcmd/run-command.o
  CC      /kernel/build64/tools/objtool/libsubcmd/sigchain.o
  CC      /kernel/build64/tools/objtool/libsubcmd/subcmd-config.o
  HOSTLD  arch/x86/tools/relocs
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  CC      scripts/mod/devicetable-offsets.s
  HDRINST usr/include/video/sisfb.h
  HDRINST usr/include/video/edid.h
  HDRINST usr/include/video/uvesafb.h
  HDRINST usr/include/drm/qaic_accel.h
  HDRINST usr/include/drm/amdgpu_drm.h
  HDRINST usr/include/drm/i915_drm.h
  HDRINST usr/include/drm/vgem_drm.h
  HDRINST usr/include/drm/virtgpu_drm.h
  HDRINST usr/include/drm/xe_drm.h
  HDRINST usr/include/drm/omap_drm.h
  HDRINST usr/include/drm/tegra_drm.h
  HDRINST usr/include/drm/radeon_drm.h
  HDRINST usr/include/drm/drm_mode.h
  HDRINST usr/include/drm/ivpu_accel.h
  HDRINST usr/include/drm/exynos_drm.h
  HDRINST usr/include/drm/v3d_drm.h
  HDRINST usr/include/drm/drm_sarea.h
  HDRINST usr/include/drm/qxl_drm.h
  HDRINST usr/include/drm/drm_fourcc.h
  HDRINST usr/include/drm/nouveau_drm.h
  HDRINST usr/include/drm/vmwgfx_drm.h
  HDRINST usr/include/drm/habanalabs_accel.h
  HDRINST usr/include/drm/msm_drm.h
  HDRINST usr/include/drm/etnaviv_drm.h
  HDRINST usr/include/drm/vc4_drm.h
  HDRINST usr/include/drm/panfrost_drm.h
  HDRINST usr/include/drm/lima_drm.h
  HDRINST usr/include/drm/drm.h
  HDRINST usr/include/drm/armada_drm.h
  HDRINST usr/include/mtd/inftl-user.h
  HDRINST usr/include/mtd/nftl-user.h
  HDRINST usr/include/mtd/mtd-user.h
  HDRINST usr/include/mtd/ubi-user.h
  HDRINST usr/include/mtd/mtd-abi.h
  HDRINST usr/include/xen/gntdev.h
  HDRINST usr/include/xen/gntalloc.h
  HDRINST usr/include/xen/evtchn.h
  HDRINST usr/include/xen/privcmd.h
  HDRINST usr/include/asm-generic/auxvec.h
  HDRINST usr/include/asm-generic/bitsperlong.h
  HDRINST usr/include/asm-generic/posix_types.h
  HDRINST usr/include/asm-generic/ioctls.h
  HDRINST usr/include/asm-generic/mman.h
  HDRINST usr/include/asm-generic/shmbuf.h
  HDRINST usr/include/asm-generic/bpf_perf_event.h
  HDRINST usr/include/asm-generic/types.h
  HDRINST usr/include/asm-generic/poll.h
  HDRINST usr/include/asm-generic/msgbuf.h
  HDRINST usr/include/asm-generic/swab.h
  HDRINST usr/include/asm-generic/statfs.h
  HDRINST usr/include/asm-generic/unistd.h
  HDRINST usr/include/asm-generic/hugetlb_encode.h
  HDRINST usr/include/asm-generic/resource.h
  HDRINST usr/include/asm-generic/param.h
  HDRINST usr/include/asm-generic/termbits-common.h
  HDRINST usr/include/asm-generic/sockios.h
  HDRINST usr/include/asm-generic/kvm_para.h
  HDRINST usr/include/asm-generic/errno.h
  HDRINST usr/include/asm-generic/termios.h
  HDRINST usr/include/asm-generic/mman-common.h
  HDRINST usr/include/asm-generic/ioctl.h
  HDRINST usr/include/asm-generic/socket.h
  HDRINST usr/include/asm-generic/signal-defs.h
  HDRINST usr/include/asm-generic/termbits.h
  HDRINST usr/include/asm-generic/int-ll64.h
  HDRINST usr/include/asm-generic/signal.h
  HDRINST usr/include/asm-generic/siginfo.h
  HDRINST usr/include/asm-generic/stat.h
  HDRINST usr/include/asm-generic/int-l64.h
  HDRINST usr/include/asm-generic/errno-base.h
  HDRINST usr/include/asm-generic/fcntl.h
  HDRINST usr/include/asm-generic/setup.h
  HDRINST usr/include/asm-generic/ipcbuf.h
  HDRINST usr/include/asm-generic/sembuf.h
  HDRINST usr/include/asm-generic/ucontext.h
  HDRINST usr/include/rdma/mlx5_user_ioctl_cmds.h
  HDRINST usr/include/rdma/irdma-abi.h
  HDRINST usr/include/rdma/mana-abi.h
  HDRINST usr/include/rdma/hfi/hfi1_user.h
  HDRINST usr/include/rdma/hfi/hfi1_ioctl.h
  HDRINST usr/include/rdma/rdma_user_rxe.h
  HDRINST usr/include/rdma/rdma_user_ioctl.h
  HDRINST usr/include/rdma/mlx5_user_ioctl_verbs.h
  HDRINST usr/include/rdma/bnxt_re-abi.h
  HDRINST usr/include/rdma/hns-abi.h
  HDRINST usr/include/rdma/qedr-abi.h
  HDRINST usr/include/rdma/ib_user_ioctl_cmds.h
  HDRINST usr/include/rdma/vmw_pvrdma-abi.h
  HDRINST usr/include/rdma/ib_user_sa.h
  HDRINST usr/include/rdma/ib_user_ioctl_verbs.h
  HDRINST usr/include/rdma/rvt-abi.h
  HDRINST usr/include/rdma/mlx5-abi.h
  HDRINST usr/include/rdma/rdma_netlink.h
  HDRINST usr/include/rdma/erdma-abi.h
  HDRINST usr/include/rdma/rdma_user_ioctl_cmds.h
  HDRINST usr/include/rdma/rdma_user_cm.h
  HDRINST usr/include/rdma/ib_user_verbs.h
  HDRINST usr/include/rdma/efa-abi.h
  HDRINST usr/include/rdma/siw-abi.h
  HDRINST usr/include/rdma/mlx4-abi.h
  HDRINST usr/include/rdma/mthca-abi.h
  HDRINST usr/include/rdma/ib_user_mad.h
  HDRINST usr/include/rdma/ocrdma-abi.h
  HDRINST usr/include/rdma/cxgb4-abi.h
  UPD     scripts/mod/devicetable-offsets.h
  HDRINST usr/include/misc/xilinx_sdfec.h
  HDRINST usr/include/misc/uacce/hisi_qm.h
  HDRINST usr/include/misc/uacce/uacce.h
  HDRINST usr/include/misc/cxl.h
  HDRINST usr/include/misc/ocxl.h
  HDRINST usr/include/misc/fastrpc.h
  HDRINST usr/include/misc/pvpanic.h
  HDRINST usr/include/linux/i8k.h
  HDRINST usr/include/linux/acct.h
  HDRINST usr/include/linux/atmmpc.h
  HDRINST usr/include/linux/fs.h
  HDRINST usr/include/linux/cifs/cifs_mount.h
  HDRINST usr/include/linux/cifs/cifs_netlink.h
  HDRINST usr/include/linux/if_packet.h
  HDRINST usr/include/linux/route.h
  HDRINST usr/include/linux/patchkey.h
  HDRINST usr/include/linux/tc_ematch/tc_em_cmp.h
  HDRINST usr/include/linux/tc_ematch/tc_em_ipt.h
  HDRINST usr/include/linux/tc_ematch/tc_em_meta.h
  HDRINST usr/include/linux/tc_ematch/tc_em_nbyte.h
  HDRINST usr/include/linux/tc_ematch/tc_em_text.h
  HDRINST usr/include/linux/virtio_pmem.h
  HDRINST usr/include/linux/rkisp1-config.h
  HDRINST usr/include/linux/vhost.h
  HDRINST usr/include/linux/cec-funcs.h
  HDRINST usr/include/linux/ppdev.h
  HDRINST usr/include/linux/isdn/capicmd.h
  HDRINST usr/include/linux/virtio_fs.h
  HDRINST usr/include/linux/netfilter_ipv6.h
  HDRINST usr/include/linux/lirc.h
  HDRINST usr/include/linux/mroute6.h
  HDRINST usr/include/linux/nl80211-vnd-intel.h
  HDRINST usr/include/linux/ivtvfb.h
  HDRINST usr/include/linux/auxvec.h
  HDRINST usr/include/linux/dm-log-userspace.h
  HDRINST usr/include/linux/dccp.h
  HDRINST usr/include/linux/virtio_scmi.h
  HDRINST usr/include/linux/atmarp.h
  HDRINST usr/include/linux/arcfb.h
  HDRINST usr/include/linux/nbd-netlink.h
  HDRINST usr/include/linux/sched/types.h
  HDRINST usr/include/linux/tcp.h
  HDRINST usr/include/linux/neighbour.h
  HDRINST usr/include/linux/dlm_device.h
  HDRINST usr/include/linux/wmi.h
  HDRINST usr/include/linux/btrfs_tree.h
  HDRINST usr/include/linux/virtio_crypto.h
  HDRINST usr/include/linux/vbox_err.h
  HDRINST usr/include/linux/edd.h
  HDRINST usr/include/linux/loop.h
  HDRINST usr/include/linux/nvme_ioctl.h
  HDRINST usr/include/linux/mmtimer.h
  HDRINST usr/include/linux/if_pppol2tp.h
  MKELF   scripts/mod/elfconfig.h
  HDRINST usr/include/linux/mtio.h
  HDRINST usr/include/linux/if_arcnet.h
  HDRINST usr/include/linux/romfs_fs.h
  HOSTCC  scripts/mod/modpost.o
  HDRINST usr/include/linux/posix_types.h
  HDRINST usr/include/linux/rtc.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HDRINST usr/include/linux/landlock.h
  HDRINST usr/include/linux/gpio.h
  HDRINST usr/include/linux/selinux_netlink.h
  HDRINST usr/include/linux/pps.h
  HDRINST usr/include/linux/ndctl.h
  HDRINST usr/include/linux/virtio_gpu.h
  HDRINST usr/include/linux/android/binderfs.h
  HDRINST usr/include/linux/android/binder.h
  HDRINST usr/include/linux/virtio_vsock.h
  HDRINST usr/include/linux/sound.h
  HDRINST usr/include/linux/vtpm_proxy.h
  HDRINST usr/include/linux/nfs_fs.h
  HDRINST usr/include/linux/elf-fdpic.h
  HDRINST usr/include/linux/adfs_fs.h
  HDRINST usr/include/linux/target_core_user.h
  HDRINST usr/include/linux/netlink_diag.h
  HDRINST usr/include/linux/const.h
  HDRINST usr/include/linux/firewire-cdev.h
  HDRINST usr/include/linux/vdpa.h
  HDRINST usr/include/linux/if_infiniband.h
  HDRINST usr/include/linux/serial.h
  HDRINST usr/include/linux/iio/types.h
  HDRINST usr/include/linux/iio/buffer.h
  HDRINST usr/include/linux/iio/events.h
  HDRINST usr/include/linux/baycom.h
  HDRINST usr/include/linux/major.h
  HDRINST usr/include/linux/atmppp.h
  HDRINST usr/include/linux/ipv6_route.h
  HDRINST usr/include/linux/spi/spidev.h
  HDRINST usr/include/linux/spi/spi.h
  HDRINST usr/include/linux/virtio_ring.h
  HDRINST usr/include/linux/hdlc/ioctl.h
  HDRINST usr/include/linux/remoteproc_cdev.h
  HDRINST usr/include/linux/hyperv.h
  HDRINST usr/include/linux/rpl_iptunnel.h
  HDRINST usr/include/linux/sync_file.h
  HDRINST usr/include/linux/igmp.h
  HDRINST usr/include/linux/v4l2-dv-timings.h
  HDRINST usr/include/linux/virtio_i2c.h
  HDRINST usr/include/linux/xfrm.h
  HDRINST usr/include/linux/capability.h
  HDRINST usr/include/linux/gtp.h
  HDRINST usr/include/linux/xdp_diag.h
  HDRINST usr/include/linux/pkt_cls.h
  HDRINST usr/include/linux/suspend_ioctls.h
  HDRINST usr/include/linux/vt.h
  HDRINST usr/include/linux/loadpin.h
  HDRINST usr/include/linux/dlm_plock.h
  HDRINST usr/include/linux/fb.h
  HDRINST usr/include/linux/max2175.h
  HDRINST usr/include/linux/sunrpc/debug.h
  HDRINST usr/include/linux/gsmmux.h
  HDRINST usr/include/linux/watchdog.h
  HDRINST usr/include/linux/vhost_types.h
  HDRINST usr/include/linux/vduse.h
  HDRINST usr/include/linux/ila.h
  HDRINST usr/include/linux/tdx-guest.h
  HDRINST usr/include/linux/close_range.h
  HDRINST usr/include/linux/ivtv.h
  HDRINST usr/include/linux/cryptouser.h
  HDRINST usr/include/linux/netfilter/xt_string.h
  HDRINST usr/include/linux/netfilter/nfnetlink_compat.h
  HDRINST usr/include/linux/netfilter/nf_nat.h
  HDRINST usr/include/linux/netfilter/xt_recent.h
  HDRINST usr/include/linux/netfilter/xt_addrtype.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_tcp.h
  HDRINST usr/include/linux/netfilter/xt_MARK.h
  HDRINST usr/include/linux/netfilter/xt_SYNPROXY.h
  HDRINST usr/include/linux/netfilter/xt_multiport.h
  HDRINST usr/include/linux/netfilter/nfnetlink.h
  HDRINST usr/include/linux/netfilter/xt_cgroup.h
  HDRINST usr/include/linux/netfilter/nf_synproxy.h
  HDRINST usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
  HDRINST usr/include/linux/netfilter/nfnetlink_log.h
  HDRINST usr/include/linux/netfilter/xt_TPROXY.h
  HDRINST usr/include/linux/netfilter/xt_u32.h
  HDRINST usr/include/linux/netfilter/nfnetlink_osf.h
  HDRINST usr/include/linux/netfilter/xt_ecn.h
  HDRINST usr/include/linux/netfilter/xt_esp.h
  HDRINST usr/include/linux/netfilter/nfnetlink_hook.h
  HDRINST usr/include/linux/netfilter/xt_mac.h
  HDRINST usr/include/linux/netfilter/xt_comment.h
  HDRINST usr/include/linux/netfilter/xt_NFQUEUE.h
  HDRINST usr/include/linux/netfilter/xt_osf.h
  HDRINST usr/include/linux/netfilter/xt_hashlimit.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_sctp.h
  HDRINST usr/include/linux/netfilter/xt_socket.h
  HDRINST usr/include/linux/netfilter/xt_connmark.h
  HDRINST usr/include/linux/netfilter/xt_sctp.h
  HDRINST usr/include/linux/netfilter/xt_tcpudp.h
  HDRINST usr/include/linux/netfilter/xt_DSCP.h
  HDRINST usr/include/linux/netfilter/xt_time.h
  HDRINST usr/include/linux/netfilter/xt_IDLETIMER.h
  HDRINST usr/include/linux/netfilter/xt_policy.h
  HDRINST usr/include/linux/netfilter/xt_rpfilter.h
  HDRINST usr/include/linux/netfilter/xt_nfacct.h
  HDRINST usr/include/linux/netfilter/xt_SECMARK.h
  HDRINST usr/include/linux/netfilter/xt_length.h
  HDRINST usr/include/linux/netfilter/nfnetlink_cthelper.h
  HDRINST usr/include/linux/netfilter/xt_quota.h
  HDRINST usr/include/linux/netfilter/xt_CLASSIFY.h
  HDRINST usr/include/linux/netfilter/xt_ipcomp.h
  HDRINST usr/include/linux/netfilter/xt_iprange.h
  HDRINST usr/include/linux/netfilter/xt_bpf.h
  HDRINST usr/include/linux/netfilter/xt_LOG.h
  HDRINST usr/include/linux/netfilter/xt_rateest.h
  HDRINST usr/include/linux/netfilter/xt_CONNSECMARK.h
  HDRINST usr/include/linux/netfilter/xt_HMARK.h
  HDRINST usr/include/linux/netfilter/xt_CONNMARK.h
  HDRINST usr/include/linux/netfilter/xt_pkttype.h
  HDRINST usr/include/linux/netfilter/xt_ipvs.h
  HDRINST usr/include/linux/netfilter/xt_devgroup.h
  HDRINST usr/include/linux/netfilter/xt_AUDIT.h
  HDRINST usr/include/linux/netfilter/xt_realm.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_common.h
  HDRINST usr/include/linux/netfilter/xt_set.h
  HDRINST usr/include/linux/netfilter/xt_LED.h
  HDRINST usr/include/linux/netfilter/xt_connlabel.h
  HDRINST usr/include/linux/netfilter/xt_owner.h
  HDRINST usr/include/linux/netfilter/xt_dccp.h
  HDRINST usr/include/linux/netfilter/xt_limit.h
  HDRINST usr/include/linux/netfilter/xt_conntrack.h
  HDRINST usr/include/linux/netfilter/xt_TEE.h
  HDRINST usr/include/linux/netfilter/xt_RATEEST.h
  HDRINST usr/include/linux/netfilter/xt_connlimit.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set_list.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set_hash.h
  HDRINST usr/include/linux/netfilter/ipset/ip_set_bitmap.h
  HDRINST usr/include/linux/netfilter/x_tables.h
  HDRINST usr/include/linux/netfilter/xt_dscp.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_ftp.h
  HDRINST usr/include/linux/netfilter/nf_conntrack_tuple_common.h
  HDRINST usr/include/linux/netfilter/nf_log.h
  HDRINST usr/include/linux/netfilter/xt_cluster.h
  HDRINST usr/include/linux/netfilter/xt_tcpmss.h
  HDRINST usr/include/linux/netfilter/xt_NFLOG.h
  HDRINST usr/include/linux/netfilter/xt_l2tp.h
  HDRINST usr/include/linux/netfilter/xt_helper.h
  HDRINST usr/include/linux/netfilter/xt_statistic.h
  HDRINST usr/include/linux/netfilter/nfnetlink_queue.h
  HDRINST usr/include/linux/netfilter/nfnetlink_cttimeout.h
  HDRINST usr/include/linux/netfilter/xt_CT.h
  HDRINST usr/include/linux/netfilter/xt_CHECKSUM.h
  HDRINST usr/include/linux/netfilter/xt_connbytes.h
  HDRINST usr/include/linux/netfilter/xt_state.h
  HDRINST usr/include/linux/netfilter/nf_tables.h
  HDRINST usr/include/linux/netfilter/xt_mark.h
  HDRINST usr/include/linux/netfilter/xt_cpu.h
  HDRINST usr/include/linux/netfilter/nf_tables_compat.h
  HDRINST usr/include/linux/netfilter/xt_physdev.h
  HDRINST usr/include/linux/netfilter/nfnetlink_conntrack.h
  HDRINST usr/include/linux/netfilter/nfnetlink_acct.h
  HDRINST usr/include/linux/netfilter/xt_TCPMSS.h
  HDRINST usr/include/linux/tty_flags.h
  HDRINST usr/include/linux/if_phonet.h
  HDRINST usr/include/linux/elf-em.h
  HDRINST usr/include/linux/vm_sockets.h
  HDRINST usr/include/linux/dlmconstants.h
  HDRINST usr/include/linux/bsg.h
  HDRINST usr/include/linux/matroxfb.h
  HDRINST usr/include/linux/sysctl.h
  HDRINST usr/include/linux/unix_diag.h
  HDRINST usr/include/linux/pcitest.h
  HDRINST usr/include/linux/mman.h
  HDRINST usr/include/linux/if_plip.h
  HDRINST usr/include/linux/virtio_balloon.h
  HDRINST usr/include/linux/pidfd.h
  HDRINST usr/include/linux/f2fs.h
  HDRINST usr/include/linux/x25.h
  HDRINST usr/include/linux/if_cablemodem.h
  HDRINST usr/include/linux/utsname.h
  HDRINST usr/include/linux/counter.h
  HDRINST usr/include/linux/atm_tcp.h
  HDRINST usr/include/linux/atalk.h
  HDRINST usr/include/linux/virtio_rng.h
  HDRINST usr/include/linux/vboxguest.h
  HDRINST usr/include/linux/bpf_perf_event.h
  HDRINST usr/include/linux/ipmi_ssif_bmc.h
  HDRINST usr/include/linux/nfs_mount.h
  HDRINST usr/include/linux/sonet.h
  HDRINST usr/include/linux/netfilter.h
  HDRINST usr/include/linux/keyctl.h
  HDRINST usr/include/linux/nl80211.h
  HDRINST usr/include/linux/misc/bcm_vk.h
  HDRINST usr/include/linux/audit.h
  HDRINST usr/include/linux/tipc_config.h
  HDRINST usr/include/linux/tipc_sockets_diag.h
  HDRINST usr/include/linux/futex.h
  HDRINST usr/include/linux/sev-guest.h
  HDRINST usr/include/linux/ublk_cmd.h
  HDRINST usr/include/linux/types.h
  HDRINST usr/include/linux/virtio_input.h
  HDRINST usr/include/linux/if_slip.h
  HDRINST usr/include/linux/personality.h
  HDRINST usr/include/linux/openat2.h
  HDRINST usr/include/linux/poll.h
  HDRINST usr/include/linux/smc_diag.h
  HDRINST usr/include/linux/posix_acl.h
  HDRINST usr/include/linux/snmp.h
  HDRINST usr/include/linux/errqueue.h
  HDRINST usr/include/linux/if_tunnel.h
  HDRINST usr/include/linux/fanotify.h
  HDRINST usr/include/linux/kernel.h
  HDRINST usr/include/linux/rtnetlink.h
  HDRINST usr/include/linux/rpl.h
  HDRINST usr/include/linux/memfd.h
  HDRINST usr/include/linux/serial_core.h
  HDRINST usr/include/linux/dns_resolver.h
  HDRINST usr/include/linux/pr.h
  HDRINST usr/include/linux/atm_eni.h
  HDRINST usr/include/linux/lp.h
  HDRINST usr/include/linux/virtio_mem.h
  HDRINST usr/include/linux/ultrasound.h
  HDRINST usr/include/linux/sctp.h
  HDRINST usr/include/linux/uio.h
  HDRINST usr/include/linux/tcp_metrics.h
  HDRINST usr/include/linux/wwan.h
  HDRINST usr/include/linux/atmbr2684.h
  HDRINST usr/include/linux/in_route.h
  HDRINST usr/include/linux/qemu_fw_cfg.h
  HDRINST usr/include/linux/if_macsec.h
  HDRINST usr/include/linux/usb/charger.h
  HDRINST usr/include/linux/usb/g_uvc.h
  HDRINST usr/include/linux/usb/gadgetfs.h
  HDRINST usr/include/linux/usb/raw_gadget.h
  HDRINST usr/include/linux/usb/g_printer.h
  HDRINST usr/include/linux/usb/cdc-wdm.h
  HDRINST usr/include/linux/usb/midi.h
  HDRINST usr/include/linux/usb/tmc.h
  HDRINST usr/include/linux/usb/video.h
  HDRINST usr/include/linux/usb/functionfs.h
  HDRINST usr/include/linux/usb/audio.h
  HDRINST usr/include/linux/usb/ch11.h
  HDRINST usr/include/linux/usb/ch9.h
  HDRINST usr/include/linux/usb/cdc.h
  HDRINST usr/include/linux/jffs2.h
  HDRINST usr/include/linux/ax25.h
  HDRINST usr/include/linux/auto_fs.h
  HDRINST usr/include/linux/tiocl.h
  HDRINST usr/include/linux/scc.h
  HDRINST usr/include/linux/psci.h
  HDRINST usr/include/linux/swab.h
  HDRINST usr/include/linux/cec.h
  HDRINST usr/include/linux/kfd_ioctl.h
  HDRINST usr/include/linux/smc.h
  HDRINST usr/include/linux/qrtr.h
  HDRINST usr/include/linux/screen_info.h
  HDRINST usr/include/linux/nfsacl.h
  HDRINST usr/include/linux/seg6_hmac.h
  HDRINST usr/include/linux/gameport.h
  HDRINST usr/include/linux/wireless.h
  HDRINST usr/include/linux/fdreg.h
  HDRINST usr/include/linux/cciss_defs.h
  HDRINST usr/include/linux/serial_reg.h
  HDRINST usr/include/linux/perf_event.h
  HDRINST usr/include/linux/in6.h
  HDRINST usr/include/linux/hid.h
  HDRINST usr/include/linux/netlink.h
  HDRINST usr/include/linux/fuse.h
  HDRINST usr/include/linux/magic.h
  HDRINST usr/include/linux/ioam6_iptunnel.h
  HDRINST usr/include/linux/stm.h
  HDRINST usr/include/linux/vsockmon.h
  HDRINST usr/include/linux/seg6.h
  HDRINST usr/include/linux/idxd.h
  HDRINST usr/include/linux/nitro_enclaves.h
  HDRINST usr/include/linux/ptrace.h
  HDRINST usr/include/linux/ioam6_genl.h
  HDRINST usr/include/linux/qnx4_fs.h
  HDRINST usr/include/linux/fsl_mc.h
  HDRINST usr/include/linux/net_tstamp.h
  HDRINST usr/include/linux/msg.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_TTL.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ttl.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ah.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ECN.h
  HDRINST usr/include/linux/netfilter_ipv4/ip_tables.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_ecn.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_REJECT.h
  HDRINST usr/include/linux/netfilter_ipv4/ipt_LOG.h
  HDRINST usr/include/linux/sem.h
  HDRINST usr/include/linux/net_namespace.h
  HDRINST usr/include/linux/radeonfb.h
  HDRINST usr/include/linux/tee.h
  HDRINST usr/include/linux/udp.h
  HDRINST usr/include/linux/virtio_bt.h
  HDRINST usr/include/linux/v4l2-subdev.h
  HDRINST usr/include/linux/posix_acl_xattr.h
  HDRINST usr/include/linux/v4l2-mediabus.h
  HDRINST usr/include/linux/atmapi.h
  HDRINST usr/include/linux/raid/md_p.h
  HDRINST usr/include/linux/raid/md_u.h
  HDRINST usr/include/linux/zorro_ids.h
  HDRINST usr/include/linux/nbd.h
  HDRINST usr/include/linux/isst_if.h
  HDRINST usr/include/linux/rxrpc.h
  HDRINST usr/include/linux/unistd.h
  HDRINST usr/include/linux/if_arp.h
  HDRINST usr/include/linux/atm_zatm.h
  HDRINST usr/include/linux/io_uring.h
  HDRINST usr/include/linux/if_fddi.h
  HDRINST usr/include/linux/bpqether.h
  HDRINST usr/include/linux/sysinfo.h
  HDRINST usr/include/linux/auto_dev-ioctl.h
  HDRINST usr/include/linux/nfs4_mount.h
  HDRINST usr/include/linux/keyboard.h
  HDRINST usr/include/linux/virtio_mmio.h
  HDRINST usr/include/linux/qnxtypes.h
  HDRINST usr/include/linux/mdio.h
  HDRINST usr/include/linux/input.h
  HDRINST usr/include/linux/lwtunnel.h
  HDRINST usr/include/linux/gfs2_ondisk.h
  HDRINST usr/include/linux/nfs4.h
  HDRINST usr/include/linux/ptp_clock.h
  HDRINST usr/include/linux/nubus.h
  HDRINST usr/include/linux/if_bonding.h
  HDRINST usr/include/linux/kcov.h
  HDRINST usr/include/linux/fadvise.h
  HDRINST usr/include/linux/veth.h
  HDRINST usr/include/linux/taskstats.h
  HDRINST usr/include/linux/atm.h
  HDRINST usr/include/linux/ipmi.h
  HDRINST usr/include/linux/kdev_t.h
  HDRINST usr/include/linux/mount.h
  HDRINST usr/include/linux/shm.h
  HDRINST usr/include/linux/resource.h
  HDRINST usr/include/linux/prctl.h
  HDRINST usr/include/linux/watch_queue.h
  HDRINST usr/include/linux/sched.h
  HDRINST usr/include/linux/phonet.h
  HDRINST usr/include/linux/random.h
  HDRINST usr/include/linux/tty.h
  HDRINST usr/include/linux/apm_bios.h
  HDRINST usr/include/linux/fd.h
  HDRINST usr/include/linux/um_timetravel.h
  HDRINST usr/include/linux/tls.h
  HDRINST usr/include/linux/rpmsg_types.h
  HDRINST usr/include/linux/pfrut.h
  HDRINST usr/include/linux/mei.h
  HDRINST usr/include/linux/fsi.h
  HDRINST usr/include/linux/rds.h
  HDRINST usr/include/linux/if_x25.h
  HDRINST usr/include/linux/param.h
  HDRINST usr/include/linux/netdevice.h
  HDRINST usr/include/linux/binfmts.h
  HDRINST usr/include/linux/if_pppox.h
  HDRINST usr/include/linux/sockios.h
  HDRINST usr/include/linux/kcm.h
  HDRINST usr/include/linux/virtio_9p.h
  HDRINST usr/include/linux/genwqe/genwqe_card.h
  HDRINST usr/include/linux/if_tun.h
  HDRINST usr/include/linux/if_ether.h
  HDRINST usr/include/linux/kvm_para.h
  HDRINST usr/include/linux/kernel-page-flags.h
  HDRINST usr/include/linux/cdrom.h
  HDRINST usr/include/linux/un.h
  HDRINST usr/include/linux/module.h
  HDRINST usr/include/linux/mqueue.h
  HDRINST usr/include/linux/a.out.h
  HDRINST usr/include/linux/input-event-codes.h
  HDRINST usr/include/linux/coda.h
  HDRINST usr/include/linux/rio_mport_cdev.h
  HDRINST usr/include/linux/ipsec.h
  HDRINST usr/include/linux/blkpg.h
  HDRINST usr/include/linux/blkzoned.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_arpreply.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_redirect.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_nflog.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_802_3.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_nat.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_mark_m.h
  HDRINST usr/include/linux/netfilter_bridge/ebtables.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_vlan.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_limit.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_log.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_stp.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_pkttype.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_ip.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_ip6.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_arp.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_mark_t.h
  HDRINST usr/include/linux/netfilter_bridge/ebt_among.h
  HDRINST usr/include/linux/reiserfs_fs.h
  HDRINST usr/include/linux/cciss_ioctl.h
  HDRINST usr/include/linux/fsmap.h
  HDRINST usr/include/linux/smiapp.h
  HDRINST usr/include/linux/switchtec_ioctl.h
  HDRINST usr/include/linux/atmdev.h
  HDRINST usr/include/linux/hpet.h
  HDRINST usr/include/linux/virtio_config.h
  HDRINST usr/include/linux/string.h
  HDRINST usr/include/linux/kfd_sysfs.h
  HDRINST usr/include/linux/inet_diag.h
  HDRINST usr/include/linux/netdev.h
  HDRINST usr/include/linux/xattr.h
  HDRINST usr/include/linux/iommufd.h
  HDRINST usr/include/linux/errno.h
  HDRINST usr/include/linux/icmp.h
  HDRINST usr/include/linux/i2o-dev.h
  HDRINST usr/include/linux/pg.h
  HDRINST usr/include/linux/if_bridge.h
  HDRINST usr/include/linux/thermal.h
  HDRINST usr/include/linux/uinput.h
  HDRINST usr/include/linux/dqblk_xfs.h
  HDRINST usr/include/linux/v4l2-common.h
  HDRINST usr/include/linux/nvram.h
  HDRINST usr/include/linux/if_vlan.h
  HDRINST usr/include/linux/uhid.h
  HDRINST usr/include/linux/omap3isp.h
  HDRINST usr/include/linux/rose.h
  HDRINST usr/include/linux/phantom.h
  HDRINST usr/include/linux/ipmi_msgdefs.h
  HDRINST usr/include/linux/bcm933xx_hcs.h
  HDRINST usr/include/linux/bpf.h
  HDRINST usr/include/linux/mempolicy.h
  HDRINST usr/include/linux/efs_fs_sb.h
  HDRINST usr/include/linux/nexthop.h
  HDRINST usr/include/linux/net_dropmon.h
  LD      /kernel/build64/tools/objtool/libsubcmd/libsubcmd-in.o
  HDRINST usr/include/linux/surface_aggregator/cdev.h
  HDRINST usr/include/linux/surface_aggregator/dtx.h
  HDRINST usr/include/linux/net.h
  HDRINST usr/include/linux/mii.h
  HDRINST usr/include/linux/cm4000_cs.h
  HDRINST usr/include/linux/virtio_pcidev.h
  HDRINST usr/include/linux/termios.h
  HDRINST usr/include/linux/cgroupstats.h
  HDRINST usr/include/linux/mpls.h
  HDRINST usr/include/linux/iommu.h
  HDRINST usr/include/linux/toshiba.h
  HDRINST usr/include/linux/zorro.h
  HDRINST usr/include/linux/virtio_scsi.h
  HDRINST usr/include/linux/chio.h
  HDRINST usr/include/linux/pkt_sched.h
  HDRINST usr/include/linux/cramfs_fs.h
  HDRINST usr/include/linux/nfs3.h
  HDRINST usr/include/linux/vfio_ccw.h
  HDRINST usr/include/linux/atm_nicstar.h
  HDRINST usr/include/linux/ncsi.h
  HDRINST usr/include/linux/virtio_net.h
  HDRINST usr/include/linux/ioctl.h
  HDRINST usr/include/linux/stddef.h
  HDRINST usr/include/linux/limits.h
  HDRINST usr/include/linux/ipmi_bmc.h
  HDRINST usr/include/linux/netfilter_arp.h
  HDRINST usr/include/linux/if_addr.h
  HDRINST usr/include/linux/rpmsg.h
  HDRINST usr/include/linux/media-bus-format.h
  HDRINST usr/include/linux/kernelcapi.h
  AR      /kernel/build64/tools/objtool/libsubcmd/libsubcmd.a
  HDRINST usr/include/linux/ppp_defs.h
  HDRINST usr/include/linux/ethtool.h
  HDRINST usr/include/linux/aspeed-video.h
  HDRINST usr/include/linux/hdlc.h
  HDRINST usr/include/linux/fscrypt.h
  HDRINST usr/include/linux/batadv_packet.h
  HDRINST usr/include/linux/uuid.h
  HDRINST usr/include/linux/capi.h
  HDRINST usr/include/linux/mptcp.h
  HDRINST usr/include/linux/hidraw.h
  HDRINST usr/include/linux/virtio_console.h
  HDRINST usr/include/linux/irqnr.h
  HDRINST usr/include/linux/coresight-stm.h
  HDRINST usr/include/linux/cxl_mem.h
  HDRINST usr/include/linux/iso_fs.h
  HDRINST usr/include/linux/virtio_blk.h
  HDRINST usr/include/linux/udf_fs_i.h
  HDRINST usr/include/linux/coff.h
  HDRINST usr/include/linux/dma-buf.h
  HDRINST usr/include/linux/ife.h
  HDRINST usr/include/linux/agpgart.h
  HDRINST usr/include/linux/socket.h
  HDRINST usr/include/linux/nilfs2_ondisk.h
  HDRINST usr/include/linux/connector.h
  HDRINST usr/include/linux/auto_fs4.h
  HDRINST usr/include/linux/bt-bmc.h
  HDRINST usr/include/linux/map_to_7segment.h
  HDRINST usr/include/linux/tc_act/tc_skbedit.h
  HDRINST usr/include/linux/tc_act/tc_ctinfo.h
  HDRINST usr/include/linux/tc_act/tc_defact.h
  HDRINST usr/include/linux/tc_act/tc_gact.h
  HDRINST usr/include/linux/tc_act/tc_vlan.h
  HDRINST usr/include/linux/tc_act/tc_skbmod.h
  HDRINST usr/include/linux/tc_act/tc_sample.h
  HDRINST usr/include/linux/tc_act/tc_tunnel_key.h
  HDRINST usr/include/linux/tc_act/tc_gate.h
  HDRINST usr/include/linux/tc_act/tc_mirred.h
  HDRINST usr/include/linux/tc_act/tc_nat.h
  HDRINST usr/include/linux/tc_act/tc_csum.h
  HDRINST usr/include/linux/tc_act/tc_connmark.h
  HDRINST usr/include/linux/tc_act/tc_ife.h
  HDRINST usr/include/linux/tc_act/tc_mpls.h
  HDRINST usr/include/linux/tc_act/tc_ct.h
  HDRINST usr/include/linux/tc_act/tc_pedit.h
  HDRINST usr/include/linux/tc_act/tc_bpf.h
  HDRINST usr/include/linux/tc_act/tc_ipt.h
  HDRINST usr/include/linux/netrom.h
  HDRINST usr/include/linux/falloc.h
  HDRINST usr/include/linux/joystick.h
  HDRINST usr/include/linux/cycx_cfm.h
  HDRINST usr/include/linux/omapfb.h
  HDRINST usr/include/linux/msdos_fs.h
  HDRINST usr/include/linux/virtio_types.h
  HDRINST usr/include/linux/mroute.h
  HDRINST usr/include/linux/psample.h
  HDRINST usr/include/linux/ipv6.h
  HDRINST usr/include/linux/dw100.h
  HDRINST usr/include/linux/psp-sev.h
  HDRINST usr/include/linux/vfio.h
  HDRINST usr/include/linux/if_ppp.h
  CC      /kernel/build64/tools/objtool/weak.o
  HDRINST usr/include/linux/byteorder/big_endian.h
  HDRINST usr/include/linux/byteorder/little_endian.h
  CC      /kernel/build64/tools/objtool/check.o
  HDRINST usr/include/linux/comedi.h
  CC      /kernel/build64/tools/objtool/special.o
  HDRINST usr/include/linux/scif_ioctl.h
  HDRINST usr/include/linux/timerfd.h
  CC      /kernel/build64/tools/objtool/builtin-check.o
  HDRINST usr/include/linux/time_types.h
  MKDIR   /kernel/build64/tools/objtool/arch/x86/
  CC      /kernel/build64/tools/objtool/elf.o
  HDRINST usr/include/linux/firewire-constants.h
  CC      /kernel/build64/tools/objtool/objtool.o
  MKDIR   /kernel/build64/tools/objtool/arch/x86/lib/
  HDRINST usr/include/linux/virtio_snd.h
  CC      /kernel/build64/tools/objtool/orc_gen.o
  HDRINST usr/include/linux/ppp-ioctl.h
  HDRINST usr/include/linux/fib_rules.h
  CC      /kernel/build64/tools/objtool/orc_dump.o
  CC      /kernel/build64/tools/objtool/arch/x86/special.o
  HDRINST usr/include/linux/gen_stats.h
  HDRINST usr/include/linux/virtio_iommu.h
  CC      /kernel/build64/tools/objtool/libstring.o
  HDRINST usr/include/linux/genetlink.h
  GEN     /kernel/build64/tools/objtool/arch/x86/lib/inat-tables.c
  HDRINST usr/include/linux/uvcvideo.h
  CC      /kernel/build64/tools/objtool/libctype.o
  HDRINST usr/include/linux/pfkeyv2.h
  CC      /kernel/build64/tools/objtool/str_error_r.o
  HDRINST usr/include/linux/soundcard.h
  CC      /kernel/build64/tools/objtool/librbtree.o
  HDRINST usr/include/linux/times.h
  HDRINST usr/include/linux/nfc.h
  HDRINST usr/include/linux/affs_hardblocks.h
  HDRINST usr/include/linux/nilfs2_api.h
  HDRINST usr/include/linux/rseq.h
  HDRINST usr/include/linux/caif/caif_socket.h
  HDRINST usr/include/linux/caif/if_caif.h
  HDRINST usr/include/linux/i2c-dev.h
  HDRINST usr/include/linux/cuda.h
  HDRINST usr/include/linux/cn_proc.h
  HDRINST usr/include/linux/parport.h
  HDRINST usr/include/linux/v4l2-controls.h
  HDRINST usr/include/linux/hsi/cs-protocol.h
  HDRINST usr/include/linux/hsi/hsi_char.h
  HDRINST usr/include/linux/seg6_genl.h
  HDRINST usr/include/linux/am437x-vpfe.h
  HDRINST usr/include/linux/amt.h
  HDRINST usr/include/linux/netconf.h
  HDRINST usr/include/linux/erspan.h
  HDRINST usr/include/linux/xilinx-v4l2-controls.h
  HDRINST usr/include/linux/nsfs.h
  HDRINST usr/include/linux/aspeed-p2a-ctrl.h
  HDRINST usr/include/linux/vfio_zdev.h
  HDRINST usr/include/linux/serio.h
  HDRINST usr/include/linux/acrn.h
  HDRINST usr/include/linux/nfs2.h
  HDRINST usr/include/linux/virtio_pci.h
  HDRINST usr/include/linux/ipc.h
  HDRINST usr/include/linux/ethtool_netlink.h
  HDRINST usr/include/linux/kd.h
  HDRINST usr/include/linux/elf.h
  HDRINST usr/include/linux/videodev2.h
  HDRINST usr/include/linux/if_alg.h
  HDRINST usr/include/linux/sonypi.h
  HDRINST usr/include/linux/fsverity.h
  HDRINST usr/include/linux/if.h
  HDRINST usr/include/linux/btrfs.h
  HDRINST usr/include/linux/vm_sockets_diag.h
  HDRINST usr/include/linux/netfilter_bridge.h
  HDRINST usr/include/linux/packet_diag.h
  HDRINST usr/include/linux/netfilter_ipv4.h
  HDRINST usr/include/linux/kvm.h
  HDRINST usr/include/linux/pci.h
  HDRINST usr/include/linux/if_addrlabel.h
  HDRINST usr/include/linux/hdlcdrv.h
  HDRINST usr/include/linux/cfm_bridge.h
  HDRINST usr/include/linux/fiemap.h
  HDRINST usr/include/linux/dm-ioctl.h
  HDRINST usr/include/linux/aspeed-lpc-ctrl.h
  HDRINST usr/include/linux/atmioc.h
  HDRINST usr/include/linux/dlm.h
  HDRINST usr/include/linux/pci_regs.h
  HDRINST usr/include/linux/cachefiles.h
  HDRINST usr/include/linux/membarrier.h
  HDRINST usr/include/linux/nfs_idmap.h
  HDRINST usr/include/linux/ip.h
  HDRINST usr/include/linux/atm_he.h
  HDRINST usr/include/linux/nfsd/export.h
  HDRINST usr/include/linux/nfsd/stats.h
  HDRINST usr/include/linux/nfsd/debug.h
  HDRINST usr/include/linux/nfsd/cld.h
  HDRINST usr/include/linux/ip_vs.h
  HDRINST usr/include/linux/vmcore.h
  HDRINST usr/include/linux/vbox_vmmdev_types.h
  HDRINST usr/include/linux/dvb/osd.h
  CC      /kernel/build64/tools/objtool/arch/x86/decode.o
  HDRINST usr/include/linux/dvb/dmx.h
  HDRINST usr/include/linux/dvb/net.h
  HDRINST usr/include/linux/dvb/frontend.h
  HDRINST usr/include/linux/dvb/ca.h
  HDRINST usr/include/linux/dvb/version.h
  HDRINST usr/include/linux/dvb/video.h
  HDRINST usr/include/linux/dvb/audio.h
  HDRINST usr/include/linux/nfs.h
  HDRINST usr/include/linux/if_link.h
  HDRINST usr/include/linux/wait.h
  HDRINST usr/include/linux/icmpv6.h
  HDRINST usr/include/linux/media.h
  HDRINST usr/include/linux/seg6_local.h
  HDRINST usr/include/linux/openvswitch.h
  HDRINST usr/include/linux/atmsap.h
  HDRINST usr/include/linux/bpfilter.h
  HDRINST usr/include/linux/fpga-dfl.h
  HDRINST usr/include/linux/userio.h
  HDRINST usr/include/linux/signal.h
  HDRINST usr/include/linux/map_to_14segment.h
  HDRINST usr/include/linux/hdreg.h
  HDRINST usr/include/linux/utime.h
  HDRINST usr/include/linux/usbdevice_fs.h
  HDRINST usr/include/linux/timex.h
  HDRINST usr/include/linux/if_fc.h
  HDRINST usr/include/linux/reiserfs_xattr.h
  HDRINST usr/include/linux/hw_breakpoint.h
  HDRINST usr/include/linux/quota.h
  HDRINST usr/include/linux/ioprio.h
  HDRINST usr/include/linux/eventpoll.h
  HDRINST usr/include/linux/atmclip.h
  HDRINST usr/include/linux/can.h
  HDRINST usr/include/linux/if_team.h
  HDRINST usr/include/linux/usbip.h
  HDRINST usr/include/linux/stat.h
  HDRINST usr/include/linux/fou.h
  HDRINST usr/include/linux/hash_info.h
  HDRINST usr/include/linux/ppp-comp.h
  HDRINST usr/include/linux/ip6_tunnel.h
  HDRINST usr/include/linux/tipc_netlink.h
  HDRINST usr/include/linux/in.h
  HDRINST usr/include/linux/wireguard.h
  HDRINST usr/include/linux/btf.h
  HDRINST usr/include/linux/batman_adv.h
  HDRINST usr/include/linux/fcntl.h
  HDRINST usr/include/linux/if_ltalk.h
  HDRINST usr/include/linux/i2c.h
  HDRINST usr/include/linux/atm_idt77105.h
  HDRINST usr/include/linux/kexec.h
  HDRINST usr/include/linux/arm_sdei.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6_tables.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_ah.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_NPT.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_rt.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_opts.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_srh.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_LOG.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_mh.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_HL.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_hl.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_frag.h
  HDRINST usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
  HDRINST usr/include/linux/minix_fs.h
  HDRINST usr/include/linux/aio_abi.h
  HDRINST usr/include/linux/pktcdvd.h
  HDRINST usr/include/linux/libc-compat.h
  HDRINST usr/include/linux/atmlec.h
  HDRINST usr/include/linux/signalfd.h
  HDRINST usr/include/linux/bpf_common.h
  HDRINST usr/include/linux/seg6_iptunnel.h
  HDRINST usr/include/linux/synclink.h
  HDRINST usr/include/linux/mpls_iptunnel.h
  HDRINST usr/include/linux/mctp.h
  HDRINST usr/include/linux/if_xdp.h
  HDRINST usr/include/linux/llc.h
  HDRINST usr/include/linux/atmsvc.h
  HDRINST usr/include/linux/sed-opal.h
  HDRINST usr/include/linux/sock_diag.h
  HDRINST usr/include/linux/time.h
  HDRINST usr/include/linux/securebits.h
  HDRINST usr/include/linux/fsl_hypervisor.h
  HDRINST usr/include/linux/if_hippi.h
  HDRINST usr/include/linux/dlm_netlink.h
  HDRINST usr/include/linux/seccomp.h
  HDRINST usr/include/linux/oom.h
  HDRINST usr/include/linux/filter.h
  HDRINST usr/include/linux/inotify.h
  HDRINST usr/include/linux/rfkill.h
  HDRINST usr/include/linux/reboot.h
  HDRINST usr/include/linux/can/vxcan.h
  HDRINST usr/include/linux/can/j1939.h
  HDRINST usr/include/linux/can/netlink.h
  HDRINST usr/include/linux/can/bcm.h
  HDRINST usr/include/linux/can/raw.h
  HDRINST usr/include/linux/can/gw.h
  HDRINST usr/include/linux/can/error.h
  HDRINST usr/include/linux/can/isotp.h
  HDRINST usr/include/linux/if_eql.h
  HDRINST usr/include/linux/hiddev.h
  HDRINST usr/include/linux/blktrace_api.h
  HDRINST usr/include/linux/ccs.h
  HDRINST usr/include/linux/ioam6.h
  HDRINST usr/include/linux/hsr_netlink.h
  HDRINST usr/include/linux/mmc/ioctl.h
  HDRINST usr/include/linux/bfs_fs.h
  HDRINST usr/include/linux/rio_cm_cdev.h
  HDRINST usr/include/linux/uleds.h
  HDRINST usr/include/linux/mrp_bridge.h
  HDRINST usr/include/linux/adb.h
  HDRINST usr/include/linux/pmu.h
  HDRINST usr/include/linux/udmabuf.h
  HDRINST usr/include/linux/kcmp.h
  HDRINST usr/include/linux/dma-heap.h
  HDRINST usr/include/linux/userfaultfd.h
  HDRINST usr/include/linux/netfilter_arp/arpt_mangle.h
  HDRINST usr/include/linux/netfilter_arp/arp_tables.h
  HDRINST usr/include/linux/tipc.h
  HDRINST usr/include/linux/virtio_ids.h
  HDRINST usr/include/linux/l2tp.h
  HDRINST usr/include/linux/devlink.h
  HDRINST usr/include/linux/virtio_gpio.h
  HDRINST usr/include/linux/dcbnl.h
  HDRINST usr/include/linux/cyclades.h
  HDRINST usr/include/sound/intel/avs/tokens.h
  HDRINST usr/include/sound/sof/fw.h
  HDRINST usr/include/sound/sof/abi.h
  HDRINST usr/include/sound/sof/tokens.h
  HDRINST usr/include/sound/sof/header.h
  HDRINST usr/include/sound/usb_stream.h
  HDRINST usr/include/sound/sfnt_info.h
  HDRINST usr/include/sound/asequencer.h
  HDRINST usr/include/sound/tlv.h
  HDRINST usr/include/sound/asound.h
  HDRINST usr/include/sound/asoc.h
  HDRINST usr/include/sound/sb16_csp.h
  HDRINST usr/include/sound/compress_offload.h
  HDRINST usr/include/sound/hdsp.h
  HDRINST usr/include/sound/emu10k1.h
  HDRINST usr/include/sound/snd_ar_tokens.h
  HDRINST usr/include/sound/snd_sst_tokens.h
  HDRINST usr/include/sound/asound_fm.h
  HDRINST usr/include/sound/hdspm.h
  HDRINST usr/include/sound/compress_params.h
  HDRINST usr/include/sound/firewire.h
  HDRINST usr/include/sound/skl-tplg-interface.h
  HDRINST usr/include/scsi/scsi_bsg_ufs.h
  HDRINST usr/include/scsi/scsi_netlink_fc.h
  HDRINST usr/include/scsi/scsi_bsg_mpi3mr.h
  HDRINST usr/include/scsi/fc/fc_ns.h
  HDRINST usr/include/scsi/fc/fc_fs.h
  HDRINST usr/include/scsi/fc/fc_els.h
  HDRINST usr/include/scsi/fc/fc_gs.h
  HDRINST usr/include/scsi/scsi_bsg_fc.h
  HDRINST usr/include/scsi/cxlflash_ioctl.h
  HDRINST usr/include/scsi/scsi_netlink.h
  HDRINST usr/include/linux/version.h
  HDRINST usr/include/asm/processor-flags.h
  HDRINST usr/include/asm/auxvec.h
  HDRINST usr/include/asm/svm.h
  HDRINST usr/include/asm/bitsperlong.h
  HDRINST usr/include/asm/kvm_perf.h
  HDRINST usr/include/asm/mce.h
  HDRINST usr/include/asm/posix_types.h
  HDRINST usr/include/asm/sigcontext32.h
  HDRINST usr/include/asm/msr.h
  HDRINST usr/include/asm/mman.h
  HDRINST usr/include/asm/shmbuf.h
  HDRINST usr/include/asm/e820.h
  HDRINST usr/include/asm/posix_types_64.h
  HDRINST usr/include/asm/vsyscall.h
  HDRINST usr/include/asm/msgbuf.h
  HDRINST usr/include/asm/swab.h
  HDRINST usr/include/asm/statfs.h
  HDRINST usr/include/asm/posix_types_x32.h
  HDRINST usr/include/asm/ptrace.h
  HDRINST usr/include/asm/unistd.h
  HDRINST usr/include/asm/ist.h
  HDRINST usr/include/asm/prctl.h
  HDRINST usr/include/asm/boot.h
  HDRINST usr/include/asm/sigcontext.h
  HDRINST usr/include/asm/posix_types_32.h
  HDRINST usr/include/asm/kvm_para.h
  HDRINST usr/include/asm/a.out.h
  HDRINST usr/include/asm/mtrr.h
  HDRINST usr/include/asm/amd_hsmp.h
  HDRINST usr/include/asm/ptrace-abi.h
  HDRINST usr/include/asm/hwcap2.h
  HDRINST usr/include/asm/vm86.h
  HDRINST usr/include/asm/vmx.h
  HDRINST usr/include/asm/ldt.h
  HDRINST usr/include/asm/perf_regs.h
  HDRINST usr/include/asm/kvm.h
  HDRINST usr/include/asm/debugreg.h
  HDRINST usr/include/asm/signal.h
  HDRINST usr/include/asm/bootparam.h
  HDRINST usr/include/asm/siginfo.h
  HDRINST usr/include/asm/hw_breakpoint.h
  HDRINST usr/include/asm/stat.h
  HDRINST usr/include/asm/setup.h
  HDRINST usr/include/asm/sembuf.h
  HDRINST usr/include/asm/sgx.h
  HDRINST usr/include/asm/ucontext.h
  HDRINST usr/include/asm/byteorder.h
  HDRINST usr/include/asm/unistd_64.h
  HDRINST usr/include/asm/ioctls.h
  HDRINST usr/include/asm/bpf_perf_event.h
  HDRINST usr/include/asm/types.h
  HDRINST usr/include/asm/poll.h
  HDRINST usr/include/asm/resource.h
  HDRINST usr/include/asm/param.h
  HDRINST usr/include/asm/sockios.h
  HDRINST usr/include/asm/errno.h
  HDRINST usr/include/asm/unistd_x32.h
  HDRINST usr/include/asm/termios.h
  HDRINST usr/include/asm/ioctl.h
  HDRINST usr/include/asm/socket.h
  HDRINST usr/include/asm/unistd_32.h
  HDRINST usr/include/asm/termbits.h
  HDRINST usr/include/asm/fcntl.h
  HDRINST usr/include/asm/ipcbuf.h
  HOSTLD  scripts/mod/modpost
  CC      kernel/bounds.s
  CHKSHA1 ../include/linux/atomic/atomic-arch-fallback.h
  CHKSHA1 ../include/linux/atomic/atomic-instrumented.h
  CHKSHA1 ../include/linux/atomic/atomic-long.h
  UPD     include/generated/timeconst.h
  LD      /kernel/build64/tools/objtool/arch/x86/objtool-in.o
  UPD     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  UPD     include/generated/asm-offsets.h
  CALL    ../scripts/checksyscalls.sh
  LD      /kernel/build64/tools/objtool/objtool-in.o
  LINK    /kernel/build64/tools/objtool/objtool
  LDS     scripts/module.lds
  AR      certs/built-in.a
  HOSTCC  usr/gen_init_cpio
  CC      io_uring/io_uring.o
  CC      security/commoncap.o
  AS      arch/x86/lib/clear_page_64.o
  CC      io_uring/xattr.o
  CC      security/min_addr.o
  CC      ipc/compat.o
  CC      mm/filemap.o
  CC      init/main.o
  CC      io_uring/nop.o
  CC      arch/x86/lib/cmdline.o
  CC      security/inode.o
  CC      block/bdev.o
  AR      arch/x86/video/built-in.a
  CC      arch/x86/power/cpu.o
  CC      arch/x86/pci/i386.o
  UPD     init/utsversion-tmp.h
  CC      fs/nfs_common/grace.o
  AR      virt/lib/built-in.a
  CC      security/keys/gc.o
  AR      fs/quota/built-in.a
  CC      net/802/p8022.o
  AR      arch/x86/ia32/built-in.a
  CC [M]  arch/x86/video/fbdev.o
  CC      arch/x86/realmode/init.o
  CC      net/core/sock.o
  CC      net/sched/sch_generic.o
  AR      arch/x86/net/built-in.a
  CC      fs/iomap/trace.o
  CC      fs/kernfs/mount.o
  CC [M]  virt/lib/irqbypass.o
  CC      net/ethernet/eth.o
  AS      arch/x86/crypto/aesni-intel_asm.o
  CC      fs/iomap/iter.o
  CC      block/partitions/core.o
  AS      arch/x86/lib/cmpxchg16b_emu.o
  CC      net/netlink/af_netlink.o
  CC      net/llc/llc_core.o
  CC      fs/sysfs/file.o
  CC      arch/x86/mm/pat/set_memory.o
  AR      drivers/irqchip/built-in.a
  CC      net/llc/llc_input.o
  CC      arch/x86/events/amd/core.o
  AR      arch/x86/platform/atom/built-in.a
  CC      fs/notify/dnotify/dnotify.o
  CC      sound/core/seq/seq.o
  CC      security/device_cgroup.o
  CC      arch/x86/kernel/fpu/init.o
  AR      arch/x86/platform/ce4100/built-in.a
  CC      arch/x86/entry/vdso/vma.o
  AR      drivers/bus/mhi/built-in.a
  CC      arch/x86/entry/vdso/extable.o
  CC      lib/kunit/test.o
  CC      arch/x86/platform/efi/memmap.o
  AR      drivers/bus/built-in.a
  CC      kernel/sched/core.o
  CC      arch/x86/kernel/cpu/mce/core.o
  CC      mm/kasan/common.o
  AR      drivers/phy/allwinner/built-in.a
  CC      arch/x86/crypto/aesni-intel_glue.o
  AR      drivers/phy/amlogic/built-in.a
  CC      crypto/api.o
  AR      drivers/phy/broadcom/built-in.a
  CC      fs/proc/task_mmu.o
  AR      drivers/phy/cadence/built-in.a
  CC      arch/x86/lib/copy_mc.o
  AR      drivers/phy/freescale/built-in.a
  AR      drivers/phy/hisilicon/built-in.a
  AR      drivers/phy/ingenic/built-in.a
  AR      drivers/phy/intel/built-in.a
  AR      drivers/phy/lantiq/built-in.a
  AR      drivers/phy/marvell/built-in.a
  AR      drivers/phy/mediatek/built-in.a
  AR      drivers/phy/microchip/built-in.a
  AR      drivers/phy/motorola/built-in.a
  AR      drivers/phy/mscc/built-in.a
  AR      drivers/phy/qualcomm/built-in.a
  AR      drivers/phy/ralink/built-in.a
  AR      drivers/phy/renesas/built-in.a
  GEN     usr/initramfs_data.cpio
  AR      drivers/phy/rockchip/built-in.a
  COPY    usr/initramfs_inc_data
  AR      drivers/phy/samsung/built-in.a
  AS      usr/initramfs_data.o
  AR      drivers/phy/socionext/built-in.a
  AR      drivers/phy/st/built-in.a
  AR      usr/built-in.a
  AR      drivers/phy/sunplus/built-in.a
  AR      drivers/phy/tegra/built-in.a
  CC      arch/x86/entry/vdso/vdso32-setup.o
  AR      drivers/phy/ti/built-in.a
  AR      drivers/phy/xilinx/built-in.a
  CC      drivers/phy/phy-core.o
  AS      arch/x86/lib/copy_mc_64.o
  AS      arch/x86/lib/copy_page_64.o
  AR      virt/built-in.a
  AS      arch/x86/lib/copy_user_64.o
  CC      arch/x86/lib/cpu.o
  CC      mm/kasan/report.o
  CC      crypto/cipher.o
  CC      sound/core/seq/seq_lock.o
  CC      fs/notify/inotify/inotify_fsnotify.o
  AS      arch/x86/realmode/rm/header.o
  CC      fs/notify/inotify/inotify_user.o
  AS      arch/x86/realmode/rm/trampoline_64.o
  CC      arch/x86/kernel/fpu/bugs.o
  CC      security/keys/key.o
  CC      ipc/util.o
  AS      arch/x86/realmode/rm/stack.o
  AR      fs/notify/dnotify/built-in.a
  CC      mm/kasan/init.o
  CC      io_uring/fs.o
  CC      fs/kernfs/inode.o
  AS      arch/x86/realmode/rm/reboot.o
  CC      fs/configfs/inode.o
  CC      arch/x86/kernel/acpi/boot.o
  AS      arch/x86/realmode/rm/wakeup_asm.o
  AR      fs/nfs_common/built-in.a
  CC      fs/configfs/file.o
  CC      fs/configfs/dir.o
  CC      net/802/psnap.o
  CC      arch/x86/realmode/rm/wakemain.o
  CC      lib/kunit/resource.o
  CC      arch/x86/realmode/rm/video-mode.o
  CC      arch/x86/pci/init.o
  CC      arch/x86/platform/efi/quirks.o
  CC      fs/sysfs/dir.o
  CC      arch/x86/kernel/fpu/core.o
  CC      arch/x86/kernel/fpu/regset.o
  CC      net/llc/llc_output.o
  CC      arch/x86/kernel/apic/apic.o
  CC      init/do_mounts.o
  CC      arch/x86/power/hibernate_64.o
  LDS     arch/x86/entry/vdso/vdso.lds
  AS      arch/x86/realmode/rm/copy.o
  CC      block/partitions/ldm.o
  AS      arch/x86/entry/vdso/vdso-note.o
  CC      arch/x86/lib/delay.o
  CC      block/partitions/msdos.o
  AS      arch/x86/realmode/rm/bioscall.o
  CC      arch/x86/entry/vdso/vclock_gettime.o
  CC      fs/iomap/buffered-io.o
  CC      sound/core/seq/seq_clientmgr.o
  CC      arch/x86/realmode/rm/regs.o
  CC      crypto/compress.o
  CC      arch/x86/realmode/rm/video-vga.o
  CC      block/partitions/efi.o
  AS      arch/x86/crypto/aesni-intel_avx-x86_64.o
  CC      arch/x86/events/amd/lbr.o
  CC      arch/x86/realmode/rm/video-vesa.o
  CC      arch/x86/kernel/fpu/signal.o
  CC      mm/mempool.o
  CC      arch/x86/realmode/rm/video-bios.o
  AS      arch/x86/lib/getuser.o
  CC      mm/oom_kill.o
  CC      lib/kunit/static_stub.o
  AR      net/ethernet/built-in.a
  GEN     arch/x86/lib/inat-tables.c
  AR      net/bpf/built-in.a
  AS      arch/x86/crypto/aes_ctrby8_avx-x86_64.o
  PASYMS  arch/x86/realmode/rm/pasyms.h
  CC      arch/x86/lib/insn-eval.o
  LDS     arch/x86/realmode/rm/realmode.lds
  CC      arch/x86/kernel/acpi/sleep.o
  LD      arch/x86/realmode/rm/realmode.elf
  RELOCS  arch/x86/realmode/rm/realmode.relocs
  CC      fs/sysfs/symlink.o
  OBJCOPY arch/x86/realmode/rm/realmode.bin
  AS      arch/x86/realmode/rmpiggy.o
  AR      drivers/phy/built-in.a
  AR      arch/x86/realmode/built-in.a
  CC      fs/notify/fanotify/fanotify.o
  CC      fs/notify/fsnotify.o
  AR      drivers/pinctrl/actions/built-in.a
  AS [M]  arch/x86/crypto/ghash-clmulni-intel_asm.o
  AR      drivers/pinctrl/bcm/built-in.a
  CC      arch/x86/pci/mmconfig_64.o
  CC [M]  arch/x86/crypto/ghash-clmulni-intel_glue.o
  AR      drivers/pinctrl/cirrus/built-in.a
  CC      crypto/algapi.o
  CC      crypto/scatterwalk.o
  AR      drivers/pinctrl/freescale/built-in.a
  AR      drivers/pinctrl/mediatek/built-in.a
  CC      drivers/pinctrl/intel/pinctrl-baytrail.o
  CC      arch/x86/entry/vdso/vgetcpu.o
  AR      drivers/pinctrl/mvebu/built-in.a
  AS [M]  arch/x86/crypto/crc32-pclmul_asm.o
  CC      fs/kernfs/dir.o
  CC      drivers/pinctrl/intel/pinctrl-intel.o
  CC      arch/x86/pci/direct.o
  CC      mm/kasan/generic.o
  CC [M]  arch/x86/crypto/crc32-pclmul_glue.o
  HOSTCC  arch/x86/entry/vdso/vdso2c
  AS      arch/x86/power/hibernate_asm_64.o
  LDS     arch/x86/entry/vdso/vdso32/vdso32.lds
  CC      init/do_mounts_initrd.o
  CC      arch/x86/power/hibernate.o
  AR      net/llc/built-in.a
  CC      security/keys/keyring.o
  CC      arch/x86/kernel/fpu/xstate.o
  AR      fs/notify/inotify/built-in.a
  CC      fs/configfs/symlink.o
  CC      arch/x86/mm/pat/memtype.o
  CC      net/802/stp.o
  CC      arch/x86/platform/efi/efi.o
  CC      lib/kunit/string-stream.o
  CC      mm/kasan/report_generic.o
  CC      arch/x86/kernel/cpu/mce/severity.o
  CC      ipc/msgutil.o
  CC      ipc/msg.o
  CC      arch/x86/events/amd/ibs.o
  CC      fs/proc/inode.o
  AS      arch/x86/entry/vdso/vdso32/note.o
  CC      fs/sysfs/mount.o
  AS      arch/x86/entry/vdso/vdso32/system_call.o
  CC      fs/configfs/mount.o
  CC      arch/x86/pci/mmconfig-shared.o
  CC      arch/x86/events/amd/uncore.o
  AS      arch/x86/entry/vdso/vdso32/sigreturn.o
  CC      arch/x86/entry/vdso/vdso32/vclock_gettime.o
  AS [M]  arch/x86/crypto/crct10dif-pcl-asm_64.o
  CC      arch/x86/entry/vdso/vdso32/vgetcpu.o
  AS      arch/x86/kernel/acpi/wakeup_64.o
  CC      arch/x86/pci/fixup.o
  AR      block/partitions/built-in.a
  CC      fs/configfs/item.o
  CC [M]  arch/x86/crypto/crct10dif-pclmul_glue.o
  CC      block/fops.o
  CC      arch/x86/kernel/acpi/apei.o
  VDSO    arch/x86/entry/vdso/vdso64.so.dbg
  CC      arch/x86/pci/acpi.o
  CC      block/bio.o
  CC      net/sched/sch_mq.o
  CC      fs/proc/root.o
  CC      arch/x86/pci/legacy.o
  CC      lib/kunit/assert.o
  CC      mm/fadvise.o
  CC      arch/x86/lib/insn.o
  OBJCOPY arch/x86/entry/vdso/vdso64.so
  CC      arch/x86/kernel/cpu/mce/genpool.o
  CC      arch/x86/pci/irq.o
  CC      init/initramfs.o
  AR      arch/x86/power/built-in.a
  CC      mm/maccess.o
  CC      sound/core/seq/seq_memory.o
  CC      mm/page-writeback.o
  AR      net/802/built-in.a
  CC      mm/folio-compat.o
  VDSO2C  arch/x86/entry/vdso/vdso-image-64.c
  CC      fs/notify/fanotify/fanotify_user.o
  CC      init/calibrate.o
  CC      mm/kasan/shadow.o
  LD [M]  arch/x86/crypto/ghash-clmulni-intel.o
  LD [M]  arch/x86/crypto/crc32-pclmul.o
  CC      arch/x86/mm/pat/memtype_interval.o
  CC      lib/kunit/try-catch.o
  LD [M]  arch/x86/crypto/crct10dif-pclmul.o
  AS      arch/x86/lib/memcpy_64.o
  AR      arch/x86/crypto/built-in.a
  CC      arch/x86/mm/init.o
  AR      fs/configfs/built-in.a
  CC      arch/x86/entry/vdso/vdso-image-64.o
  CC      arch/x86/kernel/acpi/cppc.o
  CC      fs/iomap/direct-io.o
  CC      arch/x86/platform/efi/efi_64.o
  AS      arch/x86/lib/memmove_64.o
  CC      block/elevator.o
  CC      fs/sysfs/group.o
  CC      crypto/proc.o
  AS      arch/x86/lib/memset_64.o
  CC      fs/kernfs/file.o
  CC      arch/x86/kernel/apic/apic_common.o
  CC      arch/x86/kernel/apic/apic_noop.o
  CC      arch/x86/lib/misc.o
  CC      mm/readahead.o
  CC      arch/x86/lib/pc-conf-reg.o
  CC      mm/swap.o
  CC      fs/proc/base.o
  CC      arch/x86/kernel/acpi/cstate.o
  CC [M]  drivers/pinctrl/intel/pinctrl-cherryview.o
  VDSO    arch/x86/entry/vdso/vdso32.so.dbg
  CC [M]  drivers/pinctrl/intel/pinctrl-broxton.o
  OBJCOPY arch/x86/entry/vdso/vdso32.so
  CC      security/keys/keyctl.o
  CC      lib/kunit/executor.o
  CC      arch/x86/kernel/cpu/mce/intel.o
  VDSO2C  arch/x86/entry/vdso/vdso-image-32.c
  CC      arch/x86/entry/vdso/vdso-image-32.o
  CC      net/netlink/genetlink.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/kvm_main.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/eventfd.o
  AR      sound/i2c/other/built-in.a
  AR      sound/i2c/built-in.a
  CC      lib/math/div64.o
  AS      arch/x86/lib/putuser.o
  CC      lib/math/gcd.o
  AR      arch/x86/kernel/fpu/built-in.a
  CC      lib/math/lcm.o
  CC      net/core/request_sock.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/binary_stats.o
  CC      net/core/skbuff.o
  AS      arch/x86/lib/retpoline.o
  CC      arch/x86/kernel/apic/ipi.o
  AR      arch/x86/events/amd/built-in.a
  CC      arch/x86/kernel/apic/vector.o
  CC      arch/x86/kernel/apic/hw_nmi.o
  CC      arch/x86/events/intel/core.o
  CC      arch/x86/lib/usercopy.o
  CC      lib/math/int_pow.o
  CC      arch/x86/events/intel/bts.o
  CC      net/sched/sch_frag.o
  AR      arch/x86/entry/vdso/built-in.a
  CC      arch/x86/entry/vsyscall/vsyscall_64.o
  CC      lib/math/int_sqrt.o
  CC      arch/x86/kernel/kprobes/core.o
  CC      mm/kasan/quarantine.o
  CC      arch/x86/pci/common.o
  AS      arch/x86/entry/vsyscall/vsyscall_emu_64.o
  CC      ipc/sem.o
  AR      arch/x86/mm/pat/built-in.a
  CC      arch/x86/kernel/apic/io_apic.o
  CC      lib/math/reciprocal_div.o
  CC      ipc/shm.o
  CC      crypto/aead.o
  CC      sound/core/seq/seq_queue.o
  CC      init/init_task.o
  CC      lib/math/rational.o
  LDS     arch/x86/kernel/vmlinux.lds
  AR      fs/sysfs/built-in.a
  CC      drivers/gpio/gpiolib.o
  CC      fs/kernfs/symlink.o
  CC      lib/kunit/hooks.o
  CC      drivers/gpio/gpiolib-devres.o
  CC      io_uring/splice.o
  AR      arch/x86/kernel/acpi/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/mtrr.o
  AS      arch/x86/platform/efi/efi_stub_64.o
  CC      arch/x86/kernel/cpu/mtrr/if.o
  AR      arch/x86/platform/efi/built-in.a
  CC      arch/x86/kernel/cpu/mce/threshold.o
  CC      arch/x86/kernel/cpu/mce/apei.o
  AR      arch/x86/platform/geode/built-in.a
  CC      arch/x86/kernel/cpu/cacheinfo.o
  AR      arch/x86/platform/iris/built-in.a
  CC      arch/x86/platform/intel/iosf_mbi.o
  CC      arch/x86/mm/init_64.o
  CC      arch/x86/lib/usercopy_64.o
  AR      lib/kunit/built-in.a
  CC      net/netlink/policy.o
  CC      arch/x86/kernel/apic/msi.o
  CC      fs/iomap/fiemap.o
  CC [M]  lib/math/prime_numbers.o
  CC      crypto/geniv.o
  CC      crypto/skcipher.o
  AS      arch/x86/kernel/head_64.o
  CC      block/blk-core.o
  CC      fs/proc/generic.o
  CC      arch/x86/lib/msr-smp.o
  CC      init/version.o
  AR      mm/kasan/built-in.a
  CC      block/blk-sysfs.o
  AR      fs/kernfs/built-in.a
  AR      arch/x86/entry/vsyscall/built-in.a
  AS      arch/x86/entry/entry.o
  CC      arch/x86/events/zhaoxin/core.o
  CC      fs/devpts/inode.o
  AR      fs/notify/fanotify/built-in.a
  CC      arch/x86/pci/early.o
  CC      fs/notify/notification.o
  CC      fs/ext4/balloc.o
  CC      fs/jbd2/transaction.o
  AS      arch/x86/entry/entry_64.o
  CC      crypto/seqiv.o
  CC      sound/core/seq/seq_fifo.o
  CC [M]  drivers/pinctrl/intel/pinctrl-geminilake.o
  CC      arch/x86/entry/syscall_64.o
  CC      arch/x86/kernel/kprobes/opt.o
  CC      security/keys/permission.o
  CC      drivers/gpio/gpiolib-legacy.o
  AR      init/built-in.a
  CC      block/blk-flush.o
  CC      net/core/datagram.o
  CC [M]  drivers/pinctrl/intel/pinctrl-sunrisepoint.o
  CC      arch/x86/lib/cache-smp.o
  CC      security/keys/process_keys.o
  CC      net/sched/sch_api.o
  CC      security/keys/request_key.o
  CC      arch/x86/kernel/cpu/mtrr/generic.o
  AR      lib/math/built-in.a
  AR      arch/x86/platform/intel/built-in.a
  AR      arch/x86/platform/intel-mid/built-in.a
  CC      lib/crypto/memneq.o
  AR      arch/x86/platform/intel-quark/built-in.a
  AR      arch/x86/platform/olpc/built-in.a
  CC      fs/iomap/seek.o
  AR      arch/x86/platform/scx200/built-in.a
  AR      arch/x86/kernel/cpu/mce/built-in.a
  AR      arch/x86/platform/ts5500/built-in.a
  CC      lib/crypto/utils.o
  AR      arch/x86/platform/uv/built-in.a
  CC      arch/x86/lib/msr.o
  AR      arch/x86/platform/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/cleanup.o
  CC      fs/iomap/swapfile.o
  CC      fs/jbd2/commit.o
  CC      kernel/locking/mutex.o
  CC      fs/jbd2/recovery.o
  CC      fs/notify/group.o
  CC      arch/x86/pci/bus_numa.o
  CC      kernel/locking/semaphore.o
  CC      mm/truncate.o
  CC      net/netlink/diag.o
  CC      fs/notify/mark.o
  CC      arch/x86/kernel/cpu/scattered.o
  CC      sound/core/seq/seq_prioq.o
  CC      drivers/gpio/gpiolib-cdev.o
  CC      fs/ext4/bitmap.o
  CC      arch/x86/kernel/cpu/topology.o
  AR      drivers/pinctrl/intel/built-in.a
  CC      arch/x86/entry/common.o
  AS      arch/x86/entry/thunk_64.o
  AR      drivers/pinctrl/nomadik/built-in.a
  AR      fs/devpts/built-in.a
  AR      drivers/pinctrl/nuvoton/built-in.a
  CC      arch/x86/kernel/cpu/common.o
  CC      mm/vmscan.o
  AR      drivers/pinctrl/sprd/built-in.a
  CC      fs/notify/fdinfo.o
  AR      drivers/pinctrl/sunplus/built-in.a
  CC      lib/zlib_inflate/inffast.o
  CC      lib/crypto/chacha.o
  AR      arch/x86/events/zhaoxin/built-in.a
  CC      arch/x86/mm/fault.o
  AR      drivers/pinctrl/ti/built-in.a
  CC      drivers/pinctrl/core.o
  CC      io_uring/sync.o
  CC      arch/x86/kernel/kprobes/ftrace.o
  CC      lib/crypto/aes.o
  CC      block/blk-settings.o
  AS      arch/x86/lib/msr-reg.o
  CC      arch/x86/kernel/apic/x2apic_phys.o
  CC      crypto/echainiv.o
  CC      arch/x86/kernel/apic/x2apic_cluster.o
  CC      lib/zlib_inflate/inflate.o
  CC      arch/x86/events/core.o
  CC      arch/x86/lib/msr-reg-export.o
  CC      lib/crypto/gf128mul.o
  AR      fs/iomap/built-in.a
  CC [M]  arch/x86/kvm/../../../virt/kvm/vfio.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/coalesced_mmio.o
  CC      fs/proc/array.o
  CC      sound/core/seq/seq_timer.o
  CC      crypto/ahash.o
  CC      lib/crypto/blake2s.o
  AS      arch/x86/lib/hweight.o
  CC      security/keys/request_key_auth.o
  CC      arch/x86/lib/iomem.o
  CC      arch/x86/pci/amd_bus.o
  CC      kernel/locking/rwsem.o
  CC      arch/x86/kernel/cpu/rdrand.o
  CC      fs/proc/fd.o
  AR      arch/x86/kernel/cpu/mtrr/built-in.a
  CC      kernel/sched/fair.o
  CC      kernel/power/qos.o
  CC      ipc/syscall.o
  CC      fs/ext4/block_validity.o
  AS      arch/x86/entry/entry_64_compat.o
  CC      kernel/power/main.o
  CC      arch/x86/entry/syscall_32.o
  AR      arch/x86/kernel/kprobes/built-in.a
  CC      crypto/shash.o
  CC      kernel/printk/printk.o
  CC      crypto/akcipher.o
  CC      io_uring/advise.o
  CC      ipc/ipc_sysctl.o
  CC      arch/x86/mm/ioremap.o
  CC      kernel/locking/percpu-rwsem.o
  CC      lib/zlib_deflate/deflate.o
  AR      net/netlink/built-in.a
  CC      lib/zlib_deflate/deftree.o
  AS      arch/x86/lib/iomap_copy_64.o
  CC      arch/x86/kernel/apic/apic_flat_64.o
  CC      arch/x86/lib/inat.o
  AR      fs/notify/built-in.a
  CC      ipc/mqueue.o
  CC      lib/zlib_deflate/deflate_syms.o
  CC      ipc/namespace.o
  AR      arch/x86/lib/built-in.a
  CC      lib/crypto/blake2s-generic.o
  CC      lib/zlib_inflate/infutil.o
  CC      arch/x86/kernel/head64.o
  AR      arch/x86/lib/lib.a
  CC      io_uring/filetable.o
  CC      security/keys/user_defined.o
  CC      arch/x86/kernel/cpu/match.o
  CC      sound/core/seq/seq_system.o
  CC      security/keys/compat.o
  CC      arch/x86/events/intel/ds.o
  CC      arch/x86/events/intel/knc.o
  CC      fs/jbd2/checkpoint.o
  AR      arch/x86/pci/built-in.a
  CC      fs/jbd2/revoke.o
  CC      sound/core/seq/seq_ports.o
  CC      block/blk-ioc.o
  CC      kernel/locking/irqflag-debug.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/async_pf.o
  CC      lib/zlib_inflate/inftrees.o
  CC      arch/x86/kernel/cpu/bugs.o
  CC      fs/proc/proc_tty.o
  CC      crypto/kpp.o
  CC      drivers/pinctrl/pinctrl-utils.o
  AR      arch/x86/entry/built-in.a
  CC      kernel/locking/mutex-debug.o
  CC      fs/proc/cmdline.o
  CC      net/core/stream.o
  CC      arch/x86/kernel/apic/probe_64.o
  CC      crypto/acompress.o
  CC      arch/x86/kernel/cpu/aperfmperf.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/irqchip.o
  CC      crypto/scompress.o
  CC      lib/zlib_inflate/inflate_syms.o
  CC      arch/x86/events/probe.o
  CC      arch/x86/events/utils.o
  CC      fs/ext4/dir.o
  CC      arch/x86/events/rapl.o
  AR      sound/drivers/opl3/built-in.a
  CC      net/sched/sch_blackhole.o
  CC      drivers/gpio/gpiolib-sysfs.o
  AR      sound/drivers/opl4/built-in.a
  AR      sound/drivers/mpu401/built-in.a
  CC      net/sched/sch_fifo.o
  AR      sound/drivers/vx/built-in.a
  CC      kernel/power/console.o
  AR      sound/drivers/pcsp/built-in.a
  AR      sound/drivers/built-in.a
  CC      kernel/power/process.o
  CC      sound/core/seq/seq_info.o
  CC      arch/x86/kernel/cpu/cpuid-deps.o
  CC      crypto/algboss.o
  CC      arch/x86/mm/extable.o
  CC      crypto/testmgr.o
  AR      arch/x86/kernel/apic/built-in.a
  CC      arch/x86/events/msr.o
  CC      lib/crypto/blake2s-selftest.o
  CC      kernel/sched/build_policy.o
  AR      lib/zlib_deflate/built-in.a
  CC      arch/x86/kernel/cpu/umwait.o
  CC      security/keys/proc.o
  CC      drivers/pinctrl/pinmux.o
  AR      lib/zlib_inflate/built-in.a
  AR      sound/isa/ad1816a/built-in.a
  CC      fs/ramfs/inode.o
  CC      fs/hugetlbfs/inode.o
  AR      sound/isa/ad1848/built-in.a
  CC      fs/ramfs/file-mmu.o
  AR      sound/isa/cs423x/built-in.a
  CC      arch/x86/events/intel/lbr.o
  AR      sound/isa/es1688/built-in.a
  AR      sound/isa/galaxy/built-in.a
  AR      sound/isa/gus/built-in.a
  CC      kernel/locking/lockdep.o
  CC      fs/proc/consoles.o
  AR      sound/isa/msnd/built-in.a
  AR      sound/isa/opti9xx/built-in.a
  AR      sound/isa/sb/built-in.a
  CC      lib/crypto/des.o
  AR      sound/isa/wavefront/built-in.a
  CC      fs/proc/cpuinfo.o
  AR      sound/isa/wss/built-in.a
  AR      sound/isa/built-in.a
  CC      crypto/cmac.o
  CC      crypto/hmac.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/dirty_ring.o
  CC      fs/proc/devices.o
  CC      net/core/scm.o
  CC      io_uring/openclose.o
  CC      kernel/locking/lockdep_proc.o
  CC      block/blk-map.o
  CC      fs/jbd2/journal.o
  CC      crypto/vmac.o
  AR      sound/core/seq/built-in.a
  CC      sound/core/sound.o
  CC      net/core/gen_stats.o
  CC      io_uring/uring_cmd.o
  CC      drivers/pinctrl/pinconf.o
  CC      arch/x86/events/intel/p4.o
  CC      drivers/gpio/gpiolib-acpi.o
  CC      lib/lzo/lzo1x_compress.o
  CC      lib/lz4/lz4_compress.o
  CC      arch/x86/events/intel/p6.o
  CC      lib/zstd/zstd_compress_module.o
  CC      arch/x86/events/intel/pt.o
  CC      lib/xz/xz_dec_syms.o
  CC      arch/x86/mm/mmap.o
  CC      lib/xz/xz_dec_stream.o
  CC      security/keys/sysctl.o
  CC      lib/lzo/lzo1x_decompress_safe.o
  CC      arch/x86/mm/pgtable.o
  CC      lib/xz/xz_dec_lzma2.o
  CC      fs/proc/interrupts.o
  AR      net/sched/built-in.a
  CC      fs/ext4/ext4_jbd2.o
  CC      fs/proc/loadavg.o
  AR      fs/ramfs/built-in.a
  CC      fs/proc/meminfo.o
  CC      lib/xz/xz_dec_bcj.o
  CC      kernel/power/suspend.o
  CC      drivers/gpio/gpiolib-swnode.o
  CC      arch/x86/events/intel/uncore.o
  CC      ipc/mq_sysctl.o
  CC      crypto/xcbc.o
  CC      arch/x86/kernel/cpu/proc.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/pfncache.o
  CC      kernel/printk/printk_safe.o
  CC      sound/core/init.o
  CC      lib/zstd/compress/fse_compress.o
  CC      arch/x86/events/intel/uncore_nhmex.o
  CC      kernel/locking/spinlock.o
  CC      kernel/sched/build_utility.o
  CC      drivers/pinctrl/pinconf-generic.o
  CC      fs/ext4/extents.o
  CC      lib/raid6/algos.o
  AR      lib/lzo/built-in.a
  CC [M]  arch/x86/kvm/x86.o
  AR      security/keys/built-in.a
  AR      security/built-in.a
  CC      block/blk-merge.o
  CC      lib/crypto/sha1.o
  CC      kernel/power/hibernate.o
  CC      lib/crypto/sha256.o
  CC      arch/x86/events/intel/uncore_snb.o
  CC      lib/raid6/recov.o
  CC      sound/core/memory.o
  CC      sound/core/control.o
  AR      ipc/built-in.a
  CC      kernel/power/snapshot.o
  CC      arch/x86/events/intel/uncore_snbep.o
  CC      crypto/crypto_null.o
  HOSTCC  lib/raid6/mktables
  UNROLL  lib/raid6/int1.c
  CC      sound/core/misc.o
  AR      drivers/pwm/built-in.a
  CC      drivers/pci/msi/pcidev_msi.o
  CC      drivers/video/console/dummycon.o
  CC      net/core/gen_estimator.o
  AR      sound/pci/ac97/built-in.a
  AR      sound/pci/ali5451/built-in.a
  CC      io_uring/epoll.o
  AR      sound/pci/asihpi/built-in.a
  AR      fs/hugetlbfs/built-in.a
  CC      lib/zstd/compress/hist.o
  AR      sound/pci/au88x0/built-in.a
  CC      drivers/video/logo/logo.o
  CC      drivers/video/backlight/backlight.o
  AR      lib/xz/built-in.a
  CC      fs/proc/stat.o
  AR      sound/pci/aw2/built-in.a
  AR      sound/pci/ctxfi/built-in.a
  CC      drivers/video/fbdev/core/fb_notify.o
  CC      drivers/video/aperture.o
  CC      drivers/video/cmdline.o
  AR      sound/pci/ca0106/built-in.a
  AR      sound/pci/cs46xx/built-in.a
  CC      drivers/video/nomodeset.o
  AR      sound/pci/cs5535audio/built-in.a
  AR      sound/pci/lola/built-in.a
  CC      kernel/printk/printk_ringbuffer.o
  AR      sound/pci/lx6464es/built-in.a
  AR      sound/pci/echoaudio/built-in.a
  MKCAP   arch/x86/kernel/cpu/capflags.c
  CC      lib/zstd/compress/huf_compress.o
  AR      sound/pci/emu10k1/built-in.a
  AR      sound/pci/hda/built-in.a
  AR      drivers/gpio/built-in.a
  CC [M]  sound/pci/hda/hda_bind.o
  AR      sound/ppc/built-in.a
  CC      arch/x86/mm/physaddr.o
  CC      arch/x86/kernel/ebda.o
  CC      kernel/printk/sysctl.o
  AR      drivers/pinctrl/built-in.a
  CC      drivers/video/hdmi.o
  CC [M]  sound/pci/hda/hda_codec.o
  CC [M]  lib/crypto/arc4.o
  CC      kernel/power/swap.o
  HOSTCC  drivers/video/logo/pnmtologo
  UNROLL  lib/raid6/int2.c
  UNROLL  lib/raid6/int4.c
  UNROLL  lib/raid6/int8.c
  UNROLL  lib/raid6/int16.c
  UNROLL  lib/raid6/int32.c
  CC [M]  arch/x86/kvm/emulate.o
  CC      lib/raid6/recov_ssse3.o
  CC [M]  arch/x86/kvm/i8259.o
  CC      lib/raid6/recov_avx2.o
  CC      net/ethtool/ioctl.o
  CC      net/ethtool/common.o
  CC      net/ethtool/netlink.o
  CC      kernel/power/user.o
  CC      drivers/video/console/vgacon.o
  CC      kernel/power/poweroff.o
  CC      drivers/pci/msi/api.o
  CC      drivers/pci/msi/msi.o
  LOGO    drivers/video/logo/logo_linux_clut224.c
  CC      drivers/video/logo/logo_linux_clut224.o
  CC      fs/proc/uptime.o
  CC      arch/x86/mm/tlb.o
  CC      io_uring/statx.o
  CC      io_uring/net.o
  AR      drivers/video/logo/built-in.a
  CC      lib/lz4/lz4hc_compress.o
  CC      block/blk-timeout.o
  CC      crypto/md5.o
  CC      arch/x86/kernel/platform-quirks.o
  CC      mm/shmem.o
  CC [M]  drivers/video/fbdev/core/fbmem.o
  AR      lib/crypto/built-in.a
  AR      kernel/printk/built-in.a
  LD [M]  lib/crypto/libarc4.o
  CC      mm/util.o
  CC [M]  drivers/video/fbdev/core/fbmon.o
  CC      mm/mmzone.o
  AR      drivers/video/fbdev/omap/built-in.a
  CC      fs/proc/util.o
  CC      arch/x86/mm/cpu_entry_area.o
  CC      arch/x86/events/intel/uncore_discovery.o
  CC      lib/lz4/lz4_decompress.o
  AR      drivers/video/backlight/built-in.a
  CC      net/core/net_namespace.o
  CC      net/core/secure_seq.o
  CC      arch/x86/mm/maccess.o
  AR      drivers/video/fbdev/omap2/omapfb/dss/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/displays/built-in.a
  AR      drivers/video/fbdev/omap2/omapfb/built-in.a
  AR      drivers/video/fbdev/omap2/built-in.a
  CC [M]  drivers/video/fbdev/uvesafb.o
  AR      sound/arm/built-in.a
  CC      arch/x86/events/intel/cstate.o
  CC      lib/fonts/fonts.o
  CC      lib/fonts/font_8x8.o
  CC      lib/raid6/mmx.o
  CC      lib/raid6/sse1.o
  CC      lib/argv_split.o
  CC      lib/raid6/sse2.o
  CC      crypto/sha1_generic.o
  CC      lib/fonts/font_8x16.o
  CC      arch/x86/kernel/cpu/powerflags.o
  CC [M]  net/netfilter/ipvs/ip_vs_conn.o
  CC      arch/x86/kernel/cpu/feat_ctl.o
  CC [M]  sound/pci/hda/hda_jack.o
  CC [M]  net/netfilter/ipvs/ip_vs_core.o
  CC      fs/proc/version.o
  CC [M]  drivers/video/fbdev/core/fbcmap.o
  CC      block/blk-lib.o
  CC      net/netfilter/core.o
  CC [M]  drivers/video/fbdev/core/fbsysfs.o
  CC      kernel/locking/osq_lock.o
  CC [M]  net/netfilter/ipvs/ip_vs_ctl.o
  CC      fs/proc/softirqs.o
  CC      lib/bug.o
  AR      drivers/video/console/built-in.a
  CC      sound/core/device.o
  AR      net/ipv4/netfilter/built-in.a
  CC [M]  net/ipv4/netfilter/nf_defrag_ipv4.o
  AR      lib/fonts/built-in.a
  CC [M]  net/ipv4/netfilter/nf_reject_ipv4.o
  CC      lib/zstd/compress/zstd_compress.o
  CC      drivers/pci/msi/irqdomain.o
  AR      fs/jbd2/built-in.a
  CC      sound/core/info.o
  CC      arch/x86/mm/pgprot.o
  AR      kernel/power/built-in.a
  CC      kernel/locking/qspinlock.o
  CC      sound/core/isadma.o
  CC      net/netfilter/nf_log.o
  CC [M]  drivers/video/fbdev/simplefb.o
  CC      net/netfilter/nf_queue.o
  CC [M]  arch/x86/kvm/irq.o
  CC      crypto/sha256_generic.o
  AR      sound/pci/ice1712/built-in.a
  CC      kernel/locking/rtmutex_api.o
  CC      sound/core/vmaster.o
  CC      lib/raid6/avx2.o
  CC      mm/vmstat.o
  CC      arch/x86/mm/hugetlbpage.o
  CC      fs/proc/namespaces.o
  AR      lib/lz4/built-in.a
  CC      fs/proc/self.o
  AR      arch/x86/events/intel/built-in.a
  CC      lib/zstd/compress/zstd_compress_literals.o
  AR      arch/x86/events/built-in.a
  CC      crypto/sha512_generic.o
  CC      crypto/blake2b_generic.o
  CC [M]  drivers/video/fbdev/core/modedb.o
  CC      sound/core/ctljack.o
  CC      block/blk-mq.o
  CC      sound/core/jack.o
  CC      arch/x86/mm/kasan_init_64.o
  CC      fs/proc/thread_self.o
  CC      fs/proc/proc_sysctl.o
  CC      fs/proc/proc_net.o
  CC      sound/core/timer.o
  CC [M]  arch/x86/kvm/lapic.o
  CC      net/netfilter/nf_sockopt.o
  CC      sound/core/hrtimer.o
  AR      drivers/pci/msi/built-in.a
  CC      drivers/pci/pcie/portdrv.o
  CC      net/core/flow_dissector.o
  CC      drivers/pci/pcie/rcec.o
  CC      drivers/pci/pcie/aspm.o
  CC [M]  sound/pci/hda/hda_auto_parser.o
  CC      net/core/sysctl_net_core.o
  CC      io_uring/msg_ring.o
  CC [M]  net/netfilter/ipvs/ip_vs_sched.o
  CC      io_uring/timeout.o
  CC      lib/raid6/avx512.o
  CC      net/ethtool/bitset.o
  CC [M]  net/ipv4/netfilter/ip_tables.o
  CC      net/core/dev.o
  CC [M]  drivers/video/fbdev/core/fbcvt.o
  CC      block/blk-mq-tag.o
  CC      kernel/locking/spinlock_debug.o
  CC      fs/fat/cache.o
  CC      fs/fat/dir.o
  CC      fs/proc/kcore.o
  CC [M]  sound/pci/hda/hda_sysfs.o
  CC      crypto/ecb.o
  CC [M]  arch/x86/kvm/i8254.o
  CC [M]  arch/x86/kvm/ioapic.o
  CC      arch/x86/mm/pkeys.o
  CC [M]  arch/x86/kvm/irq_comm.o
  CC [M]  arch/x86/kvm/cpuid.o
  CC [M]  drivers/video/fbdev/core/fb_cmdline.o
  CC      crypto/cbc.o
  CC      crypto/pcbc.o
  CC [M]  net/netfilter/ipvs/ip_vs_xmit.o
  CC      lib/raid6/recov_avx512.o
  CC      lib/zstd/compress/zstd_compress_sequences.o
  CC      arch/x86/kernel/cpu/intel.o
  CC      kernel/locking/qrwlock.o
  CC      fs/proc/kmsg.o
  CC [M]  arch/x86/kvm/pmu.o
  CC [M]  net/ipv4/netfilter/iptable_filter.o
  CC      lib/zstd/compress/zstd_compress_superblock.o
  CC [M]  sound/pci/hda/hda_controller.o
  CC      fs/proc/page.o
  CC      arch/x86/kernel/cpu/intel_pconfig.o
  CC      arch/x86/mm/pti.o
  CC      arch/x86/kernel/process_64.o
  CC      mm/backing-dev.o
  CC [M]  drivers/video/fbdev/core/fb_defio.o
  CC [M]  net/netfilter/ipvs/ip_vs_app.o
  CC      crypto/cts.o
  CC      crypto/lrw.o
  CC      arch/x86/kernel/cpu/tsx.o
  CC      fs/fat/fatent.o
  CC [M]  net/netfilter/ipvs/ip_vs_sync.o
  CC [M]  sound/pci/hda/hda_proc.o
  CC [M]  sound/pci/hda/hda_hwdep.o
  CC      fs/fat/file.o
  CC      fs/fat/inode.o
  CC      io_uring/sqpoll.o
  CC      fs/ext4/extents_status.o
  CC      sound/core/seq_device.o
  AR      kernel/locking/built-in.a
  CC      block/blk-stat.o
  CC [M]  net/ipv4/netfilter/iptable_mangle.o
  CC      arch/x86/kernel/signal.o
  CC [M]  net/ipv4/netfilter/iptable_nat.o
  TABLE   lib/raid6/tables.c
  CC      drivers/pci/pcie/aer.o
  CC      drivers/pci/pcie/err.o
  CC      lib/raid6/int1.o
  CC      net/ethtool/strset.o
  CC      drivers/idle/intel_idle.o
  CC      fs/nfs/client.o
  CC      net/ethtool/linkinfo.o
  CC      fs/nfs/dir.o
  CC [M]  net/ipv4/netfilter/ipt_REJECT.o
  CC [M]  arch/x86/kvm/mtrr.o
  CC [M]  arch/x86/kvm/hyperv.o
  CC      net/core/dev_addr_lists.o
  CC      arch/x86/kernel/cpu/intel_epb.o
  CC      crypto/xts.o
  AR      arch/x86/mm/built-in.a
  AR      drivers/char/ipmi/built-in.a
  CC      fs/fat/misc.o
  CC      fs/fat/nfs.o
  CC [M]  sound/core/control_led.o
  CC      drivers/acpi/acpica/dsargs.o
  AR      fs/proc/built-in.a
  CC      fs/fat/namei_vfat.o
  CC [M]  drivers/video/fbdev/core/fbcon.o
  CC      drivers/acpi/apei/apei-base.o
  CC      drivers/acpi/acpica/dscontrol.o
  CC      fs/exportfs/expfs.o
  CC      lib/raid6/int2.o
  CC      drivers/acpi/apei/hest.o
  CC      drivers/acpi/acpica/dsdebug.o
  CC      drivers/acpi/apei/erst.o
  CC      block/blk-mq-sysfs.o
  CC      drivers/acpi/apei/bert.o
  CC      drivers/pci/pcie/aer_inject.o
  CC      net/netfilter/utils.o
  CC      drivers/pci/pcie/pme.o
  CC      lib/zstd/compress/zstd_double_fast.o
  AR      drivers/acpi/pmic/built-in.a
  CC      arch/x86/kernel/cpu/amd.o
  CC      fs/fat/namei_msdos.o
  CC      io_uring/fdinfo.o
  CC [M]  sound/pci/hda/hda_generic.o
  CC      arch/x86/kernel/signal_64.o
  CC      drivers/pci/pcie/dpc.o
  CC [M]  net/netfilter/nfnetlink.o
  CC [M]  net/netfilter/nf_conntrack_core.o
  CC      arch/x86/kernel/traps.o
  CC      arch/x86/kernel/idt.o
  CC      drivers/acpi/acpica/dsfield.o
  CC      io_uring/tctx.o
  AR      kernel/sched/built-in.a
  CC      kernel/irq/irqdesc.o
  CC      net/ethtool/linkmodes.o
  CC      mm/mm_init.o
  CC      io_uring/poll.o
  CC      net/ethtool/rss.o
  CC      kernel/irq/handle.o
  CC      net/ipv4/route.o
  CC [M]  arch/x86/kvm/debugfs.o
  CC      lib/raid6/int4.o
  AR      drivers/idle/built-in.a
  CC      io_uring/cancel.o
  CC [M]  net/netfilter/nf_conntrack_standalone.o
  CC      crypto/ctr.o
  CC      io_uring/kbuf.o
  CC [M]  net/netfilter/nf_conntrack_expect.o
  AR      fs/exportfs/built-in.a
  CC [M]  sound/core/hwdep.o
  CC [M]  net/netfilter/nf_conntrack_helper.o
  CC      lib/raid6/int8.o
  CC [M]  arch/x86/kvm/mmu/mmu.o
  CC      block/blk-mq-cpumap.o
  CC      fs/lockd/clntlock.o
  CC      drivers/acpi/apei/ghes.o
  CC [M]  net/netfilter/ipvs/ip_vs_est.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto.o
  CC      net/ethtool/linkstate.o
  CC      drivers/acpi/acpica/dsinit.o
  CC      fs/nfs/file.o
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  CC      lib/buildid.o
  AR      drivers/pci/pcie/built-in.a
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      fs/ext4/file.o
  AR      drivers/pci/controller/dwc/built-in.a
  CC      fs/ext4/fsmap.o
  AR      drivers/pci/controller/mobiveil/built-in.a
  CC      arch/x86/kernel/cpu/hygon.o
  CC      drivers/pci/controller/vmd.o
  CC      crypto/gcm.o
  AR      fs/fat/built-in.a
  CC      mm/percpu.o
  CC      fs/nls/nls_base.o
  CC      kernel/irq/manage.o
  CC      drivers/acpi/dptf/int340x_thermal.o
  CC      fs/nls/nls_cp437.o
  CC      drivers/pci/hotplug/pciehp_core.o
  CC      net/ethtool/debug.o
  CC      drivers/acpi/acpica/dsmethod.o
  CC [M]  sound/core/pcm.o
  CC      fs/nls/nls_ascii.o
  CC      lib/raid6/int16.o
  CC      fs/ext4/fsync.o
  CC      lib/raid6/int32.o
  CC      drivers/acpi/acpica/dsmthdat.o
  CC      arch/x86/kernel/cpu/centaur.o
  CC      fs/ext4/hash.o
  CC      block/blk-mq-sched.o
  CC      drivers/pci/hotplug/pciehp_ctrl.o
  CC      fs/nls/nls_iso8859-1.o
  CC      lib/cmdline.o
  CC      drivers/acpi/tables.o
  CC      arch/x86/kernel/irq.o
  CC [M]  net/netfilter/nf_conntrack_proto.o
  CC      arch/x86/kernel/irq_64.o
  CC      io_uring/rsrc.o
  AR      drivers/acpi/dptf/built-in.a
  CC      block/ioctl.o
  CC      fs/ext4/ialloc.o
  CC      drivers/acpi/acpica/dsobject.o
  CC [M]  net/netfilter/nf_conntrack_proto_generic.o
  CC [M]  drivers/video/fbdev/core/bitblit.o
  CC      fs/lockd/clntproc.o
  CC [M]  sound/core/pcm_native.o
  CC [M]  sound/core/pcm_lib.o
  CC [M]  net/netfilter/nf_conntrack_proto_tcp.o
  CC [M]  drivers/video/fbdev/core/softcursor.o
  AR      fs/unicode/built-in.a
  CC [M]  net/netfilter/nf_conntrack_proto_udp.o
  CC      fs/ntfs/aops.o
  CC      lib/raid6/tables.o
  CC      arch/x86/kernel/cpu/zhaoxin.o
  CC      fs/autofs/init.o
  CC      fs/nls/nls_utf8.o
  CC      fs/autofs/inode.o
  AR      drivers/acpi/apei/built-in.a
  CC      fs/lockd/clntxdr.o
  CC      fs/lockd/host.o
  CC      drivers/pci/hotplug/pciehp_pci.o
  AR      drivers/pci/controller/built-in.a
  CC      fs/autofs/root.o
  CC      net/ethtool/wol.o
  CC      crypto/pcrypt.o
  CC      io_uring/rw.o
  CC      io_uring/opdef.o
  CC      fs/ntfs/attrib.o
  CC      arch/x86/kernel/dumpstack_64.o
  CC [M]  arch/x86/kvm/mmu/page_track.o
  CC      drivers/pci/hotplug/pciehp_hpc.o
  CC      drivers/acpi/acpica/dsopcode.o
  CC      arch/x86/kernel/cpu/perfctr-watchdog.o
  AR      fs/nls/built-in.a
  CC      fs/debugfs/inode.o
  CC [M]  net/netfilter/ipvs/ip_vs_pe.o
  CC [M]  sound/core/pcm_misc.o
  CC      fs/debugfs/file.o
  CC      io_uring/notif.o
  CC      arch/x86/kernel/time.o
  CC      fs/nfs/getroot.o
  CC [M]  net/netfilter/nf_conntrack_proto_icmp.o
  CC      kernel/irq/spurious.o
  CC      block/genhd.o
  AR      lib/raid6/built-in.a
  CC      drivers/pci/hotplug/acpiphp_core.o
  CC      arch/x86/kernel/ioport.o
  CC      arch/x86/kernel/dumpstack.o
  CC [M]  net/netfilter/nf_conntrack_extend.o
  CC      fs/autofs/symlink.o
  CC      drivers/pci/hotplug/acpiphp_glue.o
  CC [M]  drivers/video/fbdev/core/tileblit.o
  CC      drivers/acpi/acpica/dspkginit.o
  CC      crypto/cryptd.o
  CC      kernel/irq/resend.o
  CC      mm/slab_common.o
  CC      mm/compaction.o
  CC      fs/autofs/waitq.o
  CC      arch/x86/kernel/cpu/vmware.o
  AR      sound/sh/built-in.a
  CC      drivers/acpi/blacklist.o
  CC      arch/x86/kernel/nmi.o
  AR      sound/pci/korg1212/built-in.a
  CC [M]  net/netfilter/nf_conntrack_acct.o
  AR      sound/pci/mixart/built-in.a
  CC      fs/autofs/expire.o
  CC      arch/x86/kernel/cpu/hypervisor.o
  CC      fs/lockd/svc.o
  CC      net/ethtool/features.o
  CC      arch/x86/kernel/ldt.o
  CC      drivers/acpi/acpica/dsutils.o
  AR      sound/pci/nm256/built-in.a
  AR      sound/pci/oxygen/built-in.a
  AR      sound/pci/pcxhr/built-in.a
  CC      fs/autofs/dev-ioctl.o
  CC      kernel/irq/chip.o
  CC      fs/ntfs/collate.o
  CC      fs/tracefs/inode.o
  CC      lib/cpumask.o
  CC      fs/pstore/inode.o
  CC      fs/pstore/platform.o
  CC      fs/efivarfs/inode.o
  CC      arch/x86/kernel/setup.o
  CC [M]  sound/core/pcm_memory.o
  CC [M]  sound/core/memalloc.o
  CC      fs/btrfs/super.o
  AR      fs/debugfs/built-in.a
  CC      fs/lockd/svclock.o
  CC      fs/lockd/svcshare.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto_tcp.o
  CC      drivers/acpi/acpica/dswexec.o
  CC      fs/efivarfs/file.o
  CC      lib/zstd/compress/zstd_fast.o
  CC      fs/nfs/inode.o
  CC      fs/nfs/super.o
  CC      arch/x86/kernel/cpu/mshyperv.o
  CC [M]  drivers/video/fbdev/core/cfbfillrect.o
  CC [M]  drivers/video/fbdev/core/cfbcopyarea.o
  CC      crypto/des_generic.o
  CC      drivers/acpi/acpica/dswload.o
  CC      drivers/acpi/osi.o
  CC      kernel/irq/dummychip.o
  CC      kernel/rcu/update.o
  CC      fs/ext4/indirect.o
  CC      io_uring/io-wq.o
  CC      kernel/rcu/sync.o
  CC      net/ipv4/inetpeer.o
  AR      drivers/pci/hotplug/built-in.a
  AR      drivers/pci/switch/built-in.a
  CC      drivers/pci/access.o
  CC      fs/ntfs/compress.o
  CC      net/ipv4/protocol.o
  CC      block/ioprio.o
  CC      kernel/rcu/srcutree.o
  CC [M]  drivers/video/fbdev/core/cfbimgblt.o
  AR      fs/autofs/built-in.a
  CC      fs/pstore/pmsg.o
  AR      kernel/livepatch/built-in.a
  CC      kernel/dma/mapping.o
  AR      sound/synth/emux/built-in.a
  AR      sound/synth/built-in.a
  CC      kernel/dma/direct.o
  AR      sound/usb/misc/built-in.a
  AR      sound/usb/usx2y/built-in.a
  CC [M]  sound/pci/hda/patch_realtek.o
  AR      sound/usb/caiaq/built-in.a
  AR      fs/tracefs/built-in.a
  CC      kernel/dma/ops_helpers.o
  CC      lib/ctype.o
  AR      sound/usb/6fire/built-in.a
  CC      crypto/aes_generic.o
  AR      sound/usb/hiface/built-in.a
  AR      sound/usb/bcd2000/built-in.a
  CC      lib/zstd/compress/zstd_lazy.o
  CC      lib/zstd/compress/zstd_ldm.o
  AR      sound/usb/built-in.a
  CC      net/ethtool/privflags.o
  CC      fs/efivarfs/super.o
  CC      lib/dec_and_lock.o
  AR      sound/firewire/built-in.a
  CC [M]  sound/pci/hda/patch_analog.o
  CC      drivers/acpi/acpica/dswload2.o
  CC      lib/decompress.o
  CC      net/ipv4/ip_input.o
  CC      fs/efivarfs/vars.o
  CC      net/xfrm/xfrm_policy.o
  CC      net/unix/af_unix.o
  CC      net/ipv6/af_inet6.o
  AR      net/ipv6/netfilter/built-in.a
  CC      net/packet/af_packet.o
  CC [M]  net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
  CC      fs/lockd/svcproc.o
  CC [M]  net/ipv6/netfilter/nf_conntrack_reasm.o
  CC      kernel/irq/devres.o
  CC      arch/x86/kernel/cpu/capflags.o
  CC      net/ipv6/anycast.o
  AR      arch/x86/kernel/cpu/built-in.a
  CC      kernel/irq/autoprobe.o
  CC      arch/x86/kernel/x86_init.o
  AR      fs/pstore/built-in.a
  CC [M]  sound/core/pcm_timer.o
  CC      kernel/rcu/tree.o
  CC      mm/interval_tree.o
  CC      net/ipv4/ip_fragment.o
  CC      net/packet/diag.o
  CC      drivers/acpi/acpica/dswscope.o
  CC      kernel/dma/dummy.o
  CC      drivers/pci/bus.o
  CC      block/badblocks.o
  CC      fs/nfs/io.o
  CC      lib/zstd/compress/zstd_opt.o
  CC [M]  drivers/video/fbdev/core/sysfillrect.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto_udp.o
  AR      sound/sparc/built-in.a
  AR      sound/spi/built-in.a
  CC      kernel/irq/irqdomain.o
  CC      kernel/entry/common.o
  CC      block/blk-rq-qos.o
  CC      kernel/dma/contiguous.o
  CC      kernel/entry/syscall_user_dispatch.o
  AR      fs/efivarfs/built-in.a
  CC [M]  sound/pci/hda/patch_hdmi.o
  CC      net/ipv4/ip_forward.o
  CC      kernel/dma/swiotlb.o
  CC      kernel/module/main.o
  CC      net/ethtool/rings.o
  CC      drivers/acpi/acpica/dswstate.o
  CC      fs/ntfs/debug.o
  CC      kernel/module/strict_rwx.o
  LD [M]  sound/core/snd-ctl-led.o
  LD [M]  sound/core/snd-hwdep.o
  LD [M]  sound/core/snd-pcm.o
  CC      arch/x86/kernel/i8259.o
  AR      sound/core/built-in.a
  AR      sound/parisc/built-in.a
  CC      kernel/rcu/rcu_segcblist.o
  CC      crypto/deflate.o
  CC      net/ethtool/channels.o
  CC      kernel/time/time.o
  CC [M]  net/netfilter/ipvs/ip_vs_nfct.o
  AR      io_uring/built-in.a
  CC      kernel/time/timer.o
  CC      fs/ext4/inline.o
  CC      fs/btrfs/ctree.o
  CC      kernel/irq/proc.o
  CC      net/core/dst.o
  CC      fs/lockd/svcsubs.o
  CC      drivers/pci/probe.o
  CC [M]  net/netfilter/ipvs/ip_vs_rr.o
  CC      fs/ntfs/dir.o
  CC      net/ethtool/coalesce.o
  CC      drivers/acpi/acpica/evevent.o
  CC [M]  sound/pci/hda/hda_eld.o
  CC      block/disk-events.o
  CC [M]  drivers/video/fbdev/core/syscopyarea.o
  CC      crypto/crc32c_generic.o
  CC      lib/zstd/zstd_decompress_module.o
  CC      kernel/module/tree_lookup.o
  LD [M]  net/ipv6/netfilter/nf_defrag_ipv6.o
  CC      arch/x86/kernel/irqinit.o
  CC      fs/btrfs/extent-tree.o
  CC      net/ipv6/ip6_output.o
  CC      drivers/acpi/acpica/evgpe.o
  CC      mm/list_lru.o
  CC [M]  drivers/video/fbdev/core/sysimgblt.o
  CC      kernel/entry/kvm.o
  CC      crypto/crct10dif_common.o
  CC      crypto/crct10dif_generic.o
  CC      crypto/authenc.o
  CC [M]  drivers/video/fbdev/core/fb_sys_fops.o
  CC      fs/nfs/direct.o
  CC      arch/x86/kernel/jump_label.o
  CC      net/ipv6/ip6_input.o
  CC      lib/zstd/decompress/huf_decompress.o
  CC      mm/workingset.o
  CC      kernel/dma/remap.o
  CC      kernel/irq/migration.o
  CC      net/ethtool/pause.o
  AR      sound/pcmcia/vx/built-in.a
  CC      arch/x86/kernel/irq_work.o
  AR      sound/pcmcia/pdaudiocf/built-in.a
  CC      net/ipv4/ip_options.o
  AR      sound/pcmcia/built-in.a
  CC      arch/x86/kernel/probe_roms.o
  AR      sound/mips/built-in.a
  AR      sound/soc/built-in.a
  CC      mm/debug.o
  CC      block/blk-ia-ranges.o
  CC      drivers/acpi/acpica/evgpeblk.o
  CC      drivers/pnp/pnpacpi/core.o
  CC      drivers/pnp/pnpacpi/rsparser.o
  CC      net/ipv6/addrconf.o
  CC [M]  net/netfilter/nf_conntrack_seqadj.o
  CC      fs/btrfs/print-tree.o
  LD [M]  net/netfilter/ipvs/ip_vs.o
  AR      drivers/amba/built-in.a
  CC      fs/lockd/mon.o
  CC      arch/x86/kernel/sys_ia32.o
  CC      mm/gup.o
  CC      kernel/irq/cpuhotplug.o
  CC [M]  net/netfilter/nf_conntrack_proto_icmpv6.o
  CC      drivers/acpi/acpica/evgpeinit.o
  CC      net/core/netevent.o
  AR      kernel/entry/built-in.a
  CC      net/ethtool/eee.o
  CC      crypto/authencesn.o
  AR      kernel/dma/built-in.a
  CC      net/ipv4/ip_output.o
  CC      kernel/futex/core.o
  CC      fs/ntfs/file.o
  LD [M]  drivers/video/fbdev/core/fb.o
  CC      kernel/futex/syscalls.o
  AR      drivers/video/fbdev/core/built-in.a
  AR      drivers/video/fbdev/built-in.a
  AR      drivers/video/built-in.a
  CC      arch/x86/kernel/signal_32.o
  CC      net/unix/garbage.o
  CC      net/unix/sysctl_net_unix.o
  CC      arch/x86/kernel/sys_x86_64.o
  CC [M]  fs/netfs/buffered_read.o
  CC [M]  fs/fscache/cache.o
  CC [M]  fs/fscache/cookie.o
  CC [M]  fs/netfs/io.o
  CC [M]  fs/smbfs_common/cifs_arc4.o
  CC      drivers/acpi/acpica/evgpeutil.o
  CC      block/bsg.o
  CC      mm/mmap_lock.o
  CC [M]  sound/pci/hda/hda_intel.o
  CC [M]  fs/netfs/iterator.o
  CC      kernel/irq/pm.o
  CC [M]  arch/x86/kvm/mmu/spte.o
  CC      drivers/pci/host-bridge.o
  CC      fs/ext4/inode.o
  CC      kernel/module/debug_kmemleak.o
  AR      drivers/pnp/pnpacpi/built-in.a
  CC      drivers/pnp/core.o
  CC      kernel/time/hrtimer.o
  CC      net/core/neighbour.o
  CC [M]  fs/smbfs_common/cifs_md4.o
  CC      kernel/module/kallsyms.o
  CC      fs/ntfs/index.o
  CC      drivers/acpi/acpica/evglock.o
  CC      kernel/module/procfs.o
  CC      net/ethtool/tsinfo.o
  CC      fs/lockd/xdr.o
  CC      arch/x86/kernel/espfix_64.o
  CC      crypto/lzo.o
  CC [M]  fs/netfs/main.o
  CC [M]  fs/netfs/objects.o
  CC      net/xfrm/xfrm_state.o
  AR      sound/pci/riptide/built-in.a
  AR      net/packet/built-in.a
  CC      arch/x86/kernel/ksysfs.o
  CC      kernel/futex/pi.o
  CC      kernel/module/sysfs.o
  CC      kernel/time/timekeeping.o
  CC [M]  net/netfilter/nf_conntrack_proto_dccp.o
  CC      block/bsg-lib.o
  CC      fs/lockd/clnt4xdr.o
  CC      drivers/pci/remove.o
  CC      fs/nfs/pagelist.o
  CC      net/unix/diag.o
  CC      net/unix/scm.o
  CC      kernel/irq/msi.o
  CC      fs/lockd/xdr4.o
  CC      block/blk-cgroup.o
  CC [M]  fs/cifs/trace.o
  CC      drivers/acpi/acpica/evhandler.o
  CC      drivers/pnp/card.o
  CC [M]  fs/cifs/cifsfs.o
  CC [M]  fs/cifs/cifs_debug.o
  CC [M]  fs/fscache/io.o
  CC      net/key/af_key.o
  CC [M]  arch/x86/kvm/mmu/tdp_iter.o
  CC      fs/lockd/svc4proc.o
  CC      crypto/lzo-rle.o
  CC      fs/ntfs/inode.o
  CC      drivers/pci/pci.o
  CC      arch/x86/kernel/bootflag.o
  CC      mm/highmem.o
  CC      kernel/futex/requeue.o
  CC      mm/memory.o
  AR      kernel/module/built-in.a
  CC      drivers/acpi/acpica/evmisc.o
  AR      net/bridge/netfilter/built-in.a
  CC      net/bridge/br.o
  CC      net/ethtool/cabletest.o
  CC [M]  net/sunrpc/auth_gss/auth_gss.o
  CC [M]  fs/cifs/connect.o
  CC [M]  net/sunrpc/auth_gss/gss_generic_token.o
  CC [M]  fs/cifs/dir.o
  LD [M]  fs/netfs/netfs.o
  CC [M]  fs/fuse/dev.o
  CC [M]  fs/cifs/file.o
  CC      drivers/pnp/driver.o
  LD [M]  sound/pci/hda/snd-hda-codec.o
  CC      drivers/pnp/resource.o
  CC      net/sunrpc/clnt.o
  LD [M]  sound/pci/hda/snd-hda-codec-generic.o
  CC      drivers/pnp/manager.o
  CC      crypto/lz4.o
  LD [M]  sound/pci/hda/snd-hda-codec-realtek.o
  CC [M]  fs/fuse/dir.o
  LD [M]  sound/pci/hda/snd-hda-codec-analog.o
  AR      net/unix/built-in.a
  LD [M]  sound/pci/hda/snd-hda-codec-hdmi.o
  CC      kernel/cgroup/cgroup.o
  CC [M]  net/netfilter/nf_conntrack_proto_sctp.o
  CC      drivers/acpi/acpica/evregion.o
  CC      net/ipv6/addrlabel.o
  LD [M]  sound/pci/hda/snd-hda-intel.o
  CC      kernel/futex/waitwake.o
  CC      arch/x86/kernel/e820.o
  AR      sound/pci/rme9652/built-in.a
  CC [M]  fs/fscache/main.o
  AR      sound/pci/trident/built-in.a
  AR      sound/pci/ymfpci/built-in.a
  AR      sound/pci/vx222/built-in.a
  CC      arch/x86/kernel/pci-dma.o
  AR      sound/pci/built-in.a
  CC [M]  arch/x86/kvm/mmu/tdp_mmu.o
  CC      arch/x86/kernel/quirks.o
  CC      kernel/cgroup/rstat.o
  AR      sound/atmel/built-in.a
  CC [M]  net/netfilter/nf_conntrack_netlink.o
  AR      sound/hda/built-in.a
  AR      kernel/rcu/built-in.a
  CC      crypto/lz4hc.o
  CC [M]  sound/hda/hda_bus_type.o
  CC      kernel/irq/affinity.o
  CC [M]  sound/hda/hdac_bus.o
  CC      kernel/time/ntp.o
  CC      crypto/xxhash_generic.o
  CC      fs/lockd/procfs.o
  CC      fs/btrfs/root-tree.o
  CC      net/ipv4/ip_sockglue.o
  CC      drivers/pnp/support.o
  CC [M]  net/netfilter/nf_nat_core.o
  CC      drivers/acpi/acpica/evrgnini.o
  AR      kernel/futex/built-in.a
  CC      kernel/trace/trace_clock.o
  CC      crypto/rng.o
  CC      net/bridge/br_device.o
  CC [M]  net/sunrpc/auth_gss/gss_mech_switch.o
  CC      net/ethtool/tunnels.o
  CC      net/ethtool/fec.o
  CC      drivers/pnp/interface.o
  CC      lib/zstd/decompress/zstd_ddict.o
  CC      kernel/irq/matrix.o
  CC      fs/ntfs/mft.o
  CC      lib/zstd/decompress/zstd_decompress.o
  CC      net/ipv4/inet_hashtables.o
  CC      block/blk-cgroup-rwstat.o
  CC      block/blk-throttle.o
  CC [M]  arch/x86/kvm/smm.o
  CC      drivers/pnp/quirks.o
  CC      kernel/cgroup/namespace.o
  CC [M]  sound/hda/hdac_device.o
  CC      fs/nfs/read.o
  CC      kernel/trace/ftrace.o
  CC      drivers/acpi/acpica/evsci.o
  CC      kernel/time/clocksource.o
  AR      fs/lockd/built-in.a
  CC      fs/ntfs/mst.o
  CC      fs/btrfs/dir-item.o
  CC      arch/x86/kernel/topology.o
  CC [M]  fs/cifs/inode.o
  CC [M]  net/netfilter/nf_nat_proto.o
  CC [M]  fs/fscache/volume.o
  CC      crypto/drbg.o
  CC [M]  fs/fuse/file.o
  CC      drivers/acpi/acpica/evxface.o
  CC      kernel/trace/ring_buffer.o
  CC      arch/x86/kernel/kdebugfs.o
  CC      fs/ntfs/namei.o
  CC      net/ipv6/route.o
  CC      block/mq-deadline.o
  CC      block/kyber-iosched.o
  CC      arch/x86/kernel/alternative.o
  CC [M]  fs/fuse/inode.o
  CC      kernel/cgroup/cgroup-v1.o
  CC      drivers/pnp/system.o
  CC      kernel/cgroup/freezer.o
  CC      crypto/jitterentropy.o
  CC [M]  fs/fuse/control.o
  AR      net/key/built-in.a
  CC      kernel/cgroup/legacy_freezer.o
  AR      sound/x86/built-in.a
  CC      crypto/jitterentropy-kcapi.o
  CC      net/ethtool/eeprom.o
  CC [M]  fs/fuse/xattr.o
  CC [M]  net/sunrpc/auth_gss/svcauth_gss.o
  CC      net/core/rtnetlink.o
  CC      net/bridge/br_fdb.o
  CC [M]  sound/hda/hdac_sysfs.o
  CC      kernel/time/jiffies.o
  CC      kernel/trace/trace.o
  CC      drivers/acpi/acpica/evxfevnt.o
  CC      net/xfrm/xfrm_hash.o
  CC [M]  fs/overlayfs/super.o
  AR      kernel/irq/built-in.a
  CC      drivers/acpi/acpica/evxfgpe.o
  CC      kernel/time/timer_list.o
  CC      net/xfrm/xfrm_input.o
  AR      drivers/pnp/built-in.a
  CC [M]  net/netfilter/nf_nat_helper.o
  CC      drivers/pci/pci-driver.o
  CC [M]  fs/fscache/proc.o
  CC      fs/ntfs/runlist.o
  CC [M]  arch/x86/kvm/vmx/vmx.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_upcall.o
  CC      fs/btrfs/file-item.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_xdr.o
  CC      kernel/cgroup/pids.o
  CC [M]  fs/fuse/acl.o
  CC      lib/zstd/decompress/zstd_decompress_block.o
  CC      drivers/acpi/acpica/evxfregn.o
  CC      kernel/time/timeconv.o
  CC      net/xfrm/xfrm_output.o
  CC      kernel/cgroup/cpuset.o
  CC      kernel/events/core.o
  CC      kernel/bpf/core.o
  CC      kernel/events/ring_buffer.o
  CC [M]  sound/hda/hdac_regmap.o
  CC      drivers/acpi/acpica/exconcat.o
  CC      fs/nfs/symlink.o
  CC      crypto/ghash-generic.o
  CC      net/ethtool/stats.o
  LD [M]  fs/fscache/fscache.o
  CC      kernel/time/timecounter.o
  CC      block/bfq-iosched.o
  CC      net/xfrm/xfrm_sysctl.o
  CC      kernel/events/callchain.o
  CC      kernel/time/alarmtimer.o
  CC      fs/nfs/unlink.o
  CC      net/ipv4/inet_timewait_sock.o
  CC      net/xfrm/xfrm_replay.o
  CC      fs/ext4/ioctl.o
  CC [M]  arch/x86/kvm/kvm-asm-offsets.s
  CC      arch/x86/kernel/i8253.o
  CC      lib/zstd/zstd_common_module.o
  CC      lib/zstd/common/debug.o
  AR      sound/xen/built-in.a
  CC [M]  net/sunrpc/auth_gss/trace.o
  CC [M]  fs/fuse/readdir.o
  CC      lib/zstd/common/entropy_common.o
  CC      drivers/acpi/acpica/exconfig.o
  CC      fs/ntfs/super.o
  CC      crypto/af_alg.o
  CC [M]  fs/cifs/link.o
  CC [M]  net/netfilter/nf_nat_redirect.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_mech.o
  CC      mm/mincore.o
  CC [M]  sound/hda/hdac_controller.o
  CC      net/ipv4/inet_connection_sock.o
  CC [M]  fs/cifs/misc.o
  CC [M]  fs/overlayfs/namei.o
  CC      arch/x86/kernel/hw_breakpoint.o
  CC      drivers/pci/search.o
  CC      drivers/acpi/acpica/exconvrt.o
  CC      kernel/events/hw_breakpoint.o
  CC      crypto/algif_hash.o
  CC      crypto/algif_skcipher.o
  CC      net/sunrpc/xprt.o
  CC [M]  fs/cifs/netmisc.o
  CC      net/bridge/br_forward.o
  CC [M]  fs/fuse/ioctl.o
  CC      net/ethtool/phc_vclocks.o
  CC      fs/ntfs/sysctl.o
  CC      fs/ext4/mballoc.o
  CC      lib/zstd/common/error_private.o
  CC [M]  arch/x86/kvm/vmx/pmu_intel.o
  CC      fs/btrfs/inode-item.o
  CC      net/sunrpc/socklib.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_seal.o
  CC      kernel/time/posix-timers.o
  CC      arch/x86/kernel/tsc.o
  CC      net/ethtool/mm.o
  CC      drivers/acpi/acpica/excreate.o
  CC [M]  arch/x86/kvm/vmx/vmcs12.o
  CC      drivers/pci/pci-sysfs.o
  CC      arch/x86/kernel/tsc_msr.o
  CC [M]  sound/hda/hdac_stream.o
  CC      kernel/trace/trace_output.o
  CC      kernel/trace/trace_seq.o
  CC      net/xfrm/xfrm_device.o
  CC      mm/mlock.o
  CC      fs/nfs/write.o
  CC [M]  net/netfilter/nf_nat_masquerade.o
  CC [M]  fs/overlayfs/util.o
  CC      fs/ntfs/unistr.o
  CC      arch/x86/kernel/io_delay.o
  CC      drivers/acpi/acpica/exdebug.o
  CC      kernel/trace/trace_stat.o
  CC      net/ipv4/tcp.o
  CC      net/sunrpc/xprtsock.o
  LD [M]  fs/fuse/fuse.o
  CC      net/ethtool/module.o
  CC      drivers/acpi/acpica/exdump.o
  CC      arch/x86/kernel/rtc.o
  CC      net/ethtool/pse-pd.o
  CC      fs/ntfs/upcase.o
  CC [M]  net/netfilter/x_tables.o
  CC      crypto/xor.o
  CC      net/xfrm/xfrm_algo.o
  CC      net/ipv4/tcp_input.o
  CC      mm/mmap.o
  CC      net/ethtool/plca.o
  CC [M]  fs/cifs/smbencrypt.o
  CC      net/bridge/br_if.o
  CC      net/sunrpc/sched.o
  CC      net/ipv4/tcp_output.o
  CC      fs/ext4/migrate.o
  CC      kernel/events/uprobes.o
  CC      drivers/acpi/acpica/exfield.o
  CC      drivers/acpi/acpica/exfldio.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_unseal.o
  CC      drivers/pci/rom.o
  CC [M]  sound/hda/array.o
  AR      kernel/bpf/built-in.a
  CC [M]  sound/hda/hdmi_chmap.o
  AR      kernel/cgroup/built-in.a
  CC      drivers/pci/setup-res.o
  CC      drivers/acpi/acpica/exmisc.o
  CC      crypto/hash_info.o
  CC      kernel/time/posix-cpu-timers.o
  CC      fs/nfs/namespace.o
  CC      arch/x86/kernel/resource.o
  CC      fs/nfs/mount_clnt.o
  AR      fs/ntfs/built-in.a
  CC      crypto/simd.o
  CC      fs/nfs/nfstrace.o
  CC      fs/btrfs/disk-io.o
  CC [M]  fs/overlayfs/inode.o
  CC      fs/btrfs/transaction.o
  CC      kernel/time/posix-clock.o
  CC      net/xfrm/xfrm_user.o
  CC      kernel/time/itimer.o
  AS      arch/x86/kernel/irqflags.o
  CC [M]  arch/x86/kvm/vmx/hyperv.o
  CC      arch/x86/kernel/static_call.o
  CC [M]  arch/x86/kvm/vmx/nested.o
  CC      fs/ext4/mmp.o
  CC      fs/btrfs/inode.o
  CC      fs/ext4/move_extent.o
  CC      drivers/acpi/acpica/exmutex.o
  CC      drivers/pci/irq.o
  CC      net/ipv4/tcp_timer.o
  CC      mm/mmu_gather.o
  AR      drivers/clk/actions/built-in.a
  CC      kernel/trace/trace_printk.o
  AR      drivers/clk/analogbits/built-in.a
  AR      drivers/clk/bcm/built-in.a
  AR      drivers/clk/imgtec/built-in.a
  CC [M]  net/sunrpc/auth_gss/gss_krb5_seqnum.o
  AR      drivers/clk/imx/built-in.a
  CC      net/core/utils.o
  AR      drivers/clk/ingenic/built-in.a
  AR      net/ethtool/built-in.a
  AR      drivers/clk/mediatek/built-in.a
  CC [M]  net/sunrpc/auth_gss/gss_krb5_wrap.o
  CC      mm/mprotect.o
  AR      drivers/clk/microchip/built-in.a
  AR      drivers/clk/mstar/built-in.a
  AR      drivers/clk/mvebu/built-in.a
  CC      block/bfq-wf2q.o
  AR      drivers/clk/ralink/built-in.a
  CC      drivers/dma/dw/core.o
  AR      drivers/clk/renesas/built-in.a
  AR      drivers/clk/socfpga/built-in.a
  CC      drivers/dma/dw/dw.o
  AR      drivers/clk/sprd/built-in.a
  AR      drivers/clk/sunxi-ng/built-in.a
  AR      drivers/clk/ti/built-in.a
  CC [M]  crypto/md4.o
  AR      drivers/clk/versatile/built-in.a
  CC      drivers/clk/x86/clk-lpss-atom.o
  CC      arch/x86/kernel/process.o
  CC [M]  fs/cifs/transport.o
  CC      drivers/clk/x86/clk-pmc-atom.o
  CC [M]  sound/hda/trace.o
  CC      drivers/acpi/acpica/exnames.o
  CC      kernel/time/clockevents.o
  CC      drivers/pci/vpd.o
  CC      net/bridge/br_input.o
  CC      fs/nfs/export.o
  CC      drivers/dma/hsu/hsu.o
  CC      kernel/time/tick-common.o
  CC      fs/ext4/namei.o
  CC      fs/nfs/sysfs.o
  CC      net/ipv4/tcp_ipv4.o
  CC      kernel/trace/pid_list.o
  CC [M]  crypto/ccm.o
  AR      sound/virtio/built-in.a
  CC [M]  fs/overlayfs/file.o
  CC [M]  fs/overlayfs/dir.o
  AR      drivers/dma/idxd/built-in.a
  CC      arch/x86/kernel/ptrace.o
  CC      drivers/acpi/acpica/exoparg1.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_crypto.o
  CC      arch/x86/kernel/tls.o
  CC      sound/sound_core.o
  CC      drivers/pci/setup-bus.o
  AR      drivers/clk/x86/built-in.a
  AR      drivers/clk/xilinx/built-in.a
  CC      drivers/clk/clk-devres.o
  CC [M]  net/netfilter/xt_tcpudp.o
  CC [M]  net/netfilter/xt_mark.o
  CC      net/ipv6/ip6_fib.o
  CC      arch/x86/kernel/step.o
  CC      net/core/link_watch.o
  CC      mm/mremap.o
  CC      block/bfq-cgroup.o
  CC [M]  sound/hda/hdac_component.o
  CC      sound/last.o
  CC      lib/decompress_bunzip2.o
  CC      drivers/dma/dw/idma32.o
  CC      drivers/acpi/acpica/exoparg2.o
  CC      drivers/clk/clk-bulk.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_keys.o
  AR      drivers/dma/hsu/built-in.a
  AR      drivers/dma/mediatek/built-in.a
  AR      drivers/dma/qcom/built-in.a
  CC      net/core/filter.o
  LD [M]  net/sunrpc/auth_gss/auth_rpcgss.o
  CC      kernel/trace/trace_sched_switch.o
  CC      block/blk-mq-pci.o
  CC      net/sunrpc/auth.o
  AR      drivers/dma/ti/built-in.a
  CC      net/sunrpc/auth_null.o
  CC      kernel/time/tick-broadcast.o
  CC      drivers/clk/clkdev.o
  CC      fs/btrfs/file.o
  AR      drivers/soc/apple/built-in.a
  AR      drivers/soc/aspeed/built-in.a
  AR      drivers/soc/bcm/bcm63xx/built-in.a
  AR      drivers/soc/bcm/built-in.a
  AR      drivers/soc/fsl/built-in.a
  CC      drivers/acpi/acpica/exoparg3.o
  AR      drivers/soc/fujitsu/built-in.a
  CC [M]  crypto/arc4.o
  AR      drivers/soc/imx/built-in.a
  AR      drivers/soc/ixp4xx/built-in.a
  AR      drivers/soc/loongson/built-in.a
  AR      drivers/soc/mediatek/built-in.a
  AR      drivers/soc/microchip/built-in.a
  AR      drivers/dma/xilinx/built-in.a
  AR      drivers/soc/nuvoton/built-in.a
  CC      lib/decompress_inflate.o
  AR      drivers/soc/pxa/built-in.a
  AR      drivers/soc/amlogic/built-in.a
  AR      drivers/soc/qcom/built-in.a
  CC      net/sunrpc/auth_unix.o
  AR      drivers/soc/renesas/built-in.a
  CC      arch/x86/kernel/i8237.o
  AR      drivers/soc/rockchip/built-in.a
  CC [M]  net/netfilter/xt_nat.o
  AR      drivers/soc/sifive/built-in.a
  CC      net/bridge/br_ioctl.o
  AR      drivers/soc/sunxi/built-in.a
  CC [M]  fs/overlayfs/readdir.o
  AR      drivers/soc/ti/built-in.a
  CC [M]  fs/overlayfs/copy_up.o
  AR      drivers/soc/xilinx/built-in.a
  CC [M]  sound/hda/hdac_i915.o
  AR      drivers/soc/built-in.a
  CC      block/blk-mq-virtio.o
  CC      fs/nfs/fs_context.o
  CC      fs/nfs/sysctl.o
  CC      fs/ext4/page-io.o
  CC      drivers/dma/dw/acpi.o
  CC      drivers/dma/dw/pci.o
  CC [M]  crypto/ecc.o
  CC      block/blk-mq-debugfs.o
  CC      block/blk-pm.o
  CC      drivers/acpi/acpica/exoparg6.o
  CC      net/core/sock_diag.o
  CC      drivers/clk/clk.o
  CC      arch/x86/kernel/stacktrace.o
  CC      arch/x86/kernel/reboot.o
  CC      drivers/pci/vc.o
  LD [M]  net/sunrpc/auth_gss/rpcsec_gss_krb5.o
  AR      net/xfrm/built-in.a
  CC [M]  arch/x86/kvm/vmx/posted_intr.o
  CC      fs/nfs/nfs2super.o
  CC      net/8021q/vlan_core.o
  CC      kernel/time/tick-broadcast-hrtimer.o
  CC      kernel/trace/trace_functions.o
  CC      mm/msync.o
  CC [M]  net/8021q/vlan.o
  CC [M]  fs/cifs/cached_dir.o
  CC [M]  net/netfilter/xt_REDIRECT.o
  CC      lib/decompress_unlz4.o
  CC      kernel/time/tick-oneshot.o
  CC      drivers/pci/mmap.o
  CC [M]  sound/hda/intel-dsp-config.o
  CC      drivers/acpi/acpica/exprep.o
  CC      drivers/acpi/acpica/exregion.o
  AR      drivers/dma/dw/built-in.a
  CC      net/ipv4/tcp_minisocks.o
  CC [M]  drivers/dma/ioat/init.o
  CC [M]  sound/hda/intel-nhlt.o
  CC      drivers/pci/setup-irq.o
  CC      lib/decompress_unlzma.o
  CC      drivers/pci/proc.o
  CC      arch/x86/kernel/msr.o
  CC [M]  net/netfilter/xt_MASQUERADE.o
  CC [M]  fs/overlayfs/export.o
  CC      drivers/virtio/virtio.o
  CC      kernel/time/tick-sched.o
  CC      net/bridge/br_stp.o
  CC      drivers/virtio/virtio_ring.o
  CC      drivers/tty/vt/vt_ioctl.o
  CC      drivers/tty/vt/vc_screen.o
  CC      drivers/acpi/acpica/exresnte.o
  CC      mm/page_vma_mapped.o
  CC      block/holder.o
  CC      drivers/dma/dmaengine.o
  CC      drivers/tty/hvc/hvc_console.o
  CC [M]  net/netfilter/xt_addrtype.o
  CC      lib/zstd/common/fse_decompress.o
  CC      net/bridge/br_stp_bpdu.o
  CC      net/ipv6/ipv6_sockglue.o
  CC      net/ipv6/ndisc.o
  CC      net/ipv6/udp.o
  CC      kernel/trace/trace_preemptirq.o
  CC      net/ipv6/udplite.o
  CC [M]  fs/cifs/cifs_unicode.o
  CC      drivers/pci/slot.o
  CC [M]  sound/hda/intel-sdw-acpi.o
  CC      drivers/tty/serial/8250/8250_core.o
  CC      arch/x86/kernel/cpuid.o
  CC      drivers/tty/serial/8250/8250_pnp.o
  CC      drivers/acpi/acpica/exresolv.o
  CC [M]  fs/cifs/nterr.o
  CC      drivers/dma/virt-dma.o
  LD [M]  arch/x86/kvm/kvm.o
  CC      drivers/virtio/virtio_anchor.o
  CC [M]  net/8021q/vlan_dev.o
  CC      lib/zstd/common/zstd_common.o
  LD [M]  fs/overlayfs/overlay.o
  CC      fs/nfs/proc.o
  CC      drivers/virtio/virtio_pci_modern_dev.o
  AR      block/built-in.a
  UPD     arch/x86/kvm/kvm-asm-offsets.h
  CC      net/ipv4/tcp_cong.o
  CC      kernel/fork.o
  CC      drivers/pci/pci-acpi.o
  AR      kernel/events/built-in.a
  CC      drivers/acpi/acpica/exresop.o
  CC [M]  crypto/essiv.o
  CC      fs/ext4/readpage.o
  CC [M]  drivers/dma/ioat/dma.o
  CC      drivers/dma/acpi-dma.o
  CC      drivers/tty/serial/serial_core.o
  CC      drivers/tty/vt/selection.o
  AS [M]  arch/x86/kvm/vmx/vmenter.o
  CC      drivers/virtio/virtio_pci_legacy_dev.o
  LD [M]  sound/hda/snd-hda-core.o
  CC      drivers/virtio/virtio_mmio.o
  CC      fs/ext4/resize.o
  CC      kernel/time/vsyscall.o
  CC      drivers/tty/vt/keyboard.o
  CC      drivers/tty/vt/consolemap.o
  LD [M]  sound/hda/snd-intel-dspcfg.o
  LD [M]  sound/hda/snd-intel-sdw-acpi.o
  CC      mm/pagewalk.o
  AR      sound/built-in.a
  CC      arch/x86/kernel/early-quirks.o
  AR      lib/zstd/built-in.a
  CC      lib/decompress_unlzo.o
  CC      kernel/trace/trace_nop.o
  HOSTCC  drivers/tty/vt/conmakehash
  CC      drivers/pci/quirks.o
  AR      drivers/tty/hvc/built-in.a
  CC      drivers/tty/serial/8250/8250_port.o
  CC      drivers/virtio/virtio_pci_modern.o
  CC      lib/decompress_unxz.o
  CC      net/ipv4/tcp_metrics.o
  CC      drivers/tty/vt/vt.o
  CC      mm/pgtable-generic.o
  CC      net/bridge/br_stp_if.o
  CC      net/ipv4/tcp_fastopen.o
  CC [M]  net/netfilter/xt_conntrack.o
  CC      drivers/virtio/virtio_pci_common.o
  CC      drivers/acpi/acpica/exserial.o
  CC      net/dcb/dcbnl.o
  CC      kernel/time/timekeeping_debug.o
  CC [M]  fs/cifs/cifsencrypt.o
  CC      net/dcb/dcbevent.o
  CC      net/sunrpc/svc.o
  CC      lib/decompress_unzstd.o
  CC      fs/btrfs/defrag.o
  COPY    drivers/tty/vt/defkeymap.c
  CONMK   drivers/tty/vt/consolemap_deftbl.c
  CC      drivers/tty/vt/defkeymap.o
  CC      fs/btrfs/extent_map.o
  CC      kernel/time/namespace.o
  CC      net/sunrpc/svcsock.o
  CC      net/sunrpc/svcauth.o
  CC      fs/btrfs/sysfs.o
  CC [M]  crypto/ecdh.o
  CC      drivers/acpi/acpica/exstore.o
  CC      drivers/tty/serial/earlycon.o
  CC      mm/rmap.o
  CC      kernel/trace/trace_functions_graph.o
  CC [M]  net/8021q/vlan_netlink.o
  CC      drivers/tty/vt/consolemap_deftbl.o
  CC [M]  fs/cifs/readdir.o
  CC      kernel/trace/fgraph.o
  CC      arch/x86/kernel/smp.o
  CC      net/bridge/br_stp_timer.o
  CC [M]  net/8021q/vlanproc.o
  CC      net/bridge/br_netlink.o
  CC      fs/nfs/nfs2xdr.o
  CC      fs/btrfs/accessors.o
  CC [M]  drivers/dma/ioat/prep.o
  CC      lib/dump_stack.o
  LD [M]  arch/x86/kvm/kvm-intel.o
  CC      lib/earlycpio.o
  CC      drivers/virtio/virtio_pci_legacy.o
  CC      net/ipv4/tcp_rate.o
  CC      drivers/acpi/acpica/exstoren.o
  CC      net/ipv4/tcp_recovery.o
  CC      kernel/trace/blktrace.o
  CC      mm/vmalloc.o
  CC      net/ipv4/tcp_ulp.o
  CC [M]  crypto/ecdh_helper.o
  CC      net/sunrpc/svcauth_unix.o
  CC [M]  net/netfilter/xt_ipvs.o
  AR      kernel/time/built-in.a
  CC      net/ipv6/raw.o
  CC      net/ipv4/tcp_offload.o
  CC      drivers/tty/serial/serial_mctrl_gpio.o
  CC      drivers/clk/clk-divider.o
  CC      fs/nfs/nfs3super.o
  CC      kernel/trace/trace_events.o
  CC      drivers/acpi/acpica/exstorob.o
  CC      lib/extable.o
  LD [M]  crypto/ecdh_generic.o
  CC      lib/flex_proportions.o
  AR      crypto/built-in.a
  CC      net/ipv4/tcp_plb.o
  CC      net/ipv4/datagram.o
  CC [M]  drivers/virtio/virtio_mem.o
  AR      net/8021q/built-in.a
  LD [M]  net/8021q/8021q.o
  CC      net/l3mdev/l3mdev.o
  CC      net/ipv6/icmp.o
  AR      drivers/virtio/built-in.a
  CC      kernel/exec_domain.o
  CC      arch/x86/kernel/smpboot.o
  AR      drivers/dma/built-in.a
  CC      kernel/panic.o
  CC      fs/nfs/nfs3client.o
  CC      fs/ext4/super.o
  CC      arch/x86/kernel/tsc_sync.o
  CC      net/ipv4/raw.o
  CC      fs/ext4/symlink.o
  CC      drivers/acpi/acpica/exsystem.o
  CC      lib/idr.o
  CC      net/ipv4/udp.o
  CC      drivers/tty/serial/8250/8250_dma.o
  CC      kernel/trace/trace_export.o
  CC      arch/x86/kernel/setup_percpu.o
  CC      drivers/clk/clk-fixed-factor.o
  CC [M]  drivers/dma/ioat/dca.o
  CC      drivers/clk/clk-fixed-rate.o
  CC      net/sunrpc/addr.o
  CC      net/bridge/br_netlink_tunnel.o
  CC      fs/btrfs/xattr.o
  AR      net/dcb/built-in.a
  CC      fs/open.o
  CC [M]  net/bluetooth/af_bluetooth.o
  CC      drivers/pci/ats.o
  CC      net/ipv4/udplite.o
  CC      fs/read_write.o
  CC      net/sunrpc/rpcb_clnt.o
  CC      fs/file_table.o
  CC      drivers/acpi/acpica/extrace.o
  LD [M]  net/netfilter/nf_conntrack.o
  CC      net/bridge/br_arp_nd_proxy.o
  CC [M]  drivers/dma/ioat/sysfs.o
  CC      drivers/acpi/osl.o
  CC      drivers/acpi/acpica/exutils.o
  LD [M]  net/netfilter/nf_nat.o
  CC      fs/btrfs/ordered-data.o
  AR      net/netfilter/built-in.a
  CC      kernel/cpu.o
  CC      mm/page_alloc.o
  CC      drivers/clk/clk-gate.o
  CC      lib/irq_regs.o
  CC      drivers/clk/clk-multiplier.o
  CC      kernel/trace/trace_event_perf.o
  CC      net/sunrpc/timer.o
  CC      kernel/trace/trace_events_filter.o
  CC [M]  fs/cifs/ioctl.o
  AR      net/l3mdev/built-in.a
  CC      net/ipv6/mcast.o
  CC      arch/x86/kernel/ftrace.o
  CC      net/ipv4/udp_offload.o
  CC      kernel/exit.o
  CC      drivers/acpi/utils.o
  CC      lib/is_single_threaded.o
  AR      drivers/tty/vt/built-in.a
  CC      net/ipv4/arp.o
  CC      fs/nfs/nfs3proc.o
  CC      fs/super.o
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      net/sunrpc/xdr.o
  CC      fs/char_dev.o
  CC      net/core/dev_ioctl.o
  CC      net/sunrpc/sunrpc_syms.o
  CC      drivers/acpi/acpica/hwacpi.o
  CC      drivers/pci/iov.o
  CC      mm/init-mm.o
  CC      lib/klist.o
  LD [M]  drivers/dma/ioat/ioatdma.o
  CC      drivers/clk/clk-mux.o
  CC      drivers/clk/clk-composite.o
  CC      fs/stat.o
  AS      arch/x86/kernel/ftrace_64.o
  CC      drivers/acpi/acpica/hwesleep.o
  CC      drivers/acpi/acpica/hwgpe.o
  CC      net/sunrpc/cache.o
  CC      mm/memblock.o
  CC [M]  fs/cifs/sess.o
  CC      net/ipv6/reassembly.o
  CC      fs/exec.o
  CC [M]  net/dns_resolver/dns_key.o
  CC      net/devres.o
  CC      arch/x86/kernel/trace_clock.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC [M]  net/dns_resolver/dns_query.o
  AR      drivers/tty/ipwireless/built-in.a
  CC      kernel/trace/trace_events_trigger.o
  CC      fs/pipe.o
  CC      lib/kobject.o
  CC [M]  net/bluetooth/hci_core.o
  CC      drivers/clk/clk-fractional-divider.o
  CC      net/core/tso.o
  CC      arch/x86/kernel/trace.o
  CC      net/ipv4/icmp.o
  CC      fs/btrfs/extent_io.o
  CC      fs/namei.o
  CC      net/sunrpc/rpc_pipe.o
  CC      net/bridge/br_sysfs_if.o
  CC      net/sunrpc/sysfs.o
  CC      drivers/acpi/acpica/hwregs.o
  CC      fs/fcntl.o
  CC      net/ipv6/tcp_ipv6.o
  CC      net/ipv4/devinet.o
  CC      mm/memory_hotplug.o
  CC      net/core/sock_reuseport.o
  CC [M]  net/bluetooth/hci_conn.o
  CC [M]  fs/cifs/export.o
  CC      net/sunrpc/svc_xprt.o
  CC      arch/x86/kernel/rethook.o
  CC      drivers/pci/pci-label.o
  CC      net/sunrpc/xprtmultipath.o
  CC [M]  fs/cifs/unc.o
  CC      fs/nfs/nfs3xdr.o
  CC [M]  fs/cifs/winucase.o
  CC      drivers/tty/serial/8250/8250_pci.o
  CC [M]  fs/cifs/smb2ops.o
  LD [M]  net/dns_resolver/dns_resolver.o
  CC      fs/ext4/sysfs.o
  CC [M]  fs/cifs/smb2maperror.o
  CC      fs/btrfs/volumes.o
  CC      net/socket.o
  CC      drivers/clk/clk-gpio.o
  CC [M]  fs/cifs/smb2transport.o
  CC      drivers/acpi/acpica/hwsleep.o
  CC      lib/kobject_uevent.o
  CC      mm/madvise.o
  CC      net/sunrpc/stats.o
  CC      net/sunrpc/sysctl.o
  CC      kernel/trace/trace_eprobe.o
  CC      drivers/char/hw_random/core.o
  CC      arch/x86/kernel/crash_core_64.o
  CC      drivers/acpi/acpica/hwvalid.o
  CC      drivers/char/hw_random/intel-rng.o
  CC [M]  fs/cifs/smb2misc.o
  AR      drivers/iommu/amd/built-in.a
  CC      drivers/pci/pci-stub.o
  CC      net/compat.o
  AR      drivers/clk/built-in.a
  CC      drivers/iommu/intel/dmar.o
  CC      net/bridge/br_sysfs_br.o
  AR      drivers/iommu/arm/arm-smmu/built-in.a
  AR      drivers/iommu/arm/arm-smmu-v3/built-in.a
  AR      drivers/iommu/arm/built-in.a
  CC      net/bridge/br_nf_core.o
  CC      fs/btrfs/async-thread.o
  CC      fs/btrfs/ioctl.o
  CC      fs/ioctl.o
  AR      drivers/gpu/host1x/built-in.a
  AR      drivers/gpu/drm/tests/built-in.a
  CC [M]  drivers/gpu/drm/tests/drm_kunit_helpers.o
  AR      drivers/gpu/drm/arm/built-in.a
  CC      fs/readdir.o
  CC      drivers/acpi/acpica/hwxface.o
  CC      arch/x86/kernel/module.o
  CC      fs/select.o
  CC      net/ipv6/ping.o
  CC      fs/dcache.o
  CC      arch/x86/kernel/early_printk.o
  AR      drivers/gpu/drm/display/built-in.a
  CC [M]  drivers/gpu/drm/tests/drm_buddy_test.o
  CC [M]  drivers/gpu/drm/display/drm_display_helper_mod.o
  CC      net/core/fib_notifier.o
  CC [M]  drivers/gpu/drm/tests/drm_cmdline_parser_test.o
  CC [M]  drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
  CC      net/ipv4/af_inet.o
  CC      lib/logic_pio.o
  CC      drivers/pci/vgaarb.o
  AR      drivers/char/hw_random/built-in.a
  CC      drivers/char/agp/backend.o
  CC      drivers/char/tpm/tpm-chip.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      drivers/char/tpm/tpm-dev-common.o
  CC      net/ipv4/igmp.o
  CC      net/ipv4/fib_frontend.o
  CC      drivers/acpi/acpica/hwxfsleep.o
  CC      arch/x86/kernel/hpet.o
  CC [M]  fs/cifs/smb2pdu.o
  CC [M]  fs/cifs/smb2inode.o
  CC      drivers/connector/cn_queue.o
  CC      net/bridge/br_multicast.o
  CC      drivers/connector/connector.o
  CC      arch/x86/kernel/amd_nb.o
  CC      kernel/trace/trace_kprobe.o
  CC      mm/page_io.o
  CC      lib/maple_tree.o
  CC      lib/memcat_p.o
  CC [M]  drivers/gpu/drm/display/drm_dp_helper.o
  CC      fs/btrfs/locking.o
  AR      fs/nfs/built-in.a
  CC [M]  fs/cifs/smb2file.o
  CC      drivers/tty/tty_io.o
  CC      drivers/acpi/acpica/hwpci.o
  CC      drivers/base/power/sysfs.o
  CC      drivers/char/agp/generic.o
  CC      drivers/char/agp/isoch.o
  CC [M]  drivers/gpu/drm/display/drm_dp_mst_topology.o
  CC      drivers/base/firmware_loader/main.o
  CC      drivers/base/firmware_loader/builtin/main.o
  CC      drivers/char/tpm/tpm-dev.o
  CC      net/core/xdp.o
  CC      drivers/char/tpm/tpm-interface.o
  CC      drivers/acpi/acpica/nsaccess.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC      net/ipv6/exthdrs.o
  AR      net/sunrpc/built-in.a
  CC      lib/nmi_backtrace.o
  CC      drivers/tty/n_tty.o
  AR      drivers/base/firmware_loader/builtin/built-in.a
  CC      drivers/tty/tty_ioctl.o
  CC      drivers/base/power/generic_ops.o
  CC      kernel/softirq.o
  CC      drivers/tty/tty_ldisc.o
  CC      drivers/iommu/intel/iommu.o
  AR      drivers/pci/built-in.a
  AR      drivers/gpu/vga/built-in.a
  CC      drivers/char/mem.o
  CC      arch/x86/kernel/kvm.o
  CC      drivers/char/random.o
  CC [M]  net/bluetooth/hci_event.o
  CC      net/sysctl_net.o
  CC      drivers/tty/tty_buffer.o
  CC      drivers/connector/cn_proc.o
  CC      mm/swap_state.o
  CC      drivers/acpi/acpica/nsalloc.o
  CC      drivers/acpi/reboot.o
  CC      fs/inode.o
  CC [M]  net/bluetooth/mgmt.o
  CC      drivers/char/agp/intel-agp.o
  CC      drivers/tty/serial/8250/8250_dw.o
  CC      drivers/base/power/common.o
  CC      net/bridge/br_mdb.o
  CC [M]  drivers/gpu/drm/tests/drm_connector_test.o
  CC      drivers/char/tpm/tpm1-cmd.o
  CC [M]  drivers/gpu/drm/display/drm_dsc_helper.o
  AR      drivers/base/firmware_loader/built-in.a
  CC      drivers/base/regmap/regmap.o
  CC      mm/swapfile.o
  CC      drivers/acpi/acpica/nsarguments.o
  CC [M]  drivers/gpu/drm/tests/drm_damage_helper_test.o
  CC [M]  drivers/gpu/drm/display/drm_hdcp_helper.o
  CC [M]  drivers/gpu/drm/display/drm_hdmi_helper.o
  AR      drivers/base/test/built-in.a
  CC      drivers/base/component.o
  CC      drivers/char/agp/intel-gtt.o
  CC      net/bridge/br_multicast_eht.o
  CC      drivers/acpi/acpica/nsconvert.o
  CC [M]  fs/cifs/cifsacl.o
  CC      net/ipv4/fib_semantics.o
  CC [M]  drivers/gpu/drm/display/drm_scdc_helper.o
  CC      mm/swap_slots.o
  CC      drivers/base/regmap/regcache.o
  CC      mm/dmapool.o
  CC      drivers/base/power/qos.o
  CC [M]  drivers/gpu/drm/tests/drm_dp_mst_helper_test.o
  CC      net/core/flow_offload.o
  CC      drivers/base/power/runtime.o
  CC      kernel/resource.o
  CC      drivers/acpi/acpica/nsdump.o
  CC [M]  drivers/gpu/drm/display/drm_dp_aux_dev.o
  CC      kernel/sysctl.o
  CC      kernel/trace/error_report-traces.o
  CC      fs/btrfs/orphan.o
  CC      drivers/tty/serial/8250/8250_lpss.o
  CC      fs/btrfs/export.o
  CC      drivers/tty/tty_port.o
  AR      drivers/connector/built-in.a
  CC [M]  fs/cifs/fs_context.o
  CC      arch/x86/kernel/kvmclock.o
  CC      drivers/tty/serial/8250/8250_mid.o
  CC      drivers/char/tpm/tpm2-cmd.o
  CC      drivers/block/loop.o
  CC      drivers/tty/serial/8250/8250_pericom.o
  CC [M]  net/bluetooth/hci_sock.o
  CC [M]  net/bluetooth/hci_sysfs.o
  CC      drivers/tty/tty_mutex.o
  AR      drivers/gpu/drm/rcar-du/built-in.a
  CC      drivers/base/core.o
  CC      drivers/acpi/acpica/nseval.o
  CC      drivers/acpi/acpica/nsinit.o
  CC      mm/hugetlb.o
  CC      mm/hugetlb_vmemmap.o
  AR      drivers/iommu/iommufd/built-in.a
  CC      drivers/iommu/iommu.o
  CC      net/ipv6/datagram.o
  CC      kernel/trace/power-traces.o
  AR      drivers/char/agp/built-in.a
  CC      drivers/char/misc.o
  CC      kernel/trace/rpm-traces.o
  CC [M]  drivers/gpu/drm/tests/drm_format_helper_test.o
  CC      drivers/base/bus.o
  CC      drivers/base/dd.o
  CC      drivers/base/regmap/regcache-rbtree.o
  CC      drivers/base/power/wakeirq.o
  CC      arch/x86/kernel/paravirt.o
  CC      drivers/char/virtio_console.o
  CC      fs/btrfs/tree-log.o
  CC      drivers/acpi/acpica/nsload.o
  CC      drivers/acpi/acpica/nsnames.o
  CC      drivers/char/hpet.o
  CC      net/bridge/br_vlan.o
  CC      net/bridge/br_vlan_tunnel.o
  AR      drivers/tty/serial/8250/built-in.a
  CC      drivers/base/regmap/regcache-flat.o
  AR      drivers/tty/serial/built-in.a
  CC      drivers/tty/tty_ldsem.o
  CC      net/bridge/br_vlan_options.o
  CC      drivers/iommu/iommu-traces.o
  CC      net/bridge/br_mst.o
  CC      net/core/gro.o
  CC      drivers/char/tpm/tpmrm-dev.o
  CC      kernel/capability.o
  CC      drivers/base/regmap/regmap-debugfs.o
  CC      drivers/base/regmap/regmap-i2c.o
  CC      kernel/ptrace.o
  CC      drivers/base/syscore.o
  CC      drivers/char/nvram.o
  CC      fs/attr.o
  CC      drivers/acpi/acpica/nsobject.o
  CC      drivers/base/power/main.o
  CC [M]  net/bluetooth/l2cap_core.o
  LD [M]  drivers/gpu/drm/display/drm_display_helper.o
  CC [M]  net/bluetooth/l2cap_sock.o
  CC      net/ipv4/fib_trie.o
  CC      mm/sparse.o
  CC      arch/x86/kernel/pvclock.o
  CC [M]  drivers/gpu/drm/tests/drm_format_test.o
  CC      arch/x86/kernel/pcspeaker.o
  CC      kernel/user.o
  CC      drivers/base/regmap/regmap-irq.o
  CC      drivers/tty/tty_baudrate.o
  CC      drivers/iommu/intel/pasid.o
  CC      drivers/base/driver.o
  CC      drivers/char/tpm/tpm2-space.o
  CC      mm/sparse-vmemmap.o
  CC      drivers/acpi/acpica/nsparse.o
  CC      drivers/block/virtio_blk.o
  CC      mm/mmu_notifier.o
  CC [M]  net/bluetooth/smp.o
  CC      net/ipv6/ip6_flowlabel.o
  CC      fs/btrfs/free-space-cache.o
  CC [M]  fs/cifs/dns_resolve.o
  CC      drivers/tty/tty_jobctrl.o
  CC      drivers/iommu/intel/trace.o
  CC [M]  drivers/block/nbd.o
  CC      drivers/tty/n_null.o
  CC [M]  drivers/gpu/drm/tests/drm_framebuffer_test.o
  CC      fs/bad_inode.o
  CC [M]  drivers/gpu/drm/tests/drm_managed_test.o
  CC      kernel/trace/trace_dynevent.o
  CC [M]  drivers/gpu/drm/tests/drm_mm_test.o
  CC      fs/file.o
  CC      drivers/tty/pty.o
  CC      arch/x86/kernel/check.o
  CC      drivers/iommu/iommu-sysfs.o
  CC      drivers/iommu/dma-iommu.o
  CC      drivers/iommu/ioasid.o
  CC      drivers/char/tpm/tpm-sysfs.o
  CC      drivers/acpi/acpica/nspredef.o
  CC      drivers/iommu/intel/cap_audit.o
  AR      drivers/misc/eeprom/built-in.a
  AR      drivers/misc/cb710/built-in.a
  AR      drivers/misc/ti-st/built-in.a
  AR      drivers/misc/lis3lv02d/built-in.a
  AR      drivers/misc/cardreader/built-in.a
  CC      drivers/mfd/mfd-core.o
  CC      drivers/mfd/intel-lpss.o
  CC [M]  drivers/misc/mei/hdcp/mei_hdcp.o
  CC      kernel/signal.o
  CC      net/ipv4/fib_notifier.o
  CC      drivers/iommu/intel/irq_remapping.o
  CC      drivers/acpi/acpica/nsprepkg.o
  CC      drivers/char/tpm/eventlog/common.o
  CC [M]  net/bridge/br_netfilter_hooks.o
  CC      fs/filesystems.o
  CC      net/ipv4/inet_fragment.o
  AR      drivers/misc/built-in.a
  CC      drivers/mfd/intel-lpss-pci.o
  CC      drivers/mfd/intel-lpss-acpi.o
  CC      fs/btrfs/zlib.o
  CC [M]  drivers/misc/mei/pxp/mei_pxp.o
  CC      arch/x86/kernel/uprobes.o
  CC      mm/ksm.o
  CC      net/core/netdev-genl.o
  CC [M]  net/bridge/br_netfilter_ipv6.o
  CC      kernel/sys.o
  CC [M]  net/bluetooth/lib.o
  AR      drivers/base/regmap/built-in.a
  CC      drivers/base/class.o
  CC      kernel/trace/trace_probe.o
  CC      arch/x86/kernel/perf_regs.o
  CC      drivers/mfd/intel_soc_pmic_crc.o
  CC      fs/ext4/xattr.o
  CC      drivers/tty/sysrq.o
  CC      drivers/acpi/acpica/nsrepair.o
  ASN.1   fs/cifs/cifs_spnego_negtokeninit.asn1.[ch]
  CC      drivers/base/platform.o
  CC [M]  fs/cifs/smb1ops.o
  CC      kernel/umh.o
  CC [M]  fs/cifs/cifssmb.o
  CC      fs/btrfs/lzo.o
  CC      drivers/base/power/wakeup.o
  CC      arch/x86/kernel/tracepoint.o
  CC      drivers/char/tpm/eventlog/tpm1.o
  CC      kernel/trace/trace_uprobe.o
  CC [M]  drivers/gpu/drm/tests/drm_modes_test.o
  CC      drivers/iommu/iova.o
  CC [M]  drivers/misc/mei/init.o
  CC      drivers/base/power/wakeup_stats.o
  CC      drivers/base/power/domain.o
  CC      drivers/iommu/intel/perfmon.o
  CC      net/ipv6/inet6_connection_sock.o
  CC      drivers/acpi/acpica/nsrepair2.o
  CC      fs/btrfs/zstd.o
  AR      net/bridge/built-in.a
  CC      fs/btrfs/compression.o
  CC      kernel/trace/rethook.o
  CC      drivers/iommu/irq_remapping.o
  CC [M]  fs/cifs/cifs_spnego_negtokeninit.asn1.o
  CC      arch/x86/kernel/itmt.o
  CC      kernel/workqueue.o
  CC [M]  fs/cifs/asn1.o
  CC [M]  drivers/gpu/drm/tests/drm_plane_helper_test.o
  CC [M]  drivers/mfd/lpc_sch.o
  CC      lib/plist.o
  CC      net/core/netdev-genl-gen.o
  CC      lib/radix-tree.o
  CC      drivers/base/power/domain_governor.o
  CC      drivers/base/power/clock_ops.o
  CC      kernel/pid.o
  CC      kernel/task_work.o
  CC      drivers/char/tpm/eventlog/tpm2.o
  AR      drivers/nfc/built-in.a
  CC [M]  drivers/misc/mei/hbm.o
  AR      drivers/dax/hmem/built-in.a
  CC      drivers/dax/super.o
  AR      drivers/tty/built-in.a
  CC [M]  drivers/gpu/drm/tests/drm_probe_helper_test.o
  CC      drivers/acpi/acpica/nssearch.o
  CC      drivers/dax/bus.o
  CC [M]  drivers/misc/mei/interrupt.o
  CC      net/ipv4/ping.o
  CC      arch/x86/kernel/umip.o
  CC      drivers/char/tpm/tpm_ppi.o
  CC      kernel/extable.o
  CC [M]  drivers/gpu/drm/tests/drm_rect_test.o
  CC      drivers/acpi/acpica/nsutils.o
  CC      net/ipv4/ip_tunnel_core.o
  CC      lib/ratelimit.o
  CC      lib/rbtree.o
  CC      net/ipv4/gre_offload.o
  CC      drivers/acpi/acpica/nswalk.o
  CC      fs/btrfs/delayed-ref.o
  CC      net/core/net-sysfs.o
  CC [M]  drivers/mfd/lpc_ich.o
  CC      net/ipv4/metrics.o
  CC      drivers/acpi/nvs.o
  CC      lib/seq_buf.o
  CC      arch/x86/kernel/unwind_orc.o
  AR      drivers/gpu/drm/omapdrm/built-in.a
  CC      net/ipv6/udp_offload.o
  AR      drivers/gpu/drm/tilcdc/built-in.a
  CC      drivers/acpi/wakeup.o
  AR      drivers/gpu/drm/imx/built-in.a
  CC      lib/show_mem.o
  AR      drivers/iommu/intel/built-in.a
  AR      drivers/iommu/built-in.a
  CC      drivers/acpi/sleep.o
  AR      drivers/gpu/drm/i2c/built-in.a
  AR      drivers/block/built-in.a
  CC      drivers/char/tpm/eventlog/acpi.o
  CC      arch/x86/kernel/callthunks.o
  LD [M]  net/bridge/br_netfilter.o
  CC      arch/x86/kernel/mmconf-fam10h_64.o
  CC      net/ipv6/seg6.o
  CC      kernel/params.o
  CC      net/ipv6/fib6_notifier.o
  CC      drivers/char/tpm/eventlog/efi.o
  CC      drivers/dma-buf/dma-buf.o
  CC      drivers/char/tpm/tpm_crb.o
  CC      drivers/dma-buf/dma-fence.o
  CC      drivers/dma-buf/dma-fence-array.o
  CC      fs/ext4/xattr_hurd.o
  CC      drivers/acpi/acpica/nsxfeval.o
  CC      arch/x86/kernel/vsmp_64.o
  CC      lib/siphash.o
  AR      drivers/gpu/drm/panel/built-in.a
  AR      drivers/gpu/drm/bridge/analogix/built-in.a
  AR      drivers/gpu/drm/bridge/cadence/built-in.a
  AR      drivers/gpu/drm/bridge/imx/built-in.a
  AR      drivers/gpu/drm/bridge/synopsys/built-in.a
  AR      drivers/gpu/drm/bridge/built-in.a
  AR      drivers/gpu/drm/hisilicon/built-in.a
  AR      drivers/gpu/drm/mxsfb/built-in.a
  CC [M]  drivers/misc/mei/client.o
  AR      drivers/gpu/drm/tiny/built-in.a
  AR      drivers/gpu/drm/xlnx/built-in.a
  AR      drivers/base/power/built-in.a
  CC [M]  drivers/misc/mei/main.o
  CC      drivers/base/cpu.o
  AR      drivers/gpu/drm/gud/built-in.a
  AR      drivers/gpu/drm/solomon/built-in.a
  CC      fs/ext4/xattr_trusted.o
  CC [M]  drivers/gpu/drm/ttm/ttm_tt.o
  CC      mm/slub.o
  CC      mm/migrate.o
  CC      fs/ext4/xattr_user.o
  CC      fs/ext4/fast_commit.o
  CC      fs/ext4/orphan.o
  AR      kernel/trace/built-in.a
  CC      drivers/acpi/acpica/nsxfname.o
  CC [M]  net/bluetooth/ecdh_helper.o
  CC      kernel/kthread.o
  CC      mm/migrate_device.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo.o
  CC      drivers/acpi/acpica/nsxfobj.o
  CC [M]  drivers/misc/mei/dma-ring.o
  AR      drivers/mfd/built-in.a
  AR      drivers/dax/built-in.a
  AR      drivers/cxl/core/built-in.a
  CC [M]  drivers/misc/mei/bus.o
  AR      drivers/cxl/built-in.a
  CC      fs/namespace.o
  CC [M]  drivers/misc/mei/bus-fixup.o
  CC      lib/string.o
  CC      net/ipv6/rpl.o
  CC [M]  drivers/misc/mei/debugfs.o
  CC      drivers/dma-buf/dma-fence-chain.o
  CC      lib/timerqueue.o
  CC      lib/vsprintf.o
  CC      net/ipv6/ioam6.o
  AR      arch/x86/kernel/built-in.a
  AR      drivers/macintosh/built-in.a
  CC      drivers/base/firmware.o
  AR      arch/x86/built-in.a
  CC [M]  drivers/misc/mei/mei-trace.o
  CC [M]  drivers/gpu/drm/scheduler/sched_main.o
  CC      net/ipv4/netlink.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.o
  CC [M]  drivers/misc/mei/pci-me.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_device.o
  CC      drivers/scsi/scsi.o
  CC      drivers/acpi/acpica/psargs.o
  AR      drivers/char/tpm/built-in.a
  CC      lib/win_minmax.o
  AR      drivers/char/built-in.a
  CC      drivers/scsi/hosts.o
  CC      drivers/nvme/host/core.o
  AR      drivers/nvme/target/built-in.a
  CC      drivers/scsi/scsi_ioctl.o
  CC      drivers/nvme/host/ioctl.o
  CC      drivers/nvme/host/trace.o
  CC [M]  drivers/gpu/drm/scheduler/sched_fence.o
  CC      drivers/acpi/device_sysfs.o
  CC      drivers/base/init.o
  CC      drivers/acpi/device_pm.o
  CC      drivers/ata/libata-core.o
  CC      drivers/ata/libata-scsi.o
  CC      drivers/spi/spi.o
  CC      drivers/net/phy/mdio-boardinfo.o
  AR      drivers/firewire/built-in.a
  CC [M]  drivers/gpu/drm/ttm/ttm_bo_util.o
  CC      drivers/base/map.o
  CC [M]  net/bluetooth/hci_request.o
  CC      drivers/dma-buf/dma-fence-unwrap.o
  CC      fs/btrfs/relocation.o
  CC [M]  drivers/misc/mei/hw-me.o
  CC      drivers/acpi/proc.o
  CC      drivers/acpi/bus.o
  CC [M]  net/bluetooth/mgmt_util.o
  CC      drivers/nvme/host/pci.o
  AR      drivers/cdrom/built-in.a
  AR      drivers/auxdisplay/built-in.a
  CC      drivers/usb/common/common.o
  CC      net/core/net-procfs.o
  CC      drivers/acpi/acpica/psloop.o
  CC      drivers/input/serio/serio.o
  CC      drivers/usb/common/debug.o
  CC      fs/btrfs/delayed-inode.o
  CC      drivers/base/devres.o
  CC      drivers/input/serio/i8042.o
  CC      fs/btrfs/scrub.o
  CC      fs/btrfs/backref.o
  CC      drivers/acpi/glue.o
  CC      lib/xarray.o
  CC      drivers/dma-buf/dma-resv.o
  CC      mm/huge_memory.o
  CC      net/ipv4/nexthop.o
  CC      net/ipv4/udp_tunnel_stub.o
  CC      net/ipv4/sysctl_net_ipv4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.o
  CC      drivers/net/phy/mdio_devres.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo_vm.o
  CC [M]  drivers/gpu/drm/ttm/ttm_module.o
  CC      net/core/netpoll.o
  CC [M]  drivers/gpu/drm/ttm/ttm_execbuf_util.o
  CC      drivers/acpi/acpica/psobject.o
  CC      drivers/dma-buf/sync_file.o
  CC      drivers/dma-buf/sw_sync.o
  CC      net/ipv4/proc.o
  CC      drivers/acpi/scan.o
  AR      drivers/usb/common/built-in.a
  CC [M]  drivers/gpu/drm/scheduler/sched_entity.o
  CC      drivers/usb/core/usb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.o
  CC      drivers/scsi/scsicam.o
  CC      drivers/usb/core/hub.o
  CC      drivers/input/serio/libps2.o
  CC      kernel/sys_ni.o
  LD [M]  fs/cifs/cifs.o
  CC      drivers/acpi/resource.o
  CC      drivers/dma-buf/sync_debug.o
  CC [M]  net/bluetooth/mgmt_config.o
  CC [M]  drivers/misc/mei/gsc-me.o
  CC      net/ipv6/sysctl_net_ipv6.o
  CC      drivers/scsi/scsi_error.o
  CC      drivers/net/phy/phy.o
  CC      drivers/base/attribute_container.o
  CC      drivers/acpi/acpica/psopcode.o
  CC [M]  net/bluetooth/hci_codec.o
  AR      fs/ext4/built-in.a
  CC      net/ipv4/syncookies.o
  CC      lib/lockref.o
  CC      fs/seq_file.o
  CC [M]  drivers/gpu/drm/ttm/ttm_range_manager.o
  CC      drivers/usb/core/hcd.o
  CC [M]  drivers/dma-buf/selftest.o
  CC      drivers/scsi/scsi_lib.o
  CC [M]  net/bluetooth/eir.o
  CC      mm/khugepaged.o
  CC      kernel/nsproxy.o
  CC [M]  drivers/dma-buf/st-dma-fence.o
  LD [M]  drivers/misc/mei/mei.o
  CC      drivers/acpi/acpica/psopinfo.o
  CC [M]  net/bluetooth/hci_sync.o
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.o
  CC      kernel/notifier.o
  CC [M]  drivers/dma-buf/st-dma-fence-chain.o
  CC [M]  drivers/dma-buf/st-dma-fence-unwrap.o
  AR      drivers/input/serio/built-in.a
  LD [M]  drivers/misc/mei/mei-me.o
  CC [M]  drivers/gpu/drm/ttm/ttm_resource.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_crtc.o
  CC      drivers/acpi/acpi_processor.o
  CC      net/ipv4/esp4.o
  CC      net/ipv4/esp4_offload.o
  LD [M]  drivers/misc/mei/mei-gsc.o
  CC      drivers/base/transport_class.o
  CC      drivers/ata/libata-eh.o
  CC      lib/bcd.o
  CC [M]  drivers/gpu/drm/i915/i915_driver.o
  CC      drivers/ata/libata-transport.o
  CC      lib/sort.o
  CC [M]  drivers/gpu/drm/i915/i915_drm_client.o
  CC      net/ipv6/xfrm6_policy.o
  CC      drivers/acpi/acpica/psparse.o
  CC      drivers/acpi/acpica/psscope.o
  CC      lib/parser.o
  CC [M]  net/bluetooth/sco.o
  CC      drivers/input/keyboard/atkbd.o
  CC      net/core/fib_rules.o
  CC      lib/debug_locks.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.o
  CC      drivers/base/topology.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atom.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.o
  CC      drivers/ata/libata-trace.o
  CC [M]  drivers/dma-buf/st-dma-resv.o
  CC [M]  net/bluetooth/iso.o
  CC      fs/xattr.o
  AR      drivers/input/mouse/built-in.a
  CC      drivers/acpi/acpica/pstree.o
  CC      fs/libfs.o
  CC      drivers/net/phy/phy-c45.o
  CC      drivers/acpi/processor_core.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.o
  CC      kernel/ksysfs.o
  CC      lib/random32.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_object.o
  AR      drivers/net/pse-pd/built-in.a
  CC      drivers/net/phy/phy-core.o
  CC      drivers/net/mdio/acpi_mdio.o
  CC      drivers/net/phy/phy_device.o
  CC      drivers/net/mdio/fwnode_mdio.o
  CC [M]  drivers/gpu/drm/ttm/ttm_pool.o
  CC      drivers/input/input.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  AR      drivers/dma-buf/built-in.a
  CC      drivers/acpi/acpica/psutils.o
  LD [M]  drivers/dma-buf/dmabuf_selftests.o
  CC      net/ipv4/netfilter.o
  CC      drivers/base/container.o
  CC      drivers/ata/libata-sata.o
  CC      net/core/net-traces.o
  CC      drivers/scsi/scsi_lib_dma.o
  CC      lib/bust_spinlocks.o
  CC [M]  drivers/gpu/drm/ttm/ttm_device.o
  CC      fs/btrfs/ulist.o
  AR      drivers/spi/built-in.a
  CC      drivers/scsi/scsi_scan.o
  CC [M]  net/bluetooth/a2mp.o
  CC      drivers/usb/core/urb.o
  CC      kernel/cred.o
  CC      drivers/base/property.o
  AR      drivers/nvme/host/built-in.a
  AR      drivers/nvme/built-in.a
  CC      drivers/ata/libata-sff.o
  CC      net/ipv6/xfrm6_state.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  CC      drivers/ata/libata-pmp.o
  CC      net/ipv4/inet_diag.o
  CC      drivers/acpi/acpica/pswalk.o
  CC      net/ipv4/tcp_diag.o
  AR      drivers/input/keyboard/built-in.a
  CC      drivers/rtc/lib.o
  CC      drivers/input/input-compat.o
  GEN     drivers/scsi/scsi_devinfo_tbl.c
  CC      drivers/scsi/scsi_devinfo.o
  CC      mm/page_counter.o
  CC      drivers/usb/core/message.o
  AR      drivers/net/mdio/built-in.a
  AR      drivers/net/pcs/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_config.o
  CC      lib/kasprintf.o
  CC      drivers/rtc/class.o
  CC      drivers/input/input-mt.o
  CC      mm/memcontrol.o
  CC [M]  drivers/gpu/drm/ttm/ttm_sys_manager.o
  CC [M]  drivers/gpu/drm/i915/i915_getparam.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  CC [M]  drivers/gpu/drm/i915/i915_ioctl.o
  CC      mm/vmpressure.o
  CC      drivers/usb/core/driver.o
  CC      drivers/acpi/acpica/psxface.o
  AR      drivers/net/ethernet/adi/built-in.a
  CC [M]  drivers/gpu/drm/ttm/ttm_agp_backend.o
  AR      drivers/net/ethernet/alacritech/built-in.a
  AR      drivers/net/ethernet/amazon/built-in.a
  CC      fs/fs-writeback.o
  AR      drivers/net/ethernet/aquantia/built-in.a
  AR      drivers/net/ethernet/asix/built-in.a
  AR      drivers/net/ethernet/cadence/built-in.a
  CC      mm/swap_cgroup.o
  AR      drivers/net/ethernet/broadcom/built-in.a
  CC [M]  drivers/net/ethernet/broadcom/b44.o
  CC [M]  net/bluetooth/amp.o
  CC      lib/bitmap.o
  CC      drivers/acpi/acpica/rsaddr.o
  CC [M]  drivers/gpu/drm/i915/i915_irq.o
  CC      drivers/rtc/interface.o
  CC      drivers/acpi/acpica/rscalc.o
  CC      kernel/reboot.o
  CC      drivers/input/input-poller.o
  CC      drivers/input/ff-core.o
  AR      drivers/net/ethernet/cavium/common/built-in.a
  AR      drivers/net/ethernet/cavium/thunder/built-in.a
  AR      drivers/net/ethernet/cortina/built-in.a
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  AR      drivers/net/ethernet/cavium/liquidio/built-in.a
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  CC      fs/btrfs/qgroup.o
  AR      drivers/net/ethernet/cavium/octeon/built-in.a
  AR      drivers/net/ethernet/cavium/built-in.a
  CC      drivers/input/touchscreen.o
  AR      drivers/net/usb/built-in.a
  CC      drivers/scsi/scsi_sysctl.o
  CC [M]  drivers/net/usb/pegasus.o
  CC [M]  drivers/net/usb/rtl8150.o
  CC      net/ipv4/udp_diag.o
  CC      net/ipv6/xfrm6_input.o
  AR      drivers/net/ethernet/engleder/built-in.a
  CC [M]  drivers/net/usb/r8152.o
  CC      net/ipv4/tcp_cubic.o
  CC      drivers/usb/core/config.o
  CC      drivers/rtc/nvmem.o
  CC      drivers/base/cacheinfo.o
  CC [M]  net/bluetooth/hci_debugfs.o
  CC      drivers/net/phy/linkmode.o
  AR      drivers/net/ethernet/ezchip/built-in.a
  CC      drivers/net/phy/mdio_bus.o
  CC      drivers/net/phy/mdio_device.o
  LD [M]  drivers/gpu/drm/ttm/ttm.o
  AR      drivers/net/ethernet/fungible/built-in.a
  CC      mm/hugetlb_cgroup.o
  CC      net/ipv4/xfrm4_policy.o
  CC      drivers/usb/core/file.o
  CC      drivers/acpi/processor_pdc.o
  CC [M]  drivers/gpu/drm/vgem/vgem_drv.o
  CC      drivers/acpi/acpica/rscreate.o
  CC [M]  drivers/gpu/drm/vgem/vgem_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC      drivers/input/ff-memless.o
  CC [M]  drivers/net/usb/asix_devices.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.o
  CC      drivers/net/phy/swphy.o
  CC      mm/kmemleak.o
  CC      drivers/rtc/dev.o
  CC      drivers/base/swnode.o
  CC      net/ipv6/xfrm6_output.o
  CC      drivers/scsi/scsi_debugfs.o
  CC      fs/btrfs/send.o
  CC      drivers/rtc/proc.o
  CC      drivers/base/auxiliary.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  CC      drivers/usb/core/buffer.o
  CC      kernel/async.o
  CC      drivers/acpi/acpica/rsdumpinfo.o
  CC      lib/scatterlist.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.o
  CC      drivers/ata/libata-acpi.o
  CC [M]  drivers/net/usb/asix_common.o
  CC      drivers/acpi/ec.o
  CC      kernel/range.o
  CC      fs/pnode.o
  CC      net/ipv6/xfrm6_protocol.o
  CC      drivers/input/vivaldi-fmap.o
  CC      drivers/usb/core/sysfs.o
  LD [M]  drivers/gpu/drm/vgem/vgem.o
  CC [M]  drivers/gpu/drm/ast/ast_drv.o
  CC      drivers/gpu/drm/drm_mipi_dsi.o
  CC      net/ipv4/xfrm4_state.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/object.o
  CC      net/ipv4/xfrm4_input.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/client.o
  CC      net/ipv4/xfrm4_output.o
  CC      net/ipv4/xfrm4_protocol.o
  CC      drivers/base/devtmpfs.o
  CC      drivers/net/phy/fixed_phy.o
  CC      drivers/acpi/acpica/rsinfo.o
  CC      drivers/scsi/scsi_trace.o
  CC      drivers/acpi/acpica/rsio.o
  CC [M]  net/ipv4/ip_tunnel.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/conn.o
  CC      drivers/base/memory.o
  CC      drivers/base/module.o
  CC      drivers/rtc/sysfs.o
  CC      kernel/smpboot.o
  CC [M]  drivers/gpu/drm/i915/i915_mitigations.o
  CC      drivers/base/pinctrl.o
  CC      drivers/rtc/rtc-mc146818-lib.o
  CC      drivers/input/input-leds.o
  CC      drivers/usb/core/endpoint.o
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_display.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/device.o
  CC [M]  drivers/net/phy/phylink.o
  CC      drivers/acpi/acpica/rsirq.o
  CC [M]  drivers/net/ethernet/broadcom/bnx2.o
  CC      fs/splice.o
  CC      drivers/input/mousedev.o
  AR      drivers/net/ethernet/huawei/built-in.a
  CC      lib/list_sort.o
  CC      lib/uuid.o
  LD [M]  net/bluetooth/bluetooth.o
  CC      drivers/rtc/rtc-cmos.o
  CC [M]  drivers/gpu/drm/ast/ast_i2c.o
  CC      kernel/ucount.o
  CC      drivers/base/platform-msi.o
  CC      mm/page_isolation.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.o
  CC [M]  drivers/net/phy/aquantia_main.o
  CC      drivers/base/physical_location.o
  CC      drivers/scsi/scsi_logging.o
  CC      drivers/base/trace.o
  CC      lib/iov_iter.o
  CC      drivers/ata/libata-pata-timings.o
  CC      lib/clz_ctz.o
  CC [M]  drivers/net/phy/aquantia_hwmon.o
  CC      fs/sync.o
  CC      mm/early_ioremap.o
  CC      drivers/acpi/acpica/rslist.o
  CC      drivers/usb/core/devio.o
  CC [M]  net/ipv4/udp_tunnel_core.o
  CC [M]  net/ipv4/udp_tunnel_nic.o
  CC      drivers/input/evdev.o
  CC      drivers/acpi/acpica/rsmemory.o
  CC      drivers/acpi/acpica/rsmisc.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/disp.o
  CC      drivers/scsi/scsi_pm.o
  CC      net/ipv6/netfilter.o
  AR      drivers/i2c/algos/built-in.a
  CC [M]  drivers/i2c/algos/i2c-algo-bit.o
  CC      drivers/i2c/busses/i2c-designware-common.o
  AR      drivers/i3c/built-in.a
  AR      drivers/i2c/muxes/built-in.a
  CC [M]  drivers/i2c/muxes/i2c-mux-gpio.o
  CC [M]  drivers/gpu/drm/i915/i915_module.o
  CC      net/ipv6/fib6_rules.o
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC      drivers/ata/ahci.o
  CC [M]  drivers/net/phy/ax88796b.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_main.o
  CC      kernel/regset.o
  CC      kernel/kmod.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_hw.o
  CC      net/core/selftests.o
  CC [M]  drivers/net/ethernet/intel/e1000e/82571.o
  CC [M]  drivers/gpu/drm/ast/ast_main.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ich8lan.o
  CC      drivers/acpi/acpica/rsserial.o
  AR      drivers/base/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvif/driver.o
  CC      mm/cma.o
  CC      drivers/scsi/scsi_bsg.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/event.o
  CC      drivers/acpi/acpica/rsutils.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_ethtool.o
  AR      drivers/rtc/built-in.a
  CC [M]  drivers/net/ethernet/intel/e1000e/80003es2lan.o
  CC      drivers/ata/libahci.o
  CC [M]  drivers/gpu/drm/ast/ast_mm.o
  CC      drivers/usb/core/notify.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/fifo.o
  CC      net/core/ptp_classifier.o
  CC [M]  drivers/net/ethernet/broadcom/cnic.o
  CC      fs/utimes.o
  CC [M]  drivers/net/ipvlan/ipvlan_core.o
  CC      drivers/acpi/acpica/rsxface.o
  CC      drivers/acpi/acpica/tbdata.o
  CC [M]  drivers/net/vxlan/vxlan_core.o
  CC      drivers/i2c/busses/i2c-designware-master.o
  CC      drivers/net/loopback.o
  CC [M]  drivers/net/vxlan/vxlan_multicast.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.o
  CC      fs/d_path.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ring.o
  AR      drivers/input/built-in.a
  CC      net/core/netprio_cgroup.o
  CC      drivers/i2c/i2c-boardinfo.o
  CC      kernel/groups.o
  CC [M]  drivers/gpu/drm/i915/i915_params.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_main.o
  CC      fs/stack.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC      drivers/ata/ata_piix.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/head.o
  CC      drivers/scsi/scsi_common.o
  CC [M]  drivers/net/vxlan/vxlan_vnifilter.o
  CC      drivers/acpi/acpica/tbfadt.o
  CC      fs/btrfs/dev-replace.o
  CC      net/ipv6/proc.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_param.o
  CC      lib/bsearch.o
  AR      net/ipv4/built-in.a
  CC      fs/fs_struct.o
  LD [M]  net/ipv4/udp_tunnel.o
  CC [M]  drivers/net/ethernet/intel/e1000e/mac.o
  CC [M]  drivers/gpu/drm/ast/ast_mode.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/mem.o
  CC      fs/statfs.o
  CC      fs/btrfs/raid56.o
  CC [M]  drivers/net/phy/bcm7xxx.o
  CC      fs/fs_pin.o
  CC      drivers/scsi/sd.o
  AR      drivers/usb/phy/built-in.a
  CC      drivers/usb/host/pci-quirks.o
  CC      drivers/i2c/i2c-core-base.o
  CC      drivers/usb/storage/scsiglue.o
  CC      drivers/acpi/acpica/tbfind.o
  CC [M]  drivers/net/ethernet/intel/e1000e/manage.o
  CC      kernel/kcmp.o
  CC [M]  drivers/gpu/drm/i915/i915_pci.o
  CC      lib/find_bit.o
  CC      drivers/acpi/acpica/tbinstal.o
  CC      drivers/i2c/busses/i2c-designware-platdrv.o
  CC      drivers/usb/storage/protocol.o
  CC      drivers/i2c/i2c-core-smbus.o
  CC      drivers/usb/core/generic.o
  CC      net/core/dst_cache.o
  CC [M]  drivers/gpu/drm/drm_aperture.o
  CC      mm/secretmem.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_main.o
  AR      drivers/net/ethernet/i825xx/built-in.a
  CC      mm/userfaultfd.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_mac.o
  AR      drivers/net/ethernet/microsoft/built-in.a
  CC [M]  drivers/net/ethernet/intel/igc/igc_i225.o
  AR      drivers/media/i2c/built-in.a
  AR      drivers/media/tuners/built-in.a
  CC [M]  drivers/net/ipvlan/ipvlan_main.o
  CC [M]  drivers/gpu/drm/i915/i915_scatterlist.o
  AR      drivers/media/rc/keymaps/built-in.a
  AR      drivers/media/rc/built-in.a
  CC      lib/llist.o
  AR      drivers/media/common/b2c2/built-in.a
  AR      drivers/media/common/saa7146/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.o
  AR      drivers/media/common/siano/built-in.a
  AR      drivers/media/common/v4l2-tpg/built-in.a
  CC [M]  drivers/gpu/drm/drm_atomic.o
  AR      drivers/media/common/videobuf2/built-in.a
  AR      drivers/media/common/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvif/mmu.o
  AR      drivers/media/platform/allegro-dvt/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC      drivers/acpi/acpica/tbprint.o
  AR      drivers/media/platform/amlogic/meson-ge2d/built-in.a
  CC      lib/memweight.o
  CC [M]  drivers/gpu/drm/i915/i915_suspend.o
  AR      drivers/media/platform/amlogic/built-in.a
  AR      drivers/media/platform/amphion/built-in.a
  AR      drivers/media/platform/aspeed/built-in.a
  CC      drivers/acpi/acpica/tbutils.o
  AR      drivers/media/platform/atmel/built-in.a
  AR      drivers/media/platform/cadence/built-in.a
  CC      net/ipv6/syncookies.o
  AR      drivers/ata/built-in.a
  AR      drivers/media/platform/chips-media/built-in.a
  AR      drivers/media/platform/intel/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_switcheroo.o
  AR      drivers/ptp/built-in.a
  CC [M]  drivers/ptp/ptp_clock.o
  AR      drivers/media/platform/marvell/built-in.a
  CC      lib/kfifo.o
  CC [M]  drivers/gpu/drm/i915/i915_sysfs.o
  AR      drivers/media/platform/mediatek/jpeg/built-in.a
  CC [M]  drivers/net/phy/bcm87xx.o
  AR      drivers/media/platform/mediatek/mdp/built-in.a
  CC      kernel/freezer.o
  AR      drivers/media/platform/mediatek/vcodec/built-in.a
  AR      drivers/media/platform/mediatek/vpu/built-in.a
  AR      drivers/media/platform/mediatek/mdp3/built-in.a
  AR      drivers/media/platform/mediatek/built-in.a
  AR      drivers/power/reset/built-in.a
  AR      drivers/media/platform/microchip/built-in.a
  CC      drivers/power/supply/power_supply_core.o
  CC      drivers/usb/storage/transport.o
  AR      drivers/media/platform/nvidia/tegra-vde/built-in.a
  CC      drivers/usb/core/quirks.o
  AR      drivers/media/platform/nvidia/built-in.a
  AR      drivers/media/platform/nxp/dw100/built-in.a
  AR      drivers/media/platform/nxp/imx-jpeg/built-in.a
  CC      drivers/usb/host/ehci-hcd.o
  AR      drivers/media/platform/nxp/built-in.a
  AR      drivers/media/platform/qcom/camss/built-in.a
  AR      drivers/media/platform/qcom/venus/built-in.a
  AR      drivers/media/platform/qcom/built-in.a
  AR      drivers/media/platform/renesas/rcar-vin/built-in.a
  AR      drivers/media/platform/renesas/rzg2l-cru/built-in.a
  AR      drivers/media/platform/renesas/vsp1/built-in.a
  CC      drivers/i2c/busses/i2c-designware-baytrail.o
  AR      drivers/media/platform/renesas/built-in.a
  CC      drivers/power/supply/power_supply_sysfs.o
  AR      drivers/media/platform/rockchip/rga/built-in.a
  AR      drivers/media/platform/rockchip/rkisp1/built-in.a
  CC      drivers/power/supply/power_supply_leds.o
  AR      drivers/media/platform/rockchip/built-in.a
  AR      drivers/media/platform/samsung/exynos-gsc/built-in.a
  CC      drivers/power/supply/power_supply_hwmon.o
  AR      drivers/media/platform/samsung/exynos4-is/built-in.a
  CC      drivers/acpi/acpica/tbxface.o
  AR      drivers/media/platform/samsung/s3c-camif/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_bios.o
  CC [M]  drivers/gpu/drm/ast/ast_post.o
  AR      drivers/media/platform/samsung/s5p-g2d/built-in.a
  AR      drivers/media/platform/samsung/s5p-jpeg/built-in.a
  AR      drivers/media/platform/samsung/s5p-mfc/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_dp501.o
  AR      drivers/media/platform/samsung/built-in.a
  CC [M]  drivers/gpu/drm/ast/ast_dp.o
  AR      drivers/media/platform/st/sti/bdisp/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.o
  AR      drivers/media/platform/st/sti/c8sectpfe/built-in.a
  AR      drivers/media/platform/st/sti/delta/built-in.a
  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      kernel/stacktrace.o
  CC      net/core/gro_cells.o
  AR      drivers/media/platform/sunxi/sun4i-csi/built-in.a
  CC [M]  drivers/net/usb/ax88172a.o
  AR      drivers/media/platform/sunxi/sun6i-csi/built-in.a
  AR      drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-di/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-rotate/built-in.a
  CC [M]  drivers/net/ethernet/intel/e1000e/nvm.o
  AR      drivers/media/platform/sunxi/built-in.a
  CC [M]  drivers/net/usb/ax88179_178a.o
  AR      drivers/media/platform/ti/am437x/built-in.a
  AR      drivers/media/platform/ti/cal/built-in.a
  CC      kernel/dma.o
  AR      drivers/media/platform/ti/vpe/built-in.a
  AR      drivers/media/platform/ti/davinci/built-in.a
  AR      drivers/media/platform/ti/omap/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvif/outp.o
  AR      drivers/media/platform/ti/omap3isp/built-in.a
  AR      drivers/media/platform/ti/built-in.a
  AR      drivers/media/platform/verisilicon/built-in.a
  AR      drivers/media/platform/via/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_utils.o
  AR      drivers/media/platform/xilinx/built-in.a
  AR      drivers/media/platform/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC [M]  drivers/net/phy/bcm-phy-lib.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_dp.o
  AR      drivers/media/pci/ttpci/built-in.a
  AR      drivers/media/pci/b2c2/built-in.a
  CC      lib/percpu-refcount.o
  AR      drivers/media/pci/pluto2/built-in.a
  CC [M]  drivers/net/phy/broadcom.o
  AR      drivers/media/pci/dm1105/built-in.a
  CC      drivers/usb/core/devices.o
  AR      drivers/media/pci/pt1/built-in.a
  CC      mm/memremap.o
  AR      drivers/media/pci/pt3/built-in.a
  CC      fs/nsfs.o
  CC      fs/fs_types.o
  CC      drivers/acpi/acpica/tbxfload.o
  AR      drivers/media/pci/mantis/built-in.a
  AR      drivers/media/pci/ngene/built-in.a
  CC      drivers/i2c/i2c-core-acpi.o
  AR      drivers/media/pci/ddbridge/built-in.a
  AR      drivers/media/pci/saa7146/built-in.a
  CC [M]  drivers/ptp/ptp_chardev.o
  AR      drivers/media/pci/smipcie/built-in.a
  CC      mm/hmm.o
  AR      drivers/media/pci/netup_unidvb/built-in.a
  CC [M]  drivers/gpu/drm/drm_atomic_uapi.o
  AR      drivers/media/pci/intel/ipu3/built-in.a
  CC [M]  drivers/i2c/busses/i2c-scmi.o
  AR      drivers/media/pci/intel/built-in.a
  AR      drivers/media/pci/built-in.a
  AR      drivers/power/supply/built-in.a
  AR      drivers/media/usb/b2c2/built-in.a
  AR      drivers/power/built-in.a
  AR      drivers/media/usb/dvb-usb/built-in.a
  CC [M]  drivers/gpu/drm/drm_auth.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_base.o
  AR      drivers/media/usb/dvb-usb-v2/built-in.a
  CC [M]  drivers/gpu/drm/drm_blend.o
  AR      drivers/media/usb/s2255/built-in.a
  AR      drivers/media/usb/siano/built-in.a
  AR      drivers/media/usb/ttusb-budget/built-in.a
  AR      drivers/media/usb/ttusb-dec/built-in.a
  AR      drivers/media/usb/built-in.a
  AR      drivers/media/mmc/siano/built-in.a
  AR      drivers/media/mmc/built-in.a
  CC [M]  drivers/gpu/drm/drm_bridge.o
  AR      drivers/media/firewire/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  LD [M]  drivers/net/ethernet/intel/e1000/e1000.o
  AR      drivers/media/spi/built-in.a
  AR      drivers/media/test-drivers/built-in.a
  CC      drivers/usb/storage/usb.o
  CC      kernel/smp.o
  AR      drivers/media/built-in.a
  CC      net/ipv6/mip6.o
  CC      drivers/acpi/acpica/tbxfroot.o
  CC [M]  drivers/net/ipvlan/ipvlan_l3s.o
  CC      fs/fs_context.o
  CC [M]  drivers/gpu/drm/drm_cache.o
  CC      drivers/usb/core/phy.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_nvm.o
  CC      fs/btrfs/uuid-tree.o
  CC      fs/fs_parser.o
  CC      fs/btrfs/props.o
  CC      net/core/failover.o
  CC      fs/fsopen.o
  CC      drivers/acpi/acpica/utaddress.o
  CC      drivers/acpi/acpica/utalloc.o
  CC      fs/btrfs/free-space-tree.o
  CC      drivers/i2c/i2c-core-slave.o
  CC      drivers/scsi/sg.o
  CC      lib/rhashtable.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/timer.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_ethtool.o
  CC      drivers/usb/core/port.o
  CC [M]  drivers/gpu/drm/i915/intel_clock_gating.o
  CC      fs/btrfs/tree-checker.o
  CC      drivers/usb/core/hcd-pci.o
  CC      lib/base64.o
  CC [M]  drivers/net/ethernet/intel/e1000e/phy.o
  CC [M]  drivers/ptp/ptp_sysfs.o
  CC      drivers/scsi/scsi_sysfs.o
  CC [M]  drivers/i2c/busses/i2c-ccgx-ucsi.o
  LD [M]  drivers/gpu/drm/ast/ast.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_82575.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC [M]  drivers/net/phy/lxt.o
  CC [M]  drivers/gpu/drm/i915/intel_device_info.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_afmt.o
  CC [M]  drivers/i2c/busses/i2c-i801.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC      drivers/acpi/acpica/utascii.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_phy.o
  CC      mm/memfd.o
  CC      kernel/uid16.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_mac.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_nvm.o
  CC      drivers/i2c/i2c-dev.o
  CC [M]  drivers/gpu/drm/drm_client.o
  CC [M]  drivers/net/usb/cdc_ether.o
  CC [M]  drivers/net/phy/realtek.o
  CC [M]  drivers/net/ethernet/broadcom/tg3.o
  CC      drivers/usb/storage/initializers.o
  CC      fs/init.o
  CC      mm/bootmem_info.o
  CC      fs/kernel_read_file.o
  AR      net/core/built-in.a
  CC      drivers/usb/storage/sierra_ms.o
  LD [M]  drivers/net/ipvlan/ipvlan.o
  CC      drivers/acpi/acpica/utbuffer.o
  CC      net/ipv6/addrconf_core.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/vmm.o
  CC [M]  drivers/i2c/i2c-smbus.o
  CC [M]  drivers/i2c/busses/i2c-isch.o
  CC      lib/once.o
  CC      fs/btrfs/space-info.o
  CC [M]  drivers/gpu/drm/drm_client_modeset.o
  CC      drivers/usb/core/usb-acpi.o
  CC [M]  drivers/ptp/ptp_vclock.o
  LD [M]  drivers/net/vxlan/vxlan.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/user.o
  CC [M]  drivers/net/ethernet/intel/e1000e/param.o
  CC      drivers/usb/storage/option_ms.o
  CC      drivers/usb/host/ehci-pci.o
  CC      drivers/acpi/acpica/utcksum.o
  CC      drivers/acpi/acpica/utcopy.o
  CC      drivers/acpi/acpica/utexcep.o
  CC      drivers/acpi/acpica/utdebug.o
  CC      kernel/kallsyms.o
  CC      lib/refcount.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ethtool.o
  CC [M]  drivers/gpu/drm/drm_color_mgmt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_encoders.o
  AR      mm/built-in.a
  CC [M]  drivers/i2c/busses/i2c-ismt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_diag.o
  CC [M]  drivers/gpu/drm/drm_connector.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_ethtool.o
  CC      kernel/acct.o
  CC      lib/usercopy.o
  CC      kernel/crash_core.o
  CC [M]  drivers/net/usb/cdc_eem.o
  CC [M]  drivers/net/phy/smsc.o
  CC      fs/mnt_idmapping.o
  CC      fs/remap_range.o
  AR      drivers/scsi/built-in.a
  CC [M]  drivers/ptp/ptp_kvm_x86.o
  CC      drivers/acpi/acpica/utdecode.o
  CC      drivers/net/netconsole.o
  CC      drivers/usb/storage/usual-tables.o
  CC      fs/btrfs/block-rsv.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/userc361.o
  CC      fs/btrfs/delalloc-space.o
  CC      drivers/acpi/dock.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_mbx.o
  CC      drivers/acpi/pci_root.o
  CC [M]  drivers/gpu/drm/i915/intel_memory_region.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_i210.o
  CC      lib/errseq.o
  CC      drivers/acpi/acpica/utdelete.o
  CC [M]  drivers/i2c/busses/i2c-piix4.o
  CC      net/ipv6/exthdrs_core.o
  AR      drivers/usb/core/built-in.a
  CC [M]  drivers/net/ethernet/intel/igb/igb_ptp.o
  CC      fs/btrfs/block-group.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sa.o
  CC      drivers/acpi/pci_link.o
  CC      lib/bucket_locks.o
  CC      fs/btrfs/discard.o
  CC      fs/btrfs/reflink.o
  CC [M]  drivers/i2c/i2c-mux.o
  CC      drivers/net/virtio_net.o
  CC [M]  drivers/gpu/drm/i915/intel_pcode.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  CC      lib/generic-radix-tree.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  CC      drivers/acpi/pci_irq.o
  CC      kernel/compat.o
  AR      drivers/usb/storage/built-in.a
  CC      drivers/acpi/acpica/uterror.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/client.o
  CC      lib/string_helpers.o
  CC [M]  drivers/ptp/ptp_kvm_common.o
  CC      lib/hexdump.o
  LD [M]  drivers/ptp/ptp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/engine.o
  CC [M]  drivers/net/usb/smsc75xx.o
  CC      net/ipv6/ip6_checksum.o
  CC [M]  drivers/gpu/drm/i915/intel_region_ttm.o
  CC      kernel/utsname.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/enum.o
  CC      lib/kstrtox.o
  LD [M]  drivers/net/phy/aquantia.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_i2c.o
  AR      drivers/net/phy/built-in.a
  CC [M]  drivers/i2c/busses/i2c-designware-pcidrv.o
  CC [M]  drivers/net/usb/smsc95xx.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC [M]  drivers/net/ethernet/intel/e1000e/netdev.o
  CC      drivers/net/net_failover.o
  AR      drivers/i2c/busses/built-in.a
  CC      lib/debug_info.o
  CC [M]  drivers/net/usb/mcs7830.o
  CC      drivers/acpi/acpica/uteval.o
  CC      lib/iomap.o
  CC      drivers/usb/serial/usb-serial.o
  CC      drivers/acpi/acpi_lpss.o
  CC      drivers/usb/host/ohci-hcd.o
  CC      drivers/acpi/acpica/utglobal.o
  CC      drivers/acpi/acpica/uthex.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_hwmon.o
  CC      drivers/usb/host/ohci-pci.o
  CC      drivers/usb/host/uhci-hcd.o
  CC [M]  drivers/gpu/drm/i915/intel_runtime_pm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.o
  CC      kernel/user_namespace.o
  CC      drivers/acpi/acpica/utids.o
  CC [M]  drivers/net/usb/usbnet.o
  CC      drivers/usb/host/xhci.o
  CC      fs/btrfs/subpage.o
  LD [M]  drivers/ptp/ptp_kvm.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.o
  CC      drivers/usb/host/xhci-mem.o
  CC      drivers/acpi/acpi_apd.o
  CC      drivers/acpi/acpi_platform.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_ptp.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ptp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/event.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.o
  CC [M]  drivers/net/dummy.o
  CC [M]  drivers/net/usb/cdc_ncm.o
  CC      drivers/acpi/acpica/utinit.o
  CC      fs/buffer.o
  CC      drivers/hwmon/hwmon.o
  CC      drivers/acpi/acpica/utlock.o
  CC [M]  drivers/hwmon/acpi_power_meter.o
  CC [M]  drivers/hwmon/coretemp.o
  LD [M]  drivers/i2c/busses/i2c-designware-pci.o
  AR      drivers/i2c/built-in.a
  CC [M]  drivers/net/macvlan.o
  CC [M]  drivers/net/usb/r8153_ecm.o
  CC      net/ipv6/ip6_icmp.o
  CC      net/ipv6/output_core.o
  CC      net/ipv6/protocol.o
  CC [M]  drivers/net/mii.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  CC      drivers/usb/serial/generic.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_dump.o
  CC      drivers/usb/host/xhci-ext-caps.o
  CC [M]  drivers/gpu/drm/i915/intel_sbi.o
  CC      drivers/acpi/acpica/utmath.o
  LD [M]  drivers/net/usb/asix.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ib.o
  AR      drivers/thermal/broadcom/built-in.a
  AR      drivers/thermal/samsung/built-in.a
  CC      drivers/acpi/acpi_pnp.o
  CC      drivers/thermal/intel/intel_tcc.o
  LD [M]  drivers/net/ethernet/intel/igb/igb.o
  CC      lib/pci_iomap.o
  CC      drivers/thermal/intel/therm_throt.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC      fs/btrfs/tree-mod-log.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_pll.o
  CC      drivers/watchdog/watchdog_core.o
  CC      kernel/pid_namespace.o
  CC      drivers/watchdog/watchdog_dev.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.o
  CC      fs/btrfs/extent-io-tree.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/firmware.o
  CC      drivers/acpi/acpica/utmisc.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_tsn.o
  CC      fs/mpage.o
  UPD     kernel/config_data
  AR      drivers/net/ethernet/litex/built-in.a
  CC      kernel/stop_machine.o
  CC      fs/btrfs/fs.o
  CC      drivers/usb/serial/bus.o
  CC      fs/btrfs/messages.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  CC      fs/btrfs/bio.o
  CC      fs/btrfs/lru_cache.o
  CC [M]  drivers/md/persistent-data/dm-array.o
  CC      drivers/md/md.o
  CC [M]  drivers/md/persistent-data/dm-bitset.o
  CC      drivers/md/md-bitmap.o
  CC      drivers/acpi/acpica/utmutex.o
  CC      lib/iomap_copy.o
  CC      net/ipv6/ip6_offload.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_xdp.o
  CC      drivers/usb/serial/console.o
  AR      drivers/hwmon/built-in.a
  CC      kernel/kprobes.o
  CC [M]  drivers/md/persistent-data/dm-block-manager.o
  CC [M]  drivers/gpu/drm/i915/intel_step.o
  CC      fs/btrfs/acl.o
  CC      drivers/acpi/acpica/utnonansi.o
  CC      lib/devres.o
  CC [M]  drivers/thermal/intel/intel_menlow.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  AR      drivers/net/ethernet/microchip/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC      net/ipv6/tcpv6_offload.o
  CC [M]  drivers/gpu/drm/drm_crtc.o
  CC [M]  drivers/gpu/drm/drm_displayid.o
  CC [M]  drivers/gpu/drm/drm_drv.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC      lib/check_signature.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/gpuobj.o
  CC [M]  drivers/md/persistent-data/dm-space-map-common.o
  CC      lib/interval_tree.o
  CC      drivers/watchdog/softdog.o
  CC      drivers/acpi/acpica/utobject.o
  AR      drivers/net/ethernet/mscc/built-in.a
  CC      drivers/acpi/acpica/utosi.o
  CC      drivers/acpi/acpica/utownerid.o
  AR      drivers/net/ethernet/neterion/built-in.a
  CC      drivers/acpi/acpica/utpredef.o
  CC      drivers/acpi/acpica/utresdecode.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC [M]  drivers/gpu/drm/i915/intel_uncore.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/intr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/ioctl.o
  CC      drivers/usb/serial/ftdi_sio.o
  CC      drivers/usb/serial/pl2303.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/memory.o
  CC      drivers/usb/host/xhci-ring.o
  CC      drivers/opp/core.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.o
  CC      drivers/cpufreq/cpufreq.o
  CC      drivers/opp/cpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.o
  CC      lib/assoc_array.o
  AR      drivers/watchdog/built-in.a
  CC      drivers/cpufreq/freq_table.o
  CC      drivers/acpi/acpica/utresrc.o
  LD [M]  drivers/net/ethernet/intel/igc/igc.o
  CC      drivers/acpi/acpica/utstate.o
  CC [M]  drivers/gpu/drm/drm_dumb_buffers.o
  AR      drivers/net/ethernet/netronome/built-in.a
  CC [M]  drivers/gpu/drm/drm_edid.o
  CC      drivers/acpi/acpica/utstring.o
  CC      drivers/acpi/power.o
  CC      drivers/usb/host/xhci-hub.o
  CC [M]  drivers/gpu/drm/i915/intel_wakeref.o
  CC      kernel/hung_task.o
  AR      drivers/thermal/intel/built-in.a
  CC      kernel/watchdog.o
  AR      drivers/thermal/st/built-in.a
  AR      drivers/thermal/qcom/built-in.a
  CC      fs/proc_namespace.o
  CC      lib/list_debug.o
  AR      drivers/thermal/tegra/built-in.a
  AR      drivers/thermal/mediatek/built-in.a
  CC      drivers/thermal/thermal_core.o
  CC [M]  drivers/net/mdio.o
  CC      drivers/cpuidle/governors/menu.o
  CC      drivers/cpuidle/governors/haltpoll.o
  CC      drivers/mmc/core/core.o
  CC      drivers/cpuidle/cpuidle.o
  AR      fs/btrfs/built-in.a
  CC      drivers/mmc/core/bus.o
  CC [M]  drivers/gpu/drm/i915/vlv_sideband.o
  CC      drivers/mmc/host/sdhci.o
  CC      drivers/mmc/host/sdhci-pci-core.o
  CC [M]  drivers/net/ethernet/intel/igbvf/vf.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_common.o
  CC      drivers/mmc/core/host.o
  CC [M]  drivers/net/ethernet/intel/igbvf/mbx.o
  CC      drivers/acpi/acpica/utstrsuppt.o
  CC      net/ipv6/exthdrs_offload.o
  CC      drivers/mmc/core/mmc.o
  CC      drivers/mmc/host/sdhci-pci-o2micro.o
  CC [M]  drivers/md/persistent-data/dm-space-map-disk.o
  CC [M]  drivers/gpu/drm/drm_encoder.o
  CC [M]  drivers/gpu/drm/drm_file.o
  CC [M]  drivers/gpu/drm/i915/vlv_suspend.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_dram.o
  CC      drivers/mmc/core/mmc_ops.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/mm.o
  AR      drivers/net/ethernet/ni/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/object.o
  CC      fs/direct-io.o
  AR      drivers/ufs/built-in.a
  CC      lib/debugobjects.o
  AR      drivers/leds/trigger/built-in.a
  CC [M]  drivers/leds/trigger/ledtrig-audio.o
  CC      lib/bitrev.o
  AR      drivers/firmware/arm_ffa/built-in.a
  AR      drivers/firmware/arm_scmi/built-in.a
  CC      kernel/watchdog_hld.o
  AR      drivers/firmware/broadcom/built-in.a
  AR      drivers/firmware/cirrus/built-in.a
  CC      drivers/acpi/acpica/utstrtoul64.o
  AR      drivers/firmware/meson/built-in.a
  CC      drivers/firmware/efi/efi-bgrt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sync.o
  AR      drivers/cpuidle/governors/built-in.a
  CC      drivers/firmware/efi/efi.o
  CC      lib/crc16.o
  CC      drivers/mmc/host/sdhci-pci-arasan.o
  AR      drivers/usb/serial/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/oproxy.o
  CC      drivers/firmware/efi/libstub/efi-stub-helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/option.o
  CC      drivers/mmc/core/sd.o
  CC [M]  drivers/md/persistent-data/dm-space-map-metadata.o
  CC      drivers/cpufreq/cpufreq_performance.o
  AR      drivers/leds/blink/built-in.a
  AR      drivers/leds/simple/built-in.a
  CC [M]  drivers/md/persistent-data/dm-transaction-manager.o
  CC [M]  drivers/net/ethernet/intel/igbvf/ethtool.o
  CC      drivers/leds/led-core.o
  CC      drivers/mmc/core/sd_ops.o
  CC [M]  drivers/gpu/drm/drm_fourcc.o
  CC      drivers/cpufreq/cpufreq_ondemand.o
  CC      drivers/opp/debugfs.o
  CC      net/ipv6/inet6_hashtables.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/ramht.o
  CC      drivers/acpi/acpica/utxface.o
  CC      drivers/cpuidle/driver.o
  CC      drivers/mmc/host/sdhci-pci-dwc-mshc.o
  CC      kernel/seccomp.o
  CC      drivers/firmware/efi/libstub/gop.o
  CC      drivers/firmware/efi/libstub/secureboot.o
  CC      drivers/leds/led-class.o
  CC      drivers/thermal/thermal_sysfs.o
  CC      drivers/acpi/event.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.o
  CC      drivers/cpuidle/governor.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/subdev.o
  LD [M]  drivers/net/ethernet/intel/e1000e/e1000e.o
  CC      drivers/md/md-autodetect.o
  CC      drivers/cpufreq/cpufreq_governor.o
  CC      drivers/usb/host/xhci-dbg.o
  CC      drivers/thermal/thermal_trip.o
  CC      drivers/acpi/evged.o
  CC      lib/crc-t10dif.o
  AR      drivers/firmware/imx/built-in.a
  CC      drivers/acpi/acpica/utxfinit.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_gmch.o
  CC      drivers/usb/host/xhci-trace.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_pch.o
  AR      drivers/firmware/psci/built-in.a
  CC      drivers/acpi/acpica/utxferror.o
  CC      drivers/acpi/acpica/utxfmutex.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/vf.o
  AR      drivers/opp/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_memcpy.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/mbx.o
  AR      drivers/firmware/smccc/built-in.a
  CC      net/ipv6/mcast_snoop.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ethtool.o
  CC      drivers/cpuidle/sysfs.o
  CC [M]  drivers/md/persistent-data/dm-btree.o
  CC      drivers/mmc/core/sdio.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_main.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.o
  AR      drivers/net/ethernet/intel/built-in.a
  CC      fs/eventpoll.o
  CC      drivers/mmc/host/sdhci-pci-gli.o
  CC      fs/anon_inodes.o
  CC      drivers/mmc/core/sdio_ops.o
  CC [M]  drivers/net/ethernet/intel/igbvf/netdev.o
  CC      drivers/cpufreq/cpufreq_governor_attr_set.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.o
  CC      drivers/leds/led-triggers.o
  CC      drivers/firmware/efi/libstub/tpm.o
  CC      fs/signalfd.o
  CC      drivers/mmc/host/sdhci-acpi.o
  CC      drivers/mmc/core/sdio_bus.o
  HOSTCC  lib/gen_crc32table
  AR      drivers/acpi/acpica/built-in.a
  CC      lib/libcrc32c.o
  CC      drivers/mmc/core/sdio_cis.o
  CC      fs/timerfd.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_hw.o
  CC [M]  drivers/net/ethernet/intel/e100.o
  CC      drivers/acpi/sysfs.o
  CC      drivers/thermal/thermal_helpers.o
  AR      drivers/usb/misc/built-in.a
  CC [M]  drivers/usb/misc/ftdi-elan.o
  CC      lib/xxhash.o
  CC [M]  drivers/gpu/drm/i915/i915_mm.o
  CC      fs/eventfd.o
  CC      drivers/cpuidle/poll_state.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/uevent.o
  CC      drivers/cpufreq/acpi-cpufreq.o
  CC [M]  net/ipv6/ip6_udp_tunnel.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_82599.o
  AR      drivers/net/ethernet/packetengines/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_ee.o
  CC [M]  drivers/gpu/drm/i915/i915_sw_fence.o
  CC      drivers/cpufreq/intel_pstate.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC      drivers/usb/host/xhci-debugfs.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.o
  CC      drivers/mmc/core/sdio_io.o
  CC      drivers/cpuidle/cpuidle-haltpoll.o
  CC      drivers/firmware/efi/libstub/file.o
  CC      drivers/firmware/efi/libstub/mem.o
  CC      drivers/thermal/thermal_hwmon.o
  CC      drivers/usb/host/xhci-pci.o
  AR      drivers/leds/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ipsec.o
  CC      lib/genalloc.o
  CC [M]  drivers/gpu/drm/i915/i915_sw_fence_work.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_82598.o
  CC [M]  drivers/net/tun.o
  CC [M]  drivers/gpu/drm/drm_framebuffer.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o
  CC      drivers/acpi/property.o
  CC      drivers/acpi/acpi_cmos_rtc.o
  CC [M]  drivers/md/persistent-data/dm-btree-remove.o
  CC [M]  drivers/md/persistent-data/dm-btree-spine.o
  CC      lib/percpu_counter.o
  CC      kernel/relay.o
  CC      drivers/mmc/host/cqhci-core.o
  CC [M]  drivers/mmc/host/sdhci-pltfm.o
  CC      drivers/thermal/gov_fair_share.o
  AR      drivers/cpuidle/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_syncmap.o
  CC      drivers/usb/gadget/udc/core.o
  CC      drivers/usb/gadget/udc/trace.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/fw.o
  AR      drivers/usb/gadget/function/built-in.a
  CC      drivers/thermal/gov_step_wise.o
  AR      drivers/usb/gadget/legacy/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_ethtool.o
  CC [M]  drivers/gpu/drm/i915/i915_user_extensions.o
  CC      drivers/usb/gadget/usbstring.o
  CC      fs/userfaultfd.o
  CC      drivers/firmware/efi/libstub/random.o
  CC      drivers/firmware/efi/vars.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.o
  CC      drivers/mmc/core/sdio_irq.o
  AR      net/ipv6/built-in.a
  AR      net/built-in.a
  CC      lib/fault-inject.o
  AR      drivers/firmware/tegra/built-in.a
  CC [M]  drivers/net/veth.o
  CC      drivers/usb/gadget/config.o
  AR      drivers/crypto/stm32/built-in.a
  CC      drivers/clocksource/acpi_pm.o
  AR      drivers/crypto/xilinx/built-in.a
  CC      drivers/usb/gadget/epautoconf.o
  CC      drivers/firmware/efi/reboot.o
  AR      drivers/crypto/hisilicon/built-in.a
  CC      drivers/clocksource/i8253.o
  CC [M]  drivers/net/ethernet/intel/ixgb/ixgb_param.o
  AR      drivers/crypto/keembay/built-in.a
  AR      drivers/crypto/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_ioc32.o
  CC      drivers/firmware/efi/memattr.o
  CC      fs/aio.o
  CC      drivers/firmware/efi/tpm.o
  CC      drivers/thermal/gov_user_space.o
  CC [M]  drivers/gpu/drm/i915/i915_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  AR      drivers/firmware/xilinx/built-in.a
  CC      drivers/firmware/dmi_scan.o
  CC      drivers/firmware/dmi-sysfs.o
  CC      drivers/firmware/efi/memmap.o
  AR      drivers/usb/host/built-in.a
  CC      drivers/firmware/dmi-id.o
  LD [M]  drivers/md/persistent-data/dm-persistent-data.o
  CC [M]  drivers/gpu/drm/i915/i915_debugfs_params.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_debugfs.o
  AR      drivers/net/ethernet/realtek/built-in.a
  CC      drivers/md/dm-uevent.o
  CC [M]  drivers/net/ethernet/realtek/8139cp.o
  CC [M]  drivers/net/ethernet/realtek/8139too.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/hs.o
  CC      drivers/acpi/x86/apple.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_phy.o
  CC      drivers/firmware/efi/libstub/randomalloc.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.o
  CC      fs/locks.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.o
  CC      lib/syscall.o
  CC [M]  drivers/gpu/drm/drm_gem.o
  LD [M]  drivers/net/ethernet/intel/igbvf/igbvf.o
  CC      kernel/utsname_sysctl.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/ls.o
  CC      drivers/firmware/memmap.o
  AR      drivers/thermal/built-in.a
  CC      drivers/usb/gadget/composite.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.o
  CC      kernel/delayacct.o
  CC      drivers/mmc/core/slot-gpio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/acr.o
  AR      drivers/clocksource/built-in.a
  CC      kernel/taskstats.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/flcn.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC [M]  drivers/gpu/drm/drm_ioctl.o
  CC      kernel/tsacct.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pipe_crc.o
  CC      drivers/md/dm.o
  AR      drivers/mmc/host/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC      drivers/md/dm-table.o
  CC      fs/binfmt_script.o
  AR      drivers/cpufreq/built-in.a
  CC      drivers/hid/usbhid/hid-core.o
  CC      drivers/acpi/x86/utils.o
  CC [M]  drivers/gpu/drm/i915/i915_pmu.o
  AR      drivers/usb/gadget/udc/built-in.a
  CC      drivers/hid/usbhid/hiddev.o
  CC      drivers/usb/gadget/functions.o
  CC      drivers/hid/hid-core.o
  CC      lib/dynamic_debug.o
  CC      lib/errname.o
  LD [M]  drivers/net/ethernet/intel/ixgb/ixgb.o
  CC      drivers/firmware/efi/libstub/pci.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.o
  CC      fs/binfmt_elf.o
  CC      drivers/firmware/efi/esrt.o
  CC      kernel/tracepoint.o
  CC      drivers/firmware/efi/efi-pstore.o
  CC [M]  drivers/gpu/drm/i915/gt/gen2_engine_cs.o
  CC      drivers/md/dm-target.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_engine_cs.o
  CC      drivers/mmc/core/regulator.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_x540.o
  CC      drivers/mmc/core/debugfs.o
  CC      kernel/latencytop.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sched.o
  CC      drivers/acpi/x86/s2idle.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_ppgtt.o
  CC      lib/nlattr.o
  CC      drivers/firmware/efi/libstub/skip_spaces.o
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC [M]  drivers/gpu/drm/drm_lease.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/base.o
  CC      drivers/md/dm-linear.o
  CC      drivers/md/dm-stripe.o
  CC      drivers/hid/hid-input.o
  CC      drivers/firmware/efi/libstub/lib-cmdline.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC [M]  drivers/net/ethernet/realtek/r8169_main.o
  CC      drivers/acpi/debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/gen7_renderclear.o
  CC      drivers/firmware/efi/cper.o
  CC      drivers/firmware/efi/libstub/lib-ctype.o
  CC      drivers/hid/hid-quirks.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.o
  CC      drivers/firmware/efi/libstub/alignedmem.o
  CC      fs/compat_binfmt_elf.o
  CC      drivers/firmware/efi/libstub/relocate.o
  CC      drivers/mmc/core/block.o
  CC      drivers/firmware/efi/cper_cxl.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC      kernel/irq_work.o
  CC      kernel/static_call.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/fw.o
  CC      drivers/acpi/acpi_lpat.o
  CC [M]  drivers/net/ethernet/realtek/r8169_firmware.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_engine_cs.o
  CC      drivers/firmware/efi/libstub/printk.o
  LD [M]  drivers/net/ethernet/intel/ixgbevf/ixgbevf.o
  CC      drivers/md/dm-ioctl.o
  CC      drivers/md/dm-io.o
  CC      kernel/static_call_inline.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_x550.o
  CC      drivers/firmware/efi/libstub/vsprintf.o
  CC      drivers/mmc/core/queue.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.o
  CC [M]  drivers/net/ethernet/realtek/r8169_phy_config.o
  CC      drivers/firmware/efi/libstub/x86-stub.o
  CC [M]  drivers/gpu/drm/drm_managed.o
  AR      drivers/hid/usbhid/built-in.a
  CC      lib/checksum.o
  CC      drivers/hid/hid-debug.o
  CC      kernel/user-return-notifier.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_ppgtt.o
  CC      kernel/padata.o
  CC      drivers/usb/gadget/configfs.o
  CC      drivers/acpi/acpi_lpit.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_lib.o
  CC      drivers/usb/gadget/u_f.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.o
  AR      drivers/net/ethernet/renesas/built-in.a
  AR      drivers/net/ethernet/sfc/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.o
  CC      drivers/acpi/prmt.o
  AR      drivers/net/ethernet/smsc/built-in.a
  CC      drivers/acpi/acpi_pcc.o
  CC [M]  drivers/net/ethernet/smsc/smsc9420.o
  CC      drivers/firmware/efi/runtime-wrappers.o
  CC      kernel/jump_label.o
  CC      drivers/firmware/efi/dev-path-parser.o
  AR      drivers/net/ethernet/socionext/built-in.a
  STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  STUBCPY drivers/firmware/efi/libstub/file.stub.o
  CC      lib/cpu_rmap.o
  STUBCPY drivers/firmware/efi/libstub/gop.stub.o
  CC      drivers/acpi/ac.o
  CC      drivers/firmware/efi/apple-properties.o
  CC      fs/mbcache.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  AR      drivers/net/ethernet/vertexcom/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC      drivers/acpi/button.o
  AR      drivers/net/ethernet/wangxun/built-in.a
  CC      fs/posix_acl.o
  CC [M]  drivers/usb/class/usbtmc.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  AR      drivers/net/ethernet/xilinx/built-in.a
  CC      drivers/md/dm-kcopyd.o
  CC      drivers/hid/hidraw.o
  CC      drivers/acpi/fan_core.o
  STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC      drivers/acpi/fan_attr.o
  CC      drivers/acpi/processor_driver.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/msgq.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC      lib/dynamic_queue_limits.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.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
  CC      drivers/acpi/processor_thermal.o
  STUBCPY drivers/firmware/efi/libstub/random.stub.o
  STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
  CC [M]  drivers/gpu/drm/drm_mm.o
  STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
  CC      lib/glob.o
  STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
  STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
  STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
  CC      drivers/firmware/efi/earlycon.o
  STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
  CC      kernel/context_tracking.o
  CC      drivers/firmware/efi/cper-x86.o
  STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
  CC      drivers/md/dm-sysfs.o
  STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  AR      drivers/firmware/efi/libstub/lib.a
  CC      drivers/acpi/processor_idle.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_context.o
  CC      fs/coredump.o
  CC      drivers/acpi/processor_throttling.o
  CC      drivers/acpi/processor_perflib.o
  CC      fs/drop_caches.o
  CC      drivers/acpi/container.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_context_sseu.o
  CC      drivers/md/dm-stats.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.o
  CC      kernel/iomem.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_cs.o
  AR      drivers/staging/media/built-in.a
  CC      drivers/acpi/thermal.o
  AR      drivers/staging/built-in.a
  CC      drivers/mailbox/mailbox.o
  AR      drivers/platform/x86/amd/built-in.a
  AR      drivers/platform/surface/built-in.a
  CC      drivers/platform/x86/intel/pmc/core.o
  CC [M]  drivers/platform/x86/intel/pmt/class.o
  CC      lib/strncpy_from_user.o
  CC      drivers/md/dm-rq.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_pm.o
  CC      drivers/platform/x86/intel/pmc/spt.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_user.o
  AR      drivers/mmc/core/built-in.a
  AR      drivers/mmc/built-in.a
  CC      drivers/mailbox/pcc.o
  AR      drivers/usb/gadget/built-in.a
  CC      fs/fhandle.o
  CC      drivers/platform/x86/p2sb.o
  CC      drivers/md/dm-io-rewind.o
  CC      drivers/md/dm-builtin.o
  AR      drivers/net/ethernet/synopsys/built-in.a
  AR      drivers/net/ethernet/pensando/built-in.a
  CC [M]  drivers/md/dm-bufio.o
  CC      drivers/devfreq/devfreq.o
  CC [M]  drivers/devfreq/governor_simpleondemand.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_execlists_submission.o
  CC      drivers/hid/hid-generic.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt.o
  CC      drivers/platform/x86/pmc_atom.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.o
  AR      drivers/firmware/efi/built-in.a
  AR      drivers/firmware/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.o
  CC      drivers/powercap/powercap_sys.o
  CC      lib/strnlen_user.o
  CC      lib/net_utils.o
  CC      drivers/powercap/intel_rapl_common.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/v1.o
  CC      kernel/rseq.o
  CC      lib/sg_pool.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
  CC      lib/stackdepot.o
  CC [M]  drivers/md/dm-bio-prison-v1.o
  CC      drivers/powercap/intel_rapl_msr.o
  CC [M]  drivers/gpu/drm/drm_mode_config.o
  CC      drivers/platform/x86/intel/pmc/cnp.o
  CC      lib/ucs2_string.o
  AR      drivers/usb/built-in.a
  CC [M]  drivers/gpu/drm/drm_mode_object.o
  CC [M]  drivers/gpu/drm/drm_modes.o
  CC [M]  drivers/platform/x86/intel/pmt/telemetry.o
  CC      drivers/acpi/acpi_memhotplug.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.o
  AR      drivers/mailbox/built-in.a
  LD [M]  drivers/net/ethernet/realtek/r8169.o
  AR      drivers/perf/built-in.a
  CC [M]  drivers/gpu/drm/drm_modeset_lock.o
  GZIP    kernel/config_data.gz
  CC [M]  drivers/md/dm-bio-prison-v2.o
  CC [M]  drivers/devfreq/governor_performance.o
  CC      drivers/acpi/ioapic.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/gm200.o
  CC [M]  drivers/platform/x86/intel/pmt/crashlog.o
  CC [M]  drivers/gpu/drm/drm_plane.o
  CC [M]  drivers/gpu/drm/drm_prime.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt.o
  CC      drivers/hid/hid-a4tech.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.o
  CC      lib/sbitmap.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/gp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.o
  CC      drivers/hid/hid-apple.o
  CC      drivers/acpi/battery.o
  CC [M]  drivers/gpu/drm/drm_print.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_class.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.o
  AR      fs/built-in.a
  CC      drivers/platform/x86/intel/pmc/icl.o
  CC      drivers/platform/x86/intel/turbo_max_3.o
  CC      drivers/ras/ras.o
  CC      lib/group_cpus.o
  CC      drivers/platform/x86/intel/pmc/tgl.o
  CC [M]  drivers/platform/x86/intel/vsec.o
  CC      drivers/platform/x86/intel/pmc/adl.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/ga100.o
  AR      drivers/hwtracing/intel_th/built-in.a
  CC      drivers/ras/debugfs.o
  CC [M]  drivers/md/dm-crypt.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
  CC      kernel/configs.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/drm_property.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  AR      drivers/powercap/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_telemetry.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_crashlog.o
  CC      drivers/hid/hid-belkin.o
  CC      drivers/hid/hid-cherry.o
  CC      drivers/hid/hid-chicony.o
  CC      drivers/android/binderfs.o
  CC      drivers/android/binder.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC      drivers/hid/hid-cypress.o
  CC [M]  drivers/gpu/drm/drm_syncobj.o
  CC      drivers/android/binder_alloc.o
  CC [M]  drivers/platform/x86/intel/rst.o
  CC [M]  lib/asn1_decoder.o
  AR      drivers/devfreq/built-in.a
  CC      drivers/platform/x86/intel/pmc/mtl.o
  CC      drivers/nvmem/core.o
  CC      drivers/platform/x86/intel/pmc/pltdrv.o
  GEN     lib/oid_registry_data.c
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.o
  CC      drivers/hid/hid-ezkey.o
  CC [M]  drivers/gpu/drm/drm_sysfs.o
  AR      kernel/built-in.a
  CC [M]  drivers/md/dm-thin.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
  CC [M]  drivers/mtd/chips/chipreg.o
  CC      drivers/acpi/hed.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_csa.o
  CC      drivers/acpi/bgrt.o
  CC      drivers/acpi/cppc_acpi.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_irq.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_mcr.o
  CC      drivers/acpi/spcr.o
  CC [M]  drivers/gpu/drm/drm_trace_points.o
  LD [M]  drivers/platform/x86/intel/intel_vsec.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.o
  CC [M]  drivers/gpu/drm/drm_vblank.o
  CC [M]  drivers/mtd/mtdcore.o
  CC [M]  drivers/gpu/drm/drm_vblank_work.o
  CC      drivers/acpi/acpi_pad.o
  AR      drivers/ras/built-in.a
  CC      drivers/hid/hid-kensington.o
  CC      drivers/hid/hid-lg.o
  CC [M]  drivers/md/dm-thin-metadata.o
  CC [M]  drivers/platform/x86/wmi.o
  CC [M]  drivers/platform/x86/wmi-bmof.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm.o
  CC [M]  drivers/platform/x86/mxm-wmi.o
  AR      drivers/platform/x86/intel/pmc/built-in.a
  CC [M]  lib/oid_registry.o
  LD [M]  drivers/platform/x86/intel/intel-rst.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.o
  AR      drivers/platform/x86/intel/built-in.a
  CC [M]  drivers/platform/x86/intel_ips.o
  CC [M]  drivers/gpu/drm/drm_vma_manager.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm20b.o
  LD [M]  drivers/md/dm-bio-prison.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.o
  CC [M]  drivers/mtd/mtdsuper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.o
  CC [M]  drivers/gpu/drm/drm_writeback.o
  CC [M]  drivers/mtd/mtdconcat.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.o
  CC      drivers/hid/hid-lg-g15.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC [M]  drivers/acpi/acpi_video.o
  CC [M]  drivers/gpu/drm/lib/drm_random.o
  AR      lib/lib.a
  GEN     lib/crc32table.h
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
  CC [M]  drivers/acpi/video_detect.o
  CC      lib/crc32.o
  CC [M]  drivers/gpu/drm/drm_ioc32.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.o
  CC [M]  drivers/mtd/mtdpart.o
  CC [M]  drivers/uio/uio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.o
  AR      drivers/nvmem/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_umc.o
  CC      drivers/hid/hid-microsoft.o
  CC      drivers/hid/hid-monterey.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  LD [M]  drivers/net/ethernet/intel/ixgbe/ixgbe.o
  CC [M]  drivers/gpu/drm/drm_panel.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp108.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gv100.o
  CC [M]  drivers/gpu/drm/drm_pci.o
  CC [M]  drivers/gpu/drm/drm_debugfs.o
  CC [M]  drivers/gpu/drm/drm_debugfs_crc.o
  AR      drivers/net/ethernet/built-in.a
  CC [M]  drivers/vfio/pci/vfio_pci_core.o
  AR      drivers/acpi/built-in.a
  CC [M]  drivers/mtd/mtdchar.o
  AR      drivers/net/built-in.a
  CC [M]  drivers/vfio/vfio_main.o
  CC [M]  drivers/gpu/drm/drm_edid_load.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp10b.o
../drivers/gpu/drm/i915/gt/intel_engine_cs.c:1525: warning: expecting prototype for intel_engines_cleanup_common(). Prototype was for intel_engine_cleanup_common() instead
  CC [M]  drivers/vfio/group.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_requests.o
  AR      drivers/md/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/tu102.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/vfio/pci/vfio_pci_intrs.o
  AR      lib/built-in.a
  CC [M]  drivers/vfio/pci/vfio_pci_rdwr.o
  CC [M]  drivers/vfio/pci/vfio_pci_config.o
  CC [M]  drivers/gpu/drm/drm_panel_orientation_quirks.o
  AR      drivers/platform/x86/built-in.a
  AR      drivers/platform/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.o
  CC [M]  drivers/pps/pps.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.o
  CC [M]  drivers/pps/kapi.o
  CC [M]  drivers/vfio/iova_bitmap.o
  CC [M]  drivers/vfio/container.o
  CC [M]  drivers/bluetooth/btusb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_rap.o
  CC [M]  drivers/bluetooth/btintel.o
  CC [M]  drivers/bluetooth/btbcm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.o
  CC [M]  drivers/pps/sysfs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
  AR      drivers/hid/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.o
  CC [M]  drivers/dca/dca-core.o
  CC [M]  drivers/dca/dca-sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC [M]  drivers/gpu/drm/drm_buddy.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
  CC [M]  drivers/vfio/pci/vfio_pci.o
  CC [M]  drivers/bluetooth/btrtl.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gtt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.o
  CC [M]  drivers/gpu/drm/drm_gem_shmem_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_llc.o
  CC [M]  drivers/ssb/main.o
  CC [M]  drivers/ssb/scan.o
  CC [M]  drivers/ssb/sprom.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mca.o
  LD [M]  drivers/acpi/video.o
  CC [M]  drivers/vfio/virqfd.o
  LD [M]  drivers/pps/pps_core.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/g84.o
  CC [M]  drivers/vfio/vfio_iommu_type1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.o
  CC [M]  drivers/vhost/net.o
  LD [M]  drivers/md/dm-thin-pool.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/drm_suballoc.o
  CC [M]  drivers/vhost/vhost.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.o
  LD [M]  drivers/mtd/mtd.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_lrc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_migrate.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.o
  CC [M]  drivers/ssb/pci.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.o
  LD [M]  drivers/dca/dca.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.o
  CC [M]  drivers/ssb/pcihost_wrapper.o
  CC [M]  drivers/vhost/iotlb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu102.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_mocs.o
  CC [M]  drivers/ssb/driver_chipcommon.o
  LD [M]  drivers/vfio/pci/vfio-pci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.o
  CC [M]  drivers/ssb/driver_chipcommon_pmu.o
  LD [M]  drivers/vfio/pci/vfio-pci-core.o
  CC [M]  drivers/ssb/driver_pcicore.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v8_0.o
  LD [M]  drivers/vfio/vfio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.o
  CC [M]  drivers/gpu/drm/xe/xe_vm_madvise.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik_sdma.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ppgtt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v4_2.o
  CC [M]  drivers/gpu/drm/drm_gem_ttm_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_rc6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v2_0.o
  CC [M]  drivers/gpu/drm/drm_atomic_helper.o
  CC [M]  drivers/gpu/drm/drm_atomic_state_helper.o
  LD [M]  drivers/vhost/vhost_iotlb.o
  CC [M]  drivers/gpu/drm/drm_bridge_connector.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.o
  CC [M]  drivers/gpu/drm/drm_crtc_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_region_lmem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v6_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/i2c.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/iccsense.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si_dma.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v6_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_renderstate.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v3_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.o
  LD [M]  drivers/ssb/ssb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pmu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.o
  CC [M]  drivers/gpu/drm/drm_damage_helper.o
  CC [M]  drivers/gpu/drm/drm_encoder_slave.o
  GEN     xe_wa_oob.[ch]
  CC [M]  drivers/gpu/drm/amd/amdgpu/vi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.o
  CC [M]  drivers/gpu/drm/drm_flip_work.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.o
  LD [M]  drivers/vhost/vhost_net.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.o
  GEN     xe_wa_oob.[ch]
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_vi.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v6_1.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_reset.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ring.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ring_submission.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/soc15.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/emu_soc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_rps.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_ai.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sa_media.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega10_reg_init.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega20_reg_init.o
  CC [M]  drivers/gpu/drm/drm_format_helper.o
  AR      drivers/android/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_display.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sseu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_4.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.o
  CC [M]  drivers/gpu/drm/drm_gem_atomic_helper.o
  CC [M]  drivers/gpu/drm/drm_gem_framebuffer_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_timeline.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_wopcm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v2_3.o
  CC [M]  drivers/gpu/drm/xe/display/xe_fb_pin.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nv.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/arct_reg_init.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_workarounds.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/vpstate.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_nv.o
  CC [M]  drivers/gpu/drm/drm_kms_helper_common.o
  CC [M]  drivers/gpu/drm/i915/gt/shmem_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/xpio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0203.o
  CC [M]  drivers/gpu/drm/i915/gt/sysfs_engines.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
  CC [M]  drivers/gpu/drm/drm_modeset_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_renderstate.o
  CC [M]  drivers/gpu/drm/drm_plane_helper.o
  CC [M]  drivers/gpu/drm/drm_probe_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v4_0.o
  CC [M]  drivers/gpu/drm/i915/gt/gen7_renderstate.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.o
  CC [M]  drivers/gpu/drm/drm_rect.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v5_0.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_renderstate.o
  CC [M]  drivers/gpu/drm/drm_self_refresh_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.o
  CC [M]  drivers/gpu/drm/i915/gt/gen9_renderstate.o
  CC [M]  drivers/gpu/drm/xe/display/xe_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/xe/display/xe_plane_initial.o
  CC [M]  drivers/gpu/drm/drm_simple_kms_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aldebaran_reg_init.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aldebaran.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_busy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/soc21.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sienna_cichlid.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_clflush.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_context.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v4_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_create.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_rps.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v6_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
  CC [M]  drivers/gpu/drm/xe/display/ext/i915_irq.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_domain.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.o
  CC [M]  drivers/gpu/drm/bridge/panel.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.o
  CC [M]  drivers/gpu/drm/drm_fbdev_generic.o
  CC [M]  drivers/gpu/drm/drm_fb_helper.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_clock_gating.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_internal.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_object.o
  LD [M]  drivers/gpu/drm/drm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_lmem.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_device_info.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_mman.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_7.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v5_2.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_pages.o
  LD [M]  drivers/gpu/drm/drm_shmem_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.o
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_9.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_dram.o
  LD [M]  drivers/gpu/drm/drm_ttm_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v1_7.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/g84.o
  AR      drivers/gpu/drm/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v3_6.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v4_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.o
  CC [M]  drivers/gpu/drm/xe/display/ext/intel_pch.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk104.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_phys.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v8_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_pm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllnv04.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_region.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_shmem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/icl_dsi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllgt215.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_stolen.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_throttle.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_tiling.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_audio.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_backlight.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv1a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bios.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_userptr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.o
  LD [M]  drivers/gpu/drm/drm_kms_helper.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_wait.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gemfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.o
  CC [M]  drivers/gpu/drm/i915/i915_active.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.o
  CC [M]  drivers/gpu/drm/i915/i915_cmd_parser.o
  CC [M]  drivers/gpu/drm/i915/i915_deps.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_evict.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_gtt.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_ww.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bw.o
  CC [M]  drivers/gpu/drm/i915/i915_gem.o
  CC [M]  drivers/gpu/drm/i915/i915_query.o
  CC [M]  drivers/gpu/drm/i915/i915_request.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.o
  CC [M]  drivers/gpu/drm/i915/i915_scheduler.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.o
  CC [M]  drivers/gpu/drm/i915/i915_trace_points.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v11_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cdclk.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.o
  CC [M]  drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
  CC [M]  drivers/gpu/drm/i915/i915_vma.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu102.o
  CC [M]  drivers/gpu/drm/i915/i915_vma_resource.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.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/amd/amdgpu/mmhub_v3_0_1.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_connector.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp10b.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_fw.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cursor.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_0.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_1.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_7.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v8_7.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v8_10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_irq.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ih.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu102.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.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 [M]  drivers/gpu/drm/amd/amdgpu/iceland_ih.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_driver.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/tonga_ih.o
  CC [M]  drivers/gpu/drm/i915/i915_hwmon.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cz_ih.o
  CC [M]  drivers/gpu/drm/i915/display/hsw_ips.o
  CC [M]  drivers/gpu/drm/i915/display/intel_atomic.o
  CC [M]  drivers/gpu/drm/i915/display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega10_ih.o
  CC [M]  drivers/gpu/drm/i915/display/intel_audio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega20_ih.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power.o
  CC [M]  drivers/gpu/drm/i915/display/intel_bios.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
  CC [M]  drivers/gpu/drm/i915/display/intel_bw.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cdclk.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_well.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/navi10_ih.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/ih_v6_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.o
  CC [M]  drivers/gpu/drm/i915/display/intel_color.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.o
  CC [M]  drivers/gpu/drm/i915/display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.o
  CC [M]  drivers/gpu/drm/i915/display/intel_connector.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v3_1.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_crtc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v10_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cursor.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_driver.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v12_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv41.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv44.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v13_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power_map.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power_well.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_reset.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v10_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_rps.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dmc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpio_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpll.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.o
  CC [M]  drivers/gpu/drm/i915/display/intel_drrs.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fb_pin.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fbc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fdi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/i915/display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v8_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_global_state.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hotplug.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hti.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp77.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp89.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf108.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpt.o
  CC [M]  drivers/gpu/drm/i915/display/intel_load_detect.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lpe_audio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk110.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_drrs.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_verify.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsb.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/i915/display/intel_overlay.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pch_display.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pch_refclk.o
  CC [M]  drivers/gpu/drm/i915/display/intel_plane_initial.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v10_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_psr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.o
  CC [M]  drivers/gpu/drm/i915/display/intel_quirks.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.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/nouveau/nvkm/subdev/fb/gm200.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sprite.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sprite_uapi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/imu_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_tc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vblank.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm20b.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vga.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_wm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp100.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fb.o
  CC [M]  drivers/gpu/drm/i915/display/i9xx_plane.o
  CC [M]  drivers/gpu/drm/i915/display/i9xx_wm.o
  CC [M]  drivers/gpu/drm/i915/display/skl_scaler.o
  CC [M]  drivers/gpu/drm/i915/display/skl_universal_plane.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbc.o
  CC [M]  drivers/gpu/drm/i915/display/skl_watermark.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp102.o
  CC [M]  drivers/gpu/drm/i915/display/intel_acpi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fdi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_opregion.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/imu_v11_0_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp10b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gv100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fbdev.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ch7017.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ch7xxx.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/tu102.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ivch.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ns2501.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_sil164.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_tfp410.o
  CC [M]  drivers/gpu/drm/i915/display/g4x_dp.o
  CC [M]  drivers/gpu/drm/i915/display/g4x_hdmi.o
  CC [M]  drivers/gpu/drm/i915/display/icl_dsi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_backlight.o
  CC [M]  drivers/gpu/drm/i915/display/intel_crt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v2_4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v3_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cx0_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_ddi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_global_state.o
  CC [M]  drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_gmbus.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dkl_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga102.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdmi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v5_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_hdcp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hti.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_mst.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi_vbt.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dvo.o
  CC [M]  drivers/gpu/drm/i915/display/intel_gmbus.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v5_2.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdmi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v6_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lvds.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.o
  CC [M]  drivers/gpu/drm/i915/display/intel_panel.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_panel.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pps.o
  CC [M]  drivers/gpu/drm/i915/display/intel_qp_tables.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sdvo.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mes_v10_1.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pps.o
  CC [M]  drivers/gpu/drm/i915/display/intel_snps_phy.o
  CC [M]  drivers/gpu/drm/i915/display/intel_tv.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_psr.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mes_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vrr.o
  CC [M]  drivers/gpu/drm/i915/display/vlv_dsi.o
  CC [M]  drivers/gpu/drm/i915/display/vlv_dsi_pll.o
  CC [M]  drivers/gpu/drm/i915/i915_perf.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v5_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_tee.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v6_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_quirks.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v7_0.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv44.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv49.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_cmd.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_tc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vblank.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_irq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vce.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_pm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_session.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vga.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.o
  CC [M]  drivers/gpu/drm/i915/i915_gpu_error.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v3_0.o
  CC [M]  drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.o
  CC [M]  drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v4_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgf108.o
  CC [M]  drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.o
  CC [M]  drivers/gpu/drm/i915/selftests/i915_random.o
  CC [M]  drivers/gpu/drm/i915/selftests/i915_selftest.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_atomic.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vrr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_flush_test.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_live_test.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_wm.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_mmap.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_reset.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_scaler.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_spinner.o
  CC [M]  drivers/gpu/drm/i915/selftests/librapl.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
  CC [M]  drivers/gpu/drm/i915/i915_vgpu.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v1_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v2_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_crtc_state_dump.h
  HDRTEST drivers/gpu/drm/i915/display/hsw_ips.h
  HDRTEST drivers/gpu/drm/i915/display/g4x_hdmi.h
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_watermark.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_overlay.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display.h
  HDRTEST drivers/gpu/drm/i915/display/skl_watermark_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dmc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v2_5.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v3_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_vga.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v4_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_audio.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lvds.h
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_setup.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cdclk.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm200.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_limits.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hotplug.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy.h
  HDRTEST drivers/gpu/drm/i915/display/intel_atomic.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_driver.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpll.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_mst.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fdi_regs.h
  HDRTEST drivers/gpu/drm/i915/display/g4x_dp.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_frontbuffer.h
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_acpi.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi_vbt.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_psr.h
  HDRTEST drivers/gpu/drm/i915/display/intel_crt.h
  HDRTEST drivers/gpu/drm/i915/display/intel_opregion.h
  HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramga102.o
  HDRTEST drivers/gpu/drm/i915/display/i9xx_wm.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_global_state.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lpe_audio.h
  HDRTEST drivers/gpu/drm/i915/display/intel_drrs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_rps.h
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_opregion.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fbdev.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v1_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v2_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbdev.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pps_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hdmi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v2_1.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fdi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fb.h
  HDRTEST drivers/gpu/drm/i915/display/intel_qp_tables.h
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsb_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vdsc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_core.h
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo_dev.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v3_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v9_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sdvo_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v11_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v11_0_6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pch_refclk.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_trace.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.o
  HDRTEST drivers/gpu/drm/i915/display/i9xx_plane.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_backlight.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpll_mgr.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_plane_initial.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband_reg.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
../drivers/gpu/drm/i915/display/intel_frontbuffer.h:84: warning: Function parameter or member 'fb' not described in 'intel_frontbuffer_invalidate'
../drivers/gpu/drm/i915/display/intel_frontbuffer.h:84: warning: Excess function parameter 'front' description in 'intel_frontbuffer_invalidate'
../drivers/gpu/drm/i915/display/intel_frontbuffer.h:112: warning: Function parameter or member 'fb' not described in 'intel_frontbuffer_flush'
../drivers/gpu/drm/i915/display/intel_frontbuffer.h:112: warning: Excess function parameter 'front' description in 'intel_frontbuffer_flush'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pcode.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_reset.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mca_v3_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg_defs.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_trace.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fifo_underrun.h
../drivers/gpu/drm/i915/i915_gpu_error.c:2174: warning: Function parameter or member 'dump_flags' not described in 'i915_capture_error_state'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cursor.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_active_types.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cx0_phy.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
  HDRTEST drivers/gpu/drm/i915/display/skl_scaler.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hti.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/g94.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf119.o
  HDRTEST drivers/gpu/drm/i915/display/icl_dsi_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_atomic_plane.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.o
  HDRTEST drivers/gpu/drm/i915/display/skl_watermark.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
../drivers/gpu/drm/i915/i915_perf.c:5307: warning: Function parameter or member 'i915' not described in 'i915_perf_ioctl_version'
  HDRTEST drivers/gpu/drm/i915/display/intel_fbc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_reg_defs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.o
  HDRTEST drivers/gpu/drm/i915/display/intel_acpi.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_config.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_mchbar_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_connector.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_debugfs.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpt.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vgpu.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_fixed.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pm_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_quirks.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/ga102.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_link_training.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.o
  HDRTEST drivers/gpu/drm/i915/display/intel_color.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_topology.o
  HDRTEST drivers/gpu/drm/i915/display/intel_crtc.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pci_config.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_pasid.o
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_verify.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_clock_gating.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power_well.h
  HDRTEST drivers/gpu/drm/i915/display/intel_psr_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_doorbell.o
  HDRTEST drivers/gpu/drm/i915/display/intel_wm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_flat_memory.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pipe_crc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ga102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_queue.o
  HDRTEST drivers/gpu/drm/i915/display/intel_audio_regs.h
  HDRTEST drivers/gpu/drm/xe/display/ext/i915_irq.h
  HDRTEST drivers/gpu/drm/i915/display/intel_panel.h
  HDRTEST drivers/gpu/drm/xe/display/ext/intel_pch.h
  HDRTEST drivers/gpu/drm/i915/display/intel_sprite.h
  HDRTEST drivers/gpu/drm/i915/display/intel_wm_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.o
  HDRTEST drivers/gpu/drm/xe/display/ext/intel_dram.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tv.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hti_regs.h
  HDRTEST drivers/gpu/drm/xe/display/ext/intel_device_info.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vrr.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_guc_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_load_detect.h
  HDRTEST drivers/gpu/drm/i915/display/skl_universal_plane.h
  HDRTEST drivers/gpu/drm/i915/display/intel_mg_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_bw.h
  HDRTEST drivers/gpu/drm/i915/display/intel_de.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lvds_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gt_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_gmbus_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
  HDRTEST drivers/gpu/drm/i915/display/intel_sdvo.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vdsc_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.o
  HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager.o
  HDRTEST drivers/gpu/drm/i915/display/intel_gmbus.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_cik.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v9.o
  HDRTEST drivers/gpu/drm/xe/xe_bb.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v11.o
  HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_kernel_queue.o
  HDRTEST drivers/gpu/drm/xe/xe_bo.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager_vi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager_v9.o
  HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.o
  HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process_queue_manager.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dmc_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.o
  HDRTEST drivers/gpu/drm/i915/display/intel_ddi.h
  HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_device.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk110.o
  HDRTEST drivers/gpu/drm/i915/display/intel_tv_regs.h
  HDRTEST drivers/gpu/drm/xe/xe_device_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm200.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsb.h
  HDRTEST drivers/gpu/drm/i915/display/intel_bios.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pch_display.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_cik.o
  HDRTEST drivers/gpu/drm/i915/display/intel_backlight.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_vi.o
  HDRTEST drivers/gpu/drm/i915/display/intel_vblank.h
  HDRTEST drivers/gpu/drm/xe/xe_display.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v9.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v10.o
  HDRTEST drivers/gpu/drm/i915/display/intel_backlight_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.o
  HDRTEST drivers/gpu/drm/xe/xe_dma_buf.h
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v11.o
  HDRTEST drivers/gpu/drm/xe/xe_engine.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_interrupt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_events.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_reset.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv4e.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power_map.h
  HDRTEST drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
  HDRTEST drivers/gpu/drm/i915/display/icl_dsi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lspcon.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpio_phy.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_hdcp.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fb_pin.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv50.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pps.h
  HDRTEST drivers/gpu/drm/i915/display/intel_sprite_uapi.h
  HDRTEST drivers/gpu/drm/xe/xe_engine_types.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padg94.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_region.h
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_context_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/cik_event_interrupt.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_lmem.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_mman.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_object_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.o
../drivers/gpu/drm/i915/gem/i915_gem_region.h:25: warning: Incorrect use of kernel-doc format:          * process_obj - Process the current object
../drivers/gpu/drm/i915/gem/i915_gem_region.h:35: warning: Function parameter or member 'process_obj' not described in 'i915_gem_apply_to_region_ops'
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v11.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_smi_events.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm200.o
  HDRTEST drivers/gpu/drm/xe/xe_execlist.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_crat.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_context.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.o
  HDRTEST drivers/gpu/drm/xe/xe_force_wake.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_clflush.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_tiling.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_stolen.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt_types.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.h
  HDRTEST drivers/gpu/drm/xe/xe_gt.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_clock.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_create.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm_move.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ioctls.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_domain.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_internal.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_dmabuf.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_context.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/huge_gem_object.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.o
  HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_gem_object.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.o
  HDRTEST drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.h
../drivers/gpu/drm/i915/gem/i915_gem_ttm.h:50: warning: Function parameter or member 'bo' not described in 'i915_ttm_to_gem'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.o
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  HDRTEST drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_userptr.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_engine_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_pm.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/gf100.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_shrinker.h
  HDRTEST drivers/gpu/drm/i915/gem/i915_gemfs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_fwif.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_job.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_acp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_object.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../acp/acp_hw.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_timeline_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.h
  HDRTEST drivers/gpu/drm/i915/gt/selftest_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_breadcrumbs.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_huc.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ioc32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_heartbeat.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.o
  HDRTEST drivers/gpu/drm/xe/xe_irq.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_context_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_execlists_submission.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/arcturus_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.o
  HDRTEST drivers/gpu/drm/i915/gt/selftest_rc6.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_llc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_macros.h
  HDRTEST drivers/gpu/drm/xe/xe_map.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_region_lmem.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_mmio.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_requests.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/cyan_skillfish_ppt.o
  HDRTEST drivers/gpu/drm/xe/xe_mocs.h
  HDRTEST drivers/gpu/drm/xe/xe_module.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/smu_v11_0.o
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_ggtt_gmch.h
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/renoir_ppt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/smu_v12_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/aldebaran_ppt.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_print.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/yellow_carp_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_0_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_4_ppt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp102.o
../drivers/gpu/drm/i915/gem/i915_gem_object.h:93: warning: Function parameter or member 'file' not described in 'i915_gem_object_lookup_rcu'
../drivers/gpu/drm/i915/gem/i915_gem_object.h:93: warning: Excess function parameter 'filp' description in 'i915_gem_object_lookup_rcu'
  HDRTEST drivers/gpu/drm/i915/gt/gen8_ppgtt.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_mcr.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp10b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_5_ppt.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_timeline.h
  HDRTEST drivers/gpu/drm/i915/gt/gen6_engine_cs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_7_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_6_ppt.o
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.o
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_workarounds_types.h
  HDRTEST drivers/gpu/drm/i915/gt/selftest_rps.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode_api.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.o
  HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv11.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu_cmn.o
  HDRTEST drivers/gpu/drm/xe/xe_pm.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_sa_media.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu8_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_clock_utils.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_rps_types.h
  HDRTEST drivers/gpu/drm/i915/gt/selftest_engine_heartbeat.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv17.o
  HDRTEST drivers/gpu/drm/i915/gt/sysfs_engines.h
  HDRTEST drivers/gpu/drm/i915/gt/gen7_renderclear.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_context.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_wopcm.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_mocs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_pm.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_sysfs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_rc6.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/g84.o
  HDRTEST drivers/gpu/drm/xe/xe_pt.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_ring_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/tonga_smumgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/fiji_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_workarounds.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gt215.o
  HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
  HDRTEST drivers/gpu/drm/xe/xe_query.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_pm_irq.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.o
  HDRTEST drivers/gpu/drm/i915/gt/shmem_utils.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/polaris10_smumgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/iceland_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_reset_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu7_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_reset.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega10_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_fw_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu10_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops_types.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/ci_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_rtp_types.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_print.h
  HDRTEST drivers/gpu/drm/xe/xe_sa.h
  HDRTEST drivers/gpu/drm/xe/xe_sa_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sched_job.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega12_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp10b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/ga100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vegam_smumgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu9_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega20_smumgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_fw.h
../drivers/gpu/drm/i915/gt/intel_context.h:108: warning: Function parameter or member 'ce' not described in 'intel_context_lock_pinned'
../drivers/gpu/drm/i915/gt/intel_context.h:123: warning: Function parameter or member 'ce' not described in 'intel_context_is_pinned'
../drivers/gpu/drm/i915/gt/intel_context.h:142: warning: Function parameter or member 'ce' not described in 'intel_context_unlock_pinned'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.o
  HDRTEST drivers/gpu/drm/xe/xe_sched_job_types.h
  HDRTEST drivers/gpu/drm/xe/xe_step.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.o
  HDRTEST drivers/gpu/drm/xe/xe_step_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.o
  HDRTEST drivers/gpu/drm/xe/xe_sync.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hwmgr.o
  HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
  HDRTEST drivers/gpu/drm/xe/xe_trace.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/processpptables.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hardwaremanager.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu8_hwmgr.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pppcielanes.o
  HDRTEST drivers/gpu/drm/xe/xe_tuning.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_uc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/process_pptables_v1_0.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_klvs_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomctrl.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_errors_abi.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_actions_slpc_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_abi.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_types.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_actions_abi.h
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'size' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'data' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'rd' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:27: warning: Function parameter or member 'wr' not described in '__guc_capture_bufstate'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'link' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'is_partial' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'eng_class' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'eng_inst' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'guc_id' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'lrca' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:59: warning: Function parameter or member 'reginfo' not described in '__guc_capture_parsed_output'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:62: warning: wrong kernel-doc identifier on line:
 * struct guc_debug_capture_list_header / struct guc_debug_capture_list
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:80: warning: wrong kernel-doc identifier on line:
 * struct __guc_mmio_reg_descr / struct __guc_mmio_reg_descr_group
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:105: warning: wrong kernel-doc identifier on line:
 * struct guc_state_capture_header_t / struct guc_state_capture_t /
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'is_valid' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'ptr' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'size' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:163: warning: Function parameter or member 'status' not described in '__guc_capture_ads_cache'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:216: warning: Function parameter or member 'ads_null_cache' not described in 'intel_guc_state_capture'
../drivers/gpu/drm/i915/gt/uc/guc_capture_fwif.h:216: warning: Function parameter or member 'max_mmio_per_node' not described in 'intel_guc_state_capture'
  HDRTEST drivers/gpu/drm/xe/xe_vm.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_doc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_communication_ctb_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomfwctrl.o
  HDRTEST drivers/gpu/drm/xe/xe_vm_madvise.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/abi/guc_messages_abi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.o
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_powertune.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_thermal.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_reg.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mcp77.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_clockpowergating.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc_fw.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_processpptables.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.o
  HDRTEST drivers/gpu/drm/xe/xe_wa.h
  HDRTEST drivers/gpu/drm/xe/xe_wait_user_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_capture.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_wopcm_types.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h
  LD [M]  drivers/gpu/drm/xe/xe.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk104.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_hwmgr.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_log.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_ct.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gm20b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp100.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp10b.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_fw.h
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_ads.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_powertune.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_thermal.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu10_hwmgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_psm.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_processpptables.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_hwmgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_thermal.o
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_guc_rc.h
drivers/gpu/drm/xe/xe.o: warning: objtool: intel_set_cpu_fifo_underrun_reporting+0x2b7: unreachable instruction
../drivers/gpu/drm/i915/gt/uc/intel_guc.h:274: warning: Function parameter or member 'dbgfs_node' not described in 'intel_guc'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'marker' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'read_ptr' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'write_ptr' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'size' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'sampled_write_ptr' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'wrap_offset' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'flush_to_file' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'buffer_full_cnt' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'reserved' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'flags' not described in 'guc_log_buffer_state'
../drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h:491: warning: Function parameter or member 'version' not described in 'guc_log_buffer_state'
  HDRTEST drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv50.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_hwconfig.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_llc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_overdriver.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_processpptables.o
  HDRTEST drivers/gpu/drm/i915/gt/gen8_engine_cs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_sseu_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_rc6_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memgf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_context_param.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_hwmgr.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gpu_commands.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_powertune.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_thermal.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_user.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv41.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv44.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_irq.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/common_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmmcp77.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gsc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk20a.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_rps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm200.o
  HDRTEST drivers/gpu/drm/i915/gt/selftest_llc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_baco.o
  HDRTEST drivers/gpu/drm/i915/gt/gen6_ppgtt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu9_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/tonga_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/polaris_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/fiji_baco.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_ggtt_fencing.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_migrate_types.h
  HDRTEST drivers/gpu/drm/i915/gt/selftests/mock_timeline.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ci_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_lrc.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_lrc_reg.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_migrate.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp10b.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/legacy_dpm.o
  HDRTEST drivers/gpu/drm/i915/gt/mock_engine.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_stats.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu102.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gtt.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_buffer_pool_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_ring.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_smc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_smc.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_renderstate.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_pm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm_internal.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/pcie.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crtc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv04.o
  HDRTEST drivers/gpu/drm/i915/gt/intel_sseu.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_engine_types.h
  HDRTEST drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.h
  HDRTEST drivers/gpu/drm/i915/gt/gen2_engine_cs.h
  HDRTEST drivers/gpu/drm/i915/gvt/gvt.h
  HDRTEST drivers/gpu/drm/i915/gvt/trace.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_irq.o
  HDRTEST drivers/gpu/drm/i915/gvt/debug.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_mst_types.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_color.o
  HDRTEST drivers/gpu/drm/i915/gvt/edid.h
  HDRTEST drivers/gpu/drm/i915/gvt/page_track.h
  HDRTEST drivers/gpu/drm/i915/gvt/mmio.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv46.o
../drivers/gpu/drm/i915/gt/intel_gtt.h:515: warning: Function parameter or member 'vm' not described in 'i915_vm_resv_put'
../drivers/gpu/drm/i915/gt/intel_gtt.h:515: warning: Excess function parameter 'resv' description in 'i915_vm_resv_put'
  HDRTEST drivers/gpu/drm/i915/gvt/sched_policy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv4c.o
  HDRTEST drivers/gpu/drm/i915/gvt/fb_decoder.h
  HDRTEST drivers/gpu/drm/i915/gvt/cmd_parser.h
  HDRTEST drivers/gpu/drm/i915/gvt/dmabuf.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.o
  HDRTEST drivers/gpu/drm/i915/gvt/mmio_context.h
  HDRTEST drivers/gpu/drm/i915/gvt/display.h
  HDRTEST drivers/gpu/drm/i915/gvt/gtt.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_services.o
  HDRTEST drivers/gpu/drm/i915/gvt/scheduler.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_helpers.o
  HDRTEST drivers/gpu/drm/i915/gvt/reg.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g92.o
  HDRTEST drivers/gpu/drm/i915/gvt/execlist.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g94.o
  HDRTEST drivers/gpu/drm/i915/gvt/interrupt.h
  HDRTEST drivers/gpu/drm/i915/i915_active.h
  HDRTEST drivers/gpu/drm/i915/i915_active_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf106.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.o
  HDRTEST drivers/gpu/drm/i915/i915_cmd_parser.h
  HDRTEST drivers/gpu/drm/i915/i915_config.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_pp_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_psr.o
  HDRTEST drivers/gpu/drm/i915/i915_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_hdcp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.o
  HDRTEST drivers/gpu/drm/i915/i915_debugfs_params.h
  HDRTEST drivers/gpu/drm/i915/i915_deps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.o
  HDRTEST drivers/gpu/drm/i915/i915_driver.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crc.o
../drivers/gpu/drm/i915/gt/intel_engine_types.h:293: warning: Function parameter or member 'preempt_hang' not described in 'intel_engine_execlists'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/conversion.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/fixpt31_32.o
  HDRTEST drivers/gpu/drm/i915/i915_drm_client.h
  HDRTEST drivers/gpu/drm/i915/i915_drv.h
  HDRTEST drivers/gpu/drm/i915/i915_file_private.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.o
  HDRTEST drivers/gpu/drm/i915/i915_fixed.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk208.o
  HDRTEST drivers/gpu/drm/i915/i915_gem.h
  HDRTEST drivers/gpu/drm/i915/i915_gem_evict.h
  HDRTEST drivers/gpu/drm/i915/i915_gem_gtt.h
  HDRTEST drivers/gpu/drm/i915/i915_gem_ww.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.o
  HDRTEST drivers/gpu/drm/i915/i915_getparam.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm107.o
  HDRTEST drivers/gpu/drm/i915/i915_gpu_error.h
  HDRTEST drivers/gpu/drm/i915/i915_hwmon.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/vector.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/dc_common.o
  HDRTEST drivers/gpu/drm/i915/i915_ioc32.h
  HDRTEST drivers/gpu/drm/i915/i915_ioctl.h
  HDRTEST drivers/gpu/drm/i915/i915_iosf_mbi.h
  HDRTEST drivers/gpu/drm/i915/i915_irq.h
  HDRTEST drivers/gpu/drm/i915/i915_memcpy.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser.o
../drivers/gpu/drm/i915/i915_active.h:66: warning: Function parameter or member 'active' not described in '__i915_active_fence_init'
../drivers/gpu/drm/i915/i915_active.h:66: warning: Function parameter or member 'fence' not described in '__i915_active_fence_init'
../drivers/gpu/drm/i915/i915_active.h:66: warning: Function parameter or member 'fn' not described in '__i915_active_fence_init'
../drivers/gpu/drm/i915/i915_active.h:89: warning: Function parameter or member 'active' not described in 'i915_active_fence_set'
../drivers/gpu/drm/i915/i915_active.h:89: warning: Function parameter or member 'rq' not described in 'i915_active_fence_set'
../drivers/gpu/drm/i915/i915_active.h:102: warning: Function parameter or member 'active' not described in 'i915_active_fence_get'
../drivers/gpu/drm/i915/i915_active.h:122: warning: Function parameter or member 'active' not described in 'i915_active_fence_isset'
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_interface.o
  HDRTEST drivers/gpu/drm/i915/i915_mitigations.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp102.o
  HDRTEST drivers/gpu/drm/i915/i915_mm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.o
  HDRTEST drivers/gpu/drm/i915/i915_params.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf117.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper.o
  HDRTEST drivers/gpu/drm/i915/i915_pci.h
  HDRTEST drivers/gpu/drm/i915/i915_perf.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gk104.o
  HDRTEST drivers/gpu/drm/i915/i915_perf_oa_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gk20a.o
  HDRTEST drivers/gpu/drm/i915/i915_perf_types.h
  HDRTEST drivers/gpu/drm/i915/i915_pmu.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gp10b.o
  HDRTEST drivers/gpu/drm/i915/i915_priolist_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_common.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fan.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fannil.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce60/command_table_helper_dce60.o
  HDRTEST drivers/gpu/drm/i915/i915_pvinfo.h
  HDRTEST drivers/gpu/drm/i915/i915_query.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fanpwm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce80/command_table_helper_dce80.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.o
  HDRTEST drivers/gpu/drm/i915/i915_reg.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce110/command_table_helper_dce110.o
  HDRTEST drivers/gpu/drm/i915/i915_reg_defs.h
  HDRTEST drivers/gpu/drm/i915/i915_request.h
  HDRTEST drivers/gpu/drm/i915/i915_scatterlist.h
  HDRTEST drivers/gpu/drm/i915/i915_scheduler.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper_dce112.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper2_dce112.o
  HDRTEST drivers/gpu/drm/i915/i915_scheduler_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.o
  HDRTEST drivers/gpu/drm/i915/i915_selftest.h
  HDRTEST drivers/gpu/drm/i915/i915_suspend.h
  HDRTEST drivers/gpu/drm/i915/i915_sw_fence.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dce_calcs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/custom_float.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/bw_fixed.o
  HDRTEST drivers/gpu/drm/i915/i915_sw_fence_work.h
  HDRTEST drivers/gpu/drm/i915/i915_switcheroo.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.o
  HDRTEST drivers/gpu/drm/i915/i915_syncmap.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.o
  HDRTEST drivers/gpu/drm/i915/i915_sysfs.h
  HDRTEST drivers/gpu/drm/i915/i915_tasklet.h
../drivers/gpu/drm/i915/i915_pmu.h:21: warning: cannot understand function prototype: 'enum i915_pmu_tracked_events '
../drivers/gpu/drm/i915/i915_pmu.h:32: warning: cannot understand function prototype: 'enum '
../drivers/gpu/drm/i915/i915_pmu.h:41: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * How many different events we track in the global PMU mask.
  HDRTEST drivers/gpu/drm/i915/i915_trace.h
  HDRTEST drivers/gpu/drm/i915/i915_ttm_buddy_manager.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.o
  HDRTEST drivers/gpu/drm/i915/i915_user_extensions.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.o
  HDRTEST drivers/gpu/drm/i915/i915_utils.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_lib.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.o
  HDRTEST drivers/gpu/drm/i915/i915_vgpu.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_rq_dlg_helpers.o
  HDRTEST drivers/gpu/drm/i915/i915_vma.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.o
  HDRTEST drivers/gpu/drm/i915/i915_vma_resource.h
  HDRTEST drivers/gpu/drm/i915/i915_vma_types.h
  HDRTEST drivers/gpu/drm/i915/intel_clock_gating.h
../drivers/gpu/drm/i915/i915_scatterlist.h:160: warning: Incorrect use of kernel-doc format:          * release() - Free the memory of the struct i915_refct_sgt
../drivers/gpu/drm/i915/i915_scatterlist.h:164: warning: Function parameter or member 'release' not described in 'i915_refct_sgt_ops'
../drivers/gpu/drm/i915/i915_scatterlist.h:187: warning: Function parameter or member 'rsgt' not described in 'i915_refct_sgt_put'
../drivers/gpu/drm/i915/i915_scatterlist.h:198: warning: Function parameter or member 'rsgt' not described in 'i915_refct_sgt_get'
  HDRTEST drivers/gpu/drm/i915/intel_device_info.h
../drivers/gpu/drm/i915/i915_scatterlist.h:214: warning: Function parameter or member 'rsgt' not described in '__i915_refct_sgt_init'
  HDRTEST drivers/gpu/drm/i915/intel_gvt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn10/dcn10_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/dcn20_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_vba.o
  HDRTEST drivers/gpu/drm/i915/intel_mchbar_regs.h
../drivers/gpu/drm/i915/i915_request.h:176: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Request queue structure.
../drivers/gpu/drm/i915/i915_request.h:477: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
 * Returns true if seq1 is later than seq2.
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv41.o
  HDRTEST drivers/gpu/drm/i915/intel_memory_region.h
  HDRTEST drivers/gpu/drm/i915/intel_pci_config.h
  HDRTEST drivers/gpu/drm/i915/intel_pcode.h
  HDRTEST drivers/gpu/drm/i915/intel_region_ttm.h
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'OP' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'COND' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'US' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'Wmin' not described in '__wait_for'
../drivers/gpu/drm/i915/i915_utils.h:284: warning: Function parameter or member 'Wmax' not described in '__wait_for'
  HDRTEST drivers/gpu/drm/i915/intel_runtime_pm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.o
  HDRTEST drivers/gpu/drm/i915/intel_sbi.h
  HDRTEST drivers/gpu/drm/i915/intel_step.h
  HDRTEST drivers/gpu/drm/i915/intel_uncore.h
  HDRTEST drivers/gpu/drm/i915/intel_wakeref.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20v2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_tee.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/base.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_irq.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_session.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_43.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_rq_dlg_calc_21.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/ga100.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/dcn30_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.o
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_cmn.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_huc.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_pm.h
  HDRTEST drivers/gpu/drm/i915/pxp/intel_pxp_cmd_interface_42.h
  HDRTEST drivers/gpu/drm/i915/selftests/igt_live_test.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/tu102.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_atomic.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/ga100.o
  HDRTEST drivers/gpu/drm/i915/selftests/mock_gem_device.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_drm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_reset.h
  HDRTEST drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.h
../drivers/gpu/drm/i915/i915_vma_resource.h:91: warning: Incorrect use of kernel-doc format:          * struct i915_vma_bindinfo - Information needed for async bind
../drivers/gpu/drm/i915/i915_vma_resource.h:129: warning: Function parameter or member 'wakeref' not described in 'i915_vma_resource'
../drivers/gpu/drm/i915/i915_vma_resource.h:129: warning: Function parameter or member 'bi' not described in 'i915_vma_resource'
  HDRTEST drivers/gpu/drm/i915/selftests/lib_sw_fence.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.o
  HDRTEST drivers/gpu/drm/i915/selftests/i915_perf_selftests.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.o
../drivers/gpu/drm/i915/i915_vma.h:145: warning: expecting prototype for i915_vma_offset(). Prototype was for i915_vma_size() instead
  HDRTEST drivers/gpu/drm/i915/selftests/mock_uncore.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_gtt.h
../drivers/gpu/drm/i915/pxp/intel_pxp_types.h:96: warning: Function parameter or member 'dev_link' not described in 'intel_pxp'
  HDRTEST drivers/gpu/drm/i915/selftests/i915_mock_selftests.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_request.h
  HDRTEST drivers/gpu/drm/i915/selftests/i915_random.h
  HDRTEST drivers/gpu/drm/i915/selftests/igt_spinner.h
  HDRTEST drivers/gpu/drm/i915/selftests/librapl.h
  HDRTEST drivers/gpu/drm/i915/selftests/mock_region.h
  HDRTEST drivers/gpu/drm/i915/selftests/i915_live_selftests.h
  HDRTEST drivers/gpu/drm/i915/selftests/igt_mmap.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.o
  HDRTEST drivers/gpu/drm/i915/selftests/igt_flush_test.h
  HDRTEST drivers/gpu/drm/i915/soc/intel_pch.h
  HDRTEST drivers/gpu/drm/i915/soc/intel_dram.h
  HDRTEST drivers/gpu/drm/i915/soc/intel_gmch.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_rq_dlg_calc_30.o
  HDRTEST drivers/gpu/drm/i915/vlv_sideband.h
  HDRTEST drivers/gpu/drm/i915/vlv_sideband_reg.h
  HDRTEST drivers/gpu/drm/i915/vlv_suspend.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_mode_vba_31.o
  LD [M]  drivers/gpu/drm/i915/i915.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_rq_dlg_calc_31.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf117.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_mode_vba_314.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/falcon.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_rq_dlg_calc_314.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/xtensa.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_rq_dlg_calc_32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_util_32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/dcn31_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/dcn32_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn321/dcn321_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/pci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/user.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn302/dcn302_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn303/dcn303_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/dcn314_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/conn.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/hdmi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dsc/rc_calc_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calcs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/head.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/vga.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_math.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp89.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_auto.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce60/dce60_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uconn.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce100/dce_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce110/dce110_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce112/dce112_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce120/dce120_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uhead.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv1_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/gf119.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv1_clk_mgr_vbios_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/user.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv2_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usergf119.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn201/dcn201_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn30/dcn30_clk_mgr_smu_msg.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/vg_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn301/dcn301_smu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn31/dcn31_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn31/dcn31_clk_mgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.o
  CC [M]  drivers/g



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

* Re: [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds
  2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
                   ` (11 preceding siblings ...)
  2023-05-16 22:28 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-05-17  4:39 ` Lucas De Marchi
  12 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-17  4:39 UTC (permalink / raw)
  To: intel-xe; +Cc: Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:41PM -0700, Lucas De Marchi wrote:
>Third version adding OOB workarounds, third different approach.
>Gone is the special ELF section and now it's implemented by
>creating a new RTP struct that holds tables containing only rules,
>without the actions interacting with reg-save-restore.
>
>Now a common approach between all types of workarounds is used for
>marking the "active" workarounds. These are the ones in play for the
>running system.  They can be queried over debugfs and for the OOB,
>are checked throughout the code. Last patch converts xe_guc.c to the
>new infra.
>
>In order to be able to implement the simpler XE_WA() requested in
>previous versions, and at the same time avoiding error-prone updates
>in different places of the code, a simple program was written to
>generate xe_wa_oob.c and xe_wa_oob.h. The syntax is kept very simple
>on purpose, with the following goals:
>
>	1) Be similar to the rest of the workarounds. The codegen
>	   just paste together the info in the .rules file
>	   and updated header/source with the appropriate values
>	2) Doesn't increase the build dependencies of the kernel,
>	   so it's implemented in C and built as a hostprog.
>
>Tested on a single DG2 system.

For the Hooks build failure, it seems we are missing a include in the
build system that doesn't get automatically added when passing
M=drivers/gpu/drm/xe/

word diff with and without:

gcc -Wp,-MMD,drivers/gpu/drm/xe/.xe_wa.o.d -nostdinc -I../arch/x86/include -I./arch/x86/include/generated -I../include -I./include -I../arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I../include/uapi -I./include/generated/uapi -include ../include/linux/compiler-version.h -include ../include/linux/kconfig.h -include ../include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=../= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -funsigned-char -std=gnu11 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=branch -fno-jump-tables -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=2048 -fstack-protector-strong -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -ftrivial-auto-var-init=zero -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-truncation -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -g -fno-var-tracking -femit-struct-debug-baseonly -Wall -Wextra -Wno-unused-parameter -Wno-type-limits -Wno-missing-field-initializers -Wno-unused-but-set-variable -Wno-sign-compare -Wno-frame-address -Werror -I../drivers/gpu/drm/xe -I../drivers/gpu/drm/xe/display/ext -I../drivers/gpu/drm/xe/compat-i915-headers -I../drivers/gpu/drm/xe/display/ -I../drivers/gpu/drm/i915/display/ -Ddrm_i915_gem_object=xe_bo -Ddrm_i915_private=xe_device   -fsanitize=kernel-address -fasan-shadow-offset=0xdffffc0000000000   --param asan-globals=1   --param asan-instrumentation-with-call-threshold=0   --param asan-instrument-allocas=1   --param asan-stack=1   {+-I ../drivers/gpu/drm/xe -I ./drivers/gpu/drm/xe+}  -DMODULE  -DKBUILD_BASENAME='"xe_wa"' -DKBUILD_MODNAME='"xe"' -D__KBUILD_MODNAME=kmod_xe -c -o drivers/gpu/drm/xe/xe_wa.o ../drivers/gpu/drm/xe/xe_wa.c

And with this additional diff it solves it for me:

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 07af0d022263..5e89f26fc46b 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -24,7 +24,7 @@ subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
  subdir-ccflags-y += $(call cc-disable-warning, frame-address)
  subdir-ccflags-$(CONFIG_DRM_XE_WERROR) += -Werror
  
-subdir-ccflags-y += -I$(srctree)/$(src)
+subdir-ccflags-y += -I$(srctree)/$(src) -I$(src)
  
  # generated sources
  hostprogs := xe_gen_wa_oob

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

* Re: [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation Lucas De Marchi
@ 2023-05-17 16:20   ` Matt Roper
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Roper @ 2023-05-17 16:20 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:42PM -0700, Lucas De Marchi wrote:
> It was missing one digit, so not showing up as a proper WA number. Add
> the missing number and annotate it with a FIXME as there are more to be
> implemented to consider this WA done: ensure CS is stop before doing a
> reset, wait for pending.

Should we open a gitlab issue about this workaround being incomplete so
it doesn't slip through the cracks?  I'm not sure anyone will remember
to come back and address the FIXME otherwise.

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> 
> Also, this WA applies to platforms up to graphics version 1270 (with the
> exception of MTL A*, that are not supported in xe). Fix platform check.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_guc.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index eb4af4c71124..1b5d0b6ad180 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -162,9 +162,11 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
>  		flags |= GUC_WA_DUAL_QUEUE;
>  
>  	/*
> -	 * Wa_2201180203
> +	 * Wa_22011802037: FIXME - there's more to be done than simply setting
> +	 * this flag: make sure each CS is stopped when preparing for GT reset
> +	 * and wait for pending MI_FW.
>  	 */
> -	if (GRAPHICS_VER(xe) <= 12)
> +	if (GRAPHICS_VERx100(xe) < 1270)
>  		flags |= GUC_WA_PRE_PARSER;
>  
>  	/* Wa_16011777198 */
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization Lucas De Marchi
@ 2023-05-17 17:11   ` Matt Roper
  2023-05-17 20:09     ` Lucas De Marchi
  0 siblings, 1 reply; 29+ messages in thread
From: Matt Roper @ 2023-05-17 17:11 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:43PM -0700, Lucas De Marchi wrote:
> The selection between hwe and gt is exposed to the outside of rtp, by
> the xe_rtp_process() function. It doesn't make sense to pass a hwe and a
> gt as argument since the gt should always be the one containing the hwe.
> 
> This clarifies the interface by separating the context creation into an
> initializer. The initializer then passes the correct value and there
> should never be a case with hwe and gt set. Internally the functions
> continue receiving the argument separately.
> 
> Also, since most of the rtp rules match against device characteristics,
> add support for processing rules based solely on the device. This will
> be used by follow up commits to process some workarounds.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/tests/xe_rtp_test.c |  3 +-
>  drivers/gpu/drm/xe/xe_hw_engine.c      |  8 +--
>  drivers/gpu/drm/xe/xe_reg_whitelist.c  |  4 +-
>  drivers/gpu/drm/xe/xe_rtp.c            | 71 ++++++++++++++++++++------
>  drivers/gpu/drm/xe/xe_rtp.h            | 10 +++-
>  drivers/gpu/drm/xe/xe_rtp_types.h      | 15 ++++++
>  drivers/gpu/drm/xe/xe_tuning.c         |  8 ++-
>  drivers/gpu/drm/xe/xe_wa.c             | 12 +++--
>  8 files changed, 102 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> index 4b2aac5ccf28..f96ef1987719 100644
> --- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> +++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> @@ -238,10 +238,11 @@ static void xe_rtp_process_tests(struct kunit *test)
>  	struct xe_device *xe = test->priv;
>  	struct xe_reg_sr *reg_sr = &xe->gt[0].reg_sr;
>  	const struct xe_reg_sr_entry *sre, *sr_entry = NULL;
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(&xe->gt[0]);
>  	unsigned long idx, count = 0;
>  
>  	xe_reg_sr_init(reg_sr, "xe_rtp_tests", xe);
> -	xe_rtp_process(param->entries, reg_sr, &xe->gt[0], NULL);
> +	xe_rtp_process(&ctx, param->entries, reg_sr);
>  
>  	xa_for_each(&reg_sr->xa, idx, sre) {
>  		if (idx == param->expected_reg.addr)
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> index 751f6c3bba17..1bf28b1ad319 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -281,6 +281,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
>  	const u8 mocs_read_idx = gt->mocs.uc_index;
>  	u32 blit_cctl_val = REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, mocs_write_idx) |
>  			    REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, mocs_read_idx);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>  	const struct xe_rtp_entry lrc_was[] = {
>  		/*
>  		 * Some blitter commands do not have a field for MOCS, those
> @@ -299,7 +300,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
>  		{}
>  	};
>  
> -	xe_rtp_process(lrc_was, &hwe->reg_lrc, gt, hwe);
> +	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
>  }
>  
>  static void
> @@ -311,7 +312,8 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
>  	const u8 mocs_read_idx = gt->mocs.uc_index;
>  	u32 ring_cmd_cctl_val = REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
>  			        REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
> -	const struct xe_rtp_entry engine_was[] = {
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +	const struct xe_rtp_entry engine_entries[] = {
>  		/*
>  		 * RING_CMD_CCTL specifies the default MOCS entry that will be
>  		 * used by the command streamer when executing commands that
> @@ -332,7 +334,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
>  		{}
>  	};
>  
> -	xe_rtp_process(engine_was, &hwe->reg_sr, gt, hwe);
> +	xe_rtp_process(&ctx, engine_entries, &hwe->reg_sr);
>  }
>  
>  static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
> diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> index 7a2bb60ebd85..98f678d74445 100644
> --- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
> +++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> @@ -63,7 +63,9 @@ static const struct xe_rtp_entry register_whitelist[] = {
>   */
>  void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe)
>  {
> -	xe_rtp_process(register_whitelist, &hwe->reg_whitelist, hwe->gt, hwe);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +
> +	xe_rtp_process(&ctx, register_whitelist, &hwe->reg_whitelist);
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
> index 0c6a23e14a71..648a38bf8f0c 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.c
> +++ b/drivers/gpu/drm/xe/xe_rtp.c
> @@ -23,11 +23,11 @@
>   * the values to the registers that have matching rules.
>   */
>  
> -static bool rule_matches(struct xe_gt *gt,
> +static bool rule_matches(const struct xe_device *xe,
> +			 struct xe_gt *gt,
>  			 struct xe_hw_engine *hwe,
>  			 const struct xe_rtp_entry *entry)
>  {
> -	const struct xe_device *xe = gt_to_xe(gt);
>  	const struct xe_rtp_rule *r;
>  	unsigned int i;
>  	bool match;
> @@ -62,22 +62,30 @@ static bool rule_matches(struct xe_gt *gt,
>  			match = xe->info.step.graphics >= r->step_start &&
>  				xe->info.step.graphics < r->step_end;
>  			break;
> +		case XE_RTP_MATCH_INTEGRATED:
> +			match = !xe->info.is_dgfx;
> +			break;
> +		case XE_RTP_MATCH_DISCRETE:
> +			match = xe->info.is_dgfx;
> +			break;
>  		case XE_RTP_MATCH_ENGINE_CLASS:
> +			if (drm_WARN_ON(&xe->drm, !hwe))
> +				return false;
> +
>  			match = hwe->class == r->engine_class;
>  			break;
>  		case XE_RTP_MATCH_NOT_ENGINE_CLASS:
> +			if (drm_WARN_ON(&xe->drm, !hwe))
> +				return false;
> +
>  			match = hwe->class != r->engine_class;
>  			break;
>  		case XE_RTP_MATCH_FUNC:
> +			if (drm_WARN_ON(&xe->drm, !gt))
> +				return false;
> +
>  			match = r->match_func(gt, hwe);

Would it make more sense to adjust the signature of match_func to take
xe as an additional parameter to allow general matching without a
gt/hwe?

Actually I wonder if we should just split out the addition of
device-only support into its own commit later in the series closer to
where it gets used.

Anyway, not a big deal either way; up to you whether to make any changes
or not.  Either way,

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>


Matt

>  			break;
> -		case XE_RTP_MATCH_INTEGRATED:
> -			match = !xe->info.is_dgfx;
> -			break;
> -		case XE_RTP_MATCH_DISCRETE:
> -			match = xe->info.is_dgfx;
> -			break;
> -
>  		default:
>  			XE_WARN_ON(r->match_type);
>  		}
> @@ -105,14 +113,15 @@ static void rtp_add_sr_entry(const struct xe_rtp_action *action,
>  	xe_reg_sr_add(sr, &sr_entry);
>  }
>  
> -static void rtp_process_one(const struct xe_rtp_entry *entry, struct xe_gt *gt,
> +static void rtp_process_one(const struct xe_rtp_entry *entry,
> +			    struct xe_device *xe, struct xe_gt *gt,
>  			    struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
>  {
>  	const struct xe_rtp_action *action;
>  	u32 mmio_base;
>  	unsigned int i;
>  
> -	if (!rule_matches(gt, hwe, entry))
> +	if (!rule_matches(xe, gt, hwe, entry))
>  		return;
>  
>  	for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
> @@ -126,23 +135,51 @@ static void rtp_process_one(const struct xe_rtp_entry *entry, struct xe_gt *gt,
>  	}
>  }
>  
> +static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
> +			    struct xe_hw_engine **hwe,
> +			    struct xe_gt **gt,
> +			    struct xe_device **xe)
> +{
> +	switch (ctx->type) {
> +	case XE_RTP_PROCESS_TYPE_DEVICE:
> +		*hwe = NULL;
> +		*gt = NULL;
> +		*xe = ctx->xe;
> +		break;
> +	case XE_RTP_PROCESS_TYPE_GT:
> +		*hwe = NULL;
> +		*gt = ctx->gt;
> +		*xe = gt_to_xe(*gt);
> +		break;
> +	case XE_RTP_PROCESS_TYPE_ENGINE:
> +		*hwe = ctx->hwe;
> +		*gt = (*hwe)->gt;
> +		*xe = gt_to_xe(*gt);
> +		break;
> +	};
> +}
> +
>  /**
>   * xe_rtp_process - Process all rtp @entries, adding the matching ones to @sr
> + * @ctx: The context for processing the table, with one of device, gt or hwe
>   * @entries: Table with RTP definitions
>   * @sr: Where to add an entry to with the values for matching. This can be
>   *      viewed as the "coalesced view" of multiple the tables. The bits for each
>   *      register set are expected not to collide with previously added entries
> - * @gt: The GT to be used for matching rules
> - * @hwe: Engine instance to use for matching rules and as mmio base
>   *
>   * Walk the table pointed by @entries (with an empty sentinel) and add all
>   * entries with matching rules to @sr. If @hwe is not NULL, its mmio_base is
>   * used to calculate the right register offset
>   */
> -void xe_rtp_process(const struct xe_rtp_entry *entries, struct xe_reg_sr *sr,
> -		    struct xe_gt *gt, struct xe_hw_engine *hwe)
> +void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
> +		    const struct xe_rtp_entry *entries, struct xe_reg_sr *sr)
>  {
>  	const struct xe_rtp_entry *entry;
> +	struct xe_hw_engine *hwe;
> +	struct xe_gt *gt;
> +	struct xe_device *xe;
> +
> +	rtp_get_context(ctx, &hwe, &gt, &xe);
>  
>  	for (entry = entries; entry && entry->name; entry++) {
>  		if (entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) {
> @@ -150,9 +187,9 @@ void xe_rtp_process(const struct xe_rtp_entry *entries, struct xe_reg_sr *sr,
>  			enum xe_hw_engine_id id;
>  
>  			for_each_hw_engine(each_hwe, gt, id)
> -				rtp_process_one(entry, gt, each_hwe, sr);
> +				rtp_process_one(entry, xe, gt, each_hwe, sr);
>  		} else {
> -			rtp_process_one(entry, gt, hwe, sr);
> +			rtp_process_one(entry, xe, gt, hwe, sr);
>  		}
>  	}
>  }
> diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
> index 8bc946694bfc..e7f254fb1b31 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.h
> +++ b/drivers/gpu/drm/xe/xe_rtp.h
> @@ -358,8 +358,14 @@ struct xe_reg_sr;
>  		XE_RTP_PASTE_FOREACH(ACTION_, COMMA, (__VA_ARGS__))	\
>  	}
>  
> -void xe_rtp_process(const struct xe_rtp_entry *entries, struct xe_reg_sr *sr,
> -		    struct xe_gt *gt, struct xe_hw_engine *hwe);
> +#define XE_RTP_PROCESS_CTX_INITIALIZER(arg__) _Generic((arg__),							\
> +	struct xe_hw_engine *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_ENGINE },	\
> +	struct xe_gt *:		(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_GT },	\
> +	struct xe_device *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_DEVICE })
> +
> +void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
> +		    const struct xe_rtp_entry *entries,
> +		    struct xe_reg_sr *sr);
>  
>  /* Match functions to be used with XE_RTP_MATCH_FUNC */
>  
> diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
> index 12df8a9e9c45..6d9ab9eb91ba 100644
> --- a/drivers/gpu/drm/xe/xe_rtp_types.h
> +++ b/drivers/gpu/drm/xe/xe_rtp_types.h
> @@ -95,4 +95,19 @@ struct xe_rtp_entry {
>  	u8 flags;
>  };
>  
> +enum xe_rtp_process_type {
> +	XE_RTP_PROCESS_TYPE_DEVICE,
> +	XE_RTP_PROCESS_TYPE_GT,
> +	XE_RTP_PROCESS_TYPE_ENGINE,
> +};
> +
> +struct xe_rtp_process_ctx {
> +	union {
> +		struct xe_device *xe;
> +		struct xe_gt *gt;
> +		struct xe_hw_engine *hwe;
> +	};
> +	enum xe_rtp_process_type type;
> +};
> +
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
> index 5fc6a408429b..c2810ede3a65 100644
> --- a/drivers/gpu/drm/xe/xe_tuning.c
> +++ b/drivers/gpu/drm/xe/xe_tuning.c
> @@ -59,7 +59,9 @@ static const struct xe_rtp_entry lrc_tunings[] = {
>  
>  void xe_tuning_process_gt(struct xe_gt *gt)
>  {
> -	xe_rtp_process(gt_tunings, &gt->reg_sr, gt, NULL);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
> +
> +	xe_rtp_process(&ctx, gt_tunings, &gt->reg_sr);
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
>  
> @@ -73,5 +75,7 @@ EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
>   */
>  void xe_tuning_process_lrc(struct xe_hw_engine *hwe)
>  {
> -	xe_rtp_process(lrc_tunings, &hwe->reg_lrc, hwe->gt, hwe);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +
> +	xe_rtp_process(&ctx, lrc_tunings, &hwe->reg_lrc);
>  }
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index b0bb2f4438f4..4b236b6f4c8e 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -579,7 +579,9 @@ __diag_pop();
>   */
>  void xe_wa_process_gt(struct xe_gt *gt)
>  {
> -	xe_rtp_process(gt_was, &gt->reg_sr, gt, NULL);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
> +
> +	xe_rtp_process(&ctx, gt_was, &gt->reg_sr);
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
>  
> @@ -593,7 +595,9 @@ EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
>   */
>  void xe_wa_process_engine(struct xe_hw_engine *hwe)
>  {
> -	xe_rtp_process(engine_was, &hwe->reg_sr, hwe->gt, hwe);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +
> +	xe_rtp_process(&ctx, engine_was, &hwe->reg_sr);
>  }
>  
>  /**
> @@ -606,5 +610,7 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
>   */
>  void xe_wa_process_lrc(struct xe_hw_engine *hwe)
>  {
> -	xe_rtp_process(lrc_was, &hwe->reg_lrc, hwe->gt, hwe);
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +
> +	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
>  }
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 3/9] drm/xe/rtp: Add "_sr" to entry/function names
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 3/9] drm/xe/rtp: Add "_sr" to entry/function names Lucas De Marchi
@ 2023-05-17 17:13   ` Matt Roper
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Roper @ 2023-05-17 17:13 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:44PM -0700, Lucas De Marchi wrote:
> The xe_rtp_process() function and xe_rtp_entry depend on the
> save-restore struct. In future it will be desired to process rtp rules,
> regardless of adding them to a save-restore. Rename the struct and
> function so the intent is clear and the name is freed for future uses.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> ---
>  drivers/gpu/drm/xe/tests/xe_rtp_test.c | 22 +++++++++++-----------
>  drivers/gpu/drm/xe/xe_hw_engine.c      |  8 ++++----
>  drivers/gpu/drm/xe/xe_reg_whitelist.c  |  4 ++--
>  drivers/gpu/drm/xe/xe_rtp.c            | 26 ++++++++++++++------------
>  drivers/gpu/drm/xe/xe_rtp.h            | 20 ++++++++++----------
>  drivers/gpu/drm/xe/xe_rtp_types.h      |  4 ++--
>  drivers/gpu/drm/xe/xe_tuning.c         |  8 ++++----
>  drivers/gpu/drm/xe/xe_wa.c             | 12 ++++++------
>  8 files changed, 53 insertions(+), 51 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> index f96ef1987719..ab6f7a47db50 100644
> --- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> +++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
> @@ -36,7 +36,7 @@ struct rtp_test_case {
>  	u32 expected_clr_bits;
>  	unsigned long expected_count;
>  	unsigned int expected_sr_errors;
> -	const struct xe_rtp_entry *entries;
> +	const struct xe_rtp_entry_sr *entries;
>  };
>  
>  static bool match_yes(const struct xe_gt *gt, const struct xe_hw_engine *hwe)
> @@ -57,7 +57,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0) | REG_BIT(1),
>  		.expected_count = 1,
>  		/* Different bits on the same register: create a single entry */
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -76,7 +76,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0),
>  		.expected_count = 1,
>  		/* Don't coalesce second entry since rules don't match */
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -95,7 +95,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0),
>  		.expected_count = 1,
>  		/* Don't coalesce second entry due to one of the rules */
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -114,7 +114,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0),
>  		.expected_count = 2,
>  		/* Same bits on different registers are not coalesced */
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -133,7 +133,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(1) | REG_BIT(0),
>  		.expected_count = 1,
>  		/* Check clr vs set actions on different bits */
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -154,7 +154,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = TEMP_MASK,
>  		.expected_count = 1,
>  		/* Check FIELD_SET works */
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(FIELD_SET(REGULAR_REG1,
> @@ -172,7 +172,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0),
>  		.expected_count = 1,
>  		.expected_sr_errors = 1,
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -192,7 +192,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0),
>  		.expected_count = 1,
>  		.expected_sr_errors = 1,
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -212,7 +212,7 @@ static const struct rtp_test_case cases[] = {
>  		.expected_clr_bits = REG_BIT(0),
>  		.expected_count = 1,
>  		.expected_sr_errors = 2,
> -		.entries = (const struct xe_rtp_entry[]) {
> +		.entries = (const struct xe_rtp_entry_sr[]) {
>  			{ XE_RTP_NAME("basic-1"),
>  			  XE_RTP_RULES(FUNC(match_yes)),
>  			  XE_RTP_ACTIONS(SET(REGULAR_REG1, REG_BIT(0)))
> @@ -242,7 +242,7 @@ static void xe_rtp_process_tests(struct kunit *test)
>  	unsigned long idx, count = 0;
>  
>  	xe_reg_sr_init(reg_sr, "xe_rtp_tests", xe);
> -	xe_rtp_process(&ctx, param->entries, reg_sr);
> +	xe_rtp_process_to_sr(&ctx, param->entries, reg_sr);
>  
>  	xa_for_each(&reg_sr->xa, idx, sre) {
>  		if (idx == param->expected_reg.addr)
> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
> index 1bf28b1ad319..b072682a6988 100644
> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
> @@ -282,7 +282,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
>  	u32 blit_cctl_val = REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, mocs_write_idx) |
>  			    REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, mocs_read_idx);
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> -	const struct xe_rtp_entry lrc_was[] = {
> +	const struct xe_rtp_entry_sr lrc_was[] = {
>  		/*
>  		 * Some blitter commands do not have a field for MOCS, those
>  		 * commands will use MOCS index pointed by BLIT_CCTL.
> @@ -300,7 +300,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
>  		{}
>  	};
>  
> -	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
> +	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
>  }
>  
>  static void
> @@ -313,7 +313,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
>  	u32 ring_cmd_cctl_val = REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
>  			        REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> -	const struct xe_rtp_entry engine_entries[] = {
> +	const struct xe_rtp_entry_sr engine_entries[] = {
>  		/*
>  		 * RING_CMD_CCTL specifies the default MOCS entry that will be
>  		 * used by the command streamer when executing commands that
> @@ -334,7 +334,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
>  		{}
>  	};
>  
> -	xe_rtp_process(&ctx, engine_entries, &hwe->reg_sr);
> +	xe_rtp_process_to_sr(&ctx, engine_entries, &hwe->reg_sr);
>  }
>  
>  static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
> diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> index 98f678d74445..70892f134718 100644
> --- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
> +++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> @@ -20,7 +20,7 @@ static bool match_not_render(const struct xe_gt *gt,
>  	return hwe->class != XE_ENGINE_CLASS_RENDER;
>  }
>  
> -static const struct xe_rtp_entry register_whitelist[] = {
> +static const struct xe_rtp_entry_sr register_whitelist[] = {
>  	{ XE_RTP_NAME("WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865"),
>  	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210), ENGINE_CLASS(RENDER)),
>  	  XE_RTP_ACTIONS(WHITELIST(PS_INVOCATION_COUNT,
> @@ -65,7 +65,7 @@ void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>  
> -	xe_rtp_process(&ctx, register_whitelist, &hwe->reg_whitelist);
> +	xe_rtp_process_to_sr(&ctx, register_whitelist, &hwe->reg_whitelist);
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
> index 648a38bf8f0c..1485e53c1496 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.c
> +++ b/drivers/gpu/drm/xe/xe_rtp.c
> @@ -26,7 +26,7 @@
>  static bool rule_matches(const struct xe_device *xe,
>  			 struct xe_gt *gt,
>  			 struct xe_hw_engine *hwe,
> -			 const struct xe_rtp_entry *entry)
> +			 const struct xe_rtp_entry_sr *entry)
>  {
>  	const struct xe_rtp_rule *r;
>  	unsigned int i;
> @@ -113,9 +113,9 @@ static void rtp_add_sr_entry(const struct xe_rtp_action *action,
>  	xe_reg_sr_add(sr, &sr_entry);
>  }
>  
> -static void rtp_process_one(const struct xe_rtp_entry *entry,
> -			    struct xe_device *xe, struct xe_gt *gt,
> -			    struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
> +static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
> +			       struct xe_device *xe, struct xe_gt *gt,
> +			       struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
>  {
>  	const struct xe_rtp_action *action;
>  	u32 mmio_base;
> @@ -160,10 +160,11 @@ static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
>  }
>  
>  /**
> - * xe_rtp_process - Process all rtp @entries, adding the matching ones to @sr
> + * xe_rtp_process_to_sr - Process all rtp @entries, adding the matching ones to
> + *                        the save-restore argument.
>   * @ctx: The context for processing the table, with one of device, gt or hwe
>   * @entries: Table with RTP definitions
> - * @sr: Where to add an entry to with the values for matching. This can be
> + * @sr: Save-restore struct where matching rules execute the action. This can be
>   *      viewed as the "coalesced view" of multiple the tables. The bits for each
>   *      register set are expected not to collide with previously added entries
>   *
> @@ -171,10 +172,11 @@ static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
>   * entries with matching rules to @sr. If @hwe is not NULL, its mmio_base is
>   * used to calculate the right register offset
>   */
> -void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
> -		    const struct xe_rtp_entry *entries, struct xe_reg_sr *sr)
> +void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
> +			  const struct xe_rtp_entry_sr *entries,
> +			  struct xe_reg_sr *sr)
>  {
> -	const struct xe_rtp_entry *entry;
> +	const struct xe_rtp_entry_sr *entry;
>  	struct xe_hw_engine *hwe;
>  	struct xe_gt *gt;
>  	struct xe_device *xe;
> @@ -187,13 +189,13 @@ void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
>  			enum xe_hw_engine_id id;
>  
>  			for_each_hw_engine(each_hwe, gt, id)
> -				rtp_process_one(entry, xe, gt, each_hwe, sr);
> +				rtp_process_one_sr(entry, xe, gt, each_hwe, sr);
>  		} else {
> -			rtp_process_one(entry, xe, gt, hwe, sr);
> +			rtp_process_one_sr(entry, xe, gt, hwe, sr);
>  		}
>  	}
>  }
> -EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process);
> +EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
>  
>  bool xe_rtp_match_even_instance(const struct xe_gt *gt,
>  				const struct xe_hw_engine *hwe)
> diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
> index e7f254fb1b31..f2b31be294d6 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.h
> +++ b/drivers/gpu/drm/xe/xe_rtp.h
> @@ -261,7 +261,7 @@ struct xe_reg_sr;
>  #define XE_RTP_NAME(s_)	.name = (s_)
>  
>  /**
> - * XE_RTP_ENTRY_FLAG - Helper to add multiple flags to a struct xe_rtp_entry
> + * XE_RTP_ENTRY_FLAG - Helper to add multiple flags to a struct xe_rtp_entry_sr
>   * @f1_: Last part of a ``XE_RTP_ENTRY_FLAG_*``
>   * @...: Additional flags, defined like @f1_
>   *
> @@ -270,7 +270,7 @@ struct xe_reg_sr;
>   *
>   * .. code-block:: c
>   *
> - *	const struct xe_rtp_entry wa_entries[] = {
> + *	const struct xe_rtp_entry_sr wa_entries[] = {
>   *		...
>   *		{ XE_RTP_NAME("test-entry"),
>   *		  ...
> @@ -293,7 +293,7 @@ struct xe_reg_sr;
>   *
>   * .. code-block:: c
>   *
> - *	const struct xe_rtp_entry wa_entries[] = {
> + *	const struct xe_rtp_entry_sr wa_entries[] = {
>   *		...
>   *		{ XE_RTP_NAME("test-entry"),
>   *		  ...
> @@ -307,7 +307,7 @@ struct xe_reg_sr;
>  	.flags = (XE_RTP_PASTE_FOREACH(ACTION_FLAG_, BITWISE_OR, (__VA_ARGS__)))
>  
>  /**
> - * XE_RTP_RULES - Helper to set multiple rules to a struct xe_rtp_entry entry
> + * XE_RTP_RULES - Helper to set multiple rules to a struct xe_rtp_entry_sr entry
>   * @r1: Last part of XE_RTP_MATCH_*
>   * @...: Additional rules, defined like @r1
>   *
> @@ -317,7 +317,7 @@ struct xe_reg_sr;
>   *
>   * .. code-block:: c
>   *
> - *	const struct xe_rtp_entry wa_entries[] = {
> + *	const struct xe_rtp_entry_sr wa_entries[] = {
>   *		...
>   *		{ XE_RTP_NAME("test-entry"),
>   *		  XE_RTP_RULES(SUBPLATFORM(DG2, G10), STEP(A0, B0)),
> @@ -333,7 +333,7 @@ struct xe_reg_sr;
>  	}
>  
>  /**
> - * XE_RTP_ACTIONS - Helper to set multiple actions to a struct xe_rtp_entry
> + * XE_RTP_ACTIONS - Helper to set multiple actions to a struct xe_rtp_entry_sr
>   * @...: Actions to be taken
>   *
>   * At least one rule is needed and up to 4 are supported. Multiple rules are
> @@ -342,7 +342,7 @@ struct xe_reg_sr;
>   *
>   * .. code-block:: c
>   *
> - *	const struct xe_rtp_entry wa_entries[] = {
> + *	const struct xe_rtp_entry_sr wa_entries[] = {
>   *		...
>   *		{ XE_RTP_NAME("test-entry"),
>   *		  XE_RTP_RULES(...),
> @@ -363,9 +363,9 @@ struct xe_reg_sr;
>  	struct xe_gt *:		(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_GT },	\
>  	struct xe_device *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_DEVICE })
>  
> -void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
> -		    const struct xe_rtp_entry *entries,
> -		    struct xe_reg_sr *sr);
> +void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
> +			  const struct xe_rtp_entry_sr *entries,
> +			  struct xe_reg_sr *sr);
>  
>  /* Match functions to be used with XE_RTP_MATCH_FUNC */
>  
> diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
> index 6d9ab9eb91ba..a9e0153ff87d 100644
> --- a/drivers/gpu/drm/xe/xe_rtp_types.h
> +++ b/drivers/gpu/drm/xe/xe_rtp_types.h
> @@ -84,8 +84,8 @@ struct xe_rtp_rule {
>  	};
>  };
>  
> -/** struct xe_rtp_entry - Entry in an rtp table */
> -struct xe_rtp_entry {
> +/** struct xe_rtp_entry_sr - Entry in an rtp table */
> +struct xe_rtp_entry_sr {
>  	const char *name;
>  	const struct xe_rtp_action *actions;
>  	const struct xe_rtp_rule *rules;
> diff --git a/drivers/gpu/drm/xe/xe_tuning.c b/drivers/gpu/drm/xe/xe_tuning.c
> index c2810ede3a65..412e59de9842 100644
> --- a/drivers/gpu/drm/xe/xe_tuning.c
> +++ b/drivers/gpu/drm/xe/xe_tuning.c
> @@ -15,7 +15,7 @@
>  #undef XE_REG_MCR
>  #define XE_REG_MCR(...)     XE_REG(__VA_ARGS__, .mcr = 1)
>  
> -static const struct xe_rtp_entry gt_tunings[] = {
> +static const struct xe_rtp_entry_sr gt_tunings[] = {
>  	{ XE_RTP_NAME("Tuning: Blend Fill Caching Optimization Disable"),
>  	  XE_RTP_RULES(PLATFORM(DG2)),
>  	  XE_RTP_ACTIONS(SET(XEHP_L3SCQREG7, BLEND_FILL_CACHING_OPT_DIS))
> @@ -27,7 +27,7 @@ static const struct xe_rtp_entry gt_tunings[] = {
>  	{}
>  };
>  
> -static const struct xe_rtp_entry lrc_tunings[] = {
> +static const struct xe_rtp_entry_sr lrc_tunings[] = {
>  	{ XE_RTP_NAME("Tuning: ganged timer, also known as 16011163337"),
>  	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210)),
>  	  /* read verification is ignored due to 1608008084. */
> @@ -61,7 +61,7 @@ void xe_tuning_process_gt(struct xe_gt *gt)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
>  
> -	xe_rtp_process(&ctx, gt_tunings, &gt->reg_sr);
> +	xe_rtp_process_to_sr(&ctx, gt_tunings, &gt->reg_sr);
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_tuning_process_gt);
>  
> @@ -77,5 +77,5 @@ void xe_tuning_process_lrc(struct xe_hw_engine *hwe)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>  
> -	xe_rtp_process(&ctx, lrc_tunings, &hwe->reg_lrc);
> +	xe_rtp_process_to_sr(&ctx, lrc_tunings, &hwe->reg_lrc);
>  }
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index 4b236b6f4c8e..557e90d79f0b 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -93,7 +93,7 @@
>  __diag_push();
>  __diag_ignore_all("-Woverride-init", "Allow field overrides in table");
>  
> -static const struct xe_rtp_entry gt_was[] = {
> +static const struct xe_rtp_entry_sr gt_was[] = {
>  	{ XE_RTP_NAME("14011060649"),
>  	  XE_RTP_RULES(MEDIA_VERSION_RANGE(1200, 1255),
>  		       ENGINE_CLASS(VIDEO_DECODE),
> @@ -235,7 +235,7 @@ static const struct xe_rtp_entry gt_was[] = {
>  	{}
>  };
>  
> -static const struct xe_rtp_entry engine_was[] = {
> +static const struct xe_rtp_entry_sr engine_was[] = {
>  	{ XE_RTP_NAME("22010931296, 18011464164, 14010919138"),
>  	  XE_RTP_RULES(GRAPHICS_VERSION(1200), ENGINE_CLASS(RENDER)),
>  	  XE_RTP_ACTIONS(SET(FF_THREAD_MODE,
> @@ -490,7 +490,7 @@ static const struct xe_rtp_entry engine_was[] = {
>  	{}
>  };
>  
> -static const struct xe_rtp_entry lrc_was[] = {
> +static const struct xe_rtp_entry_sr lrc_was[] = {
>  	{ XE_RTP_NAME("1409342910, 14010698770, 14010443199, 1408979724, 1409178076, 1409207793, 1409217633, 1409252684, 1409347922, 1409142259"),
>  	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, 1210)),
>  	  XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN3,
> @@ -581,7 +581,7 @@ void xe_wa_process_gt(struct xe_gt *gt)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
>  
> -	xe_rtp_process(&ctx, gt_was, &gt->reg_sr);
> +	xe_rtp_process_to_sr(&ctx, gt_was, &gt->reg_sr);
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
>  
> @@ -597,7 +597,7 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>  
> -	xe_rtp_process(&ctx, engine_was, &hwe->reg_sr);
> +	xe_rtp_process_to_sr(&ctx, engine_was, &hwe->reg_sr);
>  }
>  
>  /**
> @@ -612,5 +612,5 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>  
> -	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
> +	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
>  }
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 4/9] drm/xe/rtp: Allow to track active workarounds
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 4/9] drm/xe/rtp: Allow to track active workarounds Lucas De Marchi
@ 2023-05-17 17:27   ` Matt Roper
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Roper @ 2023-05-17 17:27 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:45PM -0700, Lucas De Marchi wrote:
> Add the metadata in struct xe_rtp_process_ctx, to be set by
> xe_rtp_process_ctx_enable_active_tracking(), so rtp knows how to mark
> the active entries while processing the table. This can be used by the
> WA infra to record what are the active workarounds.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_rtp.c | 48 +++++++++++++++++++++++++++++++++----
>  drivers/gpu/drm/xe/xe_rtp.h |  4 ++++
>  2 files changed, 48 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
> index 1485e53c1496..d20536625020 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.c
> +++ b/drivers/gpu/drm/xe/xe_rtp.c
> @@ -113,7 +113,7 @@ static void rtp_add_sr_entry(const struct xe_rtp_action *action,
>  	xe_reg_sr_add(sr, &sr_entry);
>  }
>  
> -static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
> +static bool rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
>  			       struct xe_device *xe, struct xe_gt *gt,
>  			       struct xe_hw_engine *hwe, struct xe_reg_sr *sr)
>  {
> @@ -122,7 +122,7 @@ static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
>  	unsigned int i;
>  
>  	if (!rule_matches(xe, gt, hwe, entry))
> -		return;
> +		return false;
>  
>  	for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
>  		if ((entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) ||
> @@ -133,6 +133,8 @@ static void rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
>  
>  		rtp_add_sr_entry(action, gt, mmio_base, sr);
>  	}
> +
> +	return true;
>  }
>  
>  static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
> @@ -159,6 +161,38 @@ static void rtp_get_context(struct xe_rtp_process_ctx *ctx,
>  	};
>  }
>  
> +/**
> + * xe_rtp_process_ctx_enable_active_tracking - Enable tracking of active entries
> + *
> + * Set additional metadata to track what entries are considered "active", i.e.
> + * their rules match the condition. Bits are never cleared: entries with
> + * matching rules set the corresponding bit in the bitmap.
> + *
> + * @ctx: The context for processing the table
> + * @active_entries: bitmap to store the active entries
> + * @n_entries: number of entries to be processed
> + */
> +void xe_rtp_process_ctx_enable_active_tracking(struct xe_rtp_process_ctx *ctx,
> +					       unsigned long *active_entries,
> +					       size_t n_entries)
> +{
> +	ctx->active_entries = active_entries;
> +	ctx->n_entries = n_entries;
> +}
> +
> +static void rtp_mark_active(struct xe_device *xe,
> +			    struct xe_rtp_process_ctx *ctx,
> +			    unsigned int bit)
> +{
> +	if (!ctx->active_entries)
> +		return;
> +
> +	if (drm_WARN_ON(&xe->drm, bit > ctx->n_entries))
> +		return;
> +
> +	bitmap_set(ctx->active_entries, bit, 1);
> +}
> +
>  /**
>   * xe_rtp_process_to_sr - Process all rtp @entries, adding the matching ones to
>   *                        the save-restore argument.
> @@ -184,15 +218,21 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
>  	rtp_get_context(ctx, &hwe, &gt, &xe);
>  
>  	for (entry = entries; entry && entry->name; entry++) {
> +		bool match = false;
> +
>  		if (entry->flags & XE_RTP_ENTRY_FLAG_FOREACH_ENGINE) {
>  			struct xe_hw_engine *each_hwe;
>  			enum xe_hw_engine_id id;
>  
>  			for_each_hw_engine(each_hwe, gt, id)
> -				rtp_process_one_sr(entry, xe, gt, each_hwe, sr);
> +				match |= rtp_process_one_sr(entry, xe, gt,
> +							    each_hwe, sr);
>  		} else {
> -			rtp_process_one_sr(entry, xe, gt, hwe, sr);
> +			match = rtp_process_one_sr(entry, xe, gt, hwe, sr);
>  		}
> +
> +		if (match)
> +			rtp_mark_active(xe, ctx, entry - entries);
>  	}
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
> diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
> index f2b31be294d6..274bccaeb72d 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.h
> +++ b/drivers/gpu/drm/xe/xe_rtp.h
> @@ -363,6 +363,10 @@ struct xe_reg_sr;
>  	struct xe_gt *:		(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_GT },	\
>  	struct xe_device *:	(struct xe_rtp_process_ctx){ { (void *)(arg__) }, XE_RTP_PROCESS_TYPE_DEVICE })
>  
> +void xe_rtp_process_ctx_enable_active_tracking(struct xe_rtp_process_ctx *ctx,
> +					       unsigned long *active_entries,
> +					       size_t n_entries);
> +
>  void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
>  			  const struct xe_rtp_entry_sr *entries,
>  			  struct xe_reg_sr *sr);
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc active workarounds
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc " Lucas De Marchi
@ 2023-05-17 17:50   ` Matt Roper
  2023-05-17 20:23     ` Lucas De Marchi
  0 siblings, 1 reply; 29+ messages in thread
From: Matt Roper @ 2023-05-17 17:50 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:46PM -0700, Lucas De Marchi wrote:
> Allocate the data to track workarounds on the device, and pass that to
> RTP so the active workarounds are enabled. For later reporting purposes,
> there's no need to differentiate the engine or gt in which the
> workaround got enabled, so just use a per-device bitmap.

Going forward are we going to want to track these on a per-device or a
per-GT basis?  The workaround database has switched to associating
workarounds with the IP block rather than the platform since sometimes
they're needed by both the graphics and media IP, other times they're
only needed on one.

For example, consider a couple different MTL workarounds:
 * Wa_14018575942 -- applies to both graphics and media GT
 * Wa_14015795083 -- applies to graphics GT but not media
 * Wa_14016790560 -- applies to media GT but not graphics

As we get more post-MTL platforms where these chips may get mixed and
matched into other platforms, I think it will be important to recognize
not only whether the workaround is active somewhere on the platform, but
exactly which GT(s) it's active on.


Matt

> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_device.c       |  5 ++++
>  drivers/gpu/drm/xe/xe_device_types.h | 10 ++++++++
>  drivers/gpu/drm/xe/xe_rtp_types.h    |  2 ++
>  drivers/gpu/drm/xe/xe_wa.c           | 36 ++++++++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_wa.h           |  2 ++
>  5 files changed, 55 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index f7f6a6a97757..ac6898a28411 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -31,6 +31,7 @@
>  #include "xe_ttm_sys_mgr.h"
>  #include "xe_vm.h"
>  #include "xe_vm_madvise.h"
> +#include "xe_wa.h"
>  #include "xe_wait_user_fence.h"
>  
>  static int xe_file_open(struct drm_device *dev, struct drm_file *file)
> @@ -251,6 +252,10 @@ int xe_device_probe(struct xe_device *xe)
>  			return err;
>  	}
>  
> +	err = xe_wa_init(xe);
> +	if (err)
> +		return err;
> +
>  	err = xe_mmio_init(xe);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index 6490a04614ce..b8d7864950c4 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -265,6 +265,16 @@ struct xe_device {
>  	/** @d3cold_allowed: Indicates if d3cold is a valid device state */
>  	bool d3cold_allowed;
>  
> +	/** @wa_active: keep track of active workarounds */
> +	struct {
> +		/** @gt: bitmap with active GT workarounds */
> +		unsigned long *gt;
> +		/** @engine: bitmap with active engine workarounds */
> +		unsigned long *engine;
> +		/** @lrc: bitmap with active LRC workarounds */
> +		unsigned long *lrc;
> +	} wa_active;
> +
>  	/* private: */
>  
>  #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
> diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
> index a9e0153ff87d..b1e77055f9cd 100644
> --- a/drivers/gpu/drm/xe/xe_rtp_types.h
> +++ b/drivers/gpu/drm/xe/xe_rtp_types.h
> @@ -108,6 +108,8 @@ struct xe_rtp_process_ctx {
>  		struct xe_hw_engine *hwe;
>  	};
>  	enum xe_rtp_process_type type;
> +	unsigned long *active_entries;
> +	size_t n_entries;
>  };
>  
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index 557e90d79f0b..fa37b1c0425a 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -5,6 +5,7 @@
>  
>  #include "xe_wa.h"
>  
> +#include <drm/drm_managed.h>
>  #include <kunit/visibility.h>
>  #include <linux/compiler_types.h>
>  
> @@ -580,7 +581,10 @@ __diag_pop();
>  void xe_wa_process_gt(struct xe_gt *gt)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
> +	struct xe_device *xe = gt_to_xe(gt);
>  
> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.gt,
> +						  ARRAY_SIZE(gt_was));
>  	xe_rtp_process_to_sr(&ctx, gt_was, &gt->reg_sr);
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
> @@ -596,7 +600,10 @@ EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
>  void xe_wa_process_engine(struct xe_hw_engine *hwe)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +	struct xe_device *xe = gt_to_xe(hwe->gt);
>  
> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.engine,
> +						  ARRAY_SIZE(engine_was));
>  	xe_rtp_process_to_sr(&ctx, engine_was, &hwe->reg_sr);
>  }
>  
> @@ -611,6 +618,35 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
>  void xe_wa_process_lrc(struct xe_hw_engine *hwe)
>  {
>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
> +	struct xe_device *xe = gt_to_xe(hwe->gt);
>  
> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.lrc,
> +						  ARRAY_SIZE(lrc_was));
>  	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
>  }
> +
> +/**
> + * xe_wa_init - initialize xe with workaround bookkeeping
> + * @xe: xe device instance
> + *
> + * Returns 0 for success, negative error code otherwise.
> + */
> +int xe_wa_init(struct xe_device *xe)
> +{
> +	size_t n_lrc, n_engine, n_gt, total;
> +
> +	n_gt = BITS_TO_LONGS(ARRAY_SIZE(gt_was));
> +	n_engine = BITS_TO_LONGS(ARRAY_SIZE(engine_was));
> +	n_lrc = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
> +	total = n_gt + n_engine + n_lrc;
> +
> +	xe->wa_active.gt = drmm_kzalloc(&xe->drm, sizeof(long) * total,
> +					GFP_KERNEL);
> +	if (!xe->wa_active.gt)
> +		return -ENOMEM;
> +
> +	xe->wa_active.engine = xe->wa_active.gt + n_gt;
> +	xe->wa_active.lrc = xe->wa_active.engine + n_engine;
> +
> +	return 0;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
> index cd2307d58795..8edad4f92800 100644
> --- a/drivers/gpu/drm/xe/xe_wa.h
> +++ b/drivers/gpu/drm/xe/xe_wa.h
> @@ -6,9 +6,11 @@
>  #ifndef _XE_WA_
>  #define _XE_WA_
>  
> +struct xe_device;
>  struct xe_gt;
>  struct xe_hw_engine;
>  
> +int xe_wa_init(struct xe_device *xe);
>  void xe_wa_process_gt(struct xe_gt *gt);
>  void xe_wa_process_engine(struct xe_hw_engine *hwe);
>  void xe_wa_process_lrc(struct xe_hw_engine *hwe);
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 6/9] drm/xe/debugfs: Dump active workarounds
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 6/9] drm/xe/debugfs: Dump " Lucas De Marchi
@ 2023-05-17 17:55   ` Matt Roper
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Roper @ 2023-05-17 17:55 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:47PM -0700, Lucas De Marchi wrote:
> Add a "workarounds" node in debugfs that can dump all the active
> workarounds using the information recorded by rtp infra when those
> workarounds were processed.

As noted on the previous patch, I think it would be better to have this
in a per-GT debugfs so that we can catch cases where we implemented the
workaround properly for the graphics GT but forgot we needed to
implement it for the media GT too, or vice versa.


Matt

> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_debugfs.c | 12 ++++++++++++
>  drivers/gpu/drm/xe/xe_wa.c      | 18 ++++++++++++++++++
>  drivers/gpu/drm/xe/xe_wa.h      |  2 ++
>  3 files changed, 32 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
> index 7827a785b020..ad1b1ab49e1d 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -13,6 +13,7 @@
>  #include "xe_device.h"
>  #include "xe_gt_debugfs.h"
>  #include "xe_step.h"
> +#include "xe_wa.h"
>  
>  #ifdef CONFIG_DRM_XE_DEBUG
>  #include "xe_bo_evict.h"
> @@ -60,8 +61,19 @@ static int info(struct seq_file *m, void *data)
>  	return 0;
>  }
>  
> +static int workarounds(struct seq_file *m, void *data)
> +{
> +	struct xe_device *xe = node_to_xe(m->private);
> +	struct drm_printer p = drm_seq_file_printer(m);
> +
> +	xe_wa_dump(xe, &p);
> +
> +	return 0;
> +}
> +
>  static const struct drm_info_list debugfs_list[] = {
>  	{"info", info, 0},
> +	{"workarounds", workarounds, 0},
>  };
>  
>  static int forcewake_open(struct inode *inode, struct file *file)
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index fa37b1c0425a..bc2665737836 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -650,3 +650,21 @@ int xe_wa_init(struct xe_device *xe)
>  
>  	return 0;
>  }
> +
> +void xe_wa_dump(struct xe_device *xe, struct drm_printer *p)
> +{
> +	size_t idx;
> +
> +	drm_printf(p, "GT Workarounds\n");
> +	for_each_set_bit(idx, xe->wa_active.gt, ARRAY_SIZE(gt_was))
> +		drm_printf_indent(p, 1, "%s\n", gt_was[idx].name);
> +
> +	drm_printf(p, "\nEngine Workarounds\n");
> +	for_each_set_bit(idx, xe->wa_active.engine, ARRAY_SIZE(engine_was))
> +		drm_printf_indent(p, 1, "%s\n", engine_was[idx].name);
> +
> +	drm_printf(p, "\nLRC Workarounds\n");
> +	for_each_set_bit(idx, xe->wa_active.lrc, ARRAY_SIZE(lrc_was))
> +		drm_printf_indent(p, 1, "%s\n", lrc_was[idx].name);
> +}
> +
> diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
> index 8edad4f92800..32ab34d9237f 100644
> --- a/drivers/gpu/drm/xe/xe_wa.h
> +++ b/drivers/gpu/drm/xe/xe_wa.h
> @@ -6,6 +6,7 @@
>  #ifndef _XE_WA_
>  #define _XE_WA_
>  
> +struct drm_printer;
>  struct xe_device;
>  struct xe_gt;
>  struct xe_hw_engine;
> @@ -16,5 +17,6 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe);
>  void xe_wa_process_lrc(struct xe_hw_engine *hwe);
>  
>  void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
> +void xe_wa_dump(struct xe_device *xe, struct drm_printer *p);
>  
>  #endif
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 7/9] drm/xe/rtp: Add support for entries with no action
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 7/9] drm/xe/rtp: Add support for entries with no action Lucas De Marchi
@ 2023-05-17 18:46   ` Matt Roper
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Roper @ 2023-05-17 18:46 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:48PM -0700, Lucas De Marchi wrote:
> Add a separate struct to hold entries in a table that has no action
> associated with each of them. The goal is that the caller in future can
> set a per-context callback, or just use the active entry marking
> feature.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>

Reviewed-by: Matt Roper <matthew.d.roper@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_rtp.c       | 65 +++++++++++++++++++++++++++----
>  drivers/gpu/drm/xe/xe_rtp.h       |  3 ++
>  drivers/gpu/drm/xe/xe_rtp_types.h |  7 ++++
>  3 files changed, 67 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
> index d20536625020..db0f9254efd2 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.c
> +++ b/drivers/gpu/drm/xe/xe_rtp.c
> @@ -26,14 +26,14 @@
>  static bool rule_matches(const struct xe_device *xe,
>  			 struct xe_gt *gt,
>  			 struct xe_hw_engine *hwe,
> -			 const struct xe_rtp_entry_sr *entry)
> +			 const struct xe_rtp_rule *rules,
> +			 unsigned int n_rules)
>  {
>  	const struct xe_rtp_rule *r;
>  	unsigned int i;
>  	bool match;
>  
> -	for (r = entry->rules, i = 0; i < entry->n_rules;
> -	     r = &entry->rules[++i]) {
> +	for (r = rules, i = 0; i < n_rules; r = &rules[++i]) {
>  		switch (r->match_type) {
>  		case XE_RTP_MATCH_PLATFORM:
>  			match = xe->info.platform == r->platform;
> @@ -121,7 +121,7 @@ static bool rtp_process_one_sr(const struct xe_rtp_entry_sr *entry,
>  	u32 mmio_base;
>  	unsigned int i;
>  
> -	if (!rule_matches(xe, gt, hwe, entry))
> +	if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules))
>  		return false;
>  
>  	for (action = &entry->actions[0]; i < entry->n_actions; action++, i++) {
> @@ -182,15 +182,18 @@ void xe_rtp_process_ctx_enable_active_tracking(struct xe_rtp_process_ctx *ctx,
>  
>  static void rtp_mark_active(struct xe_device *xe,
>  			    struct xe_rtp_process_ctx *ctx,
> -			    unsigned int bit)
> +			    unsigned int first, unsigned int last)
>  {
>  	if (!ctx->active_entries)
>  		return;
>  
> -	if (drm_WARN_ON(&xe->drm, bit > ctx->n_entries))
> +	if (drm_WARN_ON(&xe->drm, last > ctx->n_entries))
>  		return;
>  
> -	bitmap_set(ctx->active_entries, bit, 1);
> +	if (first == last)
> +		bitmap_set(ctx->active_entries, first, 1);
> +	else
> +		bitmap_set(ctx->active_entries, first, last - first + 2);
>  }
>  
>  /**
> @@ -232,11 +235,57 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
>  		}
>  
>  		if (match)
> -			rtp_mark_active(xe, ctx, entry - entries);
> +			rtp_mark_active(xe, ctx, entry - entries,
> +					entry - entries);
>  	}
>  }
>  EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process_to_sr);
>  
> +/**
> + * xe_rtp_process - Process all rtp @entries, without running any action
> + * @ctx: The context for processing the table, with one of device, gt or hwe
> + * @entries: Table with RTP definitions
> + *
> + * Walk the table pointed by @entries (with an empty sentinel), executing the
> + * rules. A few differences from xe_rtp_process_to_sr():
> + *
> + * 1. There is no action associated with each entry since this uses
> + *    struct xe_rtp_entry. Its main use is for marking active workarounds via
> + *    xe_rtp_process_ctx_enable_active_tracking().
> + * 2. There is support for OR operations by having entries with no name.
> + */
> +void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
> +		    const struct xe_rtp_entry *entries)
> +{
> +	const struct xe_rtp_entry *entry, *first_entry;
> +	struct xe_hw_engine *hwe;
> +	struct xe_gt *gt;
> +	struct xe_device *xe;
> +
> +	rtp_get_context(ctx, &hwe, &gt, &xe);
> +
> +	first_entry = entries;
> +	if (drm_WARN_ON(&xe->drm, !first_entry->name))
> +		return;
> +
> +	for (entry = entries; entry && entry->rules; entry++) {
> +		if (entry->name)
> +			first_entry = entry;
> +
> +		if (!rule_matches(xe, gt, hwe, entry->rules, entry->n_rules))
> +			continue;
> +
> +		/* Fast-forward entry, eliminating the OR'ed entries */
> +		for (entry++; entry && entry->rules; entry++)
> +			if (entry->name)
> +				break;
> +		entry--;
> +
> +		rtp_mark_active(xe, ctx, first_entry - entries,
> +				entry - entries);
> +	}
> +}
> +
>  bool xe_rtp_match_even_instance(const struct xe_gt *gt,
>  				const struct xe_hw_engine *hwe)
>  {
> diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
> index 274bccaeb72d..0fa9b584ed92 100644
> --- a/drivers/gpu/drm/xe/xe_rtp.h
> +++ b/drivers/gpu/drm/xe/xe_rtp.h
> @@ -371,6 +371,9 @@ void xe_rtp_process_to_sr(struct xe_rtp_process_ctx *ctx,
>  			  const struct xe_rtp_entry_sr *entries,
>  			  struct xe_reg_sr *sr);
>  
> +void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
> +		    const struct xe_rtp_entry *entries);
> +
>  /* Match functions to be used with XE_RTP_MATCH_FUNC */
>  
>  /**
> diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
> index b1e77055f9cd..1091a79d0fe0 100644
> --- a/drivers/gpu/drm/xe/xe_rtp_types.h
> +++ b/drivers/gpu/drm/xe/xe_rtp_types.h
> @@ -95,6 +95,13 @@ struct xe_rtp_entry_sr {
>  	u8 flags;
>  };
>  
> +/** struct xe_rtp_entry - Entry in an rtp table, with no action associated */
> +struct xe_rtp_entry {
> +	const char *name;
> +	const struct xe_rtp_rule *rules;
> +	u8 n_rules;
> +};
> +
>  enum xe_rtp_process_type {
>  	XE_RTP_PROCESS_TYPE_DEVICE,
>  	XE_RTP_PROCESS_TYPE_GT,
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization
  2023-05-17 17:11   ` Matt Roper
@ 2023-05-17 20:09     ` Lucas De Marchi
  0 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-17 20:09 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe, Rodrigo Vivi

On Wed, May 17, 2023 at 10:11:26AM -0700, Matt Roper wrote:
>On Tue, May 16, 2023 at 03:19:43PM -0700, Lucas De Marchi wrote:
>> The selection between hwe and gt is exposed to the outside of rtp, by
>> the xe_rtp_process() function. It doesn't make sense to pass a hwe and a
>> gt as argument since the gt should always be the one containing the hwe.
>>
>> This clarifies the interface by separating the context creation into an
>> initializer. The initializer then passes the correct value and there
>> should never be a case with hwe and gt set. Internally the functions
>> continue receiving the argument separately.
>>
>> Also, since most of the rtp rules match against device characteristics,
>> add support for processing rules based solely on the device. This will
>> be used by follow up commits to process some workarounds.
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>> ---
>>  drivers/gpu/drm/xe/tests/xe_rtp_test.c |  3 +-
>>  drivers/gpu/drm/xe/xe_hw_engine.c      |  8 +--
>>  drivers/gpu/drm/xe/xe_reg_whitelist.c  |  4 +-
>>  drivers/gpu/drm/xe/xe_rtp.c            | 71 ++++++++++++++++++++------
>>  drivers/gpu/drm/xe/xe_rtp.h            | 10 +++-
>>  drivers/gpu/drm/xe/xe_rtp_types.h      | 15 ++++++
>>  drivers/gpu/drm/xe/xe_tuning.c         |  8 ++-
>>  drivers/gpu/drm/xe/xe_wa.c             | 12 +++--
>>  8 files changed, 102 insertions(+), 29 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
>> index 4b2aac5ccf28..f96ef1987719 100644
>> --- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
>> +++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
>> @@ -238,10 +238,11 @@ static void xe_rtp_process_tests(struct kunit *test)
>>  	struct xe_device *xe = test->priv;
>>  	struct xe_reg_sr *reg_sr = &xe->gt[0].reg_sr;
>>  	const struct xe_reg_sr_entry *sre, *sr_entry = NULL;
>> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(&xe->gt[0]);
>>  	unsigned long idx, count = 0;
>>
>>  	xe_reg_sr_init(reg_sr, "xe_rtp_tests", xe);
>> -	xe_rtp_process(param->entries, reg_sr, &xe->gt[0], NULL);
>> +	xe_rtp_process(&ctx, param->entries, reg_sr);
>>
>>  	xa_for_each(&reg_sr->xa, idx, sre) {
>>  		if (idx == param->expected_reg.addr)
>> diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
>> index 751f6c3bba17..1bf28b1ad319 100644
>> --- a/drivers/gpu/drm/xe/xe_hw_engine.c
>> +++ b/drivers/gpu/drm/xe/xe_hw_engine.c
>> @@ -281,6 +281,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
>>  	const u8 mocs_read_idx = gt->mocs.uc_index;
>>  	u32 blit_cctl_val = REG_FIELD_PREP(BLIT_CCTL_DST_MOCS_MASK, mocs_write_idx) |
>>  			    REG_FIELD_PREP(BLIT_CCTL_SRC_MOCS_MASK, mocs_read_idx);
>> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>>  	const struct xe_rtp_entry lrc_was[] = {
>>  		/*
>>  		 * Some blitter commands do not have a field for MOCS, those
>> @@ -299,7 +300,7 @@ xe_hw_engine_setup_default_lrc_state(struct xe_hw_engine *hwe)
>>  		{}
>>  	};
>>
>> -	xe_rtp_process(lrc_was, &hwe->reg_lrc, gt, hwe);
>> +	xe_rtp_process(&ctx, lrc_was, &hwe->reg_lrc);
>>  }
>>
>>  static void
>> @@ -311,7 +312,8 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
>>  	const u8 mocs_read_idx = gt->mocs.uc_index;
>>  	u32 ring_cmd_cctl_val = REG_FIELD_PREP(CMD_CCTL_WRITE_OVERRIDE_MASK, mocs_write_idx) |
>>  			        REG_FIELD_PREP(CMD_CCTL_READ_OVERRIDE_MASK, mocs_read_idx);
>> -	const struct xe_rtp_entry engine_was[] = {
>> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>> +	const struct xe_rtp_entry engine_entries[] = {
>>  		/*
>>  		 * RING_CMD_CCTL specifies the default MOCS entry that will be
>>  		 * used by the command streamer when executing commands that
>> @@ -332,7 +334,7 @@ hw_engine_setup_default_state(struct xe_hw_engine *hwe)
>>  		{}
>>  	};
>>
>> -	xe_rtp_process(engine_was, &hwe->reg_sr, gt, hwe);
>> +	xe_rtp_process(&ctx, engine_entries, &hwe->reg_sr);
>>  }
>>
>>  static void hw_engine_init_early(struct xe_gt *gt, struct xe_hw_engine *hwe,
>> diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
>> index 7a2bb60ebd85..98f678d74445 100644
>> --- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
>> +++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
>> @@ -63,7 +63,9 @@ static const struct xe_rtp_entry register_whitelist[] = {
>>   */
>>  void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe)
>>  {
>> -	xe_rtp_process(register_whitelist, &hwe->reg_whitelist, hwe->gt, hwe);
>> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>> +
>> +	xe_rtp_process(&ctx, register_whitelist, &hwe->reg_whitelist);
>>  }
>>
>>  /**
>> diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
>> index 0c6a23e14a71..648a38bf8f0c 100644
>> --- a/drivers/gpu/drm/xe/xe_rtp.c
>> +++ b/drivers/gpu/drm/xe/xe_rtp.c
>> @@ -23,11 +23,11 @@
>>   * the values to the registers that have matching rules.
>>   */
>>
>> -static bool rule_matches(struct xe_gt *gt,
>> +static bool rule_matches(const struct xe_device *xe,
>> +			 struct xe_gt *gt,
>>  			 struct xe_hw_engine *hwe,
>>  			 const struct xe_rtp_entry *entry)
>>  {
>> -	const struct xe_device *xe = gt_to_xe(gt);
>>  	const struct xe_rtp_rule *r;
>>  	unsigned int i;
>>  	bool match;
>> @@ -62,22 +62,30 @@ static bool rule_matches(struct xe_gt *gt,
>>  			match = xe->info.step.graphics >= r->step_start &&
>>  				xe->info.step.graphics < r->step_end;
>>  			break;
>> +		case XE_RTP_MATCH_INTEGRATED:
>> +			match = !xe->info.is_dgfx;
>> +			break;
>> +		case XE_RTP_MATCH_DISCRETE:
>> +			match = xe->info.is_dgfx;
>> +			break;
>>  		case XE_RTP_MATCH_ENGINE_CLASS:
>> +			if (drm_WARN_ON(&xe->drm, !hwe))
>> +				return false;
>> +
>>  			match = hwe->class == r->engine_class;
>>  			break;
>>  		case XE_RTP_MATCH_NOT_ENGINE_CLASS:
>> +			if (drm_WARN_ON(&xe->drm, !hwe))
>> +				return false;
>> +
>>  			match = hwe->class != r->engine_class;
>>  			break;
>>  		case XE_RTP_MATCH_FUNC:
>> +			if (drm_WARN_ON(&xe->drm, !gt))
>> +				return false;
>> +
>>  			match = r->match_func(gt, hwe);
>
>Would it make more sense to adjust the signature of match_func to take
>xe as an additional parameter to allow general matching without a
>gt/hwe?
>
>Actually I wonder if we should just split out the addition of
>device-only support into its own commit later in the series closer to
>where it gets used.

I'm not sure because:

	1) For the use cases where we have only xe, i.e. the OOB
	workarounds, it would be odd to add the FUNC() in the .rules
	file.

	2) the context where the rules are executed is not the context
	where the XE_WA() happens... we don't have a complete xe
	initialized yet.  I think that would tempt people to add the
	callback function just to later realize the callback can't
	really be used

What I think we may eventually want to do is to split the rules into:
device, gt and engine rules.  However I think that may increase the
boilerplate code and make things harder rather than easier.

>
>Anyway, not a big deal either way; up to you whether to make any changes
>or not.  Either way,
>
>Reviewed-by: Matt Roper <matthew.d.roper@intel.com>


thanks
Lucas De Marchi

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

* Re: [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc active workarounds
  2023-05-17 17:50   ` Matt Roper
@ 2023-05-17 20:23     ` Lucas De Marchi
  2023-05-25  5:11       ` Lucas De Marchi
  0 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-17 20:23 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe, Rodrigo Vivi

On Wed, May 17, 2023 at 10:50:56AM -0700, Matt Roper wrote:
>On Tue, May 16, 2023 at 03:19:46PM -0700, Lucas De Marchi wrote:
>> Allocate the data to track workarounds on the device, and pass that to
>> RTP so the active workarounds are enabled. For later reporting purposes,
>> there's no need to differentiate the engine or gt in which the
>> workaround got enabled, so just use a per-device bitmap.
>
>Going forward are we going to want to track these on a per-device or a
>per-GT basis?  The workaround database has switched to associating
>workarounds with the IP block rather than the platform since sometimes
>they're needed by both the graphics and media IP, other times they're
>only needed on one.
>
>For example, consider a couple different MTL workarounds:
> * Wa_14018575942 -- applies to both graphics and media GT
> * Wa_14015795083 -- applies to graphics GT but not media
> * Wa_14016790560 -- applies to media GT but not graphics
>
>As we get more post-MTL platforms where these chips may get mixed and
>matched into other platforms, I think it will be important to recognize
>not only whether the workaround is active somewhere on the platform, but
>exactly which GT(s) it's active on.

My idea was that for tracking purposes the device-level is sufficient as
I understand this would be more useful for knowing "is WA X
implemented and active?" rather than if the action it takes, applying
only to media or graphics GT, is correct. For the latter, we should
really be checking the register-save-restore in debugfs to know if the
bits are being applied correctly where they need to be applied
(and for OOB workarounds  to check whatever the thing the code is doing
in that code path)


I may be wrong here though... need to think a little bit more or more
time to be convinced otherwise. The change would be relatively easy, so
may be worth doing:

1) allocate bitmap per gt/engine besides the global device one
2) run the rules together with the gt creation
3) when reporting in debugfs optionally apply a bitmap_or() for the
    summary view, producing the same result we have today in addition to
    the drill down

Lucas De Marchi

>
>
>Matt
>
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>> ---
>>  drivers/gpu/drm/xe/xe_device.c       |  5 ++++
>>  drivers/gpu/drm/xe/xe_device_types.h | 10 ++++++++
>>  drivers/gpu/drm/xe/xe_rtp_types.h    |  2 ++
>>  drivers/gpu/drm/xe/xe_wa.c           | 36 ++++++++++++++++++++++++++++
>>  drivers/gpu/drm/xe/xe_wa.h           |  2 ++
>>  5 files changed, 55 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
>> index f7f6a6a97757..ac6898a28411 100644
>> --- a/drivers/gpu/drm/xe/xe_device.c
>> +++ b/drivers/gpu/drm/xe/xe_device.c
>> @@ -31,6 +31,7 @@
>>  #include "xe_ttm_sys_mgr.h"
>>  #include "xe_vm.h"
>>  #include "xe_vm_madvise.h"
>> +#include "xe_wa.h"
>>  #include "xe_wait_user_fence.h"
>>
>>  static int xe_file_open(struct drm_device *dev, struct drm_file *file)
>> @@ -251,6 +252,10 @@ int xe_device_probe(struct xe_device *xe)
>>  			return err;
>>  	}
>>
>> +	err = xe_wa_init(xe);
>> +	if (err)
>> +		return err;
>> +
>>  	err = xe_mmio_init(xe);
>>  	if (err)
>>  		return err;
>> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
>> index 6490a04614ce..b8d7864950c4 100644
>> --- a/drivers/gpu/drm/xe/xe_device_types.h
>> +++ b/drivers/gpu/drm/xe/xe_device_types.h
>> @@ -265,6 +265,16 @@ struct xe_device {
>>  	/** @d3cold_allowed: Indicates if d3cold is a valid device state */
>>  	bool d3cold_allowed;
>>
>> +	/** @wa_active: keep track of active workarounds */
>> +	struct {
>> +		/** @gt: bitmap with active GT workarounds */
>> +		unsigned long *gt;
>> +		/** @engine: bitmap with active engine workarounds */
>> +		unsigned long *engine;
>> +		/** @lrc: bitmap with active LRC workarounds */
>> +		unsigned long *lrc;
>> +	} wa_active;
>> +
>>  	/* private: */
>>
>>  #if IS_ENABLED(CONFIG_DRM_XE_DISPLAY)
>> diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
>> index a9e0153ff87d..b1e77055f9cd 100644
>> --- a/drivers/gpu/drm/xe/xe_rtp_types.h
>> +++ b/drivers/gpu/drm/xe/xe_rtp_types.h
>> @@ -108,6 +108,8 @@ struct xe_rtp_process_ctx {
>>  		struct xe_hw_engine *hwe;
>>  	};
>>  	enum xe_rtp_process_type type;
>> +	unsigned long *active_entries;
>> +	size_t n_entries;
>>  };
>>
>>  #endif
>> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
>> index 557e90d79f0b..fa37b1c0425a 100644
>> --- a/drivers/gpu/drm/xe/xe_wa.c
>> +++ b/drivers/gpu/drm/xe/xe_wa.c
>> @@ -5,6 +5,7 @@
>>
>>  #include "xe_wa.h"
>>
>> +#include <drm/drm_managed.h>
>>  #include <kunit/visibility.h>
>>  #include <linux/compiler_types.h>
>>
>> @@ -580,7 +581,10 @@ __diag_pop();
>>  void xe_wa_process_gt(struct xe_gt *gt)
>>  {
>>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(gt);
>> +	struct xe_device *xe = gt_to_xe(gt);
>>
>> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.gt,
>> +						  ARRAY_SIZE(gt_was));
>>  	xe_rtp_process_to_sr(&ctx, gt_was, &gt->reg_sr);
>>  }
>>  EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
>> @@ -596,7 +600,10 @@ EXPORT_SYMBOL_IF_KUNIT(xe_wa_process_gt);
>>  void xe_wa_process_engine(struct xe_hw_engine *hwe)
>>  {
>>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>> +	struct xe_device *xe = gt_to_xe(hwe->gt);
>>
>> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.engine,
>> +						  ARRAY_SIZE(engine_was));
>>  	xe_rtp_process_to_sr(&ctx, engine_was, &hwe->reg_sr);
>>  }
>>
>> @@ -611,6 +618,35 @@ void xe_wa_process_engine(struct xe_hw_engine *hwe)
>>  void xe_wa_process_lrc(struct xe_hw_engine *hwe)
>>  {
>>  	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(hwe);
>> +	struct xe_device *xe = gt_to_xe(hwe->gt);
>>
>> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.lrc,
>> +						  ARRAY_SIZE(lrc_was));
>>  	xe_rtp_process_to_sr(&ctx, lrc_was, &hwe->reg_lrc);
>>  }
>> +
>> +/**
>> + * xe_wa_init - initialize xe with workaround bookkeeping
>> + * @xe: xe device instance
>> + *
>> + * Returns 0 for success, negative error code otherwise.
>> + */
>> +int xe_wa_init(struct xe_device *xe)
>> +{
>> +	size_t n_lrc, n_engine, n_gt, total;
>> +
>> +	n_gt = BITS_TO_LONGS(ARRAY_SIZE(gt_was));
>> +	n_engine = BITS_TO_LONGS(ARRAY_SIZE(engine_was));
>> +	n_lrc = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
>> +	total = n_gt + n_engine + n_lrc;
>> +
>> +	xe->wa_active.gt = drmm_kzalloc(&xe->drm, sizeof(long) * total,
>> +					GFP_KERNEL);
>> +	if (!xe->wa_active.gt)
>> +		return -ENOMEM;
>> +
>> +	xe->wa_active.engine = xe->wa_active.gt + n_gt;
>> +	xe->wa_active.lrc = xe->wa_active.engine + n_engine;
>> +
>> +	return 0;
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
>> index cd2307d58795..8edad4f92800 100644
>> --- a/drivers/gpu/drm/xe/xe_wa.h
>> +++ b/drivers/gpu/drm/xe/xe_wa.h
>> @@ -6,9 +6,11 @@
>>  #ifndef _XE_WA_
>>  #define _XE_WA_
>>
>> +struct xe_device;
>>  struct xe_gt;
>>  struct xe_hw_engine;
>>
>> +int xe_wa_init(struct xe_device *xe);
>>  void xe_wa_process_gt(struct xe_gt *gt);
>>  void xe_wa_process_engine(struct xe_hw_engine *hwe);
>>  void xe_wa_process_lrc(struct xe_hw_engine *hwe);
>> --
>> 2.40.1
>>
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds Lucas De Marchi
@ 2023-05-17 20:49   ` Matt Roper
  2023-05-17 21:12     ` Lucas De Marchi
  0 siblings, 1 reply; 29+ messages in thread
From: Matt Roper @ 2023-05-17 20:49 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:49PM -0700, Lucas De Marchi wrote:
> There are WAs that, due to their nature, cannot be applied from
> a central place like xe_wa.c. Those are peppered around the rest of the
> code, as needed. This gives them a new name:  "out-of-band workarounds".
> 
> These workarounds have their names and rules still grouped in xe_wa.c,
> inside the xe_wa_oob array, which is generated at compile time by
> xe_wa_oob.rules and the hostprog xe_gen_wa_oob. The code generation guarantees
> that the header xe_wa_oob.h contains the IDs for the workarounds that match
> the index in the table. This way the runtime checks that are spread throughout
> the code are simple tests against the bitmap saved during initialization.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/Makefile          |  14 +++
>  drivers/gpu/drm/xe/xe_device.c       |   2 +
>  drivers/gpu/drm/xe/xe_device_types.h |   2 +
>  drivers/gpu/drm/xe/xe_gen_wa_oob.c   | 165 +++++++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_wa.c           |  40 ++++++-
>  drivers/gpu/drm/xe/xe_wa.h           |   9 ++
>  drivers/gpu/drm/xe/xe_wa_oob.rules   |   0
>  7 files changed, 227 insertions(+), 5 deletions(-)
>  create mode 100644 drivers/gpu/drm/xe/xe_gen_wa_oob.c
>  create mode 100644 drivers/gpu/drm/xe/xe_wa_oob.rules
> 
> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> index b6c41cd7dbe3..fcf04951a309 100644
> --- a/drivers/gpu/drm/xe/Makefile
> +++ b/drivers/gpu/drm/xe/Makefile
> @@ -26,6 +26,20 @@ subdir-ccflags-$(CONFIG_DRM_XE_WERROR) += -Werror
>  
>  subdir-ccflags-y += -I$(srctree)/$(src)
>  
> +# generated sources
> +hostprogs := xe_gen_wa_oob
> +
> +XE_WA_OOB := $(obj)/generated/xe_wa_oob.c $(obj)/generated/xe_wa_oob.h
> +
> +quiet_cmd_wa_oob = GEN     xe_wa_oob.[ch]
> +      cmd_wa_oob = $^ $(XE_WA_OOB)
> +
> +$(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
> +	@mkdir -p $(@D)
> +	$(call cmd,wa_oob)
> +
> +$(obj)/xe_wa.o:  $(XE_WA_OOB)
> +
>  # Please keep these build lists sorted!
>  
>  # core driver code
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index ac6898a28411..45df4354ac1f 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -280,6 +280,8 @@ int xe_device_probe(struct xe_device *xe)
>  			goto err_irq_shutdown;
>  	}
>  
> +	xe_wa_process_oob(xe);
> +
>  	err = xe_mmio_probe_vram(xe);
>  	if (err)
>  		goto err_irq_shutdown;
> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index b8d7864950c4..456299836d0f 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -273,6 +273,8 @@ struct xe_device {
>  		unsigned long *engine;
>  		/** @lrc: bitmap with active LRC workarounds */
>  		unsigned long *lrc;
> +		/** @oob: bitmap with active OOB workaroudns */
> +		unsigned long *oob;
>  	} wa_active;
>  
>  	/* private: */
> diff --git a/drivers/gpu/drm/xe/xe_gen_wa_oob.c b/drivers/gpu/drm/xe/xe_gen_wa_oob.c
> new file mode 100644
> index 000000000000..bf829348058a
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_gen_wa_oob.c
> @@ -0,0 +1,165 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2023 Intel Corporation
> + */
> +
> +#include <ctype.h>
> +#include <errno.h>
> +#include <stdbool.h>
> +#include <stdio.h>
> +#include <string.h>
> +
> +#define HEADER \
> +	"// SPDX-License-Identifier: MIT\n" \
> +	"\n" \
> +	"/*\n" \
> +	" * DO NOT MODIFY.\n" \
> +	" *\n" \
> +	" * This file was generated from rules: %s\n" \
> +	" */\n" \
> +	"#ifndef _GENERATED_XE_WA_OOB_\n" \
> +	"#define _GENERATED_XE_WA_OOB_\n" \
> +	"\n" \
> +	"enum {\n"
> +
> +#define FOOTER \
> +	"};\n" \
> +	"\n" \
> +	"#endif\n"
> +
> +extern const char *program_invocation_short_name;
> +
> +static void print_usage(FILE *f)
> +{
> +	fprintf(f, "usage: %s <input-rule-file> <generated-c-source-file> <generated-c-header-file>\n",
> +		program_invocation_short_name);
> +}
> +
> +static void print_parse_error(const char *err_msg, const char *line,
> +			      unsigned int lineno)
> +{
> +	fprintf(stderr, "ERROR: %s\nERROR: %u: %.60s\n",
> +		err_msg, lineno, line);
> +}
> +
> +static char *strip(char *line, size_t linelen)
> +{
> +	while (isspace(*(line + linelen)))
> +		linelen--;
> +
> +	line[linelen - 1] = '\0';
> +
> +	return  line + strspn(line, " \f\n\r\t\v");
> +}
> +
> +#define MAX_LINE_LEN 4096
> +static int parse(FILE *input, FILE *csource, FILE *cheader)
> +{
> +	char line[MAX_LINE_LEN + 1];
> +	char *name, *prev_name = NULL, *rules;
> +	unsigned int lineno = 0, idx = 0;
> +
> +	while (fgets(line, sizeof(line), input)) {
> +		size_t linelen;
> +		bool is_continuation;
> +
> +		if (line[0] == '\0' || line[0] == '#' || line[0] == '\n') {
> +			lineno++;
> +			continue;
> +		}
> +
> +		linelen = strlen(line);
> +		if (linelen == MAX_LINE_LEN) {
> +			print_parse_error("line too long", line, lineno);
> +			return -EINVAL;
> +		}
> +
> +		is_continuation = isspace(line[0]);
> +		name = strip(line, linelen);
> +
> +		if (!is_continuation) {
> +			name = strtok(name, " \t");
> +			rules = strtok(NULL, "");
> +		} else {
> +			if (!prev_name) {
> +				print_parse_error("invalid rule continuation",
> +						  line, lineno);
> +				return -EINVAL;
> +			}
> +
> +			rules = name;
> +			name = NULL;
> +		}
> +
> +		if (rules[0] == '\0') {
> +			print_parse_error("invalid empty rule\n", line, lineno);
> +			return -EINVAL;
> +		}
> +
> +		if (name) {
> +			fprintf(cheader, "\tXE_WA_OOB_%s = %u,\n", name, idx);
> +			fprintf(csource, "{ XE_RTP_NAME(\"%s\"), XE_RTP_RULES(%s) },\n",
> +				name, rules);
> +		} else {
> +			fprintf(csource, "{ XE_RTP_NAME(NULL), XE_RTP_RULES(%s) },\n",
> +				rules);
> +		}
> +
> +		idx++;
> +		lineno++;
> +		prev_name = name;
> +	}
> +
> +	fprintf(cheader, "\t_XE_WA_OOB_COUNT = %u\n", idx);
> +
> +	return 0;
> +}
> +
> +int main(int argc, const char *argv[])
> +{
> +	enum {
> +		ARGS_INPUT,
> +		ARGS_CSOURCE,
> +		ARGS_CHEADER,
> +		_ARGS_COUNT
> +	};
> +	struct {
> +		const char *fn;
> +		const char *mode;
> +		FILE *f;
> +	} args[] = {
> +		[ARGS_INPUT] = { .fn = argv[1], .mode = "r" },
> +		[ARGS_CSOURCE] = { .fn = argv[2], .mode = "w" },
> +		[ARGS_CHEADER] = { .fn = argv[3], .mode = "w" },
> +	};
> +	int ret = 1;
> +
> +	if (argc < 3) {
> +		fprintf(stderr, "ERROR: wrong arguments\n");
> +		print_usage(stderr);
> +		return 1;
> +	}
> +
> +	for (int i = 0; i < _ARGS_COUNT; i++) {
> +		args[i].f = fopen(args[i].fn, args[i].mode);
> +		if (!args[i].f) {
> +			fprintf(stderr, "ERROR: Can't open %s: %m\n",
> +				args[i].fn);
> +			goto err;
> +		}
> +	}
> +
> +	fprintf(args[ARGS_CHEADER].f, HEADER, args[ARGS_INPUT].fn);
> +	ret = parse(args[ARGS_INPUT].f, args[ARGS_CSOURCE].f,
> +		    args[ARGS_CHEADER].f);
> +	if (!ret)
> +		fprintf(args[ARGS_CHEADER].f, FOOTER);
> +
> +err:
> +	for (int i = 0; i < _ARGS_COUNT; i++) {
> +		if (args[i].f)
> +			fclose(args[i].f);
> +	}
> +
> +	return ret;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index bc2665737836..f789be2cf8c3 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -9,6 +9,7 @@
>  #include <kunit/visibility.h>
>  #include <linux/compiler_types.h>
>  
> +#include "generated/xe_wa_oob.h"
>  #include "regs/xe_engine_regs.h"
>  #include "regs/xe_gt_regs.h"
>  #include "regs/xe_regs.h"
> @@ -73,8 +74,8 @@
>   *      engine registers are restored in a context restore sequence. This is
>   *      currently not used in the driver.
>   *
> - * - Other:  There are WAs that, due to their nature, cannot be applied from a
> - *   central place. Those are peppered around the rest of the code, as needed.
> + * - Other/OOB:  There are WAs that, due to their nature, cannot be applied from
> + *   a central place. Those are peppered around the rest of the code, as needed.
>   *   Workarounds related to the display IP are the main example.
>   *
>   * .. [1] Technically, some registers are powercontext saved & restored, so they
> @@ -569,8 +570,31 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
>  	{}
>  };
>  
> +static __maybe_unused const struct xe_rtp_entry oob_was[] = {
> +#include <generated/xe_wa_oob.c>
> +	{}
> +};
> +
> +static_assert(ARRAY_SIZE(oob_was) - 1 == _XE_WA_OOB_COUNT);
> +
>  __diag_pop();
>  
> +/**
> + * xe_wa_process_oob - process OOB workaround table
> + * @gt: xe device instance
> + *
> + * Process OOB workaround table for this platform, marking as active the
> + * workarounds that need to be applied.
> + */
> +void xe_wa_process_oob(struct xe_device *xe)
> +{
> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(xe);
> +
> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.oob,
> +						  ARRAY_SIZE(oob_was));
> +	xe_rtp_process(&ctx, oob_was);
> +}
> +
>  /**
>   * xe_wa_process_gt - process GT workaround table
>   * @gt: GT instance to process workarounds for
> @@ -633,12 +657,13 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe)
>   */
>  int xe_wa_init(struct xe_device *xe)
>  {
> -	size_t n_lrc, n_engine, n_gt, total;
> +	size_t n_oob, n_lrc, n_engine, n_gt, total;
>  
>  	n_gt = BITS_TO_LONGS(ARRAY_SIZE(gt_was));
>  	n_engine = BITS_TO_LONGS(ARRAY_SIZE(engine_was));
>  	n_lrc = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
> -	total = n_gt + n_engine + n_lrc;
> +	n_oob = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));

Shouldn't this be oob_was?


Matt

> +	total = n_gt + n_engine + n_lrc + n_oob;
>  
>  	xe->wa_active.gt = drmm_kzalloc(&xe->drm, sizeof(long) * total,
>  					GFP_KERNEL);
> @@ -647,6 +672,7 @@ int xe_wa_init(struct xe_device *xe)
>  
>  	xe->wa_active.engine = xe->wa_active.gt + n_gt;
>  	xe->wa_active.lrc = xe->wa_active.engine + n_engine;
> +	xe->wa_active.oob = xe->wa_active.lrc + n_lrc;
>  
>  	return 0;
>  }
> @@ -666,5 +692,9 @@ void xe_wa_dump(struct xe_device *xe, struct drm_printer *p)
>  	drm_printf(p, "\nLRC Workarounds\n");
>  	for_each_set_bit(idx, xe->wa_active.lrc, ARRAY_SIZE(lrc_was))
>  		drm_printf_indent(p, 1, "%s\n", lrc_was[idx].name);
> -}
>  
> +	drm_printf(p, "\nOOB Workarounds\n");
> +	for_each_set_bit(idx, xe->wa_active.oob, ARRAY_SIZE(lrc_was))
> +		if (oob_was[idx].name)
> +			drm_printf_indent(p, 1, "%s\n", oob_was[idx].name);
> +}
> diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
> index 32ab34d9237f..f7da9f5b9340 100644
> --- a/drivers/gpu/drm/xe/xe_wa.h
> +++ b/drivers/gpu/drm/xe/xe_wa.h
> @@ -12,6 +12,7 @@ struct xe_gt;
>  struct xe_hw_engine;
>  
>  int xe_wa_init(struct xe_device *xe);
> +void xe_wa_process_oob(struct xe_device *xe);
>  void xe_wa_process_gt(struct xe_gt *gt);
>  void xe_wa_process_engine(struct xe_hw_engine *hwe);
>  void xe_wa_process_lrc(struct xe_hw_engine *hwe);
> @@ -19,4 +20,12 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe);
>  void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
>  void xe_wa_dump(struct xe_device *xe, struct drm_printer *p);
>  
> +/**
> + * XE_WA - Out-of-band workarounds, that don't fit the lifecycle any
> + *         other more specific type
> + * @xe__: xe device instance
> + * @id__: XE_OOB_<id__>, as generated by build system in generated/xe_wa_oob.h
> + */
> +#define XE_WA(xe__, id__) test_bit(XE_WA_OOB_ ## id__, (xe__)->wa_active.oob)
> +
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> new file mode 100644
> index 000000000000..e69de29bb2d1
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds
  2023-05-17 20:49   ` Matt Roper
@ 2023-05-17 21:12     ` Lucas De Marchi
  0 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-17 21:12 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe, Rodrigo Vivi

On Wed, May 17, 2023 at 01:49:19PM -0700, Matt Roper wrote:
>On Tue, May 16, 2023 at 03:19:49PM -0700, Lucas De Marchi wrote:
>> There are WAs that, due to their nature, cannot be applied from
>> a central place like xe_wa.c. Those are peppered around the rest of the
>> code, as needed. This gives them a new name:  "out-of-band workarounds".
>>
>> These workarounds have their names and rules still grouped in xe_wa.c,
>> inside the xe_wa_oob array, which is generated at compile time by
>> xe_wa_oob.rules and the hostprog xe_gen_wa_oob. The code generation guarantees
>> that the header xe_wa_oob.h contains the IDs for the workarounds that match
>> the index in the table. This way the runtime checks that are spread throughout
>> the code are simple tests against the bitmap saved during initialization.
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>> ---
>>  drivers/gpu/drm/xe/Makefile          |  14 +++
>>  drivers/gpu/drm/xe/xe_device.c       |   2 +
>>  drivers/gpu/drm/xe/xe_device_types.h |   2 +
>>  drivers/gpu/drm/xe/xe_gen_wa_oob.c   | 165 +++++++++++++++++++++++++++
>>  drivers/gpu/drm/xe/xe_wa.c           |  40 ++++++-
>>  drivers/gpu/drm/xe/xe_wa.h           |   9 ++
>>  drivers/gpu/drm/xe/xe_wa_oob.rules   |   0
>>  7 files changed, 227 insertions(+), 5 deletions(-)
>>  create mode 100644 drivers/gpu/drm/xe/xe_gen_wa_oob.c
>>  create mode 100644 drivers/gpu/drm/xe/xe_wa_oob.rules
>>
>> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
>> index b6c41cd7dbe3..fcf04951a309 100644
>> --- a/drivers/gpu/drm/xe/Makefile
>> +++ b/drivers/gpu/drm/xe/Makefile
>> @@ -26,6 +26,20 @@ subdir-ccflags-$(CONFIG_DRM_XE_WERROR) += -Werror
>>
>>  subdir-ccflags-y += -I$(srctree)/$(src)
>>
>> +# generated sources
>> +hostprogs := xe_gen_wa_oob
>> +
>> +XE_WA_OOB := $(obj)/generated/xe_wa_oob.c $(obj)/generated/xe_wa_oob.h
>> +
>> +quiet_cmd_wa_oob = GEN     xe_wa_oob.[ch]
>> +      cmd_wa_oob = $^ $(XE_WA_OOB)
>> +
>> +$(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
>> +	@mkdir -p $(@D)
>> +	$(call cmd,wa_oob)
>> +
>> +$(obj)/xe_wa.o:  $(XE_WA_OOB)
>> +
>>  # Please keep these build lists sorted!
>>
>>  # core driver code
>> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
>> index ac6898a28411..45df4354ac1f 100644
>> --- a/drivers/gpu/drm/xe/xe_device.c
>> +++ b/drivers/gpu/drm/xe/xe_device.c
>> @@ -280,6 +280,8 @@ int xe_device_probe(struct xe_device *xe)
>>  			goto err_irq_shutdown;
>>  	}
>>
>> +	xe_wa_process_oob(xe);
>> +
>>  	err = xe_mmio_probe_vram(xe);
>>  	if (err)
>>  		goto err_irq_shutdown;
>> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
>> index b8d7864950c4..456299836d0f 100644
>> --- a/drivers/gpu/drm/xe/xe_device_types.h
>> +++ b/drivers/gpu/drm/xe/xe_device_types.h
>> @@ -273,6 +273,8 @@ struct xe_device {
>>  		unsigned long *engine;
>>  		/** @lrc: bitmap with active LRC workarounds */
>>  		unsigned long *lrc;
>> +		/** @oob: bitmap with active OOB workaroudns */
>> +		unsigned long *oob;
>>  	} wa_active;
>>
>>  	/* private: */
>> diff --git a/drivers/gpu/drm/xe/xe_gen_wa_oob.c b/drivers/gpu/drm/xe/xe_gen_wa_oob.c
>> new file mode 100644
>> index 000000000000..bf829348058a
>> --- /dev/null
>> +++ b/drivers/gpu/drm/xe/xe_gen_wa_oob.c
>> @@ -0,0 +1,165 @@
>> +// SPDX-License-Identifier: MIT
>> +/*
>> + * Copyright © 2023 Intel Corporation
>> + */
>> +
>> +#include <ctype.h>
>> +#include <errno.h>
>> +#include <stdbool.h>
>> +#include <stdio.h>
>> +#include <string.h>
>> +
>> +#define HEADER \
>> +	"// SPDX-License-Identifier: MIT\n" \
>> +	"\n" \
>> +	"/*\n" \
>> +	" * DO NOT MODIFY.\n" \
>> +	" *\n" \
>> +	" * This file was generated from rules: %s\n" \
>> +	" */\n" \
>> +	"#ifndef _GENERATED_XE_WA_OOB_\n" \
>> +	"#define _GENERATED_XE_WA_OOB_\n" \
>> +	"\n" \
>> +	"enum {\n"
>> +
>> +#define FOOTER \
>> +	"};\n" \
>> +	"\n" \
>> +	"#endif\n"
>> +
>> +extern const char *program_invocation_short_name;
>> +
>> +static void print_usage(FILE *f)
>> +{
>> +	fprintf(f, "usage: %s <input-rule-file> <generated-c-source-file> <generated-c-header-file>\n",
>> +		program_invocation_short_name);
>> +}
>> +
>> +static void print_parse_error(const char *err_msg, const char *line,
>> +			      unsigned int lineno)
>> +{
>> +	fprintf(stderr, "ERROR: %s\nERROR: %u: %.60s\n",
>> +		err_msg, lineno, line);
>> +}
>> +
>> +static char *strip(char *line, size_t linelen)
>> +{
>> +	while (isspace(*(line + linelen)))
>> +		linelen--;
>> +
>> +	line[linelen - 1] = '\0';
>> +
>> +	return  line + strspn(line, " \f\n\r\t\v");
>> +}
>> +
>> +#define MAX_LINE_LEN 4096
>> +static int parse(FILE *input, FILE *csource, FILE *cheader)
>> +{
>> +	char line[MAX_LINE_LEN + 1];
>> +	char *name, *prev_name = NULL, *rules;
>> +	unsigned int lineno = 0, idx = 0;
>> +
>> +	while (fgets(line, sizeof(line), input)) {
>> +		size_t linelen;
>> +		bool is_continuation;
>> +
>> +		if (line[0] == '\0' || line[0] == '#' || line[0] == '\n') {
>> +			lineno++;
>> +			continue;
>> +		}
>> +
>> +		linelen = strlen(line);
>> +		if (linelen == MAX_LINE_LEN) {
>> +			print_parse_error("line too long", line, lineno);
>> +			return -EINVAL;
>> +		}
>> +
>> +		is_continuation = isspace(line[0]);
>> +		name = strip(line, linelen);
>> +
>> +		if (!is_continuation) {
>> +			name = strtok(name, " \t");
>> +			rules = strtok(NULL, "");
>> +		} else {
>> +			if (!prev_name) {
>> +				print_parse_error("invalid rule continuation",
>> +						  line, lineno);
>> +				return -EINVAL;
>> +			}
>> +
>> +			rules = name;
>> +			name = NULL;
>> +		}
>> +
>> +		if (rules[0] == '\0') {
>> +			print_parse_error("invalid empty rule\n", line, lineno);
>> +			return -EINVAL;
>> +		}
>> +
>> +		if (name) {
>> +			fprintf(cheader, "\tXE_WA_OOB_%s = %u,\n", name, idx);
>> +			fprintf(csource, "{ XE_RTP_NAME(\"%s\"), XE_RTP_RULES(%s) },\n",
>> +				name, rules);
>> +		} else {
>> +			fprintf(csource, "{ XE_RTP_NAME(NULL), XE_RTP_RULES(%s) },\n",
>> +				rules);
>> +		}
>> +
>> +		idx++;
>> +		lineno++;
>> +		prev_name = name;
>> +	}
>> +
>> +	fprintf(cheader, "\t_XE_WA_OOB_COUNT = %u\n", idx);
>> +
>> +	return 0;
>> +}
>> +
>> +int main(int argc, const char *argv[])
>> +{
>> +	enum {
>> +		ARGS_INPUT,
>> +		ARGS_CSOURCE,
>> +		ARGS_CHEADER,
>> +		_ARGS_COUNT
>> +	};
>> +	struct {
>> +		const char *fn;
>> +		const char *mode;
>> +		FILE *f;
>> +	} args[] = {
>> +		[ARGS_INPUT] = { .fn = argv[1], .mode = "r" },
>> +		[ARGS_CSOURCE] = { .fn = argv[2], .mode = "w" },
>> +		[ARGS_CHEADER] = { .fn = argv[3], .mode = "w" },
>> +	};
>> +	int ret = 1;
>> +
>> +	if (argc < 3) {
>> +		fprintf(stderr, "ERROR: wrong arguments\n");
>> +		print_usage(stderr);
>> +		return 1;
>> +	}
>> +
>> +	for (int i = 0; i < _ARGS_COUNT; i++) {
>> +		args[i].f = fopen(args[i].fn, args[i].mode);
>> +		if (!args[i].f) {
>> +			fprintf(stderr, "ERROR: Can't open %s: %m\n",
>> +				args[i].fn);
>> +			goto err;
>> +		}
>> +	}
>> +
>> +	fprintf(args[ARGS_CHEADER].f, HEADER, args[ARGS_INPUT].fn);
>> +	ret = parse(args[ARGS_INPUT].f, args[ARGS_CSOURCE].f,
>> +		    args[ARGS_CHEADER].f);
>> +	if (!ret)
>> +		fprintf(args[ARGS_CHEADER].f, FOOTER);
>> +
>> +err:
>> +	for (int i = 0; i < _ARGS_COUNT; i++) {
>> +		if (args[i].f)
>> +			fclose(args[i].f);
>> +	}
>> +
>> +	return ret;
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
>> index bc2665737836..f789be2cf8c3 100644
>> --- a/drivers/gpu/drm/xe/xe_wa.c
>> +++ b/drivers/gpu/drm/xe/xe_wa.c
>> @@ -9,6 +9,7 @@
>>  #include <kunit/visibility.h>
>>  #include <linux/compiler_types.h>
>>
>> +#include "generated/xe_wa_oob.h"
>>  #include "regs/xe_engine_regs.h"
>>  #include "regs/xe_gt_regs.h"
>>  #include "regs/xe_regs.h"
>> @@ -73,8 +74,8 @@
>>   *      engine registers are restored in a context restore sequence. This is
>>   *      currently not used in the driver.
>>   *
>> - * - Other:  There are WAs that, due to their nature, cannot be applied from a
>> - *   central place. Those are peppered around the rest of the code, as needed.
>> + * - Other/OOB:  There are WAs that, due to their nature, cannot be applied from
>> + *   a central place. Those are peppered around the rest of the code, as needed.
>>   *   Workarounds related to the display IP are the main example.
>>   *
>>   * .. [1] Technically, some registers are powercontext saved & restored, so they
>> @@ -569,8 +570,31 @@ static const struct xe_rtp_entry_sr lrc_was[] = {
>>  	{}
>>  };
>>
>> +static __maybe_unused const struct xe_rtp_entry oob_was[] = {
>> +#include <generated/xe_wa_oob.c>
>> +	{}
>> +};
>> +
>> +static_assert(ARRAY_SIZE(oob_was) - 1 == _XE_WA_OOB_COUNT);
>> +
>>  __diag_pop();
>>
>> +/**
>> + * xe_wa_process_oob - process OOB workaround table
>> + * @gt: xe device instance
>> + *
>> + * Process OOB workaround table for this platform, marking as active the
>> + * workarounds that need to be applied.
>> + */
>> +void xe_wa_process_oob(struct xe_device *xe)
>> +{
>> +	struct xe_rtp_process_ctx ctx = XE_RTP_PROCESS_CTX_INITIALIZER(xe);
>> +
>> +	xe_rtp_process_ctx_enable_active_tracking(&ctx, xe->wa_active.oob,
>> +						  ARRAY_SIZE(oob_was));
>> +	xe_rtp_process(&ctx, oob_was);
>> +}
>> +
>>  /**
>>   * xe_wa_process_gt - process GT workaround table
>>   * @gt: GT instance to process workarounds for
>> @@ -633,12 +657,13 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe)
>>   */
>>  int xe_wa_init(struct xe_device *xe)
>>  {
>> -	size_t n_lrc, n_engine, n_gt, total;
>> +	size_t n_oob, n_lrc, n_engine, n_gt, total;
>>
>>  	n_gt = BITS_TO_LONGS(ARRAY_SIZE(gt_was));
>>  	n_engine = BITS_TO_LONGS(ARRAY_SIZE(engine_was));
>>  	n_lrc = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
>> -	total = n_gt + n_engine + n_lrc;
>> +	n_oob = BITS_TO_LONGS(ARRAY_SIZE(lrc_was));
>
>Shouldn't this be oob_was?

yes, thanks. It just didn't fail because size of lrc_was is larger than
oob. I think I need to find a proper to add static_assert somewhere,
like I did for _XE_WA_OOB_COUNT, to avoid these typos.

Lucas De Marchi

>
>
>Matt
>
>> +	total = n_gt + n_engine + n_lrc + n_oob;
>>
>>  	xe->wa_active.gt = drmm_kzalloc(&xe->drm, sizeof(long) * total,
>>  					GFP_KERNEL);
>> @@ -647,6 +672,7 @@ int xe_wa_init(struct xe_device *xe)
>>
>>  	xe->wa_active.engine = xe->wa_active.gt + n_gt;
>>  	xe->wa_active.lrc = xe->wa_active.engine + n_engine;
>> +	xe->wa_active.oob = xe->wa_active.lrc + n_lrc;
>>
>>  	return 0;
>>  }
>> @@ -666,5 +692,9 @@ void xe_wa_dump(struct xe_device *xe, struct drm_printer *p)
>>  	drm_printf(p, "\nLRC Workarounds\n");
>>  	for_each_set_bit(idx, xe->wa_active.lrc, ARRAY_SIZE(lrc_was))
>>  		drm_printf_indent(p, 1, "%s\n", lrc_was[idx].name);
>> -}
>>
>> +	drm_printf(p, "\nOOB Workarounds\n");
>> +	for_each_set_bit(idx, xe->wa_active.oob, ARRAY_SIZE(lrc_was))
>> +		if (oob_was[idx].name)
>> +			drm_printf_indent(p, 1, "%s\n", oob_was[idx].name);
>> +}
>> diff --git a/drivers/gpu/drm/xe/xe_wa.h b/drivers/gpu/drm/xe/xe_wa.h
>> index 32ab34d9237f..f7da9f5b9340 100644
>> --- a/drivers/gpu/drm/xe/xe_wa.h
>> +++ b/drivers/gpu/drm/xe/xe_wa.h
>> @@ -12,6 +12,7 @@ struct xe_gt;
>>  struct xe_hw_engine;
>>
>>  int xe_wa_init(struct xe_device *xe);
>> +void xe_wa_process_oob(struct xe_device *xe);
>>  void xe_wa_process_gt(struct xe_gt *gt);
>>  void xe_wa_process_engine(struct xe_hw_engine *hwe);
>>  void xe_wa_process_lrc(struct xe_hw_engine *hwe);
>> @@ -19,4 +20,12 @@ void xe_wa_process_lrc(struct xe_hw_engine *hwe);
>>  void xe_reg_whitelist_process_engine(struct xe_hw_engine *hwe);
>>  void xe_wa_dump(struct xe_device *xe, struct drm_printer *p);
>>
>> +/**
>> + * XE_WA - Out-of-band workarounds, that don't fit the lifecycle any
>> + *         other more specific type
>> + * @xe__: xe device instance
>> + * @id__: XE_OOB_<id__>, as generated by build system in generated/xe_wa_oob.h
>> + */
>> +#define XE_WA(xe__, id__) test_bit(XE_WA_OOB_ ## id__, (xe__)->wa_active.oob)
>> +
>>  #endif
>> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
>> new file mode 100644
>> index 000000000000..e69de29bb2d1
>> --
>> 2.40.1
>>
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra
  2023-05-16 22:19 ` [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra Lucas De Marchi
@ 2023-05-17 21:25   ` Matt Roper
  2023-05-17 22:25     ` Lucas De Marchi
  0 siblings, 1 reply; 29+ messages in thread
From: Matt Roper @ 2023-05-17 21:25 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Tue, May 16, 2023 at 03:19:50PM -0700, Lucas De Marchi wrote:
> Let xe_guc.c start using XE_WA() for workarounds. The one missing
> workaround is left with a "FIXME" since it's not properly implemented
> yet.
> 
> Also, some changes were made to a few workarounds:
> 
> 	- Wa_22011383443 not implemented due to being an early PVC
> 	  stepping. Wa_16011759253 that has the same condition is the
> 	  one covering DG2.
> 
> 	- Wa_22011391025 and Wa_14012197797 were split in 2, since they
> 	  cover different steppings and we do want to report both as
> 	  implemented. The latter may eventually be removed due to being
> 	  early DG2 steppings, but the former should remain.
> 
> 	- Wa_22012727170 and Wa_22012727685 were split in 2 so both of
> 	  them can be reported as active, regardless if they (currently)
> 	  have the same rules.
> 
> 	- Wa_16015675438 and Wa_18020744125 were not checking by
> 	  platform or IP version, hence making them not future-proof.
> 	  Those workarounds should only be active in PVC and DG2,
> 	  besides the check for "no render engine".
> 
> DG2 system used for test:
> 	XE_DG2 G12 56b2:0001 dgfx:1 gfx:Xe_HPG (12.55) media:Xe_HPM (12.55) ...
> 	Stepping = (G:A1, M:A1, D:C0, B:**)
> 
> Output is as expected for the current OOB workarounds:
> 
> 	$ cat /sys/kernel/debug/dri/0/workarounds
> 	...
> 	OOB Workarounds
> 		14014475959
> 		22011391025
> 		14012197797
> 		16015675438
> 		16016323070
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> ---
>  drivers/gpu/drm/xe/Makefile        |  2 +-
>  drivers/gpu/drm/xe/xe_guc.c        | 43 ++++++++----------------------
>  drivers/gpu/drm/xe/xe_wa_oob.rules | 16 +++++++++++
>  3 files changed, 28 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> index fcf04951a309..07af0d022263 100644
> --- a/drivers/gpu/drm/xe/Makefile
> +++ b/drivers/gpu/drm/xe/Makefile
> @@ -38,7 +38,7 @@ $(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
>  	@mkdir -p $(@D)
>  	$(call cmd,wa_oob)
>  
> -$(obj)/xe_wa.o:  $(XE_WA_OOB)
> +$(obj)/xe_wa.o $(obj)/xe_guc.o: $(XE_WA_OOB)
>  
>  # Please keep these build lists sorted!
>  
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 1b5d0b6ad180..252a4bfe6d63 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -5,6 +5,7 @@
>  
>  #include "xe_guc.h"
>  
> +#include "generated/xe_wa_oob.h"
>  #include "regs/xe_gt_regs.h"
>  #include "regs/xe_guc_regs.h"
>  #include "xe_bo.h"
> @@ -20,6 +21,7 @@
>  #include "xe_mmio.h"
>  #include "xe_platform_types.h"
>  #include "xe_uc_fw.h"
> +#include "xe_wa.h"
>  #include "xe_wopcm.h"
>  
>  #define MEDIA_GUC_HOST_INTERRUPT        XE_REG(0x190304)
> @@ -136,29 +138,16 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
>  	struct xe_gt *gt = guc_to_gt(guc);
>  	u32 flags = 0;
>  
> -	/* Wa_22012773006:gen11,gen12 < XeHP */
> -	if (GRAPHICS_VER(xe) >= 11 &&
> -	    GRAPHICS_VERx100(xe) < 1250)
> +	if (XE_WA(xe, 22012773006))
>  		flags |= GUC_WA_POLLCS;
>  
> -	/* Wa_16011759253 */
> -	/* Wa_22011383443 */
> -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_B0))
> +	if (XE_WA(xe, 16011759253))
>  		flags |= GUC_WA_GAM_CREDITS;
>  
> -	/* Wa_14014475959 */
> -	if (IS_PLATFORM_STEP(xe, XE_METEORLAKE, STEP_A0, STEP_B0) ||
> -	    xe->info.platform == XE_DG2)
> +	if (XE_WA(xe, 14014475959))
>  		flags |= GUC_WA_HOLD_CCS_SWITCHOUT;

Hmm, this workaround was already implemented incorrectly, but it does do
a good job of highlighting a shortcoming that we need to address...see
comment farther down.

>  
> -	/*
> -	 * Wa_14012197797
> -	 * Wa_22011391025
> -	 *
> -	 * The same WA bit is used for both and 22011391025 is applicable to
> -	 * all DG2.
> -	 */
> -	if (xe->info.platform == XE_DG2)
> +	if (XE_WA(xe, 22011391025) || XE_WA(xe, 14012197797))
>  		flags |= GUC_WA_DUAL_QUEUE;
>  
>  	/*
> @@ -169,27 +158,17 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
>  	if (GRAPHICS_VERx100(xe) < 1270)
>  		flags |= GUC_WA_PRE_PARSER;
>  
> -	/* Wa_16011777198 */
> -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
> -	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
> -				STEP_B0))
> +	if (XE_WA(xe, 16011777198))
>  		flags |= GUC_WA_RCS_RESET_BEFORE_RC6;
>  
> -	/*
> -	 * Wa_22012727170
> -	 * Wa_22012727685
> -	 */
> -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
> -	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
> -				STEP_FOREVER))
> +	if (XE_WA(xe, 22012727170) || XE_WA(xe, 22012727685))
>  		flags |= GUC_WA_CONTEXT_ISOLATION;
>  
> -	/* Wa_16015675438, Wa_18020744125 */
> -	if (!xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
> +	if ((XE_WA(xe, 16015675438) || XE_WA(xe, 16016323070)) &&
> +	    !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
>  		flags |= GUC_WA_RCS_REGS_IN_CCS_REGS_LIST;
>  
> -	/* Wa_1509372804 */
> -	if (IS_PLATFORM_STEP(xe, XE_PVC, STEP_B0, STEP_C0))
> +	if (XE_WA(xe, 1509372804))
>  		flags |= GUC_WA_RENDER_RST_RC6_EXIT;
>  
>  	return flags;
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> index e69de29bb2d1..060ff25496a7 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -0,0 +1,16 @@
> +22012773006	GRAPHICS_VERSION_RANGE(1100, 1250)
> +16011759253	SUBPLATFORM(DG2, G10), STEP(A0, B0)
> +14014475959	PLATFORM(METEORLAKE), STEP(A0, B0)

In general we can't match on platform anymore for disaggregated IP
platforms; we need to match solely on IP+version now.  For example, this
workaround applies to 12.70, but does not apply to 12.71 and also does
not apply to the media GT for media version 13.  The old way of doing
things with subplatforms also doesn't work well anymore since we have to
be ready for this 12.70 graphics chiplet to potentially be re-used in
some future non-MTL platform.

A first step of doing

        14014475959  GRAPHICS_VERSION(1270), STEP(A0, B0)

isn't quite enough since it will still result in this workaround being
applied every time guc_ctl_wa_flags() gets called on a platform with
graphics version 12.70.  In reality, we only want this workaround to be
applied on the _primary_ GT if the graphics version is 12.70.  When we
loop around and run the function a second time on the media GT, it
should not be applied since media version 13 does not need this
workaround.  Other workarounds might apply to both graphics and media
GTs, but only specific steppings of each, so we need to specify which IP
to check the stepping for.  At the moment XE_RTP_MATCH_STEP can only
cope with graphics steppings in rule_matches().

So maybe we want something like:

        12345678900  GRAPHICS_VER_STEP(1270, B0, B3)
                     MEDIA_VER_STEP(1300, C1, F4)

that ties the stepping to the specific IP and version.  And then we'd
probably also want XE_WA to take an xe_gt as a parameter so that it can
make sure that gt->type is appropriate as well.


Matt

> +		PLATFORM(DG2)
> +22011391025	PLATFORM(DG2)
> +14012197797	PLATFORM(DG2), STEP(A0, B0)
> +16011777198	SUBPLATFORM(DG2, G10), STEP(A0, C0)
> +		SUBPLATFORM(DG2, G11), STEP(A0, B0)
> +22012727170	SUBPLATFORM(DG2, G10), STEP(A0, C0)
> +		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
> +22012727685	SUBPLATFORM(DG2, G10), STEP(A0, C0)
> +		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
> +16015675438	PLATFORM(PVC)
> +		PLATFORM(DG2)
> +16016323070	PLATFORM(PVC)
> +1509372804	PLATFORM(PVC), STEP(B0, C0)
> -- 
> 2.40.1
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra
  2023-05-17 21:25   ` Matt Roper
@ 2023-05-17 22:25     ` Lucas De Marchi
  2023-05-17 22:43       ` Matt Roper
  0 siblings, 1 reply; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-17 22:25 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe, Rodrigo Vivi

On Wed, May 17, 2023 at 02:25:52PM -0700, Matt Roper wrote:
>On Tue, May 16, 2023 at 03:19:50PM -0700, Lucas De Marchi wrote:
>> Let xe_guc.c start using XE_WA() for workarounds. The one missing
>> workaround is left with a "FIXME" since it's not properly implemented
>> yet.
>>
>> Also, some changes were made to a few workarounds:
>>
>> 	- Wa_22011383443 not implemented due to being an early PVC
>> 	  stepping. Wa_16011759253 that has the same condition is the
>> 	  one covering DG2.
>>
>> 	- Wa_22011391025 and Wa_14012197797 were split in 2, since they
>> 	  cover different steppings and we do want to report both as
>> 	  implemented. The latter may eventually be removed due to being
>> 	  early DG2 steppings, but the former should remain.
>>
>> 	- Wa_22012727170 and Wa_22012727685 were split in 2 so both of
>> 	  them can be reported as active, regardless if they (currently)
>> 	  have the same rules.
>>
>> 	- Wa_16015675438 and Wa_18020744125 were not checking by
>> 	  platform or IP version, hence making them not future-proof.
>> 	  Those workarounds should only be active in PVC and DG2,
>> 	  besides the check for "no render engine".
>>
>> DG2 system used for test:
>> 	XE_DG2 G12 56b2:0001 dgfx:1 gfx:Xe_HPG (12.55) media:Xe_HPM (12.55) ...
>> 	Stepping = (G:A1, M:A1, D:C0, B:**)
>>
>> Output is as expected for the current OOB workarounds:
>>
>> 	$ cat /sys/kernel/debug/dri/0/workarounds
>> 	...
>> 	OOB Workarounds
>> 		14014475959
>> 		22011391025
>> 		14012197797
>> 		16015675438
>> 		16016323070
>>
>> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
>> ---
>>  drivers/gpu/drm/xe/Makefile        |  2 +-
>>  drivers/gpu/drm/xe/xe_guc.c        | 43 ++++++++----------------------
>>  drivers/gpu/drm/xe/xe_wa_oob.rules | 16 +++++++++++
>>  3 files changed, 28 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
>> index fcf04951a309..07af0d022263 100644
>> --- a/drivers/gpu/drm/xe/Makefile
>> +++ b/drivers/gpu/drm/xe/Makefile
>> @@ -38,7 +38,7 @@ $(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
>>  	@mkdir -p $(@D)
>>  	$(call cmd,wa_oob)
>>
>> -$(obj)/xe_wa.o:  $(XE_WA_OOB)
>> +$(obj)/xe_wa.o $(obj)/xe_guc.o: $(XE_WA_OOB)
>>
>>  # Please keep these build lists sorted!
>>
>> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
>> index 1b5d0b6ad180..252a4bfe6d63 100644
>> --- a/drivers/gpu/drm/xe/xe_guc.c
>> +++ b/drivers/gpu/drm/xe/xe_guc.c
>> @@ -5,6 +5,7 @@
>>
>>  #include "xe_guc.h"
>>
>> +#include "generated/xe_wa_oob.h"
>>  #include "regs/xe_gt_regs.h"
>>  #include "regs/xe_guc_regs.h"
>>  #include "xe_bo.h"
>> @@ -20,6 +21,7 @@
>>  #include "xe_mmio.h"
>>  #include "xe_platform_types.h"
>>  #include "xe_uc_fw.h"
>> +#include "xe_wa.h"
>>  #include "xe_wopcm.h"
>>
>>  #define MEDIA_GUC_HOST_INTERRUPT        XE_REG(0x190304)
>> @@ -136,29 +138,16 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
>>  	struct xe_gt *gt = guc_to_gt(guc);
>>  	u32 flags = 0;
>>
>> -	/* Wa_22012773006:gen11,gen12 < XeHP */
>> -	if (GRAPHICS_VER(xe) >= 11 &&
>> -	    GRAPHICS_VERx100(xe) < 1250)
>> +	if (XE_WA(xe, 22012773006))
>>  		flags |= GUC_WA_POLLCS;
>>
>> -	/* Wa_16011759253 */
>> -	/* Wa_22011383443 */
>> -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_B0))
>> +	if (XE_WA(xe, 16011759253))
>>  		flags |= GUC_WA_GAM_CREDITS;
>>
>> -	/* Wa_14014475959 */
>> -	if (IS_PLATFORM_STEP(xe, XE_METEORLAKE, STEP_A0, STEP_B0) ||
>> -	    xe->info.platform == XE_DG2)
>> +	if (XE_WA(xe, 14014475959))
>>  		flags |= GUC_WA_HOLD_CCS_SWITCHOUT;
>
>Hmm, this workaround was already implemented incorrectly, but it does do
>a good job of highlighting a shortcoming that we need to address...see
>comment farther down.
>
>>
>> -	/*
>> -	 * Wa_14012197797
>> -	 * Wa_22011391025
>> -	 *
>> -	 * The same WA bit is used for both and 22011391025 is applicable to
>> -	 * all DG2.
>> -	 */
>> -	if (xe->info.platform == XE_DG2)
>> +	if (XE_WA(xe, 22011391025) || XE_WA(xe, 14012197797))
>>  		flags |= GUC_WA_DUAL_QUEUE;
>>
>>  	/*
>> @@ -169,27 +158,17 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
>>  	if (GRAPHICS_VERx100(xe) < 1270)
>>  		flags |= GUC_WA_PRE_PARSER;
>>
>> -	/* Wa_16011777198 */
>> -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
>> -	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
>> -				STEP_B0))
>> +	if (XE_WA(xe, 16011777198))
>>  		flags |= GUC_WA_RCS_RESET_BEFORE_RC6;
>>
>> -	/*
>> -	 * Wa_22012727170
>> -	 * Wa_22012727685
>> -	 */
>> -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
>> -	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
>> -				STEP_FOREVER))
>> +	if (XE_WA(xe, 22012727170) || XE_WA(xe, 22012727685))
>>  		flags |= GUC_WA_CONTEXT_ISOLATION;
>>
>> -	/* Wa_16015675438, Wa_18020744125 */
>> -	if (!xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
>> +	if ((XE_WA(xe, 16015675438) || XE_WA(xe, 16016323070)) &&
>> +	    !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
>>  		flags |= GUC_WA_RCS_REGS_IN_CCS_REGS_LIST;
>>
>> -	/* Wa_1509372804 */
>> -	if (IS_PLATFORM_STEP(xe, XE_PVC, STEP_B0, STEP_C0))
>> +	if (XE_WA(xe, 1509372804))
>>  		flags |= GUC_WA_RENDER_RST_RC6_EXIT;
>>
>>  	return flags;
>> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
>> index e69de29bb2d1..060ff25496a7 100644
>> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
>> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
>> @@ -0,0 +1,16 @@
>> +22012773006	GRAPHICS_VERSION_RANGE(1100, 1250)
>> +16011759253	SUBPLATFORM(DG2, G10), STEP(A0, B0)
>> +14014475959	PLATFORM(METEORLAKE), STEP(A0, B0)
>
>In general we can't match on platform anymore for disaggregated IP
>platforms; we need to match solely on IP+version now.  For example, this
>workaround applies to 12.70, but does not apply to 12.71 and also does
>not apply to the media GT for media version 13.  The old way of doing
>things with subplatforms also doesn't work well anymore since we have to
>be ready for this 12.70 graphics chiplet to potentially be re-used in
>some future non-MTL platform.
>
>A first step of doing
>
>        14014475959  GRAPHICS_VERSION(1270), STEP(A0, B0)
>
>isn't quite enough since it will still result in this workaround being
>applied every time guc_ctl_wa_flags() gets called on a platform with
>graphics version 12.70.  In reality, we only want this workaround to be
>applied on the _primary_ GT if the graphics version is 12.70.  When we
>loop around and run the function a second time on the media GT, it
>should not be applied since media version 13 does not need this
>workaround.  Other workarounds might apply to both graphics and media
>GTs, but only specific steppings of each, so we need to specify which IP
>to check the stepping for.  At the moment XE_RTP_MATCH_STEP can only
>cope with graphics steppings in rule_matches().
>
>So maybe we want something like:
>
>        12345678900  GRAPHICS_VER_STEP(1270, B0, B3)
>                     MEDIA_VER_STEP(1300, C1, F4)


MEDIA_VER_STEP() has a implicit && I'd like to avoid with something like
this:

         12345678900  GRAPHICS_VER(1270), STEP(B0, B3)
                      MEDIA_VER(1300), MEDIA_STEP(C1, F4)

	[ MEDIA_STEP() to be added and probably STEP() renamed to
	  GRAPHICS_STEP ]

This is the same as what you wrote, but without exploding on the number
of matches. For instance I'd expect the next request to be the STEP +
version range.

My idea was to leave this on the device-level and anything that is to be
checked on the gt / engine level or in another way, is checked from
outside. See the handling for the other WA above:

	if ((XE_WA(xe, 16015675438) || XE_WA(xe, 16016323070)) &&
	    !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))


Lucas De Marchi

>
>that ties the stepping to the specific IP and version.  And then we'd
>probably also want XE_WA to take an xe_gt as a parameter so that it can
>make sure that gt->type is appropriate as well.
>
>
>Matt
>
>> +		PLATFORM(DG2)
>> +22011391025	PLATFORM(DG2)
>> +14012197797	PLATFORM(DG2), STEP(A0, B0)
>> +16011777198	SUBPLATFORM(DG2, G10), STEP(A0, C0)
>> +		SUBPLATFORM(DG2, G11), STEP(A0, B0)
>> +22012727170	SUBPLATFORM(DG2, G10), STEP(A0, C0)
>> +		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
>> +22012727685	SUBPLATFORM(DG2, G10), STEP(A0, C0)
>> +		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
>> +16015675438	PLATFORM(PVC)
>> +		PLATFORM(DG2)
>> +16016323070	PLATFORM(PVC)
>> +1509372804	PLATFORM(PVC), STEP(B0, C0)
>> --
>> 2.40.1
>>
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra
  2023-05-17 22:25     ` Lucas De Marchi
@ 2023-05-17 22:43       ` Matt Roper
  0 siblings, 0 replies; 29+ messages in thread
From: Matt Roper @ 2023-05-17 22:43 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-xe, Rodrigo Vivi

On Wed, May 17, 2023 at 03:25:07PM -0700, Lucas De Marchi wrote:
> On Wed, May 17, 2023 at 02:25:52PM -0700, Matt Roper wrote:
> > On Tue, May 16, 2023 at 03:19:50PM -0700, Lucas De Marchi wrote:
> > > Let xe_guc.c start using XE_WA() for workarounds. The one missing
> > > workaround is left with a "FIXME" since it's not properly implemented
> > > yet.
> > > 
> > > Also, some changes were made to a few workarounds:
> > > 
> > > 	- Wa_22011383443 not implemented due to being an early PVC
> > > 	  stepping. Wa_16011759253 that has the same condition is the
> > > 	  one covering DG2.
> > > 
> > > 	- Wa_22011391025 and Wa_14012197797 were split in 2, since they
> > > 	  cover different steppings and we do want to report both as
> > > 	  implemented. The latter may eventually be removed due to being
> > > 	  early DG2 steppings, but the former should remain.
> > > 
> > > 	- Wa_22012727170 and Wa_22012727685 were split in 2 so both of
> > > 	  them can be reported as active, regardless if they (currently)
> > > 	  have the same rules.
> > > 
> > > 	- Wa_16015675438 and Wa_18020744125 were not checking by
> > > 	  platform or IP version, hence making them not future-proof.
> > > 	  Those workarounds should only be active in PVC and DG2,
> > > 	  besides the check for "no render engine".
> > > 
> > > DG2 system used for test:
> > > 	XE_DG2 G12 56b2:0001 dgfx:1 gfx:Xe_HPG (12.55) media:Xe_HPM (12.55) ...
> > > 	Stepping = (G:A1, M:A1, D:C0, B:**)
> > > 
> > > Output is as expected for the current OOB workarounds:
> > > 
> > > 	$ cat /sys/kernel/debug/dri/0/workarounds
> > > 	...
> > > 	OOB Workarounds
> > > 		14014475959
> > > 		22011391025
> > > 		14012197797
> > > 		16015675438
> > > 		16016323070
> > > 
> > > Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
> > > ---
> > >  drivers/gpu/drm/xe/Makefile        |  2 +-
> > >  drivers/gpu/drm/xe/xe_guc.c        | 43 ++++++++----------------------
> > >  drivers/gpu/drm/xe/xe_wa_oob.rules | 16 +++++++++++
> > >  3 files changed, 28 insertions(+), 33 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> > > index fcf04951a309..07af0d022263 100644
> > > --- a/drivers/gpu/drm/xe/Makefile
> > > +++ b/drivers/gpu/drm/xe/Makefile
> > > @@ -38,7 +38,7 @@ $(XE_WA_OOB) &: $(obj)/xe_gen_wa_oob $(srctree)/$(src)/xe_wa_oob.rules
> > >  	@mkdir -p $(@D)
> > >  	$(call cmd,wa_oob)
> > > 
> > > -$(obj)/xe_wa.o:  $(XE_WA_OOB)
> > > +$(obj)/xe_wa.o $(obj)/xe_guc.o: $(XE_WA_OOB)
> > > 
> > >  # Please keep these build lists sorted!
> > > 
> > > diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> > > index 1b5d0b6ad180..252a4bfe6d63 100644
> > > --- a/drivers/gpu/drm/xe/xe_guc.c
> > > +++ b/drivers/gpu/drm/xe/xe_guc.c
> > > @@ -5,6 +5,7 @@
> > > 
> > >  #include "xe_guc.h"
> > > 
> > > +#include "generated/xe_wa_oob.h"
> > >  #include "regs/xe_gt_regs.h"
> > >  #include "regs/xe_guc_regs.h"
> > >  #include "xe_bo.h"
> > > @@ -20,6 +21,7 @@
> > >  #include "xe_mmio.h"
> > >  #include "xe_platform_types.h"
> > >  #include "xe_uc_fw.h"
> > > +#include "xe_wa.h"
> > >  #include "xe_wopcm.h"
> > > 
> > >  #define MEDIA_GUC_HOST_INTERRUPT        XE_REG(0x190304)
> > > @@ -136,29 +138,16 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
> > >  	struct xe_gt *gt = guc_to_gt(guc);
> > >  	u32 flags = 0;
> > > 
> > > -	/* Wa_22012773006:gen11,gen12 < XeHP */
> > > -	if (GRAPHICS_VER(xe) >= 11 &&
> > > -	    GRAPHICS_VERx100(xe) < 1250)
> > > +	if (XE_WA(xe, 22012773006))
> > >  		flags |= GUC_WA_POLLCS;
> > > 
> > > -	/* Wa_16011759253 */
> > > -	/* Wa_22011383443 */
> > > -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_B0))
> > > +	if (XE_WA(xe, 16011759253))
> > >  		flags |= GUC_WA_GAM_CREDITS;
> > > 
> > > -	/* Wa_14014475959 */
> > > -	if (IS_PLATFORM_STEP(xe, XE_METEORLAKE, STEP_A0, STEP_B0) ||
> > > -	    xe->info.platform == XE_DG2)
> > > +	if (XE_WA(xe, 14014475959))
> > >  		flags |= GUC_WA_HOLD_CCS_SWITCHOUT;
> > 
> > Hmm, this workaround was already implemented incorrectly, but it does do
> > a good job of highlighting a shortcoming that we need to address...see
> > comment farther down.
> > 
> > > 
> > > -	/*
> > > -	 * Wa_14012197797
> > > -	 * Wa_22011391025
> > > -	 *
> > > -	 * The same WA bit is used for both and 22011391025 is applicable to
> > > -	 * all DG2.
> > > -	 */
> > > -	if (xe->info.platform == XE_DG2)
> > > +	if (XE_WA(xe, 22011391025) || XE_WA(xe, 14012197797))
> > >  		flags |= GUC_WA_DUAL_QUEUE;
> > > 
> > >  	/*
> > > @@ -169,27 +158,17 @@ static u32 guc_ctl_wa_flags(struct xe_guc *guc)
> > >  	if (GRAPHICS_VERx100(xe) < 1270)
> > >  		flags |= GUC_WA_PRE_PARSER;
> > > 
> > > -	/* Wa_16011777198 */
> > > -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
> > > -	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
> > > -				STEP_B0))
> > > +	if (XE_WA(xe, 16011777198))
> > >  		flags |= GUC_WA_RCS_RESET_BEFORE_RC6;
> > > 
> > > -	/*
> > > -	 * Wa_22012727170
> > > -	 * Wa_22012727685
> > > -	 */
> > > -	if (IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G10, STEP_A0, STEP_C0) ||
> > > -	    IS_SUBPLATFORM_STEP(xe, XE_DG2, XE_SUBPLATFORM_DG2_G11, STEP_A0,
> > > -				STEP_FOREVER))
> > > +	if (XE_WA(xe, 22012727170) || XE_WA(xe, 22012727685))
> > >  		flags |= GUC_WA_CONTEXT_ISOLATION;
> > > 
> > > -	/* Wa_16015675438, Wa_18020744125 */
> > > -	if (!xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
> > > +	if ((XE_WA(xe, 16015675438) || XE_WA(xe, 16016323070)) &&
> > > +	    !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))
> > >  		flags |= GUC_WA_RCS_REGS_IN_CCS_REGS_LIST;
> > > 
> > > -	/* Wa_1509372804 */
> > > -	if (IS_PLATFORM_STEP(xe, XE_PVC, STEP_B0, STEP_C0))
> > > +	if (XE_WA(xe, 1509372804))
> > >  		flags |= GUC_WA_RENDER_RST_RC6_EXIT;
> > > 
> > >  	return flags;
> > > diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> > > index e69de29bb2d1..060ff25496a7 100644
> > > --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> > > +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> > > @@ -0,0 +1,16 @@
> > > +22012773006	GRAPHICS_VERSION_RANGE(1100, 1250)
> > > +16011759253	SUBPLATFORM(DG2, G10), STEP(A0, B0)
> > > +14014475959	PLATFORM(METEORLAKE), STEP(A0, B0)
> > 
> > In general we can't match on platform anymore for disaggregated IP
> > platforms; we need to match solely on IP+version now.  For example, this
> > workaround applies to 12.70, but does not apply to 12.71 and also does
> > not apply to the media GT for media version 13.  The old way of doing
> > things with subplatforms also doesn't work well anymore since we have to
> > be ready for this 12.70 graphics chiplet to potentially be re-used in
> > some future non-MTL platform.
> > 
> > A first step of doing
> > 
> >        14014475959  GRAPHICS_VERSION(1270), STEP(A0, B0)
> > 
> > isn't quite enough since it will still result in this workaround being
> > applied every time guc_ctl_wa_flags() gets called on a platform with
> > graphics version 12.70.  In reality, we only want this workaround to be
> > applied on the _primary_ GT if the graphics version is 12.70.  When we
> > loop around and run the function a second time on the media GT, it
> > should not be applied since media version 13 does not need this
> > workaround.  Other workarounds might apply to both graphics and media
> > GTs, but only specific steppings of each, so we need to specify which IP
> > to check the stepping for.  At the moment XE_RTP_MATCH_STEP can only
> > cope with graphics steppings in rule_matches().
> > 
> > So maybe we want something like:
> > 
> >        12345678900  GRAPHICS_VER_STEP(1270, B0, B3)
> >                     MEDIA_VER_STEP(1300, C1, F4)
> 
> 
> MEDIA_VER_STEP() has a implicit && I'd like to avoid with something like
> this:
> 
>         12345678900  GRAPHICS_VER(1270), STEP(B0, B3)
>                      MEDIA_VER(1300), MEDIA_STEP(C1, F4)
> 
> 	[ MEDIA_STEP() to be added and probably STEP() renamed to
> 	  GRAPHICS_STEP ]
> 
> This is the same as what you wrote, but without exploding on the number
> of matches. For instance I'd expect the next request to be the STEP +
> version range.
> 
> My idea was to leave this on the device-level and anything that is to be
> checked on the gt / engine level or in another way, is checked from
> outside. See the handling for the other WA above:
> 
> 	if ((XE_WA(xe, 16015675438) || XE_WA(xe, 16016323070)) &&
> 	    !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER))

How would we write the condition if a workaround can potentially apply
to both GTs, but only to specific steppings of each?  E.g., in the
"12345678900" I gave above, trying to write the code like this:

        void init(struct xe_gt *gt) {
                if (XE_WA(xe, 12345678900))
                        do_something(gt);
        }

won't work since the XE_WA() will evaluate the same way both times we
call the function (primary GT and media GT).  If we happen to be running
on a platform that falls within the range for both graphics and media,
then that's okay.  But if it turns out the platform's graphics is
in-range and media is out-of-range, or vice-versa, then we're applying
the workaround somewhere we shouldn't be.

Effectively XE_WA() is only telling us whether the workaround will be
active _somewhere_ on the platform.  It's not currently capable of
telling us whether it should be active on the part of the platform we're
operating on right now (i.e., it doesn't take xe_gt as parameter rather
than xe_device).


Matt

> 
> 
> Lucas De Marchi
> 
> > 
> > that ties the stepping to the specific IP and version.  And then we'd
> > probably also want XE_WA to take an xe_gt as a parameter so that it can
> > make sure that gt->type is appropriate as well.
> > 
> > 
> > Matt
> > 
> > > +		PLATFORM(DG2)
> > > +22011391025	PLATFORM(DG2)
> > > +14012197797	PLATFORM(DG2), STEP(A0, B0)
> > > +16011777198	SUBPLATFORM(DG2, G10), STEP(A0, C0)
> > > +		SUBPLATFORM(DG2, G11), STEP(A0, B0)
> > > +22012727170	SUBPLATFORM(DG2, G10), STEP(A0, C0)
> > > +		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
> > > +22012727685	SUBPLATFORM(DG2, G10), STEP(A0, C0)
> > > +		SUBPLATFORM(DG2, G11), STEP(A0, FOREVER)
> > > +16015675438	PLATFORM(PVC)
> > > +		PLATFORM(DG2)
> > > +16016323070	PLATFORM(PVC)
> > > +1509372804	PLATFORM(PVC), STEP(B0, C0)
> > > --
> > > 2.40.1
> > > 
> > 
> > -- 
> > Matt Roper
> > Graphics Software Engineer
> > Linux GPU Platform Enablement
> > Intel Corporation

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc active workarounds
  2023-05-17 20:23     ` Lucas De Marchi
@ 2023-05-25  5:11       ` Lucas De Marchi
  0 siblings, 0 replies; 29+ messages in thread
From: Lucas De Marchi @ 2023-05-25  5:11 UTC (permalink / raw)
  To: Matt Roper; +Cc: intel-xe, Rodrigo Vivi

On Wed, May 17, 2023 at 01:23:19PM -0700, Lucas De Marchi wrote:
>On Wed, May 17, 2023 at 10:50:56AM -0700, Matt Roper wrote:
>>On Tue, May 16, 2023 at 03:19:46PM -0700, Lucas De Marchi wrote:
>>>Allocate the data to track workarounds on the device, and pass that to
>>>RTP so the active workarounds are enabled. For later reporting purposes,
>>>there's no need to differentiate the engine or gt in which the
>>>workaround got enabled, so just use a per-device bitmap.
>>
>>Going forward are we going to want to track these on a per-device or a
>>per-GT basis?  The workaround database has switched to associating
>>workarounds with the IP block rather than the platform since sometimes
>>they're needed by both the graphics and media IP, other times they're
>>only needed on one.
>>
>>For example, consider a couple different MTL workarounds:
>>* Wa_14018575942 -- applies to both graphics and media GT
>>* Wa_14015795083 -- applies to graphics GT but not media
>>* Wa_14016790560 -- applies to media GT but not graphics
>>
>>As we get more post-MTL platforms where these chips may get mixed and
>>matched into other platforms, I think it will be important to recognize
>>not only whether the workaround is active somewhere on the platform, but
>>exactly which GT(s) it's active on.
>
>My idea was that for tracking purposes the device-level is sufficient as
>I understand this would be more useful for knowing "is WA X
>implemented and active?" rather than if the action it takes, applying
>only to media or graphics GT, is correct. For the latter, we should
>really be checking the register-save-restore in debugfs to know if the
>bits are being applied correctly where they need to be applied
>(and for OOB workarounds  to check whatever the thing the code is doing
>in that code path)
>
>
>I may be wrong here though... need to think a little bit more or more
>time to be convinced otherwise. The change would be relatively easy, so
>may be worth doing:
>
>1) allocate bitmap per gt/engine besides the global device one
>2) run the rules together with the gt creation
>3) when reporting in debugfs optionally apply a bitmap_or() for the
>   summary view, producing the same result we have today in addition to
>   the drill down

on v4 I'm moving the WAs to be tracked per GT as per above.

Lucas De Marchi

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

end of thread, other threads:[~2023-05-25  5:11 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-16 22:19 [Intel-xe] [PATCH v3 0/9] Dump + OOB workarounds Lucas De Marchi
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 1/9] drm/xe: Fix Wa_22011802037 annotation Lucas De Marchi
2023-05-17 16:20   ` Matt Roper
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 2/9] drm/xe/rtp: Split rtp process initialization Lucas De Marchi
2023-05-17 17:11   ` Matt Roper
2023-05-17 20:09     ` Lucas De Marchi
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 3/9] drm/xe/rtp: Add "_sr" to entry/function names Lucas De Marchi
2023-05-17 17:13   ` Matt Roper
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 4/9] drm/xe/rtp: Allow to track active workarounds Lucas De Marchi
2023-05-17 17:27   ` Matt Roper
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 5/9] drm/xe/wa: Track gt/engine/lrc " Lucas De Marchi
2023-05-17 17:50   ` Matt Roper
2023-05-17 20:23     ` Lucas De Marchi
2023-05-25  5:11       ` Lucas De Marchi
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 6/9] drm/xe/debugfs: Dump " Lucas De Marchi
2023-05-17 17:55   ` Matt Roper
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 7/9] drm/xe/rtp: Add support for entries with no action Lucas De Marchi
2023-05-17 18:46   ` Matt Roper
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 8/9] drm/xe: Add support for OOB workarounds Lucas De Marchi
2023-05-17 20:49   ` Matt Roper
2023-05-17 21:12     ` Lucas De Marchi
2023-05-16 22:19 ` [Intel-xe] [PATCH v3 9/9] drm/xe/guc: Port workarounds to OOB infra Lucas De Marchi
2023-05-17 21:25   ` Matt Roper
2023-05-17 22:25     ` Lucas De Marchi
2023-05-17 22:43       ` Matt Roper
2023-05-16 22:23 ` [Intel-xe] ✓ CI.Patch_applied: success for Dump + OOB workarounds Patchwork
2023-05-16 22:24 ` [Intel-xe] ✓ CI.KUnit: " Patchwork
2023-05-16 22:28 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-05-17  4:39 ` [Intel-xe] [PATCH v3 0/9] " Lucas De Marchi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.