All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering
@ 2023-11-14 13:02 Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 01/20] drm/xe: Skip calling drm_dev_put on probe error Michał Winiarski
                   ` (26 more replies)
  0 siblings, 27 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

When Xe is loaded on SR-IOV VF, it won't be able to get most of the
information about the hardware directly from registers (it's necessary
to communicate with GuC in order to get the data, as VF doesn't have the
same level of MMIO surface as native device).
In order to keep the probe relatively uniform between native and VF
mode, it's necessary to slightly reorder the current driver init.

The series starts with generic tweaks (dead code removal and devres
usage), followed by initial reordering focused around MMIO init and info
init, followed by GGTT / GuC reordering.

v1 -> v2:
- Add GGTT / GuC reordering
- Don't reorder VRAM init check, as the value also hints at pcode status
  (Matt Roper)
- Add comments to "early" functions introduced as part of the series
  (Lucas)
- Move xe_info_init_early usage in kunit to correct patch (Matt Brost)
- Drop "shutdown" dead code removal
- Make "xe_tile_alloc" static

v2 -> v3:
- Fix warn with W=1 - xe_pci_clear_master should be static (CI)

Michał Winiarski (20):
  drm/xe: Skip calling drm_dev_put on probe error
  drm/xe: Use managed pci_enable_device
  drm/xe/irq: Don't call pci_free_irq_vectors
  drm/xe: Move xe_set_dma_info outside of MMIO setup
  drm/xe: Move xe_mmio_probe_tiles outside of MMIO setup
  drm/xe: Split xe_info_init
  drm/xe: Introduce xe_tile_init_early and use at earlier point in probe
  drm/xe: Map the entire BAR0 and hold onto the initial mapping
  drm/xe/device: Introduce xe_device_probe_early
  drm/xe: Don't "peek" into GMD_ID
  drm/xe: Move system memory management init to earlier point in probe
  drm/xe: Move force_wake init to earlier point in probe
  drm/xe: Reorder GGTT init to earlier point in probe
  drm/xe/uc: Split xe_uc_fw_init
  drm/xe/uc: Store firmware binary in system-memory backed BO
  drm/xe/uc: Extract xe_uc_sanitize_reset
  drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
  drm/xe/guc: Allocate GuC data structures in system memory for initial
    load
  drm/xe/guc: Move GuC power control init to "post-hwconfig"
  drm/xe: Initialize GuC earlier during probe

 drivers/gpu/drm/xe/regs/xe_gt_regs.h |   1 +
 drivers/gpu/drm/xe/tests/xe_pci.c    |   1 +
 drivers/gpu/drm/xe/xe_device.c       |  81 ++++++++++++++---
 drivers/gpu/drm/xe/xe_device.h       |   5 +
 drivers/gpu/drm/xe/xe_ggtt.c         |  20 +++-
 drivers/gpu/drm/xe/xe_ggtt.h         |   2 +-
 drivers/gpu/drm/xe/xe_gt.c           |  25 ++---
 drivers/gpu/drm/xe/xe_guc.c          | 107 +++++++++++++++++++---
 drivers/gpu/drm/xe/xe_guc_ads.c      |   2 +-
 drivers/gpu/drm/xe/xe_guc_ct.c       |   2 +-
 drivers/gpu/drm/xe/xe_guc_log.c      |   2 +-
 drivers/gpu/drm/xe/xe_irq.c          |   5 +-
 drivers/gpu/drm/xe/xe_mmio.c         |  58 +++---------
 drivers/gpu/drm/xe/xe_mmio.h         |   2 +
 drivers/gpu/drm/xe/xe_pci.c          | 131 +++++++++++++++------------
 drivers/gpu/drm/xe/xe_tile.c         |  36 +++++++-
 drivers/gpu/drm/xe/xe_tile.h         |   2 +-
 drivers/gpu/drm/xe/xe_uc.c           |  49 +++++++---
 drivers/gpu/drm/xe/xe_uc.h           |   2 +-
 drivers/gpu/drm/xe/xe_uc_fw.c        |  80 ++++++++++++----
 20 files changed, 420 insertions(+), 193 deletions(-)

-- 
2.42.1


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

* [Intel-xe] [PATCH v3 01/20] drm/xe: Skip calling drm_dev_put on probe error
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device Michał Winiarski
                   ` (25 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

DRM device used by Xe is managed, which means that final ref will be
dropped on driver detach.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 12 +++++-------
 drivers/gpu/drm/xe/xe_pci.c    |  5 +----
 2 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 1202f8007f795..af0abe56c24b7 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -217,11 +217,11 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
 			      xe->drm.anon_inode->i_mapping,
 			      xe->drm.vma_offset_manager, false, false);
 	if (WARN_ON(err))
-		goto err_put;
+		goto err;
 
 	err = drmm_add_action_or_reset(&xe->drm, xe_device_destroy, NULL);
 	if (err)
-		goto err_put;
+		goto err;
 
 	xe->info.devid = pdev->device;
 	xe->info.revid = pdev->revision;
@@ -247,18 +247,16 @@ struct xe_device *xe_device_create(struct pci_dev *pdev,
 	if (!xe->ordered_wq || !xe->unordered_wq) {
 		drm_err(&xe->drm, "Failed to allocate xe workqueues\n");
 		err = -ENOMEM;
-		goto err_put;
+		goto err;
 	}
 
 	err = xe_display_create(xe);
 	if (WARN_ON(err))
-		goto err_put;
+		goto err;
 
 	return xe;
 
-err_put:
-	drm_dev_put(&xe->drm);
-
+err:
 	return ERR_PTR(err);
 }
 
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 682ba188e456b..de986aaee3bb2 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -701,7 +701,7 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	pci_set_drvdata(pdev, xe);
 	err = pci_enable_device(pdev);
 	if (err)
-		goto err_drm_put;
+		return err;
 
 	pci_set_master(pdev);
 
@@ -743,9 +743,6 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 err_pci_disable:
 	pci_disable_device(pdev);
 
-err_drm_put:
-	drm_dev_put(&xe->drm);
-
 	return err;
 }
 
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 01/20] drm/xe: Skip calling drm_dev_put on probe error Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 20:47   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 03/20] drm/xe/irq: Don't call pci_free_irq_vectors Michał Winiarski
                   ` (24 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

Xe uses devres for most of its driver-lifetime resources, use it for pci
device as well.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
v2 -> v3:
- Mark xe_pci_clear_master as static to fix W=1 build warning (CI)

 drivers/gpu/drm/xe/xe_pci.c | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index de986aaee3bb2..e6b59c4b02bdc 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -663,6 +663,11 @@ static void xe_pci_remove(struct pci_dev *pdev)
 	pci_set_drvdata(pdev, NULL);
 }
 
+static void xe_pci_clear_master(void *pdev)
+{
+	pci_clear_master(pdev);
+}
+
 static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	const struct xe_device_desc *desc = (const void *)ent->driver_data;
@@ -691,23 +696,25 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (xe_display_driver_probe_defer(pdev))
 		return -EPROBE_DEFER;
 
+	err = pcim_enable_device(pdev);
+	if (err)
+		return err;
+
 	xe = xe_device_create(pdev, ent);
 	if (IS_ERR(xe))
 		return PTR_ERR(xe);
 
+	pci_set_drvdata(pdev, xe);
+
 	xe_pm_assert_unbounded_bridge(xe);
 	subplatform_desc = find_subplatform(xe, desc);
 
-	pci_set_drvdata(pdev, xe);
-	err = pci_enable_device(pdev);
-	if (err)
-		return err;
-
 	pci_set_master(pdev);
+	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
 
 	err = xe_info_init(xe, desc, subplatform_desc);
 	if (err)
-		goto err_pci_disable;
+		return err;
 
 	xe_display_probe(xe);
 
@@ -734,16 +741,11 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
 	err = xe_device_probe(xe);
 	if (err)
-		goto err_pci_disable;
+		return err;
 
 	xe_pm_init(xe);
 
 	return 0;
-
-err_pci_disable:
-	pci_disable_device(pdev);
-
-	return err;
 }
 
 static void xe_pci_shutdown(struct pci_dev *pdev)
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 03/20] drm/xe/irq: Don't call pci_free_irq_vectors
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 01/20] drm/xe: Skip calling drm_dev_put on probe error Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 20:49   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 04/20] drm/xe: Move xe_set_dma_info outside of MMIO setup Michał Winiarski
                   ` (23 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

For devres managed devices, pci_alloc_irq_vectors is also managed (see
pci_setup_msi_context for reference).
PCI device used by Xe is devres managed (it was enabled with
pcim_enable_device), which means that calls to pci_free_irq_vectors are
redundant and can be safely removed.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_irq.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index c5315e02fc5bb..df4da774d0275 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -603,7 +603,6 @@ static void irq_uninstall(struct drm_device *drm, void *arg)
 
 	irq = pci_irq_vector(pdev, 0);
 	free_irq(irq, xe);
-	pci_free_irq_vectors(pdev);
 }
 
 int xe_irq_install(struct xe_device *xe)
@@ -630,7 +629,7 @@ int xe_irq_install(struct xe_device *xe)
 	err = request_irq(irq, irq_handler, IRQF_SHARED, DRIVER_NAME, xe);
 	if (err < 0) {
 		drm_err(&xe->drm, "Failed to request MSI/MSIX IRQ %d\n", err);
-		goto free_pci_irq_vectors;
+		return err;
 	}
 
 	xe->irq.enabled = true;
@@ -645,8 +644,6 @@ int xe_irq_install(struct xe_device *xe)
 
 free_irq_handler:
 	free_irq(irq, xe);
-free_pci_irq_vectors:
-	pci_free_irq_vectors(pdev);
 
 	return err;
 }
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 04/20] drm/xe: Move xe_set_dma_info outside of MMIO setup
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (2 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 03/20] drm/xe/irq: Don't call pci_free_irq_vectors Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 05/20] drm/xe: Move xe_mmio_probe_tiles " Michał Winiarski
                   ` (22 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

MMIO is going to be setup earlier during probe. Move xe_set_dma_info
outside of MMIO setup.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 26 ++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_mmio.c   | 26 --------------------------
 2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index af0abe56c24b7..ef5099eabde0a 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -342,6 +342,28 @@ static void xe_device_sanitize(struct drm_device *drm, void *arg)
 		xe_gt_sanitize(gt);
 }
 
+static int xe_set_dma_info(struct xe_device *xe)
+{
+	unsigned int mask_size = xe->info.dma_mask_size;
+	int err;
+
+	dma_set_max_seg_size(xe->drm.dev, xe_sg_segment_size(xe->drm.dev));
+
+	err = dma_set_mask(xe->drm.dev, DMA_BIT_MASK(mask_size));
+	if (err)
+		goto mask_err;
+
+	err = dma_set_coherent_mask(xe->drm.dev, DMA_BIT_MASK(mask_size));
+	if (err)
+		goto mask_err;
+
+	return 0;
+
+mask_err:
+	drm_err(&xe->drm, "Can't set DMA mask/consistent mask (%d)\n", err);
+	return err;
+}
+
 int xe_device_probe(struct xe_device *xe)
 {
 	struct xe_tile *tile;
@@ -356,6 +378,10 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		return err;
 
+	err = xe_set_dma_info(xe);
+	if (err)
+		return err;
+
 	for_each_tile(tile, xe, id) {
 		err = xe_tile_alloc(tile);
 		if (err)
diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index d8f9fabf715e9..1076ffdb3f92b 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -25,28 +25,6 @@
 
 #define BAR_SIZE_SHIFT 20
 
-static int xe_set_dma_info(struct xe_device *xe)
-{
-	unsigned int mask_size = xe->info.dma_mask_size;
-	int err;
-
-	dma_set_max_seg_size(xe->drm.dev, xe_sg_segment_size(xe->drm.dev));
-
-	err = dma_set_mask(xe->drm.dev, DMA_BIT_MASK(mask_size));
-	if (err)
-		goto mask_err;
-
-	err = dma_set_coherent_mask(xe->drm.dev, DMA_BIT_MASK(mask_size));
-	if (err)
-		goto mask_err;
-
-	return 0;
-
-mask_err:
-	drm_err(&xe->drm, "Can't set DMA mask/consistent mask (%d)\n", err);
-	return err;
-}
-
 static void
 _resize_bar(struct xe_device *xe, int resno, resource_size_t size)
 {
@@ -430,10 +408,6 @@ int xe_mmio_init(struct xe_device *xe)
 	if (err)
 		return err;
 
-	err = xe_set_dma_info(xe);
-	if (err)
-		return err;
-
 	xe_mmio_probe_tiles(xe);
 
 	return 0;
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 05/20] drm/xe: Move xe_mmio_probe_tiles outside of MMIO setup
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (3 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 04/20] drm/xe: Move xe_set_dma_info outside of MMIO setup Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 06/20] drm/xe: Split xe_info_init Michał Winiarski
                   ` (21 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

MMIO is going to be setup earlier during probe. Move xe_mmio_probe_tiles
outside of MMIO setup.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 2 ++
 drivers/gpu/drm/xe/xe_mmio.c   | 4 +---
 drivers/gpu/drm/xe/xe_mmio.h   | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index ef5099eabde0a..e9dfbf44f7534 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -392,6 +392,8 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		return err;
 
+	xe_mmio_probe_tiles(xe);
+
 	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index 1076ffdb3f92b..5a6053a61f301 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -294,7 +294,7 @@ int xe_mmio_probe_vram(struct xe_device *xe)
 	return 0;
 }
 
-static void xe_mmio_probe_tiles(struct xe_device *xe)
+void xe_mmio_probe_tiles(struct xe_device *xe)
 {
 	size_t tile_mmio_size = SZ_16M, tile_mmio_ext_size = xe->info.tile_mmio_ext_size;
 	u8 id, tile_count = xe->info.tile_count;
@@ -408,8 +408,6 @@ int xe_mmio_init(struct xe_device *xe)
 	if (err)
 		return err;
 
-	xe_mmio_probe_tiles(xe);
-
 	return 0;
 }
 
diff --git a/drivers/gpu/drm/xe/xe_mmio.h b/drivers/gpu/drm/xe/xe_mmio.h
index ae09f777d711d..9f1a25cfd2cf0 100644
--- a/drivers/gpu/drm/xe/xe_mmio.h
+++ b/drivers/gpu/drm/xe/xe_mmio.h
@@ -21,6 +21,7 @@ struct xe_device;
 #define GEN12_LMEM_BAR		2
 
 int xe_mmio_init(struct xe_device *xe);
+void xe_mmio_probe_tiles(struct xe_device *xe);
 
 static inline u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg)
 {
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 06/20] drm/xe: Split xe_info_init
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (4 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 05/20] drm/xe: Move xe_mmio_probe_tiles " Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-20 19:47   ` Lucas De Marchi
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 07/20] drm/xe: Introduce xe_tile_init_early and use at earlier point in probe Michał Winiarski
                   ` (20 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

Parts of xe_info_init are only dealing with processing driver_data.
Extract it into xe_info_init_early to be able to use it earlier duing
probe.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
v1 -> v2:
- Add comment to "early" variant (Lucas)
- Move xe_info_init_early usage in kunit to correct patch (Matt Brost)

 drivers/gpu/drm/xe/tests/xe_pci.c |  1 +
 drivers/gpu/drm/xe/xe_pci.c       | 41 ++++++++++++++++++++++---------
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/tests/xe_pci.c b/drivers/gpu/drm/xe/tests/xe_pci.c
index a40879da2fbe1..733df9a270db2 100644
--- a/drivers/gpu/drm/xe/tests/xe_pci.c
+++ b/drivers/gpu/drm/xe/tests/xe_pci.c
@@ -143,6 +143,7 @@ int xe_pci_fake_device_init(struct xe_device *xe, enum xe_platform platform,
 		return -ENODEV;
 
 done:
+	xe_info_init_early(xe, desc, subplatform_desc);
 	xe_info_init(xe, desc, subplatform_desc);
 
 	return 0;
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index e6b59c4b02bdc..d603093f32274 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -532,7 +532,34 @@ static void handle_gmdid(struct xe_device *xe,
 	}
 }
 
+/*
+ * Initialize device info content that only depends on static driver_data passed to the driver at
+ * probe time from PCI ID table.
+ */
+static void xe_info_init_early(struct xe_device *xe,
+			       const struct xe_device_desc *desc,
+			       const struct xe_subplatform_desc *subplatform_desc)
+{
+	xe->info.platform = desc->platform;
+	xe->info.subplatform = subplatform_desc ?
+		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
+
+	xe->info.is_dgfx = desc->is_dgfx;
+	xe->info.has_heci_gscfi = desc->has_heci_gscfi;
+	xe->info.has_llc = desc->has_llc;
+	xe->info.bypass_mtcfg = desc->bypass_mtcfg;
+	xe->info.supports_mmio_ext = desc->supports_mmio_ext;
+
+	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
+				  enable_display &&
+				  desc->has_display;
+}
 
+/*
+ * Initialize device info content that does require knowledge about graphics / media IP version.
+ * Make sure that GT / tile structures allocated by the driver match the data present in device
+ * info.
+ */
 static int xe_info_init(struct xe_device *xe,
 			const struct xe_device_desc *desc,
 			const struct xe_subplatform_desc *subplatform_desc)
@@ -544,10 +571,6 @@ static int xe_info_init(struct xe_device *xe,
 	struct xe_gt *gt;
 	u8 id;
 
-	xe->info.platform = desc->platform;
-	xe->info.subplatform = subplatform_desc ?
-		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
-
 	/*
 	 * If this platform supports GMD_ID, we'll detect the proper IP
 	 * descriptor to use from hardware registers. desc->graphics will only
@@ -573,13 +596,8 @@ static int xe_info_init(struct xe_device *xe,
 	if (!graphics_desc)
 		return -ENODEV;
 
-	xe->info.is_dgfx = desc->is_dgfx;
-	xe->info.has_heci_gscfi = desc->has_heci_gscfi;
 	xe->info.graphics_name = graphics_desc->name;
 	xe->info.media_name = media_desc ? media_desc->name : "none";
-	xe->info.has_llc = desc->has_llc;
-	xe->info.bypass_mtcfg = desc->bypass_mtcfg;
-	xe->info.supports_mmio_ext = desc->supports_mmio_ext;
 	xe->info.tile_mmio_ext_size = graphics_desc->tile_mmio_ext_size;
 
 	xe->info.dma_mask_size = graphics_desc->dma_mask_size;
@@ -591,9 +609,6 @@ static int xe_info_init(struct xe_device *xe,
 	xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
 	xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation;
 
-	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
-				  enable_display &&
-				  desc->has_display;
 	/*
 	 * All platforms have at least one primary GT.  Any platform with media
 	 * version 13 or higher has an additional dedicated media GT.  And
@@ -712,6 +727,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	pci_set_master(pdev);
 	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
 
+	xe_info_init_early(xe, desc, subplatform_desc);
+
 	err = xe_info_init(xe, desc, subplatform_desc);
 	if (err)
 		return err;
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 07/20] drm/xe: Introduce xe_tile_init_early and use at earlier point in probe
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (5 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 06/20] drm/xe: Split xe_info_init Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 08/20] drm/xe: Map the entire BAR0 and hold onto the initial mapping Michał Winiarski
                   ` (19 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

It also merges the GT (which is part of tile) initalization happening
at xe_info_init with allocating other per-tile data structures into a
common helper function.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
v1 -> v2:
- Add comment to "early" variant (Lucas)
- Make "xe_tile_alloc" static

 drivers/gpu/drm/xe/xe_device.c |  6 ------
 drivers/gpu/drm/xe/xe_pci.c    | 10 +++++-----
 drivers/gpu/drm/xe/xe_tile.c   | 32 +++++++++++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_tile.h   |  2 +-
 4 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index e9dfbf44f7534..3a98e7b502190 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -382,12 +382,6 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		return err;
 
-	for_each_tile(tile, xe, id) {
-		err = xe_tile_alloc(tile);
-		if (err)
-			return err;
-	}
-
 	err = xe_mmio_init(xe);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index d603093f32274..c50cc3f7cbe06 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -25,6 +25,7 @@
 #include "xe_pci_types.h"
 #include "xe_pm.h"
 #include "xe_step.h"
+#include "xe_tile.h"
 
 enum toggle_d3cold {
 	D3COLD_DISABLE,
@@ -621,12 +622,11 @@ static int xe_info_init(struct xe_device *xe,
 	xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
 
 	for_each_tile(tile, xe, id) {
-		tile->xe = xe;
-		tile->id = id;
+		int err;
 
-		tile->primary_gt = xe_gt_alloc(tile);
-		if (IS_ERR(tile->primary_gt))
-			return PTR_ERR(tile->primary_gt);
+		err = xe_tile_init_early(tile, xe, id);
+		if (err)
+			return err;
 
 		gt = tile->primary_gt;
 		gt->info.id = xe->info.gt_count++;
diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
index 131752a57f652..daf1ac39dcbb1 100644
--- a/drivers/gpu/drm/xe/xe_tile.c
+++ b/drivers/gpu/drm/xe/xe_tile.c
@@ -7,6 +7,7 @@
 
 #include "xe_device.h"
 #include "xe_ggtt.h"
+#include "xe_gt.h"
 #include "xe_migrate.h"
 #include "xe_sa.h"
 #include "xe_tile.h"
@@ -80,7 +81,7 @@
  *
  * Returns -ENOMEM if allocations fail, otherwise 0.
  */
-int xe_tile_alloc(struct xe_tile *tile)
+static int xe_tile_alloc(struct xe_tile *tile)
 {
 	struct drm_device *drm = &tile_to_xe(tile)->drm;
 
@@ -97,6 +98,35 @@ int xe_tile_alloc(struct xe_tile *tile)
 	return 0;
 }
 
+/**
+ * xe_tile_init_early - Initialize the tile and primary GT
+ * @tile: Tile to initialize
+ * @xe: Parent Xe device
+ * @id: Tile ID
+ *
+ * Initializes per-tile resources that don't require any interactions with the hardware or any
+ * knowledge about the Graphics/Media IP version.
+ *
+ * Returns: 0 on success, negative error code on error.
+ */
+int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id)
+{
+	int err;
+
+	tile->xe = xe;
+	tile->id = id;
+
+	err = xe_tile_alloc(tile);
+	if (err)
+		return err;
+
+	tile->primary_gt = xe_gt_alloc(tile);
+	if (IS_ERR(tile->primary_gt))
+		return PTR_ERR(tile->primary_gt);
+
+	return 0;
+}
+
 static int tile_ttm_mgr_init(struct xe_tile *tile)
 {
 	struct xe_device *xe = tile_to_xe(tile);
diff --git a/drivers/gpu/drm/xe/xe_tile.h b/drivers/gpu/drm/xe/xe_tile.h
index 782c47f8bd450..1c9e42ade6b05 100644
--- a/drivers/gpu/drm/xe/xe_tile.h
+++ b/drivers/gpu/drm/xe/xe_tile.h
@@ -10,7 +10,7 @@
 
 struct xe_tile;
 
-int xe_tile_alloc(struct xe_tile *tile);
+int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id);
 int xe_tile_init_noalloc(struct xe_tile *tile);
 
 void xe_tile_migrate_wait(struct xe_tile *tile);
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 08/20] drm/xe: Map the entire BAR0 and hold onto the initial mapping
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (6 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 07/20] drm/xe: Introduce xe_tile_init_early and use at earlier point in probe Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early Michał Winiarski
                   ` (18 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

Both MMIO registers and GGTT for root tile will need to be used earlier
during probe. Don't rely on tile count to compute the mapping size.
Further more, there's no need real need to remap after figuring out the
real resource size.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/xe/xe_mmio.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index 5a6053a61f301..acf6dfca0bc46 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -299,7 +299,6 @@ void xe_mmio_probe_tiles(struct xe_device *xe)
 	size_t tile_mmio_size = SZ_16M, tile_mmio_ext_size = xe->info.tile_mmio_ext_size;
 	u8 id, tile_count = xe->info.tile_count;
 	struct xe_gt *gt = xe_root_mmio_gt(xe);
-	const int mmio_bar = 0;
 	struct xe_tile *tile;
 	void *regs;
 	u32 mtcfg;
@@ -313,9 +312,6 @@ void xe_mmio_probe_tiles(struct xe_device *xe)
 		if (tile_count < xe->info.tile_count) {
 			drm_info(&xe->drm, "tile_count: %d, reduced_tile_count %d\n",
 					xe->info.tile_count, tile_count);
-			pci_iounmap(to_pci_dev(xe->drm.dev), xe->mmio.regs);
-			xe->mmio.size = (tile_mmio_size + tile_mmio_ext_size) * tile_count;
-			xe->mmio.regs = pci_iomap(to_pci_dev(xe->drm.dev), mmio_bar, xe->mmio.size);
 			xe->info.tile_count = tile_count;
 
 			/*
@@ -380,17 +376,17 @@ static int xe_verify_lmem_ready(struct xe_device *xe)
 int xe_mmio_init(struct xe_device *xe)
 {
 	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
+	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
 	const int mmio_bar = 0;
 	int err;
 
 	/*
-	 * Map the maximum expected BAR size, which will get remapped later
-	 * if we determine that we're running on a reduced-tile system.
+	 * Map the entire BAR.
 	 * The first 16MB of the BAR, belong to the root tile, and include:
 	 * registers (0-4MB), reserved space (4MB-8MB) and GGTT (8MB-16MB).
 	 */
-	xe->mmio.size = (SZ_16M + xe->info.tile_mmio_ext_size) * xe->info.tile_count;
-	xe->mmio.regs = pci_iomap(to_pci_dev(xe->drm.dev), mmio_bar, xe->mmio.size);
+	xe->mmio.size = pci_resource_len(pdev, mmio_bar);
+	xe->mmio.regs = pci_iomap(pdev, mmio_bar, 0);
 	if (xe->mmio.regs == NULL) {
 		drm_err(&xe->drm, "failed to map registers\n");
 		return -EIO;
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (7 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 08/20] drm/xe: Map the entire BAR0 and hold onto the initial mapping Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 14:41   ` Matthew Brost
  2023-11-15 21:31   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID Michał Winiarski
                   ` (17 subsequent siblings)
  26 siblings, 2 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

SR-IOV VF doesn't have access to MMIO registers used to determine
graphics/media ID. It can however communicate with GuC.
Introduce xe_device_probe_early, which initializes enough HW to use
MMIO GuC communication.
This will allow both VF and PF/native driver to have unified probe
ordering.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
v1 -> v2:
- Add comment to "early" variant (Lucas)

 drivers/gpu/drm/xe/xe_device.c | 22 ++++++++++++++++++----
 drivers/gpu/drm/xe/xe_device.h |  5 +++++
 drivers/gpu/drm/xe/xe_mmio.c   | 16 ++++++++++------
 drivers/gpu/drm/xe/xe_mmio.h   |  1 +
 drivers/gpu/drm/xe/xe_pci.c    | 22 +++++++++++++++++++---
 5 files changed, 53 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 3a98e7b502190..6fe669fdf1c0a 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -364,6 +364,24 @@ static int xe_set_dma_info(struct xe_device *xe)
 	return err;
 }
 
+/*
+ * Initialize MMIO resources that don't require any knowledge about tile count.
+ */
+int xe_device_probe_early(struct xe_device *xe)
+{
+	int err;
+
+	err = xe_mmio_init(xe);
+	if (err)
+		return err;
+
+	err = xe_mmio_root_tile_init(xe);
+	if (err)
+		return err;
+
+	return 0;
+}
+
 int xe_device_probe(struct xe_device *xe)
 {
 	struct xe_tile *tile;
@@ -382,10 +400,6 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		return err;
 
-	err = xe_mmio_init(xe);
-	if (err)
-		return err;
-
 	xe_mmio_probe_tiles(xe);
 
 	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
index c4232de40ae08..b80230c631068 100644
--- a/drivers/gpu/drm/xe/xe_device.h
+++ b/drivers/gpu/drm/xe/xe_device.h
@@ -37,6 +37,7 @@ static inline struct xe_device *ttm_to_xe_device(struct ttm_device *ttm)
 
 struct xe_device *xe_device_create(struct pci_dev *pdev,
 				   const struct pci_device_id *ent);
+int xe_device_probe_early(struct xe_device *xe);
 int xe_device_probe(struct xe_device *xe);
 void xe_device_remove(struct xe_device *xe);
 void xe_device_shutdown(struct xe_device *xe);
@@ -123,6 +124,10 @@ static inline bool xe_device_uc_enabled(struct xe_device *xe)
 	for ((id__) = 0; (id__) < (xe__)->info.tile_count; (id__)++) \
 		for_each_if((tile__) = &(xe__)->tiles[(id__)])
 
+#define for_each_remote_tile(tile__, xe__, id__) \
+	for ((id__) = 1; (id__) < (xe__)->info.tile_count; (id__)++) \
+		for_each_if((tile__) = &(xe__)->tiles[(id__)])
+
 /*
  * FIXME: This only works for now since multi-tile and standalone media
  * happen to be mutually exclusive.  Future platforms may change this...
diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
index acf6dfca0bc46..8eb19a4bca9c6 100644
--- a/drivers/gpu/drm/xe/xe_mmio.c
+++ b/drivers/gpu/drm/xe/xe_mmio.c
@@ -15,10 +15,12 @@
 #include "regs/xe_regs.h"
 #include "xe_bo.h"
 #include "xe_device.h"
+#include "xe_ggtt.h"
 #include "xe_gt.h"
 #include "xe_gt_mcr.h"
 #include "xe_macros.h"
 #include "xe_module.h"
+#include "xe_tile.h"
 
 #define XEHP_MTCFG_ADDR		XE_REG(0x101800)
 #define TILE_COUNT		REG_GENMASK(15, 8)
@@ -375,10 +377,8 @@ static int xe_verify_lmem_ready(struct xe_device *xe)
 
 int xe_mmio_init(struct xe_device *xe)
 {
-	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
 	const int mmio_bar = 0;
-	int err;
 
 	/*
 	 * Map the entire BAR.
@@ -392,12 +392,16 @@ int xe_mmio_init(struct xe_device *xe)
 		return -EIO;
 	}
 
-	err = drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
-	if (err)
-		return err;
+	return drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
+}
+
+int xe_mmio_root_tile_init(struct xe_device *xe)
+{
+	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
+	int err;
 
 	/* Setup first tile; other tiles (if present) will be setup later. */
-	root_tile->mmio.size = xe->mmio.size;
+	root_tile->mmio.size = SZ_16M;
 	root_tile->mmio.regs = xe->mmio.regs;
 
 	err = xe_verify_lmem_ready(xe);
diff --git a/drivers/gpu/drm/xe/xe_mmio.h b/drivers/gpu/drm/xe/xe_mmio.h
index 9f1a25cfd2cf0..74976af15ea60 100644
--- a/drivers/gpu/drm/xe/xe_mmio.h
+++ b/drivers/gpu/drm/xe/xe_mmio.h
@@ -21,6 +21,7 @@ struct xe_device;
 #define GEN12_LMEM_BAR		2
 
 int xe_mmio_init(struct xe_device *xe);
+int xe_mmio_root_tile_init(struct xe_device *xe);
 void xe_mmio_probe_tiles(struct xe_device *xe);
 
 static inline u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index c50cc3f7cbe06..a1026b7ee4727 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -537,10 +537,12 @@ static void handle_gmdid(struct xe_device *xe,
  * Initialize device info content that only depends on static driver_data passed to the driver at
  * probe time from PCI ID table.
  */
-static void xe_info_init_early(struct xe_device *xe,
+static int xe_info_init_early(struct xe_device *xe,
 			       const struct xe_device_desc *desc,
 			       const struct xe_subplatform_desc *subplatform_desc)
 {
+	int err;
+
 	xe->info.platform = desc->platform;
 	xe->info.subplatform = subplatform_desc ?
 		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
@@ -554,6 +556,12 @@ static void xe_info_init_early(struct xe_device *xe,
 	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
 				  enable_display &&
 				  desc->has_display;
+
+	err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0);
+	if (err)
+		return err;
+
+	return 0;
 }
 
 /*
@@ -621,13 +629,15 @@ static int xe_info_init(struct xe_device *xe,
 	 */
 	xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
 
-	for_each_tile(tile, xe, id) {
+	for_each_remote_tile(tile, xe, id) {
 		int err;
 
 		err = xe_tile_init_early(tile, xe, id);
 		if (err)
 			return err;
+	}
 
+	for_each_tile(tile, xe, id) {
 		gt = tile->primary_gt;
 		gt->info.id = xe->info.gt_count++;
 		gt->info.type = XE_GT_TYPE_MAIN;
@@ -727,7 +737,13 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	pci_set_master(pdev);
 	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
 
-	xe_info_init_early(xe, desc, subplatform_desc);
+	err = xe_info_init_early(xe, desc, subplatform_desc);
+	if (err)
+		return err;
+
+	err = xe_device_probe_early(xe);
+	if (err)
+		return err;
 
 	err = xe_info_init(xe, desc, subplatform_desc);
 	if (err)
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (8 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 14:45   ` Matthew Brost
  2023-11-15 21:51   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 11/20] drm/xe: Move system memory management init to earlier point in probe Michał Winiarski
                   ` (16 subsequent siblings)
  26 siblings, 2 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

Now that MMIO init got moved to device early, we can use regular
xe_mmio_read helpers to get to GMD_ID register.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/regs/xe_gt_regs.h |  1 +
 drivers/gpu/drm/xe/xe_pci.c          | 35 ++++++++--------------------
 2 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
index cc27fe8fc3633..6b195115564ce 100644
--- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
+++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
@@ -38,6 +38,7 @@
 #define   GMD_ID_ARCH_MASK			REG_GENMASK(31, 22)
 #define   GMD_ID_RELEASE_MASK			REG_GENMASK(21, 14)
 #define   GMD_ID_REVID				REG_GENMASK(5, 0)
+#define MEDIA_GMD_ID				XE_REG(GMD_ID.addr + MEDIA_GT_GSI_OFFSET)
 
 #define FORCEWAKE_ACK_GSC			XE_REG(0xdf8)
 #define FORCEWAKE_ACK_GT_MTL			XE_REG(0xdfc)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index a1026b7ee4727..a6c08577b01d2 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -21,6 +21,7 @@
 #include "xe_drv.h"
 #include "xe_gt.h"
 #include "xe_macros.h"
+#include "xe_mmio.h"
 #include "xe_module.h"
 #include "xe_pci_types.h"
 #include "xe_pm.h"
@@ -441,29 +442,6 @@ find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
 	return NULL;
 }
 
-static void peek_gmdid(struct xe_device *xe, u32 gmdid_offset, u32 *ver, u32 *revid)
-{
-	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
-	void __iomem *map = pci_iomap_range(pdev, 0, gmdid_offset, sizeof(u32));
-	u32 val;
-
-	if (!map) {
-		drm_err(&xe->drm, "Failed to read GMD_ID (%#x) from PCI BAR.\n",
-			gmdid_offset);
-		*ver = 0;
-		*revid = 0;
-
-		return;
-	}
-
-	val = ioread32(map);
-	pci_iounmap(pdev, map);
-
-	*ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 +
-		REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
-	*revid = REG_FIELD_GET(GMD_ID_REVID, val);
-}
-
 /*
  * Pre-GMD_ID platform: device descriptor already points to the appropriate
  * graphics descriptor. Simply forward the description and calculate the version
@@ -495,9 +473,14 @@ static void handle_gmdid(struct xe_device *xe,
 			 u32 *graphics_revid,
 			 u32 *media_revid)
 {
+	struct xe_gt *gt = xe_root_mmio_gt(xe);
+	u32 val;
 	u32 ver;
 
-	peek_gmdid(xe, GMD_ID.addr, &ver, graphics_revid);
+	val = xe_mmio_read32(gt, GMD_ID);
+	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
+	*graphics_revid = REG_FIELD_GET(GMD_ID_REVID, val);
+
 	for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
 		if (ver == graphics_ip_map[i].ver) {
 			xe->info.graphics_verx100 = ver;
@@ -512,7 +495,9 @@ static void handle_gmdid(struct xe_device *xe,
 			ver / 100, ver % 100);
 	}
 
-	peek_gmdid(xe, GMD_ID.addr + 0x380000, &ver, media_revid);
+	val = xe_mmio_read32(gt, MEDIA_GMD_ID);
+	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
+	*media_revid = REG_FIELD_GET(GMD_ID_REVID, val);
 
 	/* Media may legitimately be fused off / not present */
 	if (ver == 0)
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 11/20] drm/xe: Move system memory management init to earlier point in probe
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (9 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 21:55   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 12/20] drm/xe: Move force_wake " Michał Winiarski
                   ` (15 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

GuC will need to be loaded earlier during probe. And in order to load
GuC, we will need the ability to create system memory allocations.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 6fe669fdf1c0a..a89b5a32c093d 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -402,6 +402,8 @@ int xe_device_probe(struct xe_device *xe)
 
 	xe_mmio_probe_tiles(xe);
 
+	xe_ttm_sys_mgr_init(xe);
+
 	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
 	if (err)
 		return err;
@@ -430,8 +432,6 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		goto err_irq_shutdown;
 
-	xe_ttm_sys_mgr_init(xe);
-
 	for_each_tile(tile, xe, id) {
 		err = xe_tile_init_noalloc(tile);
 		if (err)
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 12/20] drm/xe: Move force_wake init to earlier point in probe
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (10 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 11/20] drm/xe: Move system memory management init to earlier point in probe Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 21:59   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 13/20] drm/xe: Reorder GGTT " Michał Winiarski
                   ` (14 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

GuC will need to be loaded earlier during probe. And in order to load
GuC, being able to take the forcewake is going to be needed.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 3 +++
 drivers/gpu/drm/xe/xe_gt.c     | 2 --
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index a89b5a32c093d..fde597fe0b513 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -404,6 +404,9 @@ int xe_device_probe(struct xe_device *xe)
 
 	xe_ttm_sys_mgr_init(xe);
 
+	for_each_gt(gt, xe, id)
+		xe_force_wake_init_gt(gt, gt_to_fw(gt));
+
 	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 6c885dde5d59c..c8e2689873c37 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -292,8 +292,6 @@ int xe_gt_init_early(struct xe_gt *gt)
 {
 	int err;
 
-	xe_force_wake_init_gt(gt, gt_to_fw(gt));
-
 	err = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
 	if (err)
 		return err;
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 13/20] drm/xe: Reorder GGTT init to earlier point in probe
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (11 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 12/20] drm/xe: Move force_wake " Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 22:19   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 14/20] drm/xe/uc: Split xe_uc_fw_init Michał Winiarski
                   ` (13 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

GuC will need to be loaded earlier during probe. Having functional GGTT
is one of the prerequisites.
Also rename xe_ggtt_init_noalloc to xe_ggtt_init_early to match the new
call site.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c |  7 +++++++
 drivers/gpu/drm/xe/xe_ggtt.c   | 20 ++++++++++++++++----
 drivers/gpu/drm/xe/xe_ggtt.h   |  2 +-
 drivers/gpu/drm/xe/xe_tile.c   |  4 ----
 4 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index fde597fe0b513..531aca74e8eb4 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -24,6 +24,7 @@
 #include "xe_drv.h"
 #include "xe_exec_queue.h"
 #include "xe_exec.h"
+#include "xe_ggtt.h"
 #include "xe_gt.h"
 #include "xe_irq.h"
 #include "xe_mmio.h"
@@ -407,6 +408,12 @@ int xe_device_probe(struct xe_device *xe)
 	for_each_gt(gt, xe, id)
 		xe_force_wake_init_gt(gt, gt_to_fw(gt));
 
+	for_each_tile(tile, xe, id) {
+		err = xe_ggtt_init_early(tile->mem.ggtt);
+		if (err)
+			return err;
+	}
+
 	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index 0e2a41837f169..fab3cc04882da 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -96,14 +96,20 @@ static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
 	}
 }
 
-static void ggtt_fini_noalloc(struct drm_device *drm, void *arg)
+static void ggtt_fini_early(struct drm_device *drm, void *arg)
 {
 	struct xe_ggtt *ggtt = arg;
 
 	mutex_destroy(&ggtt->lock);
 	drm_mm_takedown(&ggtt->mm);
+}
+
+static void ggtt_fini(struct drm_device *drm, void *arg)
+{
+	struct xe_ggtt *ggtt = arg;
 
 	xe_bo_unpin_map_no_vm(ggtt->scratch);
+	ggtt->scratch = NULL;
 }
 
 static void primelockdep(struct xe_ggtt *ggtt)
@@ -124,7 +130,12 @@ static const struct xe_ggtt_pt_ops xelpg_pt_ops = {
 	.pte_encode_bo = xelpg_ggtt_pte_encode_bo,
 };
 
-int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt)
+/*
+ * Early GGTT initialization, which allows to create new mappings usable by the GuC.
+ * Mappings are not usable by the HW engines, as it doesn't have scratch / initial clear done to it
+ * yet. That will happen in the regular, non-early GGTT init.
+ */
+int xe_ggtt_init_early(struct xe_ggtt *ggtt)
 {
 	struct xe_device *xe = tile_to_xe(ggtt->tile);
 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
@@ -178,7 +189,7 @@ int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt)
 	mutex_init(&ggtt->lock);
 	primelockdep(ggtt);
 
-	return drmm_add_action_or_reset(&xe->drm, ggtt_fini_noalloc, ggtt);
+	return drmm_add_action_or_reset(&xe->drm, ggtt_fini_early, ggtt);
 }
 
 static void xe_ggtt_initial_clear(struct xe_ggtt *ggtt)
@@ -226,7 +237,8 @@ int xe_ggtt_init(struct xe_ggtt *ggtt)
 	xe_map_memset(xe, &ggtt->scratch->vmap, 0, 0, ggtt->scratch->size);
 
 	xe_ggtt_initial_clear(ggtt);
-	return 0;
+
+	return drmm_add_action_or_reset(&xe->drm, ggtt_fini, ggtt);
 err:
 	ggtt->scratch = NULL;
 	return err;
diff --git a/drivers/gpu/drm/xe/xe_ggtt.h b/drivers/gpu/drm/xe/xe_ggtt.h
index 3faa3c6d0375f..a09c166dff701 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.h
+++ b/drivers/gpu/drm/xe/xe_ggtt.h
@@ -12,7 +12,7 @@ struct drm_printer;
 
 void xe_ggtt_set_pte(struct xe_ggtt *ggtt, u64 addr, u64 pte);
 void xe_ggtt_invalidate(struct xe_ggtt *ggtt);
-int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt);
+int xe_ggtt_init_early(struct xe_ggtt *ggtt);
 int xe_ggtt_init(struct xe_ggtt *ggtt);
 void xe_ggtt_printk(struct xe_ggtt *ggtt, const char *prefix);
 
diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
index daf1ac39dcbb1..731869e49b016 100644
--- a/drivers/gpu/drm/xe/xe_tile.c
+++ b/drivers/gpu/drm/xe/xe_tile.c
@@ -166,10 +166,6 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
 	if (err)
 		goto err_mem_access;
 
-	err = xe_ggtt_init_noalloc(tile->mem.ggtt);
-	if (err)
-		goto err_mem_access;
-
 	tile->mem.kernel_bb_pool = xe_sa_bo_manager_init(tile, SZ_1M, 16);
 	if (IS_ERR(tile->mem.kernel_bb_pool))
 		err = PTR_ERR(tile->mem.kernel_bb_pool);
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 14/20] drm/xe/uc: Split xe_uc_fw_init
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (12 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 13/20] drm/xe: Reorder GGTT " Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 22:28   ` Matt Roper
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO Michał Winiarski
                   ` (12 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

The function does a driver specific "request firmware" step that
includes validating the input, followed by wrapping the firmware binary
into a buffer object. Split it into smaller parts.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_uc_fw.c | 82 +++++++++++++++++++++++++++--------
 1 file changed, 63 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
index 3032c4f148d48..df46751fb5959 100644
--- a/drivers/gpu/drm/xe/xe_uc_fw.c
+++ b/drivers/gpu/drm/xe/xe_uc_fw.c
@@ -524,14 +524,11 @@ static int parse_headers(struct xe_uc_fw *uc_fw, const struct firmware *fw)
 	return 0;
 }
 
-int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
+static int uc_fw_request(struct xe_uc_fw *uc_fw, const struct firmware **firmware_p)
 {
 	struct xe_device *xe = uc_fw_to_xe(uc_fw);
-	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
-	struct xe_tile *tile = gt_to_tile(gt);
 	struct device *dev = xe->drm.dev;
 	const struct firmware *fw = NULL;
-	struct xe_bo *obj;
 	int err;
 
 	/*
@@ -575,10 +572,41 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
 	if (err)
 		goto fail;
 
-	obj = xe_bo_create_from_data(xe, tile, fw->data, fw->size,
+	*firmware_p = fw;
+
+	return 0;
+
+fail:
+	xe_uc_fw_change_status(uc_fw, err == -ENOENT ?
+			       XE_UC_FIRMWARE_MISSING :
+			       XE_UC_FIRMWARE_ERROR);
+
+	drm_notice(&xe->drm, "%s firmware %s: fetch failed with error %d\n",
+		   xe_uc_fw_type_repr(uc_fw->type), uc_fw->path, err);
+	drm_info(&xe->drm, "%s firmware(s) can be downloaded from %s\n",
+		 xe_uc_fw_type_repr(uc_fw->type), XE_UC_FIRMWARE_URL);
+
+	release_firmware(fw);		/* OK even if fw is NULL */
+
+	return err;
+}
+
+static void uc_fw_release(const struct firmware *fw)
+{
+	release_firmware(fw);
+}
+
+static int uc_fw_copy(struct xe_uc_fw *uc_fw, const void *data, size_t size, u32 flags)
+{
+	struct xe_device *xe = uc_fw_to_xe(uc_fw);
+	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
+	struct xe_tile *tile = gt_to_tile(gt);
+	struct xe_bo *obj;
+	int err;
+
+	obj = xe_bo_create_from_data(xe, tile, data, size,
 				     ttm_bo_type_kernel,
-				     XE_BO_CREATE_VRAM_IF_DGFX(tile) |
-				     XE_BO_CREATE_GGTT_BIT);
+				     flags);
 	if (IS_ERR(obj)) {
 		drm_notice(&xe->drm, "%s firmware %s: failed to create / populate bo",
 			   xe_uc_fw_type_repr(uc_fw->type), uc_fw->path);
@@ -587,28 +615,44 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
 	}
 
 	uc_fw->bo = obj;
-	uc_fw->size = fw->size;
-	xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_AVAILABLE);
+	uc_fw->size = size;
 
-	release_firmware(fw);
+	xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_AVAILABLE);
 
 	err = drmm_add_action_or_reset(&xe->drm, uc_fw_fini, uc_fw);
 	if (err)
-		return err;
+		goto fail;
 
 	return 0;
 
 fail:
-	xe_uc_fw_change_status(uc_fw, err == -ENOENT ?
-			       XE_UC_FIRMWARE_MISSING :
-			       XE_UC_FIRMWARE_ERROR);
-
-	drm_notice(&xe->drm, "%s firmware %s: fetch failed with error %d\n",
+	xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_ERROR);
+	drm_notice(&xe->drm, "%s firmware %s: copy failed with error %d\n",
 		   xe_uc_fw_type_repr(uc_fw->type), uc_fw->path, err);
-	drm_info(&xe->drm, "%s firmware(s) can be downloaded from %s\n",
-		 xe_uc_fw_type_repr(uc_fw->type), XE_UC_FIRMWARE_URL);
 
-	release_firmware(fw);		/* OK even if fw is NULL */
+	return err;
+}
+
+int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
+{
+	const struct firmware *fw = NULL;
+	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
+	struct xe_tile *tile = gt_to_tile(gt);
+	int err;
+
+	err = uc_fw_request(uc_fw, &fw);
+	if (err)
+		return err;
+
+	/* no error and no firmware means nothing to copy */
+	if (!fw)
+		return 0;
+
+	err = uc_fw_copy(uc_fw, fw->data, fw->size,
+			 XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
+
+	uc_fw_release(fw);
+
 	return err;
 }
 
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (13 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 14/20] drm/xe/uc: Split xe_uc_fw_init Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 22:34   ` Matt Roper
  2023-11-20 20:04   ` Lucas De Marchi
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 16/20] drm/xe/uc: Extract xe_uc_sanitize_reset Michał Winiarski
                   ` (11 subsequent siblings)
  26 siblings, 2 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

The firmware loading for GuC is about to be moved, and will happen much
earlier in the probe process, when local-memory is not yet available.
While this has the potential to make the firmware loading process
slower, this is only happening during probe and full device reset.
Since both are not hot-paths - store all UC-like firmware in system
memory.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_uc_fw.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
index df46751fb5959..b04dd7d034d83 100644
--- a/drivers/gpu/drm/xe/xe_uc_fw.c
+++ b/drivers/gpu/drm/xe/xe_uc_fw.c
@@ -636,8 +636,6 @@ static int uc_fw_copy(struct xe_uc_fw *uc_fw, const void *data, size_t size, u32
 int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
 {
 	const struct firmware *fw = NULL;
-	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
-	struct xe_tile *tile = gt_to_tile(gt);
 	int err;
 
 	err = uc_fw_request(uc_fw, &fw);
@@ -649,7 +647,7 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
 		return 0;
 
 	err = uc_fw_copy(uc_fw, fw->data, fw->size,
-			 XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
+			 XE_BO_CREATE_SYSTEM_BIT | XE_BO_CREATE_GGTT_BIT);
 
 	uc_fw_release(fw);
 
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 16/20] drm/xe/uc: Extract xe_uc_sanitize_reset
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (14 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-16 12:56   ` Matthew Brost
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig" Michał Winiarski
                   ` (10 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

Earlier GuC load will require more fine-grained control over reset.
Extract it outside of xe_uc_init_hw.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_gt.c |  4 ++++
 drivers/gpu/drm/xe/xe_uc.c | 14 ++++++++------
 drivers/gpu/drm/xe/xe_uc.h |  2 +-
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index c8e2689873c37..d0962e0cc27e9 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -537,6 +537,10 @@ static int do_gt_restart(struct xe_gt *gt)
 	for_each_hw_engine(hwe, gt, id)
 		xe_hw_engine_enable_ring(hwe);
 
+	err = xe_uc_sanitize_reset(&gt->uc);
+	if (err)
+		return err;
+
 	err = xe_uc_init_hw(&gt->uc);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
index 784f53c5f282f..13e76e6805ca1 100644
--- a/drivers/gpu/drm/xe/xe_uc.c
+++ b/drivers/gpu/drm/xe/xe_uc.c
@@ -69,10 +69,16 @@ int xe_uc_init(struct xe_uc *uc)
  */
 int xe_uc_init_post_hwconfig(struct xe_uc *uc)
 {
+	int ret;
+
 	/* GuC submission not enabled, nothing to do */
 	if (!xe_device_uc_enabled(uc_to_xe(uc)))
 		return 0;
 
+	ret = xe_uc_sanitize_reset(uc);
+	if (ret)
+		return ret;
+
 	return xe_guc_init_post_hwconfig(&uc->guc);
 }
 
@@ -90,13 +96,13 @@ static int uc_reset(struct xe_uc *uc)
 	return 0;
 }
 
-void xe_uc_sanitize(struct xe_uc *uc)
+static void xe_uc_sanitize(struct xe_uc *uc)
 {
 	xe_huc_sanitize(&uc->huc);
 	xe_guc_sanitize(&uc->guc);
 }
 
-static int xe_uc_sanitize_reset(struct xe_uc *uc)
+int xe_uc_sanitize_reset(struct xe_uc *uc)
 {
 	xe_uc_sanitize(uc);
 
@@ -136,10 +142,6 @@ int xe_uc_init_hw(struct xe_uc *uc)
 	if (!xe_device_uc_enabled(uc_to_xe(uc)))
 		return 0;
 
-	ret = xe_uc_sanitize_reset(uc);
-	if (ret)
-		return ret;
-
 	ret = xe_huc_upload(&uc->huc);
 	if (ret)
 		return ret;
diff --git a/drivers/gpu/drm/xe/xe_uc.h b/drivers/gpu/drm/xe/xe_uc.h
index 4109ae7028af5..5d5110c0c834b 100644
--- a/drivers/gpu/drm/xe/xe_uc.h
+++ b/drivers/gpu/drm/xe/xe_uc.h
@@ -19,6 +19,6 @@ void xe_uc_stop_prepare(struct xe_uc *uc);
 int xe_uc_stop(struct xe_uc *uc);
 int xe_uc_start(struct xe_uc *uc);
 int xe_uc_suspend(struct xe_uc *uc);
-void xe_uc_sanitize(struct xe_uc *uc);
+int xe_uc_sanitize_reset(struct xe_uc *uc);
 
 #endif
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (15 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 16/20] drm/xe/uc: Extract xe_uc_sanitize_reset Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-20 13:25   ` Matthew Brost
  2023-11-20 20:09   ` Lucas De Marchi
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load Michał Winiarski
                   ` (9 subsequent siblings)
  26 siblings, 2 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

Move params that are not used for initial "hwconfig" load to
"post-hwconfig" phase.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_guc.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 84f0b5488783b..d1181ddf4bdae 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -192,6 +192,26 @@ static void guc_init_params(struct xe_guc *guc)
 	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
 	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
 
+	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
+	params[GUC_CTL_FEATURE] = 0;
+	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
+	params[GUC_CTL_ADS] = guc_ctl_ads_flags(guc);
+	params[GUC_CTL_WA] = 0;
+	params[GUC_CTL_DEVID] = guc_ctl_devid(guc);
+
+	for (i = 0; i < GUC_CTL_MAX_DWORDS; i++)
+		drm_dbg(&xe->drm, "GuC param[%2d] = 0x%08x\n", i, params[i]);
+}
+
+static void guc_init_params_post_hwconfig(struct xe_guc *guc)
+{
+	struct xe_device *xe = guc_to_xe(guc);
+	u32 *params = guc->params;
+	int i;
+
+	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
+	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
+
 	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
 	params[GUC_CTL_FEATURE] = guc_ctl_feature_flags(guc);
 	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
@@ -289,6 +309,8 @@ int xe_guc_init(struct xe_guc *guc)
  */
 int xe_guc_init_post_hwconfig(struct xe_guc *guc)
 {
+	guc_init_params_post_hwconfig(guc);
+
 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
 }
 
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (16 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig" Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-20 20:20   ` Lucas De Marchi
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 19/20] drm/xe/guc: Move GuC power control init to "post-hwconfig" Michał Winiarski
                   ` (8 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

GuC load will need to happen at an earlier point in probe, where local
memory is not yet available. Use system memory for GuC data structures
used for initial "hwconfig" load, and realloc at a later,
"post-hwconfig" load, when local memory is available.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_guc.c     | 45 +++++++++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_guc_ads.c |  2 +-
 drivers/gpu/drm/xe/xe_guc_ct.c  |  2 +-
 drivers/gpu/drm/xe/xe_guc_log.c |  2 +-
 4 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index d1181ddf4bdae..3f430d5bc1051 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -251,6 +251,45 @@ static void guc_fini(struct drm_device *drm, void *arg)
 	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
 }
 
+static int __guc_bo_reinit(struct xe_guc *guc, struct xe_bo **src)
+{
+	struct xe_tile *tile = gt_to_tile(guc_to_gt(guc));
+	struct xe_device *xe = guc_to_xe(guc);
+	struct xe_bo *bo;
+
+	bo = xe_bo_create_from_data(xe, tile, &(*src)->vmap.vaddr, (*src)->size, ttm_bo_type_kernel,
+				    XE_BO_CREATE_VRAM_IF_DGFX(tile));
+	if (IS_ERR(bo))
+		return PTR_ERR(bo);
+
+	xchg(src, bo);
+	xe_bo_unpin_map_no_vm(bo);
+
+	return 0;
+}
+
+static int xe_guc_realloc_post_hwconfig(struct xe_guc *guc)
+{
+	int ret;
+
+	if (!IS_DGFX(guc_to_xe(guc)))
+		return 0;
+
+	ret = __guc_bo_reinit(guc, &guc->log.bo);
+	if (ret)
+		return ret;
+
+	ret = __guc_bo_reinit(guc, &guc->ads.bo);
+	if (ret)
+		return ret;
+
+	ret = __guc_bo_reinit(guc, &guc->ct.bo);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
 int xe_guc_init(struct xe_guc *guc)
 {
 	struct xe_device *xe = guc_to_xe(guc);
@@ -309,6 +348,12 @@ int xe_guc_init(struct xe_guc *guc)
  */
 int xe_guc_init_post_hwconfig(struct xe_guc *guc)
 {
+	int ret;
+
+	ret = xe_guc_realloc_post_hwconfig(guc);
+	if (ret)
+		return ret;
+
 	guc_init_params_post_hwconfig(guc);
 
 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
index 88789826e7817..88514d09303d0 100644
--- a/drivers/gpu/drm/xe/xe_guc_ads.c
+++ b/drivers/gpu/drm/xe/xe_guc_ads.c
@@ -282,7 +282,7 @@ int xe_guc_ads_init(struct xe_guc_ads *ads)
 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ads_size(ads) +
 				  MAX_GOLDEN_LRC_SIZE,
 				  ttm_bo_type_kernel,
-				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
+				  XE_BO_CREATE_SYSTEM_BIT |
 				  XE_BO_CREATE_GGTT_BIT);
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
index a84e111bb36ad..8f190cc0e5527 100644
--- a/drivers/gpu/drm/xe/xe_guc_ct.c
+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
@@ -148,7 +148,7 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
 
 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ct_size(),
 				  ttm_bo_type_kernel,
-				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
+				  XE_BO_CREATE_SYSTEM_BIT |
 				  XE_BO_CREATE_GGTT_BIT);
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
index 45c60a9c631c3..6334311a56e63 100644
--- a/drivers/gpu/drm/xe/xe_guc_log.c
+++ b/drivers/gpu/drm/xe/xe_guc_log.c
@@ -93,7 +93,7 @@ int xe_guc_log_init(struct xe_guc_log *log)
 
 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_log_size(),
 				  ttm_bo_type_kernel,
-				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
+				  XE_BO_CREATE_SYSTEM_BIT |
 				  XE_BO_CREATE_GGTT_BIT);
 	if (IS_ERR(bo))
 		return PTR_ERR(bo);
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 19/20] drm/xe/guc: Move GuC power control init to "post-hwconfig"
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (17 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-20 13:30   ` Matthew Brost
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe Michał Winiarski
                   ` (7 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

SLPC is not used at "hwconfig" stage. Move the initialization of data
structures used for SLPC to a later point in probe.
Also - move the xe_guc_pc_init_early to happen just prior to initial
"hwconfig" load.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_gt.c  |  3 ---
 drivers/gpu/drm/xe/xe_guc.c | 25 +++++++++++++++++++------
 2 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index d0962e0cc27e9..73665e4e66f22 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -348,9 +348,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
 	if (err)
 		goto err_force_wake;
 
-	/* Raise GT freq to speed up HuC/GuC load */
-	xe_guc_pc_init_early(&gt->uc.guc.pc);
-
 	err = xe_uc_init_hwconfig(&gt->uc);
 	if (err)
 		goto err_force_wake;
diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index 3f430d5bc1051..e04b04be32b7d 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -246,11 +246,19 @@ static void guc_fini(struct drm_device *drm, void *arg)
 	struct xe_guc *guc = arg;
 
 	xe_force_wake_get(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
-	xe_guc_pc_fini(&guc->pc);
 	xe_uc_fini_hw(&guc_to_gt(guc)->uc);
 	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
 }
 
+static void guc_fini_post_hwconfig(struct drm_device *drm, void *arg)
+{
+	struct xe_guc *guc = arg;
+
+	xe_force_wake_get(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
+	xe_guc_pc_fini(&guc->pc);
+	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
+}
+
 static int __guc_bo_reinit(struct xe_guc *guc, struct xe_bo **src)
 {
 	struct xe_tile *tile = gt_to_tile(guc_to_gt(guc));
@@ -316,11 +324,7 @@ int xe_guc_init(struct xe_guc *guc)
 	if (ret)
 		goto out;
 
-	ret = xe_guc_pc_init(&guc->pc);
-	if (ret)
-		goto out;
-
-	ret = drmm_add_action_or_reset(&gt_to_xe(gt)->drm, guc_fini, guc);
+	ret = drmm_add_action_or_reset(&xe->drm, guc_fini, guc);
 	if (ret)
 		goto out;
 
@@ -348,6 +352,7 @@ int xe_guc_init(struct xe_guc *guc)
  */
 int xe_guc_init_post_hwconfig(struct xe_guc *guc)
 {
+	struct xe_gt *gt = guc_to_gt(guc);
 	int ret;
 
 	ret = xe_guc_realloc_post_hwconfig(guc);
@@ -356,6 +361,11 @@ int xe_guc_init_post_hwconfig(struct xe_guc *guc)
 
 	guc_init_params_post_hwconfig(guc);
 
+	ret = xe_guc_pc_init(&guc->pc);
+	if (ret)
+		return ret;
+	ret = drmm_add_action_or_reset(&gt_to_xe(gt)->drm, guc_fini_post_hwconfig, guc);
+
 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
 }
 
@@ -566,6 +576,9 @@ int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
 
 	xe_guc_ads_populate_minimal(&guc->ads);
 
+	/* Raise GT freq to speed up HuC/GuC load */
+	xe_guc_pc_init_early(&guc->pc);
+
 	ret = __xe_guc_upload(guc);
 	if (ret)
 		return ret;
-- 
2.42.1


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

* [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (18 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 19/20] drm/xe/guc: Move GuC power control init to "post-hwconfig" Michał Winiarski
@ 2023-11-14 13:02 ` Michał Winiarski
  2023-11-15 15:09   ` Matthew Brost
  2023-11-14 13:07 ` [Intel-xe] ✓ CI.Patch_applied: success for drm/xe: Probe tweaks and reordering (rev2) Patchwork
                   ` (6 subsequent siblings)
  26 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-14 13:02 UTC (permalink / raw)
  To: intel-xe; +Cc: Matt Roper, Lucas De Marchi, Michał Winiarski

SR-IOV VF has limited access to MMIO registers. Fortunately, it is able
to access a curated subset that is needed to initialize the driver by
communicating with SR-IOV PF using GuC CT.
Initialize GuC earlier in order to keep the unified probe ordering
between VF and PF modes.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 11 +++++++++++
 drivers/gpu/drm/xe/xe_gt.c     | 16 ++++------------
 drivers/gpu/drm/xe/xe_guc.c    | 15 ++++++++++-----
 drivers/gpu/drm/xe/xe_uc.c     | 35 ++++++++++++++++++++++++++--------
 4 files changed, 52 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 531aca74e8eb4..ecbf1effecc41 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -32,6 +32,7 @@
 #include "xe_pat.h"
 #include "xe_pcode.h"
 #include "xe_pm.h"
+#include "xe_uc.h"
 #include "xe_query.h"
 #include "xe_tile.h"
 #include "xe_ttm_stolen_mgr.h"
@@ -414,6 +415,16 @@ int xe_device_probe(struct xe_device *xe)
 			return err;
 	}
 
+	for_each_gt(gt, xe, id) {
+		err = xe_uc_init(&gt->uc);
+		if (err)
+			return err;
+
+		err = xe_uc_init_hwconfig(&gt->uc);
+		if (err)
+			return err;
+	}
+
 	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
 	if (err)
 		return err;
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
index 73665e4e66f22..bee661e1f164a 100644
--- a/drivers/gpu/drm/xe/xe_gt.c
+++ b/drivers/gpu/drm/xe/xe_gt.c
@@ -344,14 +344,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
 			goto err_force_wake;
 	}
 
-	err = xe_uc_init(&gt->uc);
-	if (err)
-		goto err_force_wake;
-
-	err = xe_uc_init_hwconfig(&gt->uc);
-	if (err)
-		goto err_force_wake;
-
 	xe_gt_idle_sysfs_init(&gt->gtidle);
 
 	/* XXX: Fake that we pull the engine mask from hwconfig blob */
@@ -415,10 +407,6 @@ static int all_fw_domain_init(struct xe_gt *gt)
 	if (err)
 		goto err_force_wake;
 
-	err = xe_uc_init_post_hwconfig(&gt->uc);
-	if (err)
-		goto err_force_wake;
-
 	if (!xe_gt_is_media_type(gt)) {
 		/*
 		 * USM has its only SA pool to non-block behind user operations
@@ -442,6 +430,10 @@ static int all_fw_domain_init(struct xe_gt *gt)
 		}
 	}
 
+	err = xe_uc_init_post_hwconfig(&gt->uc);
+	if (err)
+		goto err_force_wake;
+
 	err = xe_uc_init_hw(&gt->uc);
 	if (err)
 		goto err_force_wake;
diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
index e04b04be32b7d..895bcc24ae2c8 100644
--- a/drivers/gpu/drm/xe/xe_guc.c
+++ b/drivers/gpu/drm/xe/xe_guc.c
@@ -572,26 +572,31 @@ static int __xe_guc_upload(struct xe_guc *guc)
  */
 int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
 {
+	struct xe_gt *gt = guc_to_gt(guc);
 	int ret;
 
 	xe_guc_ads_populate_minimal(&guc->ads);
 
+	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
+	if (ret)
+		return ret;
+
 	/* Raise GT freq to speed up HuC/GuC load */
 	xe_guc_pc_init_early(&guc->pc);
 
 	ret = __xe_guc_upload(guc);
 	if (ret)
-		return ret;
+		goto out;
 
 	ret = xe_guc_hwconfig_init(guc);
 	if (ret)
-		return ret;
+		goto out;
 
 	ret = xe_guc_enable_communication(guc);
-	if (ret)
-		return ret;
+out:
+	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
 
-	return 0;
+	return ret;
 }
 
 int xe_guc_upload(struct xe_guc *guc)
diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
index 13e76e6805ca1..069207a7f2f21 100644
--- a/drivers/gpu/drm/xe/xe_uc.c
+++ b/drivers/gpu/drm/xe/xe_uc.c
@@ -29,8 +29,16 @@ uc_to_xe(struct xe_uc *uc)
 /* Should be called once at driver load only */
 int xe_uc_init(struct xe_uc *uc)
 {
+	struct xe_device *xe = uc_to_xe(uc);
+	struct xe_gt *gt = uc_to_gt(uc);
 	int ret;
 
+	xe_device_mem_access_get(xe);
+
+	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
+	if (ret)
+		goto err;
+
 	/*
 	 * We call the GuC/HuC init functions even if GuC submission is off to
 	 * correctly move our tracking of the FW state to "disabled".
@@ -38,26 +46,36 @@ int xe_uc_init(struct xe_uc *uc)
 
 	ret = xe_guc_init(&uc->guc);
 	if (ret)
-		goto err;
+		goto err_fw;
 
 	ret = xe_huc_init(&uc->huc);
 	if (ret)
-		goto err;
+		goto err_fw;
 
 	if (!xe_device_uc_enabled(uc_to_xe(uc)))
-		return 0;
+		goto out;
+
 
 	ret = xe_wopcm_init(&uc->wopcm);
 	if (ret)
-		goto err;
+		goto err_fw;
 
 	ret = xe_guc_submit_init(&uc->guc);
 	if (ret)
-		goto err;
+		goto err_fw;
+
+out:
+	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
+
+	xe_device_mem_access_put(xe);
 
 	return 0;
 
+err_fw:
+	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
 err:
+	xe_device_mem_access_put(xe);
+
 	return ret;
 }
 
@@ -117,17 +135,18 @@ int xe_uc_sanitize_reset(struct xe_uc *uc)
  */
 int xe_uc_init_hwconfig(struct xe_uc *uc)
 {
+	struct xe_device *xe = uc_to_xe(uc);
 	int ret;
 
 	/* GuC submission not enabled, nothing to do */
 	if (!xe_device_uc_enabled(uc_to_xe(uc)))
 		return 0;
 
+	xe_device_mem_access_get(xe);
 	ret = xe_guc_min_load_for_hwconfig(&uc->guc);
-	if (ret)
-		return ret;
+	xe_device_mem_access_put(xe);
 
-	return 0;
+	return ret;
 }
 
 /*
-- 
2.42.1


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

* [Intel-xe] ✓ CI.Patch_applied: success for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (19 preceding siblings ...)
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe Michał Winiarski
@ 2023-11-14 13:07 ` Patchwork
  2023-11-14 13:08 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
                   ` (5 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:07 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
State : success

== Summary ==

=== Applying kernel patches on branch 'drm-xe-next' with base: ===
Base commit: 7dc3dda9b drm/xe: Raise GT frequency before GuC/HuC load
=== git am output follows ===
Applying: drm/xe: Skip calling drm_dev_put on probe error
Applying: drm/xe: Use managed pci_enable_device
Applying: drm/xe/irq: Don't call pci_free_irq_vectors
Applying: drm/xe: Move xe_set_dma_info outside of MMIO setup
Applying: drm/xe: Move xe_mmio_probe_tiles outside of MMIO setup
Applying: drm/xe: Split xe_info_init
Applying: drm/xe: Introduce xe_tile_init_early and use at earlier point in probe
Applying: drm/xe: Map the entire BAR0 and hold onto the initial mapping
Applying: drm/xe/device: Introduce xe_device_probe_early
Applying: drm/xe: Don't "peek" into GMD_ID
Applying: drm/xe: Move system memory management init to earlier point in probe
Applying: drm/xe: Move force_wake init to earlier point in probe
Applying: drm/xe: Reorder GGTT init to earlier point in probe
Applying: drm/xe/uc: Split xe_uc_fw_init
Applying: drm/xe/uc: Store firmware binary in system-memory backed BO
Applying: drm/xe/uc: Extract xe_uc_sanitize_reset
Applying: drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
Applying: drm/xe/guc: Allocate GuC data structures in system memory for initial load
Applying: drm/xe/guc: Move GuC power control init to "post-hwconfig"
Applying: drm/xe: Initialize GuC earlier during probe



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

* [Intel-xe] ✗ CI.checkpatch: warning for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (20 preceding siblings ...)
  2023-11-14 13:07 ` [Intel-xe] ✓ CI.Patch_applied: success for drm/xe: Probe tweaks and reordering (rev2) Patchwork
@ 2023-11-14 13:08 ` Patchwork
  2023-11-14 13:09 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
                   ` (4 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:08 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
63c2b6b160bca2df6efc7bc4cea6f442097d7854
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 32fa0441b75e63bbdbc16332c408cda1ff6e2766
Author: Michał Winiarski <michal.winiarski@intel.com>
Date:   Tue Nov 14 14:02:31 2023 +0100

    drm/xe: Initialize GuC earlier during probe
    
    SR-IOV VF has limited access to MMIO registers. Fortunately, it is able
    to access a curated subset that is needed to initialize the driver by
    communicating with SR-IOV PF using GuC CT.
    Initialize GuC earlier in order to keep the unified probe ordering
    between VF and PF modes.
    
    Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
+ /mt/dim checkpatch 7dc3dda9b2df5a5c8949532f254a0689de70f093 drm-intel
b15910a5d drm/xe: Skip calling drm_dev_put on probe error
d5ac5bea2 drm/xe: Use managed pci_enable_device
a48563b38 drm/xe/irq: Don't call pci_free_irq_vectors
bb09a122c drm/xe: Move xe_set_dma_info outside of MMIO setup
95648fa68 drm/xe: Move xe_mmio_probe_tiles outside of MMIO setup
b082b038a drm/xe: Split xe_info_init
5e888d7e0 drm/xe: Introduce xe_tile_init_early and use at earlier point in probe
cb26847c8 drm/xe: Map the entire BAR0 and hold onto the initial mapping
efea961ab drm/xe/device: Introduce xe_device_probe_early
-:74: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'xe__' - possible side-effects?
#74: FILE: drivers/gpu/drm/xe/xe_device.h:127:
+#define for_each_remote_tile(tile__, xe__, id__) \
+	for ((id__) = 1; (id__) < (xe__)->info.tile_count; (id__)++) \
+		for_each_if((tile__) = &(xe__)->tiles[(id__)])

-:74: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'id__' - possible side-effects?
#74: FILE: drivers/gpu/drm/xe/xe_device.h:127:
+#define for_each_remote_tile(tile__, xe__, id__) \
+	for ((id__) = 1; (id__) < (xe__)->info.tile_count; (id__)++) \
+		for_each_if((tile__) = &(xe__)->tiles[(id__)])

-:152: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#152: FILE: drivers/gpu/drm/xe/xe_pci.c:541:
+static int xe_info_init_early(struct xe_device *xe,
 			       const struct xe_device_desc *desc,

total: 0 errors, 0 warnings, 3 checks, 155 lines checked
19bdcd70f drm/xe: Don't "peek" into GMD_ID
69f783f8d drm/xe: Move system memory management init to earlier point in probe
ee8f7ec79 drm/xe: Move force_wake init to earlier point in probe
7e0121fd7 drm/xe: Reorder GGTT init to earlier point in probe
030166acc drm/xe/uc: Split xe_uc_fw_init
8fb404848 drm/xe/uc: Store firmware binary in system-memory backed BO
cf405071c drm/xe/uc: Extract xe_uc_sanitize_reset
08f0712e8 drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
0f61dd5ff drm/xe/guc: Allocate GuC data structures in system memory for initial load
7d3fbb0e1 drm/xe/guc: Move GuC power control init to "post-hwconfig"
32fa0441b drm/xe: Initialize GuC earlier during probe



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

* [Intel-xe] ✓ CI.KUnit: success for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (21 preceding siblings ...)
  2023-11-14 13:08 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
@ 2023-11-14 13:09 ` Patchwork
  2023-11-14 13:16 ` [Intel-xe] ✓ CI.Build: " Patchwork
                   ` (3 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:09 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
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
[13:08:05] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[13:08:09] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make ARCH=um O=.kunit --jobs=48
[13:08:29] Starting KUnit Kernel (1/1)...
[13:08:29] ============================================================
[13:08:30] ========================== xe_bo  ==========================
[13:08:30] [SKIPPED] xe_ccs_migrate_kunit
[13:08:30] [SKIPPED] xe_bo_evict_kunit
[13:08:30] ===================== [SKIPPED] xe_bo ======================
[13:08:30] ======================= xe_dma_buf  ========================
[13:08:30] [SKIPPED] xe_dma_buf_kunit
[13:08:30] =================== [SKIPPED] xe_dma_buf ===================
[13:08:30] ======================= xe_migrate  ========================
[13:08:30] [SKIPPED] xe_migrate_sanity_kunit
[13:08:30] =================== [SKIPPED] xe_migrate ===================
[13:08:30] ========================= xe_pci  ==========================
[13:08:30] [PASSED] xe_gmdid_graphics_ip
[13:08:30] [PASSED] xe_gmdid_media_ip
[13:08:30] ===================== [PASSED] xe_pci ======================
[13:08:30] ========================= xe_rtp  ==========================
[13:08:30] ================== xe_rtp_process_tests  ===================
[13:08:30] [PASSED] coalesce-same-reg
[13:08:30] [PASSED] no-match-no-add
[13:08:30] [PASSED] no-match-no-add-multiple-rules
[13:08:30] [PASSED] two-regs-two-entries
[13:08:30] [PASSED] clr-one-set-other
[13:08:30] [PASSED] set-field
[13:08:30] [PASSED] conflict-duplicate
[13:08:30] [PASSED] conflict-not-disjoint
[13:08:30] [PASSED] conflict-reg-type
[13:08:30] ============== [PASSED] xe_rtp_process_tests ===============
[13:08:30] ===================== [PASSED] xe_rtp ======================
[13:08:30] ========================== xe_wa  ==========================
[13:08:30] ======================== xe_wa_gt  =========================
[13:08:30] [PASSED] TIGERLAKE (B0)
[13:08:30] [PASSED] DG1 (A0)
[13:08:30] [PASSED] DG1 (B0)
[13:08:30] [PASSED] ALDERLAKE_S (A0)
[13:08:30] [PASSED] ALDERLAKE_S (B0)
[13:08:30] [PASSED] ALDERLAKE_S (C0)
[13:08:30] [PASSED] ALDERLAKE_S (D0)
[13:08:30] [PASSED] ALDERLAKE_P (A0)
[13:08:30] [PASSED] ALDERLAKE_P (B0)
[13:08:30] [PASSED] ALDERLAKE_P (C0)
[13:08:30] [PASSED] ALDERLAKE_S_RPLS (D0)
[13:08:30] [PASSED] ALDERLAKE_P_RPLU (E0)
[13:08:30] [PASSED] DG2_G10 (A0)
[13:08:30] [PASSED] DG2_G10 (A1)
[13:08:30] [PASSED] DG2_G10 (B0)
[13:08:30] [PASSED] DG2_G10 (C0)
[13:08:30] [PASSED] DG2_G11 (A0)
[13:08:30] [PASSED] DG2_G11 (B0)
[13:08:30] [PASSED] DG2_G11 (B1)
[13:08:30] [PASSED] DG2_G12 (A0)
[13:08:30] [PASSED] DG2_G12 (A1)
[13:08:30] [PASSED] PVC (B0)
[13:08:30] [PASSED] PVC (B1)
[13:08:30] [PASSED] PVC (C0)
[13:08:30] ==================== [PASSED] xe_wa_gt =====================
[13:08:30] ====================== [PASSED] xe_wa ======================
[13:08:30] ============================================================
[13:08:30] Testing complete. Ran 39 tests: passed: 35, skipped: 4
[13:08:30] Elapsed time: 24.530s total, 4.229s configuring, 20.181s building, 0.097s running

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

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



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

* [Intel-xe] ✓ CI.Build: success for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (22 preceding siblings ...)
  2023-11-14 13:09 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
@ 2023-11-14 13:16 ` Patchwork
  2023-11-14 13:16 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
                   ` (2 subsequent siblings)
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:16 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
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:1699967364:build_x86_64[collapsed=true]\r\e[0KBuild x86-64'
+ mkdir -p build64-default
^[[0Ksection_start:1699967364:build_x86_64[collapsed=true]
^[[0KBuild x86-64
+ cp .ci/kernel/kconfig build64-default/.config
+ make O=build64-default olddefconfig
make[1]: Entering directory '/kernel/build64-default'
  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-default'
++ nproc
+ make O=build64-default -j48
make[1]: Entering directory '/kernel/build64-default'
  GEN     Makefile
  WRAP    arch/x86/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/x86/include/generated/uapi/asm/errno.h
  WRAP    arch/x86/include/generated/uapi/asm/fcntl.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctl.h
  WRAP    arch/x86/include/generated/uapi/asm/ioctls.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  GEN     arch/x86/include/generated/asm/orc_hash.h
  WRAP    arch/x86/include/generated/uapi/asm/ipcbuf.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  WRAP    arch/x86/include/generated/uapi/asm/param.h
  SYSHDR  arch/x86/include/generated/asm/unistd_32_ia32.h
  WRAP    arch/x86/include/generated/uapi/asm/poll.h
  SYSHDR  arch/x86/include/generated/asm/unistd_64_x32.h
  WRAP    arch/x86/include/generated/uapi/asm/resource.h
  SYSTBL  arch/x86/include/generated/asm/syscalls_64.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
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  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
  UPD     include/generated/uapi/linux/version.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/config/kernel.release
  UPD     include/generated/compile.h
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/sorttable
  HOSTCC  scripts/unifdef
  HOSTCC  scripts/asn1_compiler
  UPD     include/generated/utsrelease.h
  DESCEND objtool
  HOSTCC  /kernel/build64-default/tools/objtool/fixdep.o
  HOSTLD  /kernel/build64-default/tools/objtool/fixdep-in.o
  LINK    /kernel/build64-default/tools/objtool/fixdep
  INSTALL /kernel/build64-default/tools/objtool/libsubcmd/include/subcmd/help.h
  INSTALL /kernel/build64-default/tools/objtool/libsubcmd/include/subcmd/exec-cmd.h
  INSTALL /kernel/build64-default/tools/objtool/libsubcmd/include/subcmd/parse-options.h
  INSTALL /kernel/build64-default/tools/objtool/libsubcmd/include/subcmd/pager.h
  INSTALL /kernel/build64-default/tools/objtool/libsubcmd/include/subcmd/run-command.h
  HOSTLD  arch/x86/tools/relocs
  CC      /kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  INSTALL libsubcmd_headers
  CC      /kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  CC      scripts/mod/devicetable-offsets.s
  HDRINST usr/include/video/edid.h
  HDRINST usr/include/video/sisfb.h
  HDRINST usr/include/drm/amdgpu_drm.h
  HDRINST usr/include/video/uvesafb.h
  HDRINST usr/include/drm/qaic_accel.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/radeon_drm.h
  HDRINST usr/include/drm/tegra_drm.h
  HDRINST usr/include/drm/ivpu_accel.h
  HDRINST usr/include/drm/drm_mode.h
  HDRINST usr/include/drm/exynos_drm.h
  HDRINST usr/include/drm/drm_sarea.h
  HDRINST usr/include/drm/v3d_drm.h
  HDRINST usr/include/drm/qxl_drm.h
  HDRINST usr/include/drm/drm_fourcc.h
  HDRINST usr/include/drm/habanalabs_accel.h
  HDRINST usr/include/drm/nouveau_drm.h
  HDRINST usr/include/drm/vmwgfx_drm.h
  HDRINST usr/include/drm/msm_drm.h
  HDRINST usr/include/drm/etnaviv_drm.h
  HDRINST usr/include/drm/panfrost_drm.h
  HDRINST usr/include/drm/vc4_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/xen/gntdev.h
  HDRINST usr/include/mtd/mtd-abi.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
  UPD     scripts/mod/devicetable-offsets.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/mana-abi.h
  HDRINST usr/include/rdma/irdma-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/qedr-abi.h
  HDRINST usr/include/rdma/hns-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/rdma_netlink.h
  HDRINST usr/include/rdma/mlx5-abi.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
  MKELF   scripts/mod/elfconfig.h
  HDRINST usr/include/rdma/ib_user_mad.h
  HDRINST usr/include/rdma/ocrdma-abi.h
  HDRINST usr/include/rdma/cxgb4-abi.h
  HDRINST usr/include/misc/xilinx_sdfec.h
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/file2alias.o
  HDRINST usr/include/misc/uacce/hisi_qm.h
  HOSTCC  scripts/mod/sumversion.o
  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
  HDRINST usr/include/linux/mtio.h
  HDRINST usr/include/linux/if_arcnet.h
  HDRINST usr/include/linux/romfs_fs.h
  HDRINST usr/include/linux/posix_types.h
  HDRINST usr/include/linux/rtc.h
  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_AUDIT.h
  HDRINST usr/include/linux/netfilter/xt_realm.h
  HDRINST usr/include/linux/netfilter/xt_devgroup.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/xt_cluster.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_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/xt_mark.h
  HDRINST usr/include/linux/netfilter/nf_tables.h
  HDRINST usr/include/linux/netfilter/xt_cpu.h
  HDRINST usr/include/linux/netfilter/nf_tables_compat.h
  HDRINST usr/include/linux/netfilter/nfnetlink_conntrack.h
  HDRINST usr/include/linux/netfilter/xt_physdev.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/posix_acl.h
  HDRINST usr/include/linux/smc_diag.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/atm_eni.h
  HDRINST usr/include/linux/pr.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/gadgetfs.h
  HDRINST usr/include/linux/usb/g_uvc.h
  HDRINST usr/include/linux/usb/raw_gadget.h
  HDRINST usr/include/linux/usb/cdc-wdm.h
  HDRINST usr/include/linux/usb/g_printer.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/cdc.h
  HDRINST usr/include/linux/usb/ch9.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/idxd.h
  HDRINST usr/include/linux/seg6.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
  LD      /kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  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/input.h
  HDRINST usr/include/linux/qnxtypes.h
  HDRINST usr/include/linux/mdio.h
  HDRINST usr/include/linux/lwtunnel.h
  HDRINST usr/include/linux/gfs2_ondisk.h
  HDRINST usr/include/linux/eventfd.h
  HDRINST usr/include/linux/ptp_clock.h
  HDRINST usr/include/linux/nfs4.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/taskstats.h
  HDRINST usr/include/linux/veth.h
  AR      /kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  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/rds.h
  HDRINST usr/include/linux/fsi.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/ext4.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
  CC      /kernel/build64-default/tools/objtool/weak.o
  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
  CC      /kernel/build64-default/tools/objtool/check.o
  CC      /kernel/build64-default/tools/objtool/special.o
  HDRINST usr/include/linux/netfilter_bridge/ebt_among.h
  MKDIR   /kernel/build64-default/tools/objtool/arch/x86/
  HDRINST usr/include/linux/reiserfs_fs.h
  CC      /kernel/build64-default/tools/objtool/builtin-check.o
  MKDIR   /kernel/build64-default/tools/objtool/arch/x86/lib/
  CC      /kernel/build64-default/tools/objtool/elf.o
  HDRINST usr/include/linux/cciss_ioctl.h
  CC      /kernel/build64-default/tools/objtool/objtool.o
  HDRINST usr/include/linux/fsmap.h
  HDRINST usr/include/linux/smiapp.h
  CC      /kernel/build64-default/tools/objtool/arch/x86/special.o
  HDRINST usr/include/linux/switchtec_ioctl.h
  HDRINST usr/include/linux/atmdev.h
  CC      /kernel/build64-default/tools/objtool/orc_gen.o
  GEN     /kernel/build64-default/tools/objtool/arch/x86/lib/inat-tables.c
  HDRINST usr/include/linux/hpet.h
  HDRINST usr/include/linux/virtio_config.h
  CC      /kernel/build64-default/tools/objtool/orc_dump.o
  HDRINST usr/include/linux/string.h
  CC      /kernel/build64-default/tools/objtool/libstring.o
  HDRINST usr/include/linux/kfd_sysfs.h
  CC      /kernel/build64-default/tools/objtool/libctype.o
  HDRINST usr/include/linux/inet_diag.h
  CC      /kernel/build64-default/tools/objtool/str_error_r.o
  HDRINST usr/include/linux/netdev.h
  HDRINST usr/include/linux/xattr.h
  HDRINST usr/include/linux/iommufd.h
  CC      /kernel/build64-default/tools/objtool/librbtree.o
  HDRINST usr/include/linux/user_events.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/handshake.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
  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/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/virtio_scsi.h
  HDRINST usr/include/linux/zorro.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
  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
  CC      /kernel/build64-default/tools/objtool/arch/x86/decode.o
  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/map_to_7segment.h
  HDRINST usr/include/linux/bt-bmc.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/joystick.h
  HDRINST usr/include/linux/falloc.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
  HDRINST usr/include/linux/byteorder/big_endian.h
  HDRINST usr/include/linux/byteorder/little_endian.h
  HDRINST usr/include/linux/comedi.h
  HDRINST usr/include/linux/scif_ioctl.h
  HDRINST usr/include/linux/timerfd.h
  HDRINST usr/include/linux/time_types.h
  HDRINST usr/include/linux/firewire-constants.h
  HDRINST usr/include/linux/virtio_snd.h
  HDRINST usr/include/linux/ppp-ioctl.h
  HDRINST usr/include/linux/fib_rules.h
  HDRINST usr/include/linux/gen_stats.h
  HDRINST usr/include/linux/virtio_iommu.h
  HDRINST usr/include/linux/genetlink.h
  HDRINST usr/include/linux/uvcvideo.h
  HDRINST usr/include/linux/pfkeyv2.h
  HDRINST usr/include/linux/soundcard.h
  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/mei_uuid.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/nsfs.h
  HDRINST usr/include/linux/xilinx-v4l2-controls.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/ethtool_netlink.h
  HDRINST usr/include/linux/ipc.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/fsverity.h
  HDRINST usr/include/linux/sonypi.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
  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/tps6594_pfsm.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/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/psp-dbc.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/hdsp.h
  HDRINST usr/include/sound/compress_offload.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/msr.h
  HDRINST usr/include/asm/sigcontext32.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/ist.h
  HDRINST usr/include/asm/unistd.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/hwcap2.h
  HDRINST usr/include/asm/ptrace-abi.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/ioctls.h
  HDRINST usr/include/asm/unistd_64.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
  UPD     include/generated/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  LD      /kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
  UPD     include/generated/asm-offsets.h
  CALL    ../scripts/checksyscalls.sh
  LD      /kernel/build64-default/tools/objtool/objtool-in.o
  LINK    /kernel/build64-default/tools/objtool/objtool
  LDS     scripts/module.lds
  CC      ipc/compat.o
  CC      ipc/util.o
  HOSTCC  usr/gen_init_cpio
  CC      ipc/msgutil.o
  CC      ipc/msg.o
  AR      certs/built-in.a
  CC      init/main.o
  CC      ipc/sem.o
  CC      init/do_mounts.o
  CC      ipc/shm.o
  AS      arch/x86/lib/clear_page_64.o
  CC      arch/x86/power/cpu.o
  CC      io_uring/io_uring.o
  CC      init/do_mounts_initrd.o
  CC      ipc/syscall.o
  CC      security/commoncap.o
  CC      arch/x86/power/hibernate_64.o
  CC      ipc/ipc_sysctl.o
  UPD     init/utsversion-tmp.h
  CC      security/min_addr.o
  CC      block/bdev.o
  CC      init/initramfs.o
  CC      mm/filemap.o
  CC      arch/x86/lib/cmdline.o
  AR      arch/x86/video/built-in.a
  CC      net/ethernet/eth.o
  CC      arch/x86/pci/i386.o
  CC      net/llc/llc_core.o
  CC      net/core/sock.o
  CC      mm/mempool.o
  CC      block/partitions/core.o
  CC      security/keys/gc.o
  CC      net/sched/sch_generic.o
  CC      net/802/p8022.o
  CC [M]  arch/x86/video/fbdev.o
  AR      drivers/cache/built-in.a
  CC      arch/x86/realmode/init.o
  CC      net/netlink/af_netlink.o
  AR      arch/x86/ia32/built-in.a
  AS      arch/x86/crypto/aesni-intel_asm.o
  AR      virt/lib/built-in.a
  CC      fs/notify/dnotify/dnotify.o
  CC      arch/x86/mm/pat/set_memory.o
  CC      arch/x86/events/amd/core.o
  CC [M]  virt/lib/irqbypass.o
  CC      sound/core/seq/seq.o
  CC      arch/x86/kernel/fpu/init.o
  AR      drivers/irqchip/built-in.a
  CC      arch/x86/mm/pat/memtype.o
  CC      sound/core/seq/seq_lock.o
  CC      lib/kunit/hooks.o
  CC      arch/x86/entry/vdso/vma.o
  CC      kernel/sched/core.o
  AR      drivers/bus/mhi/built-in.a
  CC      mm/kasan/common.o
  CC      arch/x86/crypto/aesni-intel_glue.o
  AR      drivers/bus/built-in.a
  CC      crypto/api.o
  AR      drivers/phy/allwinner/built-in.a
  AS      arch/x86/lib/cmpxchg16b_emu.o
  AR      drivers/phy/amlogic/built-in.a
  CC      arch/x86/lib/copy_mc.o
  AR      drivers/phy/broadcom/built-in.a
  AR      drivers/phy/cadence/built-in.a
  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
  GEN     usr/initramfs_data.cpio
  CC [M]  lib/kunit/test.o
  AR      drivers/phy/motorola/built-in.a
  COPY    usr/initramfs_inc_data
  AS      usr/initramfs_data.o
  AR      drivers/phy/mscc/built-in.a
  AR      usr/built-in.a
  AR      drivers/phy/qualcomm/built-in.a
  AR      drivers/pinctrl/actions/built-in.a
  AR      drivers/phy/ralink/built-in.a
  AR      drivers/pinctrl/bcm/built-in.a
  AR      drivers/phy/realtek/built-in.a
  AR      drivers/pinctrl/cirrus/built-in.a
  AR      drivers/phy/renesas/built-in.a
  AR      drivers/pinctrl/freescale/built-in.a
  AR      drivers/phy/rockchip/built-in.a
  CC      arch/x86/kernel/fpu/bugs.o
  CC      drivers/pinctrl/intel/pinctrl-baytrail.o
  AR      drivers/phy/samsung/built-in.a
  CC      fs/notify/inotify/inotify_fsnotify.o
  AR      drivers/phy/socionext/built-in.a
  AR      drivers/phy/st/built-in.a
  AR      drivers/phy/starfive/built-in.a
  AR      virt/built-in.a
  AS      arch/x86/lib/copy_mc_64.o
  AR      drivers/phy/sunplus/built-in.a
  AS      arch/x86/lib/copy_page_64.o
  AR      sound/i2c/other/built-in.a
  AR      drivers/phy/tegra/built-in.a
  AR      sound/i2c/built-in.a
  CC      net/llc/llc_input.o
  CC      crypto/cipher.o
  AS      arch/x86/lib/copy_user_64.o
  AR      drivers/phy/ti/built-in.a
  AR      arch/x86/platform/atom/built-in.a
  AR      drivers/phy/xilinx/built-in.a
  CC      drivers/phy/phy-core.o
  AS      arch/x86/lib/copy_user_uncached_64.o
  AR      arch/x86/platform/ce4100/built-in.a
  CC      arch/x86/kernel/fpu/core.o
  CC      arch/x86/platform/efi/memmap.o
  CC      arch/x86/lib/cpu.o
  AR      arch/x86/platform/geode/built-in.a
  AS      arch/x86/realmode/rm/header.o
  CC      sound/core/seq/seq_clientmgr.o
  AS      arch/x86/realmode/rm/trampoline_64.o
  CC      crypto/compress.o
  CC      security/keys/key.o
  AR      arch/x86/platform/iris/built-in.a
  AS      arch/x86/realmode/rm/stack.o
  AR      arch/x86/net/built-in.a
  CC      kernel/sched/fair.o
  CC      ipc/mqueue.o
  AS      arch/x86/realmode/rm/reboot.o
  CC      ipc/namespace.o
  AR      fs/notify/dnotify/built-in.a
  AR      sound/drivers/opl3/built-in.a
  CC      arch/x86/pci/init.o
  AR      sound/drivers/opl4/built-in.a
  AS      arch/x86/realmode/rm/wakeup_asm.o
  AR      sound/isa/ad1816a/built-in.a
  AR      sound/drivers/mpu401/built-in.a
  CC      arch/x86/realmode/rm/wakemain.o
  AR      sound/isa/ad1848/built-in.a
  CC      net/802/psnap.o
  AR      sound/drivers/vx/built-in.a
  AR      sound/isa/cs423x/built-in.a
  AR      sound/pci/ac97/built-in.a
  AR      sound/drivers/pcsp/built-in.a
  AR      sound/isa/es1688/built-in.a
  AR      sound/drivers/built-in.a
  AR      sound/pci/ali5451/built-in.a
  AR      sound/isa/galaxy/built-in.a
  AR      sound/pci/asihpi/built-in.a
  CC      net/802/stp.o
  AR      sound/isa/gus/built-in.a
  CC      block/partitions/ldm.o
  AR      sound/pci/au88x0/built-in.a
  AR      drivers/pinctrl/mediatek/built-in.a
  AR      sound/isa/msnd/built-in.a
  CC      arch/x86/realmode/rm/video-mode.o
  AS      arch/x86/power/hibernate_asm_64.o
  AR      sound/pci/aw2/built-in.a
  AR      sound/isa/opti9xx/built-in.a
  AR      sound/pci/ctxfi/built-in.a
  AR      sound/isa/sb/built-in.a
  AR      sound/pci/ca0106/built-in.a
  CC      fs/notify/fanotify/fanotify.o
  CC      arch/x86/entry/vdso/extable.o
  CC      arch/x86/power/hibernate.o
  AR      sound/isa/wavefront/built-in.a
  AR      sound/pci/cs46xx/built-in.a
  CC      mm/kasan/report.o
  AR      sound/isa/wss/built-in.a
  AR      sound/pci/cs5535audio/built-in.a
  AR      sound/isa/built-in.a
  CC      fs/notify/fanotify/fanotify_user.o
  AR      sound/pci/lola/built-in.a
  CC      block/partitions/msdos.o
  CC      net/llc/llc_output.o
  AR      sound/pci/lx6464es/built-in.a
  AR      sound/pci/echoaudio/built-in.a
  AR      drivers/pinctrl/mvebu/built-in.a
  AS      arch/x86/realmode/rm/copy.o
  CC      drivers/gpio/gpiolib.o
  AR      sound/pci/emu10k1/built-in.a
  AR      drivers/pwm/built-in.a
  CC      fs/notify/inotify/inotify_user.o
  AS      arch/x86/realmode/rm/bioscall.o
  CC      arch/x86/lib/delay.o
  AR      sound/pci/hda/built-in.a
  CC [M]  sound/pci/hda/hda_bind.o
  CC      drivers/pci/msi/pcidev_msi.o
  CC      arch/x86/realmode/rm/regs.o
  CC [M]  lib/kunit/resource.o
  CC      drivers/pci/pcie/portdrv.o
  CC      arch/x86/realmode/rm/video-vga.o
  CC      arch/x86/events/amd/lbr.o
  AS      arch/x86/crypto/aesni-intel_avx-x86_64.o
  CC      drivers/pci/pcie/rcec.o
  CC      arch/x86/realmode/rm/video-vesa.o
  CC      arch/x86/realmode/rm/video-bios.o
  AS      arch/x86/lib/getuser.o
  CC [M]  lib/kunit/static_stub.o
  CC      drivers/pci/msi/api.o
  CC      crypto/algapi.o
  CC      crypto/scatterwalk.o
  AR      net/ethernet/built-in.a
  CC      io_uring/xattr.o
  PASYMS  arch/x86/realmode/rm/pasyms.h
  CC [M]  lib/kunit/string-stream.o
  LDS     arch/x86/realmode/rm/realmode.lds
  GEN     arch/x86/lib/inat-tables.c
  LD      arch/x86/realmode/rm/realmode.elf
  RELOCS  arch/x86/realmode/rm/realmode.relocs
  OBJCOPY arch/x86/realmode/rm/realmode.bin
  AS      arch/x86/realmode/rmpiggy.o
  CC      arch/x86/pci/mmconfig_64.o
  CC      arch/x86/platform/efi/quirks.o
  AR      drivers/pinctrl/nomadik/built-in.a
  CC      arch/x86/lib/insn-eval.o
  AR      arch/x86/realmode/built-in.a
  CC      ipc/mq_sysctl.o
  CC      arch/x86/events/amd/ibs.o
  CC      arch/x86/platform/efi/efi.o
  AS      arch/x86/crypto/aes_ctrby8_avx-x86_64.o
  CC      drivers/pinctrl/intel/pinctrl-intel.o
  AS [M]  arch/x86/crypto/ghash-clmulni-intel_asm.o
  CC      drivers/pci/hotplug/pci_hotplug_core.o
  CC [M]  arch/x86/crypto/ghash-clmulni-intel_glue.o
  CC      init/calibrate.o
  AR      drivers/phy/built-in.a
  CC [M]  drivers/pinctrl/intel/pinctrl-cherryview.o
  CC      init/init_task.o
  CC      arch/x86/entry/vdso/vdso32-setup.o
  AR      arch/x86/power/built-in.a
  CC      arch/x86/mm/pat/memtype_interval.o
  CC      security/keys/keyring.o
  AR      drivers/pci/controller/dwc/built-in.a
  AR      drivers/pci/controller/mobiveil/built-in.a
  CC      drivers/pci/controller/vmd.o
  CC      kernel/sched/build_policy.o
  AR      net/802/built-in.a
  CC      arch/x86/lib/insn.o
  CC      drivers/pci/msi/msi.o
  AR      net/llc/built-in.a
  CC      arch/x86/kernel/cpu/mce/core.o
  CC [M]  sound/pci/hda/hda_codec.o
  CC [M]  lib/kunit/assert.o
  CC      block/partitions/efi.o
  CC      arch/x86/kernel/cpu/mtrr/mtrr.o
  CC      mm/kasan/init.o
  LDS     arch/x86/entry/vdso/vdso.lds
  AR      drivers/pci/switch/built-in.a
  CC      arch/x86/kernel/cpu/mtrr/if.o
  AS      arch/x86/entry/vdso/vdso-note.o
  CC      drivers/pci/hotplug/acpi_pcihp.o
  CC      arch/x86/entry/vdso/vclock_gettime.o
  CC      arch/x86/kernel/fpu/regset.o
  CC      arch/x86/events/amd/uncore.o
  CC      drivers/pci/pcie/aspm.o
  CC      arch/x86/kernel/cpu/mce/severity.o
  CC      drivers/pci/hotplug/pciehp_core.o
  CC      drivers/pci/access.o
  CC [M]  sound/pci/hda/hda_jack.o
  AR      fs/notify/inotify/built-in.a
  AS      arch/x86/lib/memcpy_64.o
  CC      arch/x86/kernel/fpu/signal.o
  CC      fs/notify/fsnotify.o
  AS      arch/x86/lib/memmove_64.o
  CC      arch/x86/pci/direct.o
  AS [M]  arch/x86/crypto/crc32-pclmul_asm.o
  CC      init/version.o
  CC      arch/x86/pci/mmconfig-shared.o
  CC      net/sched/sch_mq.o
  CC      sound/core/seq/seq_memory.o
  CC [M]  arch/x86/crypto/crc32-pclmul_glue.o
  CC      arch/x86/entry/vsyscall/vsyscall_64.o
  CC      arch/x86/platform/efi/efi_64.o
  CC      drivers/gpio/gpiolib-devres.o
  AR      arch/x86/mm/pat/built-in.a
  AS      arch/x86/lib/memset_64.o
  CC [M]  lib/kunit/try-catch.o
  CC      arch/x86/mm/init.o
  CC      arch/x86/kernel/acpi/boot.o
  CC      arch/x86/lib/misc.o
  AR      init/built-in.a
  CC      fs/notify/notification.o
  CC      arch/x86/kernel/acpi/sleep.o
  CC      arch/x86/lib/pc-conf-reg.o
  AR      fs/notify/fanotify/built-in.a
  AS      arch/x86/platform/efi/efi_stub_64.o
  CC      arch/x86/entry/vdso/vgetcpu.o
  CC      drivers/pci/hotplug/pciehp_ctrl.o
  AR      ipc/built-in.a
  CC      crypto/proc.o
  CC      arch/x86/kernel/apic/apic.o
  CC      sound/core/seq/seq_queue.o
  HOSTCC  arch/x86/entry/vdso/vdso2c
  AS      arch/x86/lib/putuser.o
  CC      arch/x86/kernel/apic/apic_common.o
  CC      arch/x86/kernel/cpu/mtrr/generic.o
  CC      arch/x86/kernel/kprobes/core.o
  AS      arch/x86/lib/retpoline.o
  AS [M]  arch/x86/crypto/crct10dif-pcl-asm_64.o
  CC [M]  arch/x86/crypto/crct10dif-pclmul_glue.o
  CC      arch/x86/lib/usercopy.o
  CC      arch/x86/kernel/kprobes/opt.o
  CC      arch/x86/kernel/cpu/mce/genpool.o
  CC      drivers/pci/hotplug/pciehp_pci.o
  AR      block/partitions/built-in.a
  AR      drivers/pci/controller/built-in.a
  CC      drivers/pci/msi/irqdomain.o
  CC      block/fops.o
  CC      drivers/pci/bus.o
  CC      block/bio.o
  CC [M]  drivers/pinctrl/intel/pinctrl-broxton.o
  CC [M]  lib/kunit/executor.o
  CC      sound/core/seq/seq_fifo.o
  CC      mm/kasan/generic.o
  CC      net/netlink/genetlink.o
  AR      sound/ppc/built-in.a
  AR      arch/x86/events/amd/built-in.a
  CC      arch/x86/kernel/cpu/mce/intel.o
  CC      security/keys/keyctl.o
  AS      arch/x86/entry/vsyscall/vsyscall_emu_64.o
  LDS     arch/x86/entry/vdso/vdso32/vdso32.lds
  CC      arch/x86/events/intel/core.o
  CC      arch/x86/events/intel/bts.o
  AS      arch/x86/entry/vdso/vdso32/note.o
  CC      arch/x86/events/intel/ds.o
  AS      arch/x86/entry/vdso/vdso32/system_call.o
  CC      arch/x86/kernel/fpu/xstate.o
  CC      arch/x86/events/intel/knc.o
  AS      arch/x86/entry/vdso/vdso32/sigreturn.o
  CC      arch/x86/lib/usercopy_64.o
  CC      arch/x86/entry/vdso/vdso32/vclock_gettime.o
  CC      fs/notify/group.o
  CC      drivers/gpio/gpiolib-legacy.o
  CC      arch/x86/pci/fixup.o
  CC      drivers/pci/pcie/aer.o
  CC      crypto/aead.o
  AR      arch/x86/entry/vsyscall/built-in.a
  CC      arch/x86/pci/acpi.o
  CC [M]  sound/pci/hda/hda_auto_parser.o
  CC [M]  sound/pci/hda/hda_sysfs.o
  CC      net/sched/sch_frag.o
  AR      arch/x86/platform/efi/built-in.a
  LD [M]  arch/x86/crypto/ghash-clmulni-intel.o
  CC      arch/x86/platform/intel/iosf_mbi.o
  LD [M]  arch/x86/crypto/crc32-pclmul.o
  LD [M]  arch/x86/crypto/crct10dif-pclmul.o
  AR      arch/x86/crypto/built-in.a
  CC      drivers/gpio/gpiolib-cdev.o
  CC      arch/x86/pci/legacy.o
  CC      arch/x86/kernel/cpu/microcode/core.o
  CC [M]  drivers/pinctrl/intel/pinctrl-geminilake.o
  CC      arch/x86/mm/init_64.o
  CC [M]  drivers/pinctrl/intel/pinctrl-sunrisepoint.o
  CC [M]  lib/kunit/attributes.o
  CC      drivers/pci/hotplug/pciehp_hpc.o
  CC      sound/core/seq/seq_prioq.o
  CC      net/core/request_sock.o
  CC      arch/x86/kernel/cpu/microcode/intel.o
  CC      sound/core/sound.o
  CC      arch/x86/kernel/cpu/mce/threshold.o
  CC      arch/x86/kernel/kprobes/ftrace.o
  AS      arch/x86/kernel/acpi/wakeup_64.o
  CC      drivers/pci/hotplug/acpiphp_core.o
  AR      drivers/pci/msi/built-in.a
  AR      net/bpf/built-in.a
  CC      arch/x86/kernel/acpi/apei.o
  CC      arch/x86/kernel/cpu/cacheinfo.o
  CC      arch/x86/kernel/cpu/mtrr/cleanup.o
  CC      arch/x86/lib/msr-smp.o
  CC      net/ethtool/ioctl.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/kvm_main.o
  CC      arch/x86/entry/vdso/vdso32/vgetcpu.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/eventfd.o
  CC      mm/kasan/report_generic.o
  CC      net/ethtool/common.o
  CC      fs/notify/mark.o
  VDSO    arch/x86/entry/vdso/vdso64.so.dbg
  AS      arch/x86/entry/entry.o
  CC      kernel/locking/mutex.o
  CC      crypto/geniv.o
  AS      arch/x86/entry/entry_64.o
  VDSO    arch/x86/entry/vdso/vdso32.so.dbg
  CC      kernel/power/qos.o
  OBJCOPY arch/x86/entry/vdso/vdso64.so
  OBJCOPY arch/x86/entry/vdso/vdso32.so
  VDSO2C  arch/x86/entry/vdso/vdso-image-64.c
  VDSO2C  arch/x86/entry/vdso/vdso-image-32.c
  CC      arch/x86/kernel/cpu/scattered.o
  CC      arch/x86/entry/vdso/vdso-image-64.o
  CC      arch/x86/pci/irq.o
  CC      arch/x86/events/intel/lbr.o
  CC      arch/x86/events/intel/p4.o
  AR      arch/x86/platform/intel/built-in.a
  CC      arch/x86/entry/syscall_64.o
  AR      arch/x86/platform/intel-mid/built-in.a
  AR      drivers/pinctrl/intel/built-in.a
  AR      arch/x86/platform/intel-quark/built-in.a
  AR      drivers/pinctrl/nuvoton/built-in.a
  CC      arch/x86/lib/cache-smp.o
  AR      arch/x86/platform/olpc/built-in.a
  AR      lib/kunit/built-in.a
  LD [M]  lib/kunit/kunit.o
  AR      arch/x86/platform/scx200/built-in.a
  AR      drivers/pinctrl/nxp/built-in.a
  AR      arch/x86/platform/ts5500/built-in.a
  AR      drivers/pinctrl/qcom/built-in.a
  AR      arch/x86/platform/uv/built-in.a
  AR      drivers/pinctrl/sprd/built-in.a
  AR      arch/x86/platform/built-in.a
  CC      lib/math/div64.o
  AR      drivers/pinctrl/sunplus/built-in.a
  AR      drivers/pinctrl/ti/built-in.a
  CC      arch/x86/entry/common.o
  CC      drivers/pinctrl/core.o
  CC [M]  sound/pci/hda/hda_controller.o
  CC      arch/x86/events/zhaoxin/core.o
  CC      lib/math/gcd.o
  CC      security/keys/permission.o
  CC      arch/x86/entry/vdso/vdso-image-32.o
  CC      arch/x86/lib/msr.o
  CC      drivers/pinctrl/pinctrl-utils.o
  CC      sound/core/seq/seq_timer.o
  AR      arch/x86/kernel/kprobes/built-in.a
  CC      lib/math/lcm.o
  CC      drivers/pinctrl/pinmux.o
  CC      arch/x86/kernel/acpi/cppc.o
  CC      arch/x86/kernel/apic/apic_noop.o
  CC      lib/math/int_log.o
  AR      arch/x86/kernel/fpu/built-in.a
  CC      net/sched/sch_api.o
  CC      sound/core/init.o
  CC      kernel/power/main.o
  CC      drivers/pci/pcie/err.o
  CC      sound/core/seq/seq_system.o
  LDS     arch/x86/kernel/vmlinux.lds
  CC      lib/math/int_pow.o
  CC      lib/math/int_sqrt.o
  AR      arch/x86/entry/vdso/built-in.a
  CC      sound/core/memory.o
  CC      io_uring/nop.o
  CC      arch/x86/kernel/cpu/microcode/amd.o
  CC      arch/x86/kernel/cpu/mce/apei.o
  CC      lib/math/reciprocal_div.o
  CC      net/core/skbuff.o
  CC      mm/kasan/shadow.o
  CC      block/elevator.o
  CC      lib/math/rational.o
  CC      drivers/pci/hotplug/acpiphp_glue.o
  CC      net/netlink/policy.o
  AS      arch/x86/entry/thunk_64.o
  AR      arch/x86/kernel/cpu/mtrr/built-in.a
  CC      net/netlink/diag.o
  CC      crypto/skcipher.o
  CC      arch/x86/kernel/apic/ipi.o
  CC      net/ethtool/netlink.o
  CC      security/keys/process_keys.o
  CC      arch/x86/kernel/apic/vector.o
  CC      arch/x86/kernel/cpu/topology.o
  CC      net/ethtool/bitset.o
  CC [M]  lib/math/prime_numbers.o
  CC      fs/notify/fdinfo.o
  AS      arch/x86/entry/entry_64_compat.o
  CC      arch/x86/entry/syscall_32.o
  CC      arch/x86/kernel/acpi/cstate.o
  CC      io_uring/fs.o
  CC      io_uring/splice.o
  CC      kernel/power/console.o
  CC      arch/x86/kernel/cpu/common.o
  CC      arch/x86/kernel/cpu/rdrand.o
  AR      arch/x86/events/zhaoxin/built-in.a
  CC      drivers/gpio/gpiolib-sysfs.o
  CC      drivers/gpio/gpiolib-acpi.o
  CC      sound/core/seq/seq_ports.o
  AS      arch/x86/lib/msr-reg.o
  CC      drivers/pci/pcie/aer_inject.o
  CC      arch/x86/events/core.o
  CC      crypto/seqiv.o
  CC      arch/x86/lib/msr-reg-export.o
  CC      crypto/echainiv.o
  AR      arch/x86/kernel/cpu/mce/built-in.a
  CC      arch/x86/mm/fault.o
  CC      crypto/ahash.o
  CC      drivers/gpio/gpiolib-swnode.o
  CC      arch/x86/pci/common.o
  AS      arch/x86/kernel/head_64.o
  AS      arch/x86/lib/hweight.o
  CC      arch/x86/kernel/head64.o
  CC      arch/x86/kernel/apic/init.o
  CC      arch/x86/lib/iomem.o
  CC      arch/x86/kernel/apic/hw_nmi.o
  CC      mm/kasan/quarantine.o
  CC      arch/x86/kernel/cpu/match.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/binary_stats.o
  AR      arch/x86/kernel/cpu/microcode/built-in.a
  CC      drivers/pci/pcie/pme.o
  CC      crypto/shash.o
  AR      lib/math/built-in.a
  CC      lib/crypto/memneq.o
  CC      kernel/power/process.o
  CC      drivers/pinctrl/pinconf.o
  AR      fs/notify/built-in.a
  CC      fs/nfs_common/grace.o
  AR      arch/x86/kernel/acpi/built-in.a
  CC      kernel/power/suspend.o
  AR      arch/x86/entry/built-in.a
  CC      kernel/power/hibernate.o
  CC [M]  sound/pci/hda/hda_proc.o
  AS      arch/x86/lib/iomap_copy_64.o
  CC      net/core/datagram.o
  CC      arch/x86/lib/inat.o
  CC      lib/crypto/utils.o
  AR      net/netlink/built-in.a
  AR      sound/arm/built-in.a
  CC      crypto/akcipher.o
  CC      block/blk-core.o
  AR      drivers/pci/hotplug/built-in.a
  AR      sound/sh/built-in.a
  CC [M]  net/netfilter/ipvs/ip_vs_conn.o
  CC      net/netfilter/core.o
  CC      net/netfilter/nf_log.o
  AR      sound/synth/emux/built-in.a
  AR      sound/usb/misc/built-in.a
  CC      net/netfilter/nf_queue.o
  AR      sound/synth/built-in.a
  CC      security/keys/request_key.o
  AR      sound/usb/usx2y/built-in.a
  CC      arch/x86/events/intel/p6.o
  CC      security/keys/request_key_auth.o
  AR      arch/x86/lib/built-in.a
  AR      sound/usb/caiaq/built-in.a
  CC      sound/core/seq/seq_info.o
  AR      arch/x86/lib/lib.a
  AR      sound/usb/6fire/built-in.a
  CC      io_uring/sync.o
  CC      fs/iomap/trace.o
  AR      sound/usb/hiface/built-in.a
  AR      sound/usb/bcd2000/built-in.a
  AR      sound/usb/built-in.a
  CC      fs/iomap/iter.o
  CC [M]  net/netfilter/ipvs/ip_vs_core.o
  AR      fs/quota/built-in.a
  CC      kernel/locking/semaphore.o
  CC      net/core/stream.o
  CC      kernel/locking/rwsem.o
  CC      fs/iomap/buffered-io.o
  CC      net/core/scm.o
  CC      arch/x86/kernel/apic/io_apic.o
  CC      arch/x86/pci/early.o
  AR      mm/kasan/built-in.a
  CC      arch/x86/kernel/cpu/bugs.o
  CC      fs/proc/task_mmu.o
  CC      mm/oom_kill.o
  AR      drivers/gpio/built-in.a
  CC      fs/iomap/direct-io.o
  CC      lib/crypto/chacha.o
  CC [M]  sound/pci/hda/hda_hwdep.o
  CC      kernel/printk/printk.o
  CC      drivers/pinctrl/pinconf-generic.o
  CC      drivers/pci/pcie/dpc.o
  CC      lib/crypto/aes.o
  CC      net/ethtool/strset.o
  AR      fs/nfs_common/built-in.a
  CC      kernel/printk/printk_safe.o
  CC      security/keys/user_defined.o
  AR      sound/core/seq/built-in.a
  CC      sound/core/control.o
  CC      arch/x86/kernel/apic/msi.o
  CC      crypto/sig.o
  CC      arch/x86/kernel/ebda.o
  CC      net/sched/sch_blackhole.o
  CC      net/sched/sch_fifo.o
  CC      net/netfilter/nf_sockopt.o
  CC      kernel/printk/printk_ringbuffer.o
  CC      arch/x86/events/intel/pt.o
  CC      arch/x86/mm/ioremap.o
  CC      fs/iomap/fiemap.o
  CC      arch/x86/pci/bus_numa.o
  CC      kernel/power/snapshot.o
  CC      io_uring/advise.o
  CC      kernel/sched/build_utility.o
  CC      kernel/power/swap.o
  CC      sound/core/misc.o
  CC      io_uring/filetable.o
  CC      fs/kernfs/mount.o
  AR      drivers/pinctrl/built-in.a
  CC [M]  sound/pci/hda/hda_generic.o
  CC      fs/kernfs/inode.o
  CC      fs/kernfs/dir.o
  CC      lib/crypto/gf128mul.o
  CC      kernel/printk/sysctl.o
  CC      security/keys/compat.o
  CC      kernel/irq/irqdesc.o
  AR      drivers/pci/pcie/built-in.a
  CC      kernel/rcu/update.o
  CC      drivers/pci/probe.o
  AR      kernel/livepatch/built-in.a
  CC      kernel/irq/handle.o
  CC      net/core/gen_stats.o
  CC      net/netfilter/utils.o
  CC      net/core/gen_estimator.o
  CC      arch/x86/events/probe.o
  CC      fs/iomap/seek.o
  CC      crypto/kpp.o
  CC      lib/crypto/blake2s.o
  CC      io_uring/openclose.o
  CC      lib/zlib_inflate/inffast.o
  CC      lib/zlib_deflate/deflate.o
  CC      lib/zlib_inflate/inflate.o
  CC      lib/zlib_deflate/deftree.o
  CC      arch/x86/kernel/apic/x2apic_phys.o
  CC      kernel/locking/percpu-rwsem.o
  CC      arch/x86/pci/amd_bus.o
  CC      kernel/irq/manage.o
  CC      net/ethtool/linkinfo.o
  CC      lib/zlib_inflate/infutil.o
  CC      arch/x86/mm/extable.o
  CC      arch/x86/events/utils.o
  AR      net/sched/built-in.a
  CC      arch/x86/kernel/platform-quirks.o
  CC      kernel/rcu/sync.o
  CC      arch/x86/kernel/cpu/aperfmperf.o
  CC      arch/x86/mm/mmap.o
  CC      crypto/acompress.o
  CC      kernel/irq/spurious.o
  CC [M]  net/netfilter/ipvs/ip_vs_ctl.o
  CC      kernel/rcu/srcutree.o
  CC      lib/crypto/blake2s-generic.o
  CC      kernel/irq/resend.o
  CC      security/keys/proc.o
  CC      arch/x86/mm/pgtable.o
  CC      lib/zlib_inflate/inftrees.o
  AR      sound/pci/ice1712/built-in.a
  CC      lib/crypto/blake2s-selftest.o
  CC      drivers/pci/host-bridge.o
  CC      arch/x86/events/intel/uncore.o
  CC      kernel/irq/chip.o
  CC      arch/x86/mm/physaddr.o
  AR      sound/firewire/built-in.a
  CC      arch/x86/mm/tlb.o
  CC      arch/x86/mm/cpu_entry_area.o
  CC      fs/iomap/swapfile.o
  CC      arch/x86/events/intel/uncore_nhmex.o
  CC      arch/x86/kernel/apic/x2apic_cluster.o
  CC      lib/zlib_inflate/inflate_syms.o
  CC      security/inode.o
  CC      block/blk-sysfs.o
  CC      lib/lzo/lzo1x_compress.o
  CC      mm/fadvise.o
  CC      lib/lzo/lzo1x_decompress_safe.o
  CC      kernel/locking/irqflag-debug.o
  CC      kernel/locking/mutex-debug.o
  CC      lib/crypto/des.o
  CC      fs/proc/inode.o
  CC      arch/x86/kernel/cpu/cpuid-deps.o
  CC      sound/core/device.o
  CC      lib/zlib_deflate/deflate_syms.o
  CC      fs/kernfs/file.o
  CC      fs/kernfs/symlink.o
  AR      arch/x86/pci/built-in.a
  CC      net/core/net_namespace.o
  CC      kernel/locking/lockdep.o
  AR      kernel/printk/built-in.a
  CC      net/core/secure_seq.o
  CC      arch/x86/mm/maccess.o
  CC      kernel/locking/lockdep_proc.o
  CC      kernel/locking/spinlock.o
  CC      kernel/power/user.o
  CC      block/blk-flush.o
  CC      arch/x86/mm/pgprot.o
  CC      arch/x86/kernel/apic/apic_flat_64.o
  CC      arch/x86/mm/hugetlbpage.o
  CC      io_uring/uring_cmd.o
  CC      crypto/scompress.o
  AR      lib/zlib_inflate/built-in.a
  CC      security/keys/sysctl.o
  CC      net/ethtool/linkmodes.o
  CC      net/ethtool/rss.o
  CC      arch/x86/mm/kasan_init_64.o
  CC      kernel/locking/osq_lock.o
  CC      arch/x86/kernel/cpu/umwait.o
  AR      lib/zlib_deflate/built-in.a
  CC      sound/core/info.o
  CC [M]  net/netfilter/nfnetlink.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/vfio.o
  CC      drivers/pci/remove.o
  AR      lib/lzo/built-in.a
  CC      lib/lz4/lz4_compress.o
  CC      drivers/pci/pci.o
  CC      arch/x86/mm/numa.o
  CC      lib/lz4/lz4hc_compress.o
  CC      security/device_cgroup.o
  AR      fs/iomap/built-in.a
  CC      lib/lz4/lz4_decompress.o
  CC      drivers/pci/pci-driver.o
  CC      kernel/locking/qspinlock.o
  CC      fs/sysfs/file.o
  CC      net/ethtool/linkstate.o
  CC      io_uring/epoll.o
  CC      mm/maccess.o
  CC      fs/sysfs/dir.o
  CC      lib/zstd/zstd_compress_module.o
  CC      kernel/locking/rtmutex_api.o
  CC      net/ethtool/debug.o
  CC      arch/x86/kernel/apic/probe_64.o
  CC      kernel/rcu/tree.o
  CC      kernel/irq/dummychip.o
  AR      security/keys/built-in.a
  CC      lib/zstd/compress/fse_compress.o
  CC      fs/proc/root.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/coalesced_mmio.o
  CC      kernel/power/poweroff.o
  CC      io_uring/statx.o
  AR      sound/pci/korg1212/built-in.a
  CC      kernel/dma/mapping.o
  CC      block/blk-settings.o
  CC      block/blk-ioc.o
  CC      kernel/entry/common.o
  CC      crypto/algboss.o
  AR      fs/kernfs/built-in.a
  CC      lib/crypto/sha1.o
  CC      arch/x86/events/intel/uncore_snb.o
  CC      kernel/rcu/rcu_segcblist.o
  CC      arch/x86/kernel/cpu/proc.o
  AR      arch/x86/kernel/apic/built-in.a
  CC      kernel/dma/direct.o
  AR      kernel/power/built-in.a
  CC      kernel/locking/spinlock_debug.o
  CC      fs/configfs/inode.o
  CC      drivers/video/console/dummycon.o
  CC      drivers/video/logo/logo.o
  CC      block/blk-map.o
  CC      fs/configfs/file.o
  CC      drivers/video/console/vgacon.o
  CC      lib/zstd/compress/hist.o
  CC      net/core/flow_dissector.o
  CC      fs/sysfs/symlink.o
  CC      sound/core/isadma.o
  CC      arch/x86/mm/numa_64.o
  CC      kernel/irq/devres.o
  CC      lib/zstd/compress/huf_compress.o
  CC      drivers/video/backlight/backlight.o
  CC      fs/sysfs/mount.o
  CC      arch/x86/events/intel/uncore_snbep.o
  CC      mm/page-writeback.o
  CC      net/core/sysctl_net_core.o
  CC      lib/crypto/sha256.o
  HOSTCC  drivers/video/logo/pnmtologo
  CC      fs/proc/base.o
  AR      sound/sparc/built-in.a
  AR      sound/spi/built-in.a
  AR      sound/parisc/built-in.a
  CC      net/core/dev.o
  CC      fs/sysfs/group.o
  AR      sound/pcmcia/vx/built-in.a
  CC      net/core/dev_addr_lists.o
  CC      io_uring/net.o
  CC      net/ethtool/wol.o
  AR      sound/pcmcia/pdaudiocf/built-in.a
  CC      net/core/dst.o
  AR      sound/pcmcia/built-in.a
  CC      kernel/locking/qrwlock.o
  CC      io_uring/msg_ring.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/async_pf.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/irqchip.o
  MKCAP   arch/x86/kernel/cpu/capflags.c
  AR      security/built-in.a
  CC [M]  arch/x86/kvm/../../../virt/kvm/dirty_ring.o
  CC [M]  arch/x86/kvm/../../../virt/kvm/pfncache.o
  CC      net/ethtool/features.o
  CC      sound/core/vmaster.o
  CC      block/blk-merge.o
  LOGO    drivers/video/logo/logo_linux_clut224.c
  CC      drivers/video/logo/logo_linux_clut224.o
  AR      drivers/video/logo/built-in.a
  CC      fs/configfs/dir.o
  CC      drivers/idle/intel_idle.o
  AR      drivers/char/ipmi/built-in.a
  CC      arch/x86/kernel/cpu/powerflags.o
  CC      kernel/irq/autoprobe.o
  CC      fs/devpts/inode.o
  CC      crypto/testmgr.o
  CC      arch/x86/mm/amdtopology.o
  CC      kernel/module/main.o
  CC      kernel/irq/irqdomain.o
  CC      drivers/pci/search.o
  CC      arch/x86/mm/srat.o
  CC      kernel/entry/syscall_user_dispatch.o
  AR      lib/lz4/built-in.a
  CC      net/core/netevent.o
  CC      arch/x86/kernel/process_64.o
  CC      drivers/video/fbdev/core/fb_notify.o
  CC      kernel/dma/ops_helpers.o
  CC [M]  lib/crypto/arc4.o
  CC      mm/folio-compat.o
  AR      drivers/video/fbdev/omap/built-in.a
  CC      block/blk-timeout.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      block/blk-lib.o
  AR      drivers/video/console/built-in.a
  CC      block/blk-mq.o
  AR      drivers/video/backlight/built-in.a
  AR      fs/sysfs/built-in.a
  CC      mm/readahead.o
  CC      drivers/video/aperture.o
  CC      sound/core/ctljack.o
  CC      sound/core/jack.o
  CC [M]  sound/pci/hda/patch_realtek.o
  CC [M]  net/netfilter/ipvs/ip_vs_sched.o
  AR      lib/crypto/built-in.a
  LD [M]  lib/crypto/libarc4.o
  CC [M]  net/netfilter/ipvs/ip_vs_xmit.o
  CC      drivers/pci/pci-sysfs.o
  CC [M]  drivers/video/fbdev/core/fb_info.o
  CC      kernel/entry/kvm.o
  CC      fs/configfs/symlink.o
  CC      arch/x86/mm/pkeys.o
  CC [M]  arch/x86/kvm/x86.o
  CC [M]  net/netfilter/ipvs/ip_vs_app.o
  CC [M]  net/netfilter/ipvs/ip_vs_sync.o
  AR      fs/devpts/built-in.a
  CC      arch/x86/mm/pti.o
  CC      lib/xz/xz_dec_syms.o
  CC      kernel/irq/proc.o
  CC      net/core/neighbour.o
  CC      kernel/dma/dummy.o
  CC      net/core/rtnetlink.o
  CC      lib/zstd/compress/zstd_compress.o
  CC      net/ethtool/privflags.o
  CC      net/xfrm/xfrm_policy.o
  AR      net/ipv4/netfilter/built-in.a
  CC [M]  net/ipv4/netfilter/nf_defrag_ipv4.o
  CC      net/xfrm/xfrm_state.o
  CC      net/ethtool/rings.o
  CC [M]  net/ipv4/netfilter/nf_reject_ipv4.o
  AR      drivers/idle/built-in.a
  CC      net/xfrm/xfrm_hash.o
  CC [M]  net/ipv4/netfilter/ip_tables.o
  CC [M]  net/ipv4/netfilter/iptable_filter.o
  CC [M]  drivers/video/fbdev/uvesafb.o
  CC      lib/xz/xz_dec_stream.o
  CC      net/ipv4/route.o
  CC      sound/core/timer.o
  CC [M]  drivers/video/fbdev/simplefb.o
  CC      arch/x86/kernel/signal.o
  CC      fs/configfs/mount.o
  CC      fs/configfs/item.o
  CC      lib/zstd/compress/zstd_compress_literals.o
  CC      lib/zstd/compress/zstd_compress_sequences.o
  CC      kernel/dma/contiguous.o
  CC      sound/core/hrtimer.o
  CC [M]  drivers/video/fbdev/core/fbmem.o
  CC [M]  net/ipv4/netfilter/iptable_mangle.o
  CC [M]  net/ipv4/netfilter/iptable_nat.o
  CC      kernel/irq/migration.o
  AR      kernel/entry/built-in.a
  CC      io_uring/timeout.o
  CC      drivers/acpi/acpica/dsargs.o
  AR      arch/x86/mm/built-in.a
  CC      drivers/video/cmdline.o
  CC      drivers/acpi/acpica/dscontrol.o
  CC      arch/x86/events/intel/uncore_discovery.o
  CC      mm/swap.o
  CC      mm/truncate.o
  CC      lib/xz/xz_dec_lzma2.o
  CC      kernel/dma/swiotlb.o
  CC      net/ethtool/channels.o
  CC      drivers/acpi/numa/srat.o
  CC      kernel/dma/remap.o
  CC      sound/core/seq_device.o
  AR      fs/configfs/built-in.a
  CC      fs/proc/generic.o
  CC [M]  sound/core/control_led.o
  AR      kernel/locking/built-in.a
  CC      fs/ext4/balloc.o
  CC      drivers/pci/rom.o
  CC [M]  net/ipv4/netfilter/ipt_REJECT.o
  CC      lib/xz/xz_dec_bcj.o
  CC      kernel/irq/cpuhotplug.o
  CC      fs/ext4/bitmap.o
  CC      arch/x86/kernel/signal_64.o
  CC      kernel/time/time.o
  CC      drivers/acpi/acpica/dsdebug.o
  CC      kernel/futex/core.o
  CC [M]  net/netfilter/ipvs/ip_vs_est.o
  AR      kernel/sched/built-in.a
  CC      kernel/cgroup/cgroup.o
  CC      io_uring/sqpoll.o
  CC      crypto/cmac.o
  CC      kernel/module/strict_rwx.o
  CC      crypto/hmac.o
  CC [M]  drivers/video/fbdev/core/fbcmap.o
  CC      drivers/acpi/acpica/dsfield.o
  CC      net/unix/af_unix.o
  CC      kernel/trace/trace_clock.o
  CC      kernel/trace/ftrace.o
  AR      lib/xz/built-in.a
  CC      kernel/time/timer.o
  CC      net/unix/garbage.o
  CC      arch/x86/events/intel/cstate.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto.o
  CC      net/unix/sysctl_net_unix.o
  CC      drivers/pci/setup-res.o
  CC      kernel/events/core.o
  CC      kernel/irq/pm.o
  CC      kernel/bpf/core.o
  AR      drivers/acpi/numa/built-in.a
  CC      io_uring/fdinfo.o
  CC      lib/zstd/compress/zstd_compress_superblock.o
  CC      drivers/acpi/apei/apei-base.o
  CC      drivers/acpi/apei/hest.o
  CC      net/ipv4/inetpeer.o
  CC      net/ipv4/protocol.o
  CC      crypto/vmac.o
  CC      crypto/xcbc.o
  CC      fs/proc/array.o
  CC [M]  sound/core/hwdep.o
  CC      kernel/module/kmod.o
  CC      lib/raid6/algos.o
  CC      net/ethtool/coalesce.o
  CC      lib/fonts/fonts.o
  AR      kernel/dma/built-in.a
  CC      lib/argv_split.o
  CC      net/xfrm/xfrm_input.o
  CC      drivers/acpi/acpica/dsinit.o
  CC      kernel/futex/syscalls.o
  CC      drivers/acpi/acpica/dsmethod.o
  CC      drivers/acpi/apei/erst.o
  CC [M]  sound/pci/hda/patch_analog.o
  CC [M]  drivers/video/fbdev/core/modedb.o
  CC [M]  drivers/video/fbdev/core/fbcvt.o
  CC      lib/fonts/font_8x8.o
  CC      kernel/irq/msi.o
  CC      drivers/pci/irq.o
  AR      arch/x86/events/intel/built-in.a
  CC      drivers/pci/vpd.o
  CC      crypto/crypto_null.o
  CC      arch/x86/events/rapl.o
  CC      lib/fonts/font_8x16.o
  AR      kernel/rcu/built-in.a
  CC      net/ipv4/ip_input.o
  CC      drivers/video/nomodeset.o
  CC      net/unix/diag.o
  CC      drivers/video/hdmi.o
  CC      fs/ext4/block_validity.o
  CC      kernel/irq/affinity.o
  CC      mm/vmscan.o
  CC      kernel/cgroup/rstat.o
  AR      net/ipv6/netfilter/built-in.a
  CC      lib/raid6/recov.o
  CC [M]  sound/core/pcm.o
  CC [M]  net/ipv6/netfilter/nf_defrag_ipv6_hooks.o
  CC      kernel/module/tree_lookup.o
  CC      drivers/acpi/acpica/dsmthdat.o
  CC [M]  net/ipv6/netfilter/nf_conntrack_reasm.o
  CC [M]  net/netfilter/ipvs/ip_vs_pe.o
  CC      io_uring/tctx.o
  AR      lib/fonts/built-in.a
  CC      io_uring/poll.o
  CC      lib/zstd/compress/zstd_double_fast.o
  CC      lib/zstd/compress/zstd_fast.o
  CC      kernel/trace/ring_buffer.o
  CC      mm/shmem.o
  CC      mm/util.o
  CC      crypto/md5.o
  CC      fs/proc/fd.o
  CC      kernel/futex/pi.o
  CC      net/ethtool/pause.o
  CC [M]  sound/pci/hda/patch_hdmi.o
  HOSTCC  lib/raid6/mktables
  CC      drivers/pci/setup-bus.o
  CC      drivers/acpi/apei/bert.o
  CC      lib/zstd/compress/zstd_lazy.o
  CC      net/core/utils.o
  CC      drivers/acpi/acpica/dsobject.o
  CC      drivers/pci/vc.o
  CC [M]  drivers/video/fbdev/core/fb_cmdline.o
  CC      mm/mmzone.o
  CC      arch/x86/events/msr.o
  UNROLL  lib/raid6/int1.c
  UNROLL  lib/raid6/int2.c
  UNROLL  lib/raid6/int4.c
  UNROLL  lib/raid6/int8.c
  CC      kernel/module/debug_kmemleak.o
  UNROLL  lib/raid6/int16.c
  UNROLL  lib/raid6/int32.c
  CC      lib/raid6/recov_ssse3.o
  CC      net/ipv4/ip_fragment.o
  CC      block/blk-mq-tag.o
  CC      kernel/module/kallsyms.o
  CC      fs/ext4/dir.o
  CC      kernel/module/procfs.o
  CC      net/ipv4/ip_forward.o
  CC [M]  sound/core/pcm_native.o
  CC      crypto/sha1_generic.o
  CC      kernel/irq/matrix.o
  CC      kernel/time/hrtimer.o
  CC      arch/x86/kernel/cpu/feat_ctl.o
  CC      drivers/acpi/acpica/dsopcode.o
  CC      io_uring/cancel.o
  CC      net/xfrm/xfrm_output.o
  CC      kernel/futex/requeue.o
  CC      drivers/acpi/apei/ghes.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto_tcp.o
  CC      net/xfrm/xfrm_sysctl.o
  CC      fs/proc/proc_tty.o
  CC [M]  sound/core/pcm_lib.o
  CC      crypto/sha256_generic.o
  CC      net/ethtool/eee.o
  CC      net/xfrm/xfrm_replay.o
  CC      lib/raid6/recov_avx2.o
  CC      lib/raid6/mmx.o
  AR      arch/x86/events/built-in.a
  CC      lib/raid6/sse1.o
  CC [M]  drivers/video/fbdev/core/fb_io_fops.o
  CC      net/xfrm/xfrm_device.o
  CC      lib/raid6/sse2.o
  CC      io_uring/kbuf.o
  CC      drivers/acpi/acpica/dspkginit.o
  CC      io_uring/rsrc.o
  CC [M]  drivers/video/fbdev/core/fb_backlight.o
  CC      arch/x86/kernel/cpu/intel.o
  CC      kernel/module/sysfs.o
  CC      net/unix/scm.o
  LD [M]  net/ipv6/netfilter/nf_defrag_ipv6.o
  CC      lib/zstd/compress/zstd_ldm.o
  CC      net/ipv6/af_inet6.o
  CC      block/blk-stat.o
  CC      net/xfrm/xfrm_algo.o
  CC      fs/jbd2/transaction.o
  AR      kernel/bpf/built-in.a
  CC      fs/jbd2/commit.o
  CC      kernel/futex/waitwake.o
  CC      lib/bug.o
  CC      crypto/sha512_generic.o
  CC      fs/proc/cmdline.o
  CC      fs/ext4/ext4_jbd2.o
  CC      drivers/acpi/acpica/dsutils.o
  CC      lib/raid6/avx2.o
  CC      net/ipv4/ip_options.o
  CC      fs/ramfs/inode.o
  CC      lib/zstd/compress/zstd_opt.o
  CC      block/blk-mq-sysfs.o
  CC      fs/ext4/extents.o
  CC      drivers/pci/mmap.o
  CC [M]  drivers/video/fbdev/core/fbmon.o
  CC [M]  drivers/video/fbdev/core/fb_defio.o
  CC      fs/ext4/extents_status.o
  AR      kernel/irq/built-in.a
  AR      kernel/module/built-in.a
  CC      lib/raid6/avx512.o
  CC      fs/ext4/file.o
  CC      net/ethtool/tsinfo.o
  AR      kernel/futex/built-in.a
  CC      kernel/fork.o
  CC      fs/proc/consoles.o
  AR      drivers/acpi/apei/built-in.a
  CC      net/ethtool/cabletest.o
  CC [M]  arch/x86/kvm/emulate.o
  CC      net/ipv4/ip_output.o
  CC      kernel/time/timekeeping.o
  AR      net/unix/built-in.a
  CC [M]  sound/pci/hda/hda_eld.o
  CC      kernel/time/ntp.o
  CC      drivers/acpi/acpica/dswexec.o
  CC [M]  sound/pci/hda/hda_intel.o
  AR      sound/mips/built-in.a
  CC      arch/x86/kernel/traps.o
  CC      arch/x86/kernel/cpu/intel_pconfig.o
  CC [M]  net/netfilter/ipvs/ip_vs_proto_udp.o
  CC      crypto/sha3_generic.o
  CC      net/xfrm/xfrm_user.o
  CC [M]  sound/core/pcm_misc.o
  CC      fs/proc/cpuinfo.o
  CC      net/ipv6/anycast.o
  CC      arch/x86/kernel/cpu/tsx.o
  CC      drivers/pci/setup-irq.o
  CC [M]  net/netfilter/ipvs/ip_vs_nfct.o
  CC [M]  sound/core/pcm_memory.o
  CC      kernel/trace/trace.o
  CC      fs/ramfs/file-mmu.o
  CC      block/blk-mq-cpumap.o
  CC [M]  sound/core/memalloc.o
  CC      lib/raid6/recov_avx512.o
  CC      drivers/acpi/acpica/dswload.o
  CC      arch/x86/kernel/cpu/intel_epb.o
  CC      fs/jbd2/recovery.o
  CC      mm/vmstat.o
  CC      io_uring/rw.o
  CC      net/core/link_watch.o
  CC [M]  net/netfilter/ipvs/ip_vs_rr.o
  CC      fs/ext4/fsmap.o
  CC      net/packet/af_packet.o
  CC      crypto/blake2b_generic.o
  CC      net/key/af_key.o
  CC      net/packet/diag.o
  CC      fs/jbd2/checkpoint.o
  CC      fs/proc/devices.o
  CC      fs/proc/interrupts.o
  CC      net/ipv6/ip6_output.o
  LD [M]  sound/pci/hda/snd-hda-codec.o
  CC      kernel/cgroup/namespace.o
  CC      net/ipv6/ip6_input.o
  CC      drivers/pci/proc.o
  CC      net/ipv6/addrconf.o
  CC [M]  drivers/video/fbdev/core/fb_chrdev.o
  CC      net/ethtool/tunnels.o
  AR      fs/ramfs/built-in.a
  CC      net/ipv6/addrlabel.o
  CC      arch/x86/kernel/cpu/amd.o
  CC      drivers/acpi/acpica/dswload2.o
  CC      arch/x86/kernel/cpu/hygon.o
  CC      block/blk-mq-sched.o
  CC      net/core/filter.o
  CC [M]  sound/core/pcm_timer.o
  TABLE   lib/raid6/tables.c
  CC      lib/raid6/int1.o
  CC      lib/raid6/int2.o
  CC      fs/proc/loadavg.o
  CC      fs/jbd2/revoke.o
  CC      drivers/acpi/acpica/dswscope.o
  CC      net/core/sock_diag.o
  CC      kernel/time/clocksource.o
  LD [M]  net/netfilter/ipvs/ip_vs.o
  CC      net/ipv6/route.o
  LD [M]  sound/core/snd-ctl-led.o
  LD [M]  sound/core/snd-hwdep.o
  AR      sound/core/built-in.a
  CC      kernel/cgroup/cgroup-v1.o
  CC      net/ipv6/ip6_fib.o
  CC      fs/proc/meminfo.o
  CC      net/ipv6/ipv6_sockglue.o
  CC      kernel/time/jiffies.o
  CC      kernel/cgroup/freezer.o
  CC      crypto/ecb.o
  CC      fs/ext4/fsync.o
  LD [M]  sound/pci/hda/snd-hda-codec-generic.o
  CC      net/core/dev_ioctl.o
  LD [M]  sound/pci/hda/snd-hda-codec-realtek.o
  CC      drivers/pci/slot.o
  LD [M]  sound/pci/hda/snd-hda-codec-analog.o
  LD [M]  sound/pci/hda/snd-hda-codec-hdmi.o
  CC      fs/proc/stat.o
  CC      net/core/tso.o
  LD [M]  sound/core/snd-pcm.o
  LD [M]  sound/pci/hda/snd-hda-intel.o
  CC      net/ipv6/ndisc.o
  AR      sound/pci/mixart/built-in.a
  CC      net/ipv6/udp.o
  CC [M]  net/netfilter/nf_conntrack_core.o
  AR      sound/pci/nm256/built-in.a
  CC [M]  net/netfilter/nf_conntrack_standalone.o
  AR      sound/pci/oxygen/built-in.a
  CC      drivers/acpi/acpica/dswstate.o
  AR      sound/pci/pcxhr/built-in.a
  AR      sound/pci/riptide/built-in.a
  AR      sound/pci/rme9652/built-in.a
  AR      sound/pci/trident/built-in.a
  CC      lib/zstd/zstd_decompress_module.o
  AR      sound/pci/ymfpci/built-in.a
  AR      sound/pci/vx222/built-in.a
  CC [M]  drivers/video/fbdev/core/fb_procfs.o
  AR      sound/pci/built-in.a
  CC      lib/raid6/int4.o
  AR      sound/soc/built-in.a
  AR      sound/atmel/built-in.a
  CC [M]  drivers/video/fbdev/core/fbsysfs.o
  CC      arch/x86/kernel/cpu/centaur.o
  AR      sound/hda/built-in.a
  CC      block/ioctl.o
  CC [M]  sound/hda/hda_bus_type.o
  CC      crypto/cbc.o
  CC      net/ethtool/fec.o
  CC [M]  sound/hda/hdac_bus.o
  CC      mm/backing-dev.o
  CC      fs/jbd2/journal.o
  CC      io_uring/opdef.o
  CC      io_uring/notif.o
  CC      kernel/trace/trace_output.o
  CC      kernel/time/timer_list.o
  CC      drivers/acpi/acpica/evevent.o
  CC      kernel/trace/trace_seq.o
  CC      fs/proc/uptime.o
  CC      drivers/pci/pci-acpi.o
  CC      net/ipv4/ip_sockglue.o
  CC      kernel/trace/trace_stat.o
  CC      net/ipv6/udplite.o
  CC      kernel/exec_domain.o
  CC      arch/x86/kernel/cpu/zhaoxin.o
  CC      crypto/pcbc.o
  CC      net/ipv6/raw.o
  CC      net/ipv6/icmp.o
  AR      net/xfrm/built-in.a
  CC      lib/raid6/int8.o
  CC      kernel/panic.o
  CC      kernel/cgroup/legacy_freezer.o
  CC      lib/zstd/decompress/huf_decompress.o
  CC      fs/ext4/hash.o
  CC      drivers/acpi/acpica/evgpe.o
  CC      crypto/cts.o
  CC [M]  drivers/video/fbdev/core/fbcon.o
  AR      sound/x86/built-in.a
  AR      sound/xen/built-in.a
  AR      sound/virtio/built-in.a
  CC      fs/proc/util.o
  CC      sound/sound_core.o
  CC      kernel/time/timeconv.o
  CC      lib/zstd/decompress/zstd_ddict.o
  CC      block/genhd.o
  CC      arch/x86/kernel/cpu/perfctr-watchdog.o
  CC [M]  sound/hda/hdac_device.o
  CC      kernel/time/timecounter.o
  CC      net/ethtool/eeprom.o
  CC [M]  net/netfilter/nf_conntrack_expect.o
  CC      net/ethtool/stats.o
  CC      net/ethtool/phc_vclocks.o
  CC      fs/ext4/ialloc.o
  CC      sound/last.o
  CC      mm/mm_init.o
  CC      io_uring/io-wq.o
  CC      kernel/cgroup/pids.o
  AR      net/key/built-in.a
  CC      drivers/acpi/acpica/evgpeblk.o
  CC      kernel/time/alarmtimer.o
  CC      kernel/time/posix-timers.o
  CC      drivers/acpi/acpica/evgpeinit.o
  AR      net/bridge/netfilter/built-in.a
  CC      net/bridge/br.o
  CC      fs/proc/version.o
  CC      lib/raid6/int16.o
  CC      net/bridge/br_device.o
  CC      kernel/cpu.o
  CC      net/ipv6/mcast.o
  CC      drivers/acpi/acpica/evgpeutil.o
  CC      drivers/pci/quirks.o
  CC      crypto/lrw.o
  CC      kernel/cgroup/cpuset.o
  CC      kernel/events/ring_buffer.o
  CC [M]  drivers/video/fbdev/core/bitblit.o
  CC      arch/x86/kernel/cpu/vmware.o
  CC      drivers/pci/ats.o
  CC      kernel/events/callchain.o
  CC      mm/percpu.o
  CC      drivers/acpi/acpica/evglock.o
  CC      lib/zstd/decompress/zstd_decompress.o
  CC      net/ipv6/reassembly.o
  CC [M]  sound/hda/hdac_sysfs.o
  CC      fs/proc/softirqs.o
  CC [M]  sound/hda/hdac_regmap.o
  CC      lib/raid6/int32.o
  CC      net/ipv6/tcp_ipv6.o
  CC      drivers/pci/iov.o
  CC      net/ipv6/ping.o
  CC      lib/zstd/decompress/zstd_decompress_block.o
  CC      net/core/sock_reuseport.o
  AR      net/packet/built-in.a
  CC      arch/x86/kernel/cpu/hypervisor.o
  AR      net/dsa/built-in.a
  CC      block/ioprio.o
  CC [M]  net/sunrpc/auth_gss/auth_gss.o
  CC      block/badblocks.o
  CC      net/ethtool/mm.o
  CC      drivers/acpi/acpica/evhandler.o
  CC      kernel/trace/trace_printk.o
  CC      net/ipv6/exthdrs.o
  CC      crypto/xts.o
  CC [M]  net/netfilter/nf_conntrack_helper.o
  CC      kernel/exit.o
  CC      arch/x86/kernel/cpu/mshyperv.o
  CC      mm/slab_common.o
  CC      fs/proc/namespaces.o
  CC      net/ipv4/inet_hashtables.o
  CC      mm/compaction.o
  CC      net/8021q/vlan_core.o
  CC      fs/proc/self.o
  CC      net/ipv4/inet_timewait_sock.o
  CC      net/ipv6/datagram.o
  CC      lib/raid6/tables.o
  CC      lib/zstd/zstd_common_module.o
  CC      net/bridge/br_fdb.o
  CC      kernel/events/hw_breakpoint.o
  CC [M]  sound/hda/hdac_controller.o
  CC [M]  drivers/video/fbdev/core/softcursor.o
  CC      drivers/acpi/acpica/evmisc.o
  CC      kernel/time/posix-cpu-timers.o
  AR      io_uring/built-in.a
  CC      mm/show_mem.o
  CC [M]  sound/hda/hdac_stream.o
  CC      net/bridge/br_forward.o
  AR      fs/jbd2/built-in.a
  CC      net/ethtool/module.o
  CC      crypto/ctr.o
  CC      lib/zstd/common/debug.o
  CC      kernel/trace/pid_list.o
  CC      kernel/trace/trace_sched_switch.o
  CC      block/blk-rq-qos.o
  AR      drivers/acpi/pmic/built-in.a
  CC      block/disk-events.o
  CC      kernel/softirq.o
  CC      drivers/pnp/pnpacpi/core.o
  CC      drivers/pnp/core.o
  CC      fs/proc/thread_self.o
  CC      arch/x86/kernel/cpu/capflags.o
  CC      drivers/acpi/dptf/int340x_thermal.o
  AR      arch/x86/kernel/cpu/built-in.a
  CC      drivers/acpi/acpica/evregion.o
  AR      lib/raid6/built-in.a
  CC      fs/ext4/indirect.o
  CC      arch/x86/kernel/idt.o
  CC      fs/proc/proc_sysctl.o
  CC      fs/proc/proc_net.o
  CC      net/ipv6/ip6_flowlabel.o
  CC      crypto/gcm.o
  CC [M]  drivers/video/fbdev/core/tileblit.o
  CC      net/core/fib_notifier.o
  CC      net/ipv4/inet_connection_sock.o
  CC [M]  arch/x86/kvm/i8259.o
  CC [M]  net/netfilter/nf_conntrack_proto.o
  CC      kernel/resource.o
  CC      drivers/pci/pci-label.o
  CC      arch/x86/kernel/irq.o
  AR      drivers/acpi/dptf/built-in.a
  CC      drivers/pnp/pnpacpi/rsparser.o
  CC      arch/x86/kernel/irq_64.o
  CC      mm/shmem_quota.o
  CC [M]  net/8021q/vlan.o
  CC [M]  sound/hda/array.o
  CC [M]  net/8021q/vlan_dev.o
  CC      net/ethtool/pse-pd.o
  CC      block/blk-ia-ranges.o
  CC      lib/zstd/common/entropy_common.o
  CC      drivers/acpi/acpica/evrgnini.o
  CC      net/ipv6/inet6_connection_sock.o
  CC      mm/interval_tree.o
  CC      kernel/trace/trace_functions.o
  CC      kernel/trace/trace_preemptirq.o
  CC      kernel/time/posix-clock.o
  CC      net/ethtool/plca.o
  CC      kernel/events/uprobes.o
  CC      mm/list_lru.o
  CC      kernel/trace/trace_nop.o
  CC      kernel/time/itimer.o
  CC [M]  net/8021q/vlan_netlink.o
  CC      net/ipv6/udp_offload.o
  CC [M]  drivers/video/fbdev/core/fb_logo.o
  CC      net/ipv6/seg6.o
  CC      lib/zstd/common/error_private.o
  AR      drivers/amba/built-in.a
  CC      net/bridge/br_if.o
  CC      drivers/acpi/acpica/evsci.o
  AR      kernel/cgroup/built-in.a
  CC [M]  net/8021q/vlanproc.o
  AR      drivers/clk/actions/built-in.a
  CC      net/dcb/dcbnl.o
  CC [M]  sound/hda/hdmi_chmap.o
  CC      drivers/pci/pci-stub.o
  AR      drivers/clk/analogbits/built-in.a
  AR      drivers/clk/bcm/built-in.a
  CC      net/dcb/dcbevent.o
  AR      drivers/clk/imgtec/built-in.a
  CC [M]  drivers/video/fbdev/core/cfbfillrect.o
  CC      kernel/sysctl.o
  AR      drivers/clk/imx/built-in.a
  CC [M]  net/sunrpc/auth_gss/gss_generic_token.o
  AR      drivers/clk/ingenic/built-in.a
  AR      drivers/clk/mediatek/built-in.a
  CC      block/early-lookup.o
  AR      drivers/clk/microchip/built-in.a
  CC      arch/x86/kernel/dumpstack_64.o
  AR      drivers/clk/mstar/built-in.a
  CC      crypto/pcrypt.o
  AR      drivers/clk/mvebu/built-in.a
  AR      drivers/clk/ralink/built-in.a
  AR      drivers/clk/renesas/built-in.a
  CC      drivers/acpi/tables.o
  AR      drivers/clk/socfpga/built-in.a
  AR      drivers/clk/sprd/built-in.a
  AR      drivers/clk/starfive/built-in.a
  CC      drivers/pnp/card.o
  AR      drivers/clk/sunxi-ng/built-in.a
  AR      drivers/clk/ti/built-in.a
  AR      drivers/clk/versatile/built-in.a
  AR      drivers/pnp/pnpacpi/built-in.a
  CC      drivers/pnp/driver.o
  CC      drivers/clk/x86/clk-lpss-atom.o
  CC      kernel/trace/trace_functions_graph.o
  CC      drivers/clk/x86/clk-pmc-atom.o
  CC      drivers/acpi/blacklist.o
  CC      drivers/acpi/acpica/evxface.o
  CC      drivers/acpi/osi.o
  CC      kernel/time/clockevents.o
  CC [M]  arch/x86/kvm/irq.o
  CC      kernel/trace/fgraph.o
  CC      net/ipv6/fib6_notifier.o
  AR      net/8021q/built-in.a
  CC      fs/proc/kcore.o
  CC      fs/proc/kmsg.o
  CC      net/ipv6/rpl.o
  CC      drivers/acpi/osl.o
  AR      drivers/clk/xilinx/built-in.a
  CC      fs/ext4/inline.o
  CC      drivers/clk/clk-devres.o
  CC [M]  sound/hda/trace.o
  CC [M]  net/netfilter/nf_conntrack_proto_generic.o
  CC      drivers/pci/vgaarb.o
  CC [M]  drivers/video/fbdev/core/cfbcopyarea.o
  CC      net/ipv4/tcp.o
  CC      kernel/capability.o
  AR      net/ethtool/built-in.a
  CC      arch/x86/kernel/time.o
  CC      lib/zstd/common/fse_decompress.o
  CC      lib/buildid.o
  CC      arch/x86/kernel/ioport.o
  CC      block/bsg.o
  CC [M]  net/sunrpc/auth_gss/gss_mech_switch.o
  CC      crypto/cryptd.o
  CC      crypto/des_generic.o
  CC      arch/x86/kernel/dumpstack.o
  CC      kernel/ptrace.o
  CC [M]  drivers/video/fbdev/core/cfbimgblt.o
  CC      net/ipv6/ioam6.o
  CC      net/l3mdev/l3mdev.o
  LD [M]  net/8021q/8021q.o
  CC      arch/x86/kernel/nmi.o
  AR      drivers/clk/x86/built-in.a
  CC [M]  arch/x86/kvm/lapic.o
  CC      block/bsg-lib.o
  CC      arch/x86/kernel/ldt.o
  CC      mm/workingset.o
  CC      block/blk-cgroup.o
  CC      drivers/acpi/acpica/evxfevnt.o
  CC      mm/debug.o
  CC      block/blk-cgroup-rwstat.o
  CC      drivers/clk/clk-bulk.o
  CC      drivers/clk/clkdev.o
  CC      drivers/pnp/resource.o
  CC      kernel/time/tick-common.o
  CC      net/ipv6/sysctl_net_ipv6.o
  AS      arch/x86/kernel/ibt_selftest.o
  CC      lib/cmdline.o
  CC [M]  arch/x86/kvm/i8254.o
  CC      crypto/aes_generic.o
  CC      net/bridge/br_input.o
  CC      net/ipv6/xfrm6_policy.o
  CC      net/bridge/br_ioctl.o
  CC      lib/cpumask.o
  CC      net/ipv6/xfrm6_state.o
  CC      crypto/crc32c_generic.o
  CC      fs/proc/page.o
  CC      kernel/trace/blktrace.o
  CC      mm/gup.o
  CC      net/ipv6/xfrm6_input.o
  CC      drivers/acpi/acpica/evxfgpe.o
  CC [M]  sound/hda/hdac_component.o
  CC      arch/x86/kernel/setup.o
  AR      kernel/events/built-in.a
  CC      fs/ext4/inode.o
  CC      net/handshake/alert.o
  CC [M]  net/netfilter/nf_conntrack_proto_tcp.o
  CC      kernel/user.o
  CC      fs/ext4/ioctl.o
  CC      net/handshake/genl.o
  CC      fs/ext4/mballoc.o
  CC      drivers/clk/clk.o
  CC      block/blk-throttle.o
  CC      kernel/signal.o
  CC      block/mq-deadline.o
  AR      net/l3mdev/built-in.a
  CC      kernel/sys.o
  CC      block/kyber-iosched.o
  AR      drivers/pci/built-in.a
  CC [M]  drivers/video/fbdev/core/sysfillrect.o
  CC      block/bfq-iosched.o
  CC      kernel/umh.o
  CC      lib/ctype.o
  CC      lib/dec_and_lock.o
  CC      drivers/acpi/utils.o
  CC      mm/mmap_lock.o
  AR      net/dcb/built-in.a
  CC      crypto/crct10dif_common.o
  CC [M]  net/bluetooth/af_bluetooth.o
  CC      crypto/crct10dif_generic.o
  CC [M]  net/sunrpc/auth_gss/svcauth_gss.o
  CC      net/core/xdp.o
  CC      kernel/time/tick-broadcast.o
  CC [M]  drivers/video/fbdev/core/syscopyarea.o
  CC      net/ipv4/tcp_input.o
  CC      drivers/pnp/manager.o
  CC      drivers/acpi/acpica/evxfregn.o
  CC [M]  drivers/video/fbdev/core/sysimgblt.o
  CC [M]  net/bluetooth/hci_core.o
  CC [M]  net/bluetooth/hci_conn.o
  CC [M]  sound/hda/hdac_i915.o
  CC      drivers/acpi/reboot.o
  CC      crypto/authenc.o
  CC      fs/ext4/migrate.o
  CC      kernel/trace/trace_events.o
  CC      crypto/authencesn.o
  CC      kernel/workqueue.o
  AR      fs/proc/built-in.a
  CC [M]  sound/hda/intel-dsp-config.o
  CC      kernel/time/tick-broadcast-hrtimer.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_upcall.o
  CC      drivers/acpi/acpica/exconcat.o
  CC      crypto/lzo.o
  CC      arch/x86/kernel/x86_init.o
  CC [M]  net/dns_resolver/dns_key.o
  CC      drivers/pnp/support.o
  CC [M]  net/dns_resolver/dns_query.o
  CC      drivers/acpi/nvs.o
  CC [M]  net/sunrpc/auth_gss/gss_rpc_xdr.o
  CC      net/handshake/netlink.o
  CC      net/ipv6/xfrm6_output.o
  CC      net/bridge/br_stp.o
  CC      arch/x86/kernel/i8259.o
  CC      kernel/time/tick-oneshot.o
  CC      kernel/time/tick-sched.o
  CC      net/ipv4/tcp_output.o
  CC      net/ipv6/xfrm6_protocol.o
  CC [M]  drivers/video/fbdev/core/fb_sys_fops.o
  CC      mm/highmem.o
  CC      net/bridge/br_stp_bpdu.o
  CC      drivers/acpi/wakeup.o
  CC      drivers/acpi/acpica/exconfig.o
  CC [M]  sound/hda/intel-nhlt.o
  CC      kernel/pid.o
  CC      drivers/pnp/interface.o
  CC [M]  arch/x86/kvm/ioapic.o
  CC      crypto/lzo-rle.o
  CC      kernel/time/vsyscall.o
  LD [M]  drivers/video/fbdev/core/fb.o
  CC      drivers/acpi/sleep.o
  CC      kernel/time/timekeeping_debug.o
  CC      drivers/acpi/acpica/exconvrt.o
  CC      block/bfq-wf2q.o
  CC      drivers/acpi/acpica/excreate.o
  CC [M]  net/netfilter/nf_conntrack_proto_udp.o
  CC      kernel/time/namespace.o
  CC      arch/x86/kernel/irqinit.o
  CC      arch/x86/kernel/jump_label.o
  CC [M]  sound/hda/intel-sdw-acpi.o
  LD [M]  net/dns_resolver/dns_resolver.o
  LD [M]  sound/hda/snd-hda-core.o
  CC      net/devres.o
  CC      drivers/acpi/device_sysfs.o
  CC [M]  net/sunrpc/auth_gss/trace.o
  CC      drivers/acpi/acpica/exdebug.o
  AR      drivers/video/fbdev/core/built-in.a
  CC      drivers/acpi/device_pm.o
  CC      drivers/acpi/acpica/exdump.o
  CC      net/core/flow_offload.o
  CC      drivers/acpi/proc.o
  CC      fs/ext4/mmp.o
  AR      drivers/video/fbdev/built-in.a
  AR      drivers/video/built-in.a
  LD [M]  sound/hda/snd-intel-dspcfg.o
  CC      drivers/dma/dw/core.o
  CC      mm/memory.o
  CC      crypto/lz4.o
  CC      drivers/dma/dw/dw.o
  CC      crypto/lz4hc.o
  CC      drivers/pnp/quirks.o
  CC      net/handshake/request.o
  CC      drivers/dma/dw/idma32.o
  CC      arch/x86/kernel/irq_work.o
  CC      arch/x86/kernel/probe_roms.o
  LD [M]  sound/hda/snd-intel-sdw-acpi.o
  AR      sound/built-in.a
  CC      net/ipv6/netfilter.o
  CC      mm/mincore.o
  CC      net/ipv6/fib6_rules.o
  CC      mm/mlock.o
  CC      drivers/acpi/acpica/exfield.o
  CC      mm/mmap.o
  AR      kernel/time/built-in.a
  CC      arch/x86/kernel/sys_ia32.o
  CC      drivers/acpi/bus.o
  CC      drivers/clk/clk-divider.o
  CC      arch/x86/kernel/signal_32.o
  CC      crypto/xxhash_generic.o
  CC      crypto/rng.o
  CC      net/bridge/br_stp_if.o
  CC      drivers/acpi/glue.o
  CC      drivers/acpi/acpica/exfldio.o
  CC [M]  arch/x86/kvm/irq_comm.o
  CC      crypto/drbg.o
  CC      crypto/jitterentropy.o
  CC      crypto/jitterentropy-kcapi.o
  CC      net/bridge/br_stp_timer.o
  CC      drivers/clk/clk-fixed-factor.o
  CC      arch/x86/kernel/sys_x86_64.o
  CC      drivers/acpi/scan.o
  CC      net/bridge/br_netlink.o
  CC      lib/decompress.o
  CC      lib/decompress_bunzip2.o
  CC      drivers/acpi/acpica/exmisc.o
  CC      lib/decompress_inflate.o
  CC      drivers/pnp/system.o
  CC [M]  net/netfilter/nf_conntrack_proto_icmp.o
  CC      kernel/trace/trace_export.o
  CC      crypto/ghash-generic.o
  CC      crypto/af_alg.o
  CC      net/bridge/br_netlink_tunnel.o
  CC      lib/zstd/common/zstd_common.o
  AR      drivers/soc/apple/built-in.a
  AR      drivers/soc/aspeed/built-in.a
  AR      drivers/pmdomain/actions/built-in.a
  AR      drivers/soc/bcm/built-in.a
  CC      net/core/gro.o
  CC      net/core/netdev-genl.o
  AR      drivers/soc/fsl/built-in.a
  AR      drivers/pmdomain/amlogic/built-in.a
  CC      net/core/netdev-genl-gen.o
  AR      drivers/soc/fujitsu/built-in.a
  AR      drivers/pmdomain/apple/built-in.a
  AR      lib/zstd/built-in.a
  AR      drivers/soc/hisilicon/built-in.a
  AR      drivers/pmdomain/bcm/built-in.a
  CC      net/core/gso.o
  AR      drivers/pmdomain/imx/built-in.a
  CC      block/bfq-cgroup.o
  CC      crypto/algif_hash.o
  AR      drivers/soc/imx/built-in.a
  AR      drivers/pmdomain/mediatek/built-in.a
  CC      crypto/algif_skcipher.o
  AR      drivers/soc/ixp4xx/built-in.a
  CC      drivers/clk/clk-fixed-rate.o
  AR      drivers/pmdomain/qcom/built-in.a
  AR      drivers/soc/loongson/built-in.a
  AR      drivers/soc/mediatek/built-in.a
  AR      drivers/pmdomain/renesas/built-in.a
  CC      drivers/dma/dw/acpi.o
  AR      drivers/pmdomain/rockchip/built-in.a
  AR      drivers/soc/microchip/built-in.a
  CC      drivers/acpi/resource.o
  AR      drivers/pmdomain/samsung/built-in.a
  AR      drivers/soc/nuvoton/built-in.a
  CC      drivers/virtio/virtio.o
  AR      drivers/pmdomain/st/built-in.a
  AR      drivers/soc/pxa/built-in.a
  CC      drivers/acpi/acpica/exmutex.o
  AR      drivers/soc/amlogic/built-in.a
  AR      drivers/pmdomain/starfive/built-in.a
  CC      net/handshake/tlshd.o
  CC      drivers/tty/vt/vt_ioctl.o
  CC      drivers/tty/hvc/hvc_console.o
  AR      drivers/soc/qcom/built-in.a
  AR      drivers/pmdomain/sunxi/built-in.a
  CC      drivers/tty/serial/8250/8250_core.o
  AR      drivers/soc/renesas/built-in.a
  AR      drivers/pmdomain/tegra/built-in.a
  CC      crypto/xor.o
  AR      drivers/soc/rockchip/built-in.a
  AR      drivers/pmdomain/ti/built-in.a
  AR      drivers/soc/sifive/built-in.a
  AR      drivers/pmdomain/xilinx/built-in.a
  AR      drivers/pnp/built-in.a
  CC      lib/decompress_unlz4.o
  AR      drivers/pmdomain/built-in.a
  AR      drivers/soc/sunxi/built-in.a
  CC      drivers/virtio/virtio_ring.o
  CC      arch/x86/kernel/espfix_64.o
  AR      drivers/soc/ti/built-in.a
  AR      drivers/soc/xilinx/built-in.a
  CC      drivers/virtio/virtio_anchor.o
  AR      drivers/soc/built-in.a
  CC      drivers/char/hw_random/core.o
  CC      kernel/task_work.o
  CC      drivers/acpi/acpi_processor.o
  CC      net/ipv6/proc.o
  CC      kernel/trace/trace_event_perf.o
  AR      drivers/tty/ipwireless/built-in.a
  CC      net/ipv6/syncookies.o
  CC      drivers/virtio/virtio_pci_modern_dev.o
  CC      lib/decompress_unlzma.o
  CC [M]  net/bluetooth/hci_event.o
  CC [M]  arch/x86/kvm/cpuid.o
  CC      kernel/extable.o
  CC      drivers/char/hw_random/intel-rng.o
  CC      drivers/clk/clk-gate.o
  CC      drivers/acpi/acpica/exnames.o
  CC      net/core/net-sysfs.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_mech.o
  CC      drivers/acpi/acpica/exoparg1.o
  CC      drivers/dma/dw/pci.o
  CC      net/core/page_pool.o
  CC      block/blk-mq-pci.o
  CC      fs/ext4/move_extent.o
  CC      net/ipv6/mip6.o
  CC [M]  net/netfilter/nf_conntrack_extend.o
  CC      drivers/clk/clk-multiplier.o
  CC      drivers/virtio/virtio_pci_legacy_dev.o
  CC      net/bridge/br_arp_nd_proxy.o
  CC      drivers/tty/tty_io.o
  CC      drivers/tty/n_tty.o
  CC      kernel/params.o
  CC      net/bridge/br_sysfs_if.o
  CC      arch/x86/kernel/ksysfs.o
  CC      fs/ext4/namei.o
  CC [M]  net/netfilter/nf_conntrack_acct.o
  CC [M]  arch/x86/kvm/pmu.o
  CC      crypto/hash_info.o
  CC      crypto/simd.o
  CC      drivers/clk/clk-mux.o
  CC [M]  crypto/md4.o
  AR      drivers/tty/hvc/built-in.a
  CC [M]  net/netfilter/nf_conntrack_seqadj.o
  CC      drivers/tty/tty_ioctl.o
  CC      fs/ext4/page-io.o
  CC      net/handshake/trace.o
  CC      lib/decompress_unlzo.o
  AR      drivers/char/hw_random/built-in.a
  CC      drivers/char/agp/backend.o
  CC      drivers/tty/vt/vc_screen.o
  CC      drivers/char/agp/generic.o
  CC      drivers/tty/serial/8250/8250_pnp.o
  CC      drivers/acpi/acpica/exoparg2.o
  CC      drivers/char/agp/isoch.o
  CC      kernel/trace/trace_events_filter.o
  CC      drivers/tty/serial/8250/8250_port.o
  AR      drivers/dma/dw/built-in.a
  CC      drivers/tty/serial/8250/8250_dma.o
  CC      drivers/dma/hsu/hsu.o
  AR      drivers/dma/idxd/built-in.a
  CC      drivers/tty/vt/selection.o
  CC      block/blk-mq-virtio.o
  CC      kernel/kthread.o
  CC      arch/x86/kernel/bootflag.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_seal.o
  CC      net/ipv6/addrconf_core.o
  CC      drivers/clk/clk-composite.o
  CC      net/core/net-procfs.o
  CC      net/ipv4/tcp_timer.o
  CC      arch/x86/kernel/e820.o
  CC      net/ipv6/exthdrs_core.o
  CC [M]  crypto/ccm.o
  CC [M]  crypto/arc4.o
  CC      fs/ext4/readpage.o
  CC      lib/decompress_unxz.o
  CC      fs/ext4/resize.o
  CC      drivers/acpi/acpica/exoparg3.o
  CC [M]  net/netfilter/nf_conntrack_proto_icmpv6.o
  CC      drivers/virtio/virtio_pci_modern.o
  CC      net/ipv6/ip6_checksum.o
  CC      net/socket.o
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      lib/decompress_unzstd.o
  CC      drivers/char/agp/intel-agp.o
  CC      net/ipv6/ip6_icmp.o
  CC      drivers/char/agp/intel-gtt.o
  CC      block/blk-mq-debugfs.o
  CC      drivers/virtio/virtio_pci_common.o
  CC      drivers/tty/vt/keyboard.o
  CC      lib/dump_stack.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC      drivers/acpi/acpica/exoparg6.o
  CC      drivers/char/tpm/tpm-chip.o
  CC      drivers/char/mem.o
  CC [M]  crypto/ecc.o
  CC      mm/mmu_gather.o
  CC      drivers/tty/vt/consolemap.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_unseal.o
  CC      net/bridge/br_sysfs_br.o
  AR      drivers/dma/hsu/built-in.a
  CC      drivers/acpi/acpica/exprep.o
  CC      fs/ext4/super.o
  CC      drivers/clk/clk-fractional-divider.o
  AR      drivers/dma/mediatek/built-in.a
  AR      drivers/dma/qcom/built-in.a
  CC      fs/ext4/symlink.o
  CC      fs/ext4/sysfs.o
  AR      drivers/dma/ti/built-in.a
  AR      drivers/dma/xilinx/built-in.a
  CC [M]  drivers/dma/ioat/init.o
  CC      fs/ext4/xattr.o
  CC [M]  arch/x86/kvm/mtrr.o
  AR      net/handshake/built-in.a
  CC      drivers/tty/tty_ldisc.o
  CC      net/sunrpc/clnt.o
  CC      net/compat.o
  CC      drivers/acpi/processor_core.o
  CC      drivers/char/random.o
  CC      net/core/netpoll.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_wrap.o
  CC [M]  net/netfilter/nf_conntrack_proto_dccp.o
  CC      lib/earlycpio.o
  CC      net/sunrpc/xprt.o
  CC      drivers/acpi/acpica/exregion.o
  CC      net/ipv6/output_core.o
  CC      drivers/tty/tty_buffer.o
  CC      drivers/virtio/virtio_pci_legacy.o
  CC      net/sunrpc/socklib.o
  CC      lib/extable.o
  CC      arch/x86/kernel/pci-dma.o
  CC [M]  net/netfilter/nf_conntrack_proto_sctp.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_crypto.o
  CC      drivers/char/misc.o
  CC      kernel/trace/trace_events_trigger.o
  CC [M]  net/sunrpc/auth_gss/gss_krb5_keys.o
  CC      drivers/clk/clk-gpio.o
  CC [M]  drivers/virtio/virtio_mem.o
  LD [M]  net/sunrpc/auth_gss/auth_rpcgss.o
  CC      drivers/char/tpm/tpm-dev-common.o
  CC      fs/ext4/xattr_hurd.o
  CC [M]  crypto/essiv.o
  CC      net/sunrpc/xprtsock.o
  CC      fs/ext4/xattr_trusted.o
  CC      block/blk-pm.o
  CC [M]  net/netfilter/nf_conntrack_netlink.o
  AR      drivers/char/agp/built-in.a
  CC      drivers/char/virtio_console.o
  CC      drivers/char/hpet.o
  CC      drivers/acpi/acpica/exresnte.o
  CC      kernel/trace/trace_eprobe.o
  CC      kernel/sys_ni.o
  CC      lib/flex_proportions.o
  CC      net/ipv4/tcp_ipv4.o
  CC      arch/x86/kernel/quirks.o
  CC      drivers/tty/serial/8250/8250_pci.o
  CC      drivers/tty/tty_port.o
  CC [M]  arch/x86/kvm/hyperv.o
  AR      drivers/clk/built-in.a
  CC      drivers/tty/tty_mutex.o
  CC      drivers/tty/tty_ldsem.o
  AR      drivers/iommu/amd/built-in.a
  CC      drivers/iommu/intel/dmar.o
  CC      mm/mprotect.o
  CC [M]  drivers/dma/ioat/dma.o
  CC      net/ipv4/tcp_minisocks.o
  AR      drivers/iommu/arm/arm-smmu/built-in.a
  CC      drivers/acpi/processor_pdc.o
  AR      drivers/iommu/arm/arm-smmu-v3/built-in.a
  AR      drivers/iommu/arm/built-in.a
  CC      mm/mremap.o
  CC      net/bridge/br_nf_core.o
  CC      drivers/acpi/acpica/exresolv.o
  CC      lib/idr.o
  CC      net/bridge/br_multicast.o
  CC      drivers/char/tpm/tpm-dev.o
  CC      kernel/trace/trace_kprobe.o
  CC      kernel/trace/error_report-traces.o
  HOSTCC  drivers/tty/vt/conmakehash
  CC [M]  arch/x86/kvm/debugfs.o
  CC      block/holder.o
  CC      net/sunrpc/sched.o
  CC [M]  net/netfilter/nf_nat_core.o
  CC      net/ipv6/protocol.o
  CC      net/sysctl_net.o
  CC      kernel/trace/power-traces.o
  CC      fs/ext4/xattr_user.o
  CC      drivers/tty/vt/vt.o
  LD [M]  net/sunrpc/auth_gss/rpcsec_gss_krb5.o
  CC [M]  crypto/ecdh.o
  CC      lib/irq_regs.o
  CC      drivers/char/nvram.o
  CC      arch/x86/kernel/topology.o
  CC      drivers/tty/tty_baudrate.o
  CC      kernel/nsproxy.o
  CC [M]  crypto/ecdh_helper.o
  CC      drivers/tty/serial/serial_core.o
  CC      lib/is_single_threaded.o
  CC      drivers/acpi/acpica/exresop.o
  CC      drivers/acpi/ec.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      drivers/tty/tty_jobctrl.o
  CC      net/core/fib_rules.o
  AR      drivers/gpu/drm/display/built-in.a
  CC [M]  drivers/gpu/drm/display/drm_display_helper_mod.o
  CC      net/core/net-traces.o
  CC      drivers/char/tpm/tpm-interface.o
  CC      kernel/trace/rpm-traces.o
  AR      block/built-in.a
  CC      drivers/acpi/acpica/exserial.o
  CC      net/bridge/br_mdb.o
  CC      drivers/tty/n_null.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      fs/ext4/fast_commit.o
  CC      arch/x86/kernel/kdebugfs.o
  CC [M]  drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
  CC      kernel/trace/trace_dynevent.o
  CC      lib/klist.o
  COPY    drivers/tty/vt/defkeymap.c
  CC      fs/ext4/orphan.o
  CC      net/bridge/br_multicast_eht.o
  CC      drivers/acpi/acpica/exstore.o
  LD [M]  crypto/ecdh_generic.o
  CC      net/bridge/br_vlan.o
  CC      drivers/connector/cn_queue.o
  AR      crypto/built-in.a
  CC      drivers/base/power/sysfs.o
  CC [M]  drivers/gpu/drm/display/drm_dp_helper.o
  CC      net/ipv6/ip6_offload.o
  AR      drivers/virtio/built-in.a
  CC [M]  drivers/dma/ioat/prep.o
  CC      drivers/base/power/generic_ops.o
  CC      drivers/connector/connector.o
  CC      drivers/connector/cn_proc.o
  CC [M]  drivers/gpu/drm/tests/drm_buddy_test.o
  CC      drivers/acpi/dock.o
  AR      drivers/iommu/iommufd/built-in.a
  CC      drivers/iommu/iommu.o
  CC      lib/kobject.o
  CC      drivers/char/tpm/tpm1-cmd.o
  CC      net/ipv4/tcp_cong.o
  CC      mm/msync.o
  CC [M]  arch/x86/kvm/mmu/mmu.o
  CC      drivers/block/loop.o
  CC      drivers/acpi/acpica/exstoren.o
  CC      arch/x86/kernel/alternative.o
  CC [M]  drivers/block/nbd.o
  CC      drivers/char/tpm/tpm2-cmd.o
  CC      drivers/iommu/intel/iommu.o
  CC      kernel/notifier.o
  CC      drivers/iommu/iommu-traces.o
  CC      drivers/base/power/common.o
  CC      kernel/trace/trace_probe.o
  CC      arch/x86/kernel/i8253.o
  CC      drivers/acpi/acpica/exstorob.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC      kernel/trace/trace_uprobe.o
  CC [M]  net/netfilter/nf_nat_proto.o
  AR      drivers/gpu/vga/built-in.a
  CC      drivers/acpi/pci_root.o
  CC      drivers/acpi/acpica/exsystem.o
  CC      drivers/base/power/qos.o
  CC      drivers/base/power/runtime.o
  CC [M]  arch/x86/kvm/mmu/page_track.o
  CC      kernel/trace/rethook.o
  CC [M]  net/bluetooth/mgmt.o
  CC      arch/x86/kernel/hw_breakpoint.o
  CC      mm/page_vma_mapped.o
  AR      drivers/gpu/drm/renesas/rcar-du/built-in.a
  AR      drivers/gpu/drm/renesas/built-in.a
  CC      lib/kobject_uevent.o
  AR      drivers/gpu/drm/omapdrm/built-in.a
  AR      drivers/gpu/drm/tilcdc/built-in.a
  AR      drivers/gpu/drm/imx/built-in.a
  CC [M]  net/bluetooth/hci_sock.o
  AR      drivers/gpu/drm/i2c/built-in.a
  CC      drivers/iommu/iommu-sysfs.o
  CC [M]  net/bluetooth/hci_sysfs.o
  CC      kernel/ksysfs.o
  CC [M]  drivers/gpu/drm/display/drm_dp_mst_topology.o
  CC      kernel/cred.o
  CC [M]  drivers/gpu/drm/tests/drm_cmdline_parser_test.o
  CC [M]  drivers/dma/ioat/dca.o
  CC      net/sunrpc/auth.o
  CC      net/bridge/br_vlan_tunnel.o
  CC      drivers/acpi/acpica/extrace.o
  AR      drivers/connector/built-in.a
  AR      drivers/misc/eeprom/built-in.a
  AR      drivers/misc/cb710/built-in.a
  AR      drivers/misc/ti-st/built-in.a
  CC      lib/logic_pio.o
  AR      drivers/misc/lis3lv02d/built-in.a
  AR      drivers/misc/cardreader/built-in.a
  AR      drivers/gpu/drm/panel/built-in.a
  CC      net/ipv6/tcpv6_offload.o
  CC      drivers/char/tpm/tpmrm-dev.o
  CC      drivers/tty/serial/8250/8250_dw.o
  CC [M]  drivers/misc/mei/hdcp/mei_hdcp.o
  CC      net/ipv4/tcp_metrics.o
  CC      arch/x86/kernel/tsc.o
  CC      net/sunrpc/auth_null.o
  CC [M]  drivers/misc/mei/pxp/mei_pxp.o
  CC      net/core/selftests.o
  CC      drivers/acpi/acpica/exutils.o
  CC      drivers/acpi/acpica/hwacpi.o
  CC      kernel/reboot.o
  CC      kernel/async.o
  CC      net/sunrpc/auth_tls.o
  CONMK   drivers/tty/vt/consolemap_deftbl.c
  CC      drivers/tty/vt/defkeymap.o
  CC      net/ipv4/tcp_fastopen.o
  CC      net/sunrpc/auth_unix.o
  CC      arch/x86/kernel/tsc_msr.o
  CC [M]  drivers/misc/mei/init.o
  CC [M]  drivers/gpu/drm/display/drm_dsc_helper.o
  AR      drivers/gpu/drm/bridge/analogix/built-in.a
  CC      drivers/tty/vt/consolemap_deftbl.o
  CC [M]  drivers/dma/ioat/sysfs.o
  AR      drivers/gpu/drm/bridge/cadence/built-in.a
  CC      drivers/base/power/wakeirq.o
  AR      drivers/gpu/drm/bridge/imx/built-in.a
  AR      drivers/tty/vt/built-in.a
  AR      drivers/gpu/drm/bridge/synopsys/built-in.a
  CC [M]  net/netfilter/nf_nat_helper.o
  CC      drivers/char/tpm/tpm2-space.o
  CC [M]  net/netfilter/nf_nat_redirect.o
  AR      drivers/gpu/drm/bridge/built-in.a
  CC      mm/pagewalk.o
  CC      drivers/tty/pty.o
  CC [M]  drivers/misc/mei/hbm.o
  CC      lib/maple_tree.o
  CC      arch/x86/kernel/io_delay.o
  CC      mm/pgtable-generic.o
  CC      drivers/acpi/acpica/hwesleep.o
  CC      kernel/range.o
  AR      drivers/block/built-in.a
  CC [M]  drivers/misc/mei/interrupt.o
  CC [M]  drivers/misc/mei/client.o
  CC      kernel/smpboot.o
  CC [M]  net/bluetooth/l2cap_core.o
  CC [M]  net/bluetooth/l2cap_sock.o
  CC      kernel/ucount.o
  CC [M]  net/bluetooth/smp.o
  CC [M]  net/netfilter/nf_nat_masquerade.o
  CC      drivers/tty/serial/8250/8250_lpss.o
  CC      lib/memcat_p.o
  CC      net/sunrpc/svc.o
  CC      drivers/base/power/main.o
  CC      drivers/dma/dmaengine.o
  CC [M]  arch/x86/kvm/mmu/spte.o
  CC      arch/x86/kernel/rtc.o
  CC      arch/x86/kernel/resource.o
  CC      net/ipv6/exthdrs_offload.o
  AR      kernel/trace/built-in.a
  CC      drivers/acpi/acpica/hwgpe.o
  CC [M]  net/netfilter/x_tables.o
  LD [M]  drivers/dma/ioat/ioatdma.o
  CC      drivers/dma/virt-dma.o
  CC      drivers/tty/serial/8250/8250_mid.o
  AS      arch/x86/kernel/irqflags.o
  CC [M]  net/netfilter/xt_tcpudp.o
  CC      arch/x86/kernel/static_call.o
  CC      lib/nmi_backtrace.o
  CC [M]  arch/x86/kvm/mmu/tdp_iter.o
  CC [M]  drivers/gpu/drm/display/drm_hdcp_helper.o
  CC      net/sunrpc/svcsock.o
  CC      kernel/regset.o
  CC      net/sunrpc/svcauth.o
  CC      arch/x86/kernel/process.o
  CC [M]  drivers/gpu/drm/display/drm_hdmi_helper.o
  CC      drivers/base/power/wakeup.o
  CC [M]  drivers/gpu/drm/tests/drm_connector_test.o
  CC      drivers/char/tpm/tpm-sysfs.o
  CC [M]  net/bluetooth/lib.o
  CC      mm/rmap.o
  CC      net/sunrpc/svcauth_unix.o
  CC      drivers/mfd/mfd-core.o
  AR      drivers/nfc/built-in.a
  CC      drivers/tty/serial/8250/8250_pericom.o
  AR      drivers/dax/hmem/built-in.a
  CC      drivers/dax/super.o
  CC      drivers/dma-buf/dma-buf.o
  CC      drivers/acpi/acpica/hwregs.o
  CC      drivers/dma-buf/dma-fence.o
  CC      drivers/dma-buf/dma-fence-array.o
  CC      arch/x86/kernel/ptrace.o
  CC [M]  net/bluetooth/ecdh_helper.o
  CC      kernel/ksyms_common.o
  CC      kernel/groups.o
  CC      net/ipv4/tcp_rate.o
  CC      net/bridge/br_vlan_options.o
  CC      drivers/dma/acpi-dma.o
  CC      net/sunrpc/addr.o
  CC      net/core/ptp_classifier.o
  CC      drivers/iommu/intel/pasid.o
  CC [M]  drivers/gpu/drm/display/drm_scdc_helper.o
  CC      net/ipv6/inet6_hashtables.o
  CC [M]  drivers/gpu/drm/display/drm_dp_aux_dev.o
  CC      lib/plist.o
  CC [M]  drivers/gpu/drm/tests/drm_damage_helper_test.o
  CC [M]  drivers/gpu/drm/tests/drm_dp_mst_helper_test.o
  CC [M]  arch/x86/kvm/mmu/tdp_mmu.o
  CC      net/sunrpc/rpcb_clnt.o
  CC      drivers/char/tpm/eventlog/common.o
  AR      drivers/gpu/drm/hisilicon/built-in.a
  AR      drivers/gpu/drm/mxsfb/built-in.a
  AR      drivers/gpu/drm/tiny/built-in.a
  AR      drivers/tty/serial/8250/built-in.a
  CC      kernel/vhost_task.o
  CC      drivers/acpi/acpica/hwsleep.o
  AR      drivers/gpu/drm/xlnx/built-in.a
  CC      drivers/tty/serial/serial_base_bus.o
  CC      net/ipv6/mcast_snoop.o
  CC [M]  drivers/gpu/drm/tests/drm_format_helper_test.o
  CC      drivers/dma-buf/dma-fence-chain.o
  CC [M]  net/ipv6/ip6_udp_tunnel.o
  CC      drivers/mfd/intel-lpss.o
  CC      net/sunrpc/timer.o
  CC      drivers/dax/bus.o
  CC      net/core/netprio_cgroup.o
  CC [M]  net/bluetooth/hci_request.o
  CC [M]  drivers/misc/mei/main.o
  CC      kernel/kcmp.o
  AR      drivers/gpu/drm/gud/built-in.a
  AR      drivers/gpu/drm/solomon/built-in.a
  AR      drivers/dma/built-in.a
  CC [M]  drivers/gpu/drm/ttm/ttm_tt.o
  CC [M]  drivers/gpu/drm/scheduler/sched_main.o
  CC      kernel/freezer.o
  CC      drivers/mfd/intel-lpss-pci.o
  CC      arch/x86/kernel/tls.o
  CC      drivers/acpi/acpica/hwvalid.o
  AR      drivers/cxl/core/built-in.a
  AR      drivers/cxl/built-in.a
  CC      drivers/base/power/wakeup_stats.o
  CC      net/sunrpc/xdr.o
  CC      drivers/base/power/domain.o
  CC      net/sunrpc/sunrpc_syms.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo.o
  CC [M]  net/bluetooth/mgmt_util.o
  CC [M]  drivers/misc/mei/dma-ring.o
  CC      drivers/char/tpm/eventlog/tpm1.o
  CC      drivers/tty/serial/serial_ctrl.o
  CC      net/ipv4/tcp_recovery.o
  CC      net/core/dst_cache.o
  LD [M]  drivers/gpu/drm/display/drm_display_helper.o
  CC      drivers/dma-buf/dma-fence-unwrap.o
  CC [M]  drivers/gpu/drm/tests/drm_format_test.o
  CC      drivers/iommu/intel/trace.o
  CC      net/bridge/br_mst.o
  CC [M]  net/netfilter/xt_mark.o
  CC      drivers/tty/serial/serial_port.o
  CC [M]  drivers/gpu/drm/tests/drm_framebuffer_test.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.o
  CC      drivers/acpi/acpica/hwxface.o
  CC [M]  net/bridge/br_netfilter_hooks.o
  CC [M]  net/netfilter/xt_nat.o
  CC      drivers/tty/serial/earlycon.o
  CC      drivers/acpi/acpica/hwxfsleep.o
  CC [M]  net/bluetooth/mgmt_config.o
  CC      drivers/mfd/intel-lpss-acpi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_device.o
  CC [M]  net/bluetooth/hci_codec.o
  CC      drivers/base/power/domain_governor.o
  CC [M]  net/bridge/br_netfilter_ipv6.o
  CC      net/core/gro_cells.o
  AR      net/ipv6/built-in.a
  CC      drivers/char/tpm/eventlog/tpm2.o
  CC      kernel/stacktrace.o
  CC      drivers/dma-buf/dma-resv.o
  CC      drivers/dma-buf/sync_file.o
  CC      drivers/base/power/clock_ops.o
  CC [M]  drivers/misc/mei/bus.o
  CC      arch/x86/kernel/step.o
  CC      arch/x86/kernel/i8237.o
  AR      drivers/dax/built-in.a
  CC      drivers/mfd/intel_soc_pmic_crc.o
  CC      fs/hugetlbfs/inode.o
  AR      drivers/macintosh/built-in.a
  CC      drivers/scsi/scsi.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo_util.o
  CC      drivers/nvme/host/core.o
  CC [M]  drivers/gpu/drm/ttm/ttm_bo_vm.o
  CC [M]  drivers/gpu/drm/ttm/ttm_module.o
  CC      drivers/acpi/acpica/hwpci.o
  CC      kernel/dma.o
  AR      drivers/nvme/target/built-in.a
  CC [M]  net/bluetooth/eir.o
  CC [M]  net/bluetooth/hci_sync.o
  CC      drivers/iommu/intel/cap_audit.o
  CC [M]  drivers/mfd/lpc_sch.o
  CC [M]  drivers/gpu/drm/tests/drm_managed_test.o
  CC      drivers/tty/serial/serial_mctrl_gpio.o
  CC      drivers/nvme/host/ioctl.o
  CC      drivers/scsi/hosts.o
  CC      drivers/scsi/scsi_ioctl.o
  CC      mm/vmalloc.o
  CC      lib/radix-tree.o
  CC [M]  drivers/gpu/drm/scheduler/sched_fence.o
  CC      drivers/acpi/acpica/nsaccess.o
  CC      net/ipv4/tcp_ulp.o
  CC      drivers/dma-buf/sw_sync.o
  CC      arch/x86/kernel/stacktrace.o
  CC      kernel/smp.o
  CC      drivers/char/tpm/tpm_ppi.o
  CC      drivers/iommu/dma-iommu.o
  CC      drivers/nvme/host/sysfs.o
  CC      drivers/dma-buf/sync_debug.o
  CC      drivers/char/tpm/eventlog/acpi.o
  AR      net/core/built-in.a
  CC      net/sunrpc/cache.o
  CC [M]  net/netfilter/xt_REDIRECT.o
  CC      fs/fat/cache.o
  CC      drivers/base/firmware_loader/builtin/main.o
  CC      fs/fat/dir.o
  CC      fs/nfs/client.o
  CC      fs/nfs/dir.o
  CC      drivers/iommu/iova.o
  CC [M]  drivers/gpu/drm/tests/drm_mm_test.o
  AR      drivers/base/power/built-in.a
  CC      drivers/char/tpm/eventlog/efi.o
  CC [M]  drivers/mfd/lpc_ich.o
  CC      kernel/uid16.o
  CC      arch/x86/kernel/reboot.o
  CC      drivers/acpi/acpica/nsalloc.o
  CC [M]  net/netfilter/xt_MASQUERADE.o
  CC [M]  drivers/gpu/drm/scheduler/sched_entity.o
  CC [M]  drivers/gpu/drm/ttm/ttm_execbuf_util.o
  CC [M]  drivers/misc/mei/bus-fixup.o
  AR      drivers/base/firmware_loader/builtin/built-in.a
  CC      drivers/base/firmware_loader/main.o
  AR      drivers/tty/serial/built-in.a
  CC [M]  net/netfilter/xt_addrtype.o
  CC      drivers/tty/sysrq.o
  CC      arch/x86/kernel/msr.o
  AR      fs/ext4/built-in.a
  CC      fs/exportfs/expfs.o
  CC [M]  drivers/dma-buf/selftest.o
  CC      drivers/scsi/scsicam.o
  CC [M]  net/bluetooth/coredump.o
  CC      drivers/iommu/intel/irq_remapping.o
  CC [M]  arch/x86/kvm/smm.o
  CC [M]  drivers/gpu/drm/tests/drm_modes_test.o
  CC      net/ipv4/tcp_offload.o
  AR      fs/hugetlbfs/built-in.a
  CC [M]  net/bluetooth/sco.o
  CC      net/sunrpc/rpc_pipe.o
  CC      drivers/acpi/acpica/nsarguments.o
  CC      drivers/acpi/acpica/nsconvert.o
  CC      drivers/iommu/intel/perfmon.o
  CC      arch/x86/kernel/cpuid.o
  CC [M]  drivers/dma-buf/st-dma-fence.o
  CC      net/sunrpc/sysfs.o
  CC      drivers/char/tpm/tpm_crb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell_mgr.o
  CC [M]  net/bluetooth/iso.o
  CC      drivers/acpi/acpica/nsdump.o
  CC      drivers/acpi/acpica/nseval.o
  CC      arch/x86/kernel/early-quirks.o
  CC [M]  drivers/gpu/drm/ttm/ttm_range_manager.o
  AR      drivers/mfd/built-in.a
  AR      drivers/misc/built-in.a
  CC      drivers/ata/libata-core.o
  CC [M]  drivers/dma-buf/st-dma-fence-chain.o
  AR      net/bridge/built-in.a
  LD [M]  net/bridge/br_netfilter.o
  CC [M]  drivers/misc/mei/debugfs.o
  CC      net/sunrpc/svc_xprt.o
  CC [M]  drivers/misc/mei/mei-trace.o
  CC      arch/x86/kernel/smp.o
  CC [M]  drivers/gpu/drm/ttm/ttm_resource.o
  CC      kernel/kallsyms.o
  AR      fs/exportfs/built-in.a
  CC      drivers/ata/libata-scsi.o
  LD [M]  drivers/gpu/drm/scheduler/gpu-sched.o
  CC      lib/ratelimit.o
  CC [M]  arch/x86/kvm/vmx/vmx.o
  CC      drivers/scsi/scsi_error.o
  CC [M]  drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.o
  CC [M]  net/netfilter/xt_conntrack.o
  CC      drivers/iommu/irq_remapping.o
  CC      drivers/nvme/host/pr.o
  CC      drivers/acpi/acpica/nsinit.o
  CC [M]  net/netfilter/xt_ipvs.o
  CC      drivers/scsi/scsi_lib.o
  AR      drivers/tty/built-in.a
  CC [M]  drivers/misc/mei/pci-me.o
  CC [M]  drivers/gpu/drm/ttm/ttm_pool.o
  CC [M]  drivers/misc/mei/hw-me.o
  AR      drivers/base/firmware_loader/built-in.a
  CC      arch/x86/kernel/smpboot.o
  CC      drivers/base/regmap/regmap.o
  CC      fs/fat/fatent.o
  CC      drivers/base/regmap/regcache.o
  CC      lib/rbtree.o
  CC      fs/fat/file.o
  CC [M]  net/bluetooth/a2mp.o
  LD [M]  drivers/gpu/drm/amd/amdxcp/amdxcp.o
  CC [M]  arch/x86/kvm/kvm-asm-offsets.s
  AR      drivers/char/tpm/built-in.a
  CC [M]  net/bluetooth/amp.o
  AR      drivers/char/built-in.a
  CC      drivers/spi/spi.o
  CC      fs/nfs/file.o
  CC [M]  drivers/gpu/drm/i915/i915_driver.o
  CC      arch/x86/kernel/tsc_sync.o
  CC [M]  drivers/gpu/drm/ttm/ttm_device.o
  CC      drivers/acpi/acpica/nsload.o
  CC [M]  drivers/gpu/drm/i915/i915_drm_client.o
  CC [M]  net/bluetooth/hci_debugfs.o
  CC      fs/nfs/getroot.o
  AR      drivers/iommu/intel/built-in.a
  CC      drivers/scsi/scsi_lib_dma.o
  CC      net/ipv4/tcp_plb.o
  CC      lib/seq_buf.o
  AR      drivers/iommu/built-in.a
  CC [M]  drivers/gpu/drm/tests/drm_plane_helper_test.o
  CC      arch/x86/kernel/setup_percpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.o
  CC [M]  drivers/misc/mei/gsc-me.o
  CC [M]  drivers/dma-buf/st-dma-fence-unwrap.o
  CC      arch/x86/kernel/ftrace.o
  CC      drivers/acpi/pci_link.o
  CC      drivers/acpi/pci_irq.o
  CC      drivers/base/regmap/regcache-rbtree.o
  CC      drivers/acpi/acpica/nsnames.o
  CC      kernel/acct.o
  CC [M]  drivers/dma-buf/st-dma-resv.o
  CC [M]  arch/x86/kvm/vmx/pmu_intel.o
  CC [M]  drivers/gpu/drm/i915/i915_config.o
  CC      drivers/base/regmap/regcache-flat.o
  CC      net/ipv4/datagram.o
  AS      arch/x86/kernel/ftrace_64.o
  CC      drivers/acpi/acpica/nsobject.o
  CC      drivers/base/regmap/regcache-maple.o
  LD [M]  net/netfilter/nf_conntrack.o
  CC      fs/fat/inode.o
  LD [M]  net/netfilter/nf_nat.o
  AR      net/netfilter/built-in.a
  CC [M]  drivers/gpu/drm/ttm/ttm_sys_manager.o
  CC      drivers/acpi/acpica/nsparse.o
  CC      drivers/scsi/scsi_scan.o
  CC      lib/siphash.o
  CC      drivers/nvme/host/trace.o
  CC      arch/x86/kernel/trace_clock.o
  CC [M]  arch/x86/kvm/vmx/vmcs12.o
  CC      fs/fat/misc.o
  GEN     drivers/scsi/scsi_devinfo_tbl.c
  CC      mm/page_alloc.o
  CC [M]  drivers/gpu/drm/tests/drm_probe_helper_test.o
  CC      drivers/nvme/host/fault_inject.o
  CC      drivers/nvme/host/pci.o
  CC [M]  arch/x86/kvm/vmx/hyperv.o
  CC [M]  drivers/gpu/drm/tests/drm_rect_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  CC [M]  drivers/gpu/drm/tests/drm_exec_test.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  AR      drivers/dma-buf/built-in.a
  LD [M]  drivers/dma-buf/dmabuf_selftests.o
  CC      fs/nfs/inode.o
  CC      fs/nfs/super.o
  CC [M]  arch/x86/kvm/vmx/nested.o
  CC [M]  arch/x86/kvm/vmx/posted_intr.o
  CC      arch/x86/kernel/trace.o
  CC [M]  drivers/gpu/drm/vgem/vgem_drv.o
  LD [M]  arch/x86/kvm/kvm.o
  UPD     arch/x86/kvm/kvm-asm-offsets.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  CC      drivers/acpi/acpi_lpss.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/object.o
  CC      net/sunrpc/xprtmultipath.o
  LD [M]  drivers/misc/mei/mei.o
  CC      drivers/acpi/acpica/nspredef.o
  LD [M]  drivers/misc/mei/mei-me.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  CC      net/ipv4/raw.o
  CC      drivers/scsi/scsi_devinfo.o
  LD [M]  drivers/misc/mei/mei-gsc.o
  CC      lib/string.o
  CC [M]  drivers/gpu/drm/ttm/ttm_agp_backend.o
  CC [M]  drivers/gpu/drm/ast/ast_drv.o
  CC      drivers/net/phy/mdio-boardinfo.o
  AR      drivers/net/pse-pd/built-in.a
  AR      drivers/firewire/built-in.a
  CC      mm/init-mm.o
  AS [M]  arch/x86/kvm/vmx/vmenter.o
  CC      mm/memblock.o
  CC      kernel/crash_core.o
  AR      drivers/net/pcs/built-in.a
  CC      drivers/net/mdio/acpi_mdio.o
  CC      drivers/scsi/scsi_sysctl.o
  CC      drivers/net/mdio/fwnode_mdio.o
  CC      drivers/scsi/scsi_debugfs.o
  CC      drivers/scsi/scsi_trace.o
  CC      arch/x86/kernel/rethook.o
  CC [M]  drivers/gpu/drm/i915/i915_getparam.o
  CC      drivers/gpu/drm/drm_mipi_dsi.o
  LD [M]  net/bluetooth/bluetooth.o
  CC [M]  drivers/gpu/drm/i915/i915_ioctl.o
  CC      arch/x86/kernel/crash_core_64.o
  CC      lib/timerqueue.o
  CC      drivers/acpi/acpica/nsprepkg.o
  CC      fs/nfs/io.o
  CC      kernel/compat.o
  CC      kernel/utsname.o
  CC      drivers/acpi/acpica/nsrepair.o
  CC      net/ipv4/udp.o
  CC [M]  drivers/gpu/drm/i915/i915_irq.o
  CC [M]  drivers/gpu/drm/i915/i915_mitigations.o
  CC      lib/vsprintf.o
  CC [M]  drivers/gpu/drm/vgem/vgem_fence.o
  CC      lib/win_minmax.o
  CC      drivers/acpi/acpica/nsrepair2.o
  LD [M]  drivers/gpu/drm/ttm/ttm.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/client.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  CC      fs/lockd/clntlock.o
  CC      drivers/scsi/scsi_logging.o
  CC      fs/lockd/clntproc.o
  CC      mm/memory_hotplug.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  CC      drivers/net/phy/stubs.o
  CC      fs/fat/nfs.o
  CC      fs/lockd/clntxdr.o
  CC      net/ipv4/udplite.o
  CC      drivers/ata/libata-eh.o
  CC      drivers/acpi/acpica/nssearch.o
  CC [M]  drivers/gpu/drm/ast/ast_i2c.o
  CC      drivers/acpi/acpica/nsutils.o
  CC      arch/x86/kernel/module.o
  CC      drivers/ata/libata-transport.o
  CC      net/ipv4/udp_offload.o
  CC      fs/lockd/host.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/conn.o
  CC      lib/xarray.o
  CC      lib/lockref.o
  AR      drivers/net/mdio/built-in.a
  CC      drivers/scsi/scsi_pm.o
  CC      drivers/ata/libata-trace.o
  CC      drivers/base/regmap/regmap-debugfs.o
  CC      drivers/acpi/acpica/nswalk.o
  CC [M]  drivers/gpu/drm/i915/i915_module.o
  CC      drivers/base/regmap/regmap-i2c.o
  CC      net/sunrpc/stats.o
  CC      kernel/user_namespace.o
  LD [M]  drivers/gpu/drm/vgem/vgem.o
  CC [M]  drivers/gpu/drm/drm_aperture.o
  CC      drivers/ata/libata-sata.o
  CC      drivers/ata/libata-sff.o
  CC      drivers/ata/libata-pmp.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/device.o
  CC      net/sunrpc/sysctl.o
  CC      drivers/acpi/acpica/nsxfeval.o
  AR      drivers/spi/built-in.a
  CC [M]  drivers/gpu/drm/drm_atomic.o
  AR      drivers/cdrom/built-in.a
  CC [M]  drivers/gpu/drm/drm_atomic_uapi.o
  CC      fs/fat/namei_vfat.o
  CC [M]  drivers/gpu/drm/ast/ast_main.o
  CC      fs/nfs/direct.o
  CC      drivers/acpi/acpi_apd.o
  CC      drivers/net/phy/mdio_devres.o
  CC      drivers/acpi/acpi_platform.o
  CC      arch/x86/kernel/early_printk.o
  CC      drivers/acpi/acpica/nsxfname.o
  CC [M]  drivers/gpu/drm/xe/xe_bb.o
  CC      arch/x86/kernel/hpet.o
  CC [M]  drivers/gpu/drm/ast/ast_mm.o
  CC      drivers/scsi/scsi_bsg.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/disp.o
  CC      drivers/acpi/acpica/nsxfobj.o
  CC      fs/lockd/svc.o
  CC      arch/x86/kernel/amd_nb.o
  CC      fs/lockd/svclock.o
  CC      fs/lockd/svcshare.o
  CC      drivers/base/regmap/regmap-irq.o
  CC      kernel/pid_namespace.o
  AR      drivers/nvme/host/built-in.a
  AR      drivers/nvme/built-in.a
  CC      drivers/acpi/acpica/psargs.o
  AR      drivers/net/usb/built-in.a
  CC [M]  drivers/net/usb/pegasus.o
  AR      drivers/net/ethernet/adi/built-in.a
  CC [M]  drivers/net/usb/rtl8150.o
  AR      drivers/net/ethernet/alacritech/built-in.a
  AR      drivers/net/ethernet/amazon/built-in.a
  CC      drivers/acpi/acpi_pnp.o
  UPD     kernel/config_data
  CC      kernel/stop_machine.o
  CC      arch/x86/kernel/kvm.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 [M]  drivers/net/usb/r8152.o
  CC      fs/lockd/svcproc.o
  AR      drivers/net/ethernet/broadcom/built-in.a
  CC      fs/lockd/svcsubs.o
  CC [M]  drivers/net/ethernet/broadcom/b44.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/driver.o
  CC [M]  drivers/gpu/drm/i915/i915_params.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_crtc.o
  CC [M]  drivers/net/ethernet/broadcom/bnx2.o
  CC      drivers/net/phy/phy.o
  CC      drivers/net/phy/phy-c45.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atom.o
  CC      fs/lockd/mon.o
  CC      net/ipv4/arp.o
  CC      drivers/net/phy/phy-core.o
  CC      fs/nls/nls_base.o
  CC      drivers/scsi/scsi_common.o
  CC      drivers/net/phy/phy_device.o
  CC      kernel/kprobes.o
  CC [M]  drivers/gpu/drm/ast/ast_mode.o
  CC [M]  drivers/gpu/drm/xe/xe_bo.o
  CC      lib/bcd.o
  AR      fs/unicode/built-in.a
  CC      drivers/acpi/acpica/psloop.o
  CC      fs/ntfs/aops.o
  CC      drivers/acpi/acpica/psobject.o
  CC      fs/ntfs/attrib.o
  CC      drivers/acpi/acpica/psopcode.o
  CC      fs/ntfs/collate.o
  CC      fs/fat/namei_msdos.o
  CC      fs/lockd/trace.o
  AR      net/sunrpc/built-in.a
  CC      fs/nls/nls_cp437.o
  CC      kernel/hung_task.o
  CC [M]  drivers/gpu/drm/i915/i915_pci.o
  CC      net/ipv4/icmp.o
  CC      drivers/scsi/sd.o
  CC [M]  drivers/gpu/drm/ast/ast_post.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/event.o
  CC [M]  drivers/net/ethernet/broadcom/cnic.o
  CC      fs/lockd/xdr.o
  CC      lib/sort.o
  CC      net/ipv4/devinet.o
  AR      drivers/base/regmap/built-in.a
  AR      drivers/base/test/built-in.a
  CC      drivers/base/component.o
  CC      lib/parser.o
  CC      drivers/base/core.o
  CC      drivers/base/bus.o
  CC      drivers/acpi/acpica/psopinfo.o
  CC      fs/nls/nls_ascii.o
  CC      drivers/base/dd.o
  CC      fs/nfs/pagelist.o
  CC [M]  drivers/gpu/drm/xe/xe_bo_evict.o
  CC      drivers/acpi/acpica/psparse.o
  CC      mm/madvise.o
  CC      arch/x86/kernel/kvmclock.o
  CC      fs/nfs/read.o
  CC      drivers/net/phy/linkmode.o
  CC      drivers/ata/libata-acpi.o
  CC [M]  drivers/gpu/drm/xe/xe_debugfs.o
  CC      mm/page_io.o
  CC      arch/x86/kernel/paravirt.o
  AR      drivers/auxdisplay/built-in.a
  CC      drivers/usb/common/common.o
  AR      fs/fat/built-in.a
  CC      lib/debug_locks.o
  CC      drivers/usb/common/debug.o
  CC      fs/nls/nls_iso8859-1.o
  CC      drivers/acpi/acpica/psscope.o
  CC      drivers/ata/libata-pata-timings.o
  CC      fs/lockd/clnt4xdr.o
  CC      fs/ntfs/compress.o
  CC      net/ipv4/af_inet.o
  CC      fs/ntfs/debug.o
  CC      drivers/ata/ahci.o
  CC      net/ipv4/igmp.o
  CC      fs/nls/nls_utf8.o
  CC      lib/random32.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/fifo.o
  CC [M]  drivers/gpu/drm/drm_auth.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.o
  CC [M]  drivers/gpu/drm/i915/i915_scatterlist.o
  CC [M]  fs/nls/nls_ucs2_utils.o
  CC      arch/x86/kernel/pvclock.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_object.o
  CC      drivers/ata/libahci.o
  CC      drivers/acpi/acpica/pstree.o
  CC      drivers/usb/core/usb.o
  CC      drivers/acpi/acpica/psutils.o
  CC      drivers/base/syscore.o
  CC      drivers/usb/core/hub.o
  CC      drivers/net/phy/mdio_bus.o
  CC [M]  drivers/gpu/drm/i915/i915_suspend.o
  CC [M]  drivers/net/usb/asix_devices.o
  CC      fs/ntfs/dir.o
  CC      lib/bust_spinlocks.o
  CC      kernel/watchdog.o
  AR      drivers/usb/phy/built-in.a
  AR      drivers/usb/common/built-in.a
  CC      drivers/base/driver.o
  CC      drivers/usb/host/pci-quirks.o
  CC      fs/ntfs/file.o
  CC      drivers/usb/host/ehci-hcd.o
  CC [M]  drivers/gpu/drm/ast/ast_dp501.o
  CC      drivers/usb/host/ehci-pci.o
  CC [M]  drivers/net/ethernet/broadcom/tg3.o
  CC      arch/x86/kernel/pcspeaker.o
  CC      arch/x86/kernel/check.o
  CC      drivers/acpi/acpica/pswalk.o
  AR      fs/nls/built-in.a
  CC      lib/kasprintf.o
  CC      fs/ntfs/index.o
  CC      drivers/usb/host/ohci-hcd.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/head.o
  CC [M]  drivers/gpu/drm/drm_blend.o
  CC      fs/lockd/xdr4.o
  CC      arch/x86/kernel/uprobes.o
  CC      kernel/watchdog_perf.o
  CC      fs/ntfs/inode.o
  CC      drivers/net/phy/mdio_device.o
  CC      mm/swap_state.o
  CC [M]  drivers/net/usb/asix_common.o
  CC      fs/ntfs/mft.o
  CC      drivers/ata/ata_piix.o
  CC      lib/bitmap.o
  LD [M]  arch/x86/kvm/kvm-intel.o
  CC      drivers/acpi/acpica/psxface.o
  CC      lib/scatterlist.o
  CC      fs/lockd/svc4proc.o
  CC [M]  drivers/gpu/drm/drm_bridge.o
  CC      drivers/base/class.o
  CC      fs/ntfs/mst.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gart.o
  CC      drivers/acpi/acpica/rsaddr.o
  CC      fs/nfs/symlink.o
  CC [M]  drivers/gpu/drm/i915/i915_switcheroo.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC      fs/nfs/unlink.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.o
  CC [M]  drivers/gpu/drm/ast/ast_dp.o
  CC [M]  drivers/gpu/drm/i915/i915_sysfs.o
  CC      drivers/scsi/sg.o
  CC [M]  drivers/gpu/drm/i915/i915_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/mem.o
  CC      fs/lockd/procfs.o
  CC      drivers/acpi/acpica/rscalc.o
  AR      fs/hostfs/built-in.a
  CC      fs/debugfs/inode.o
  CC      fs/debugfs/file.o
  CC      fs/tracefs/inode.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/mmu.o
  CC      fs/tracefs/event_inode.o
  CC      kernel/seccomp.o
  CC      fs/ntfs/namei.o
  CC      drivers/net/phy/swphy.o
  CC      arch/x86/kernel/perf_regs.o
  CC      fs/pstore/inode.o
  CC      fs/btrfs/super.o
  CC      fs/pstore/platform.o
  CC      fs/btrfs/ctree.o
  CC      net/ipv4/fib_frontend.o
  CC      drivers/base/platform.o
  CC      drivers/base/cpu.o
  CC      fs/ntfs/runlist.o
  CC [M]  drivers/gpu/drm/i915/intel_clock_gating.o
  CC [M]  drivers/gpu/drm/i915/intel_device_info.o
  CC      drivers/acpi/acpica/rscreate.o
  CC      arch/x86/kernel/tracepoint.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/outp.o
  CC      drivers/usb/storage/scsiglue.o
  CC      drivers/usb/serial/usb-serial.o
  CC      mm/swapfile.o
  AR      drivers/ata/built-in.a
  CC      drivers/usb/storage/protocol.o
  CC      drivers/input/serio/serio.o
  AR      fs/lockd/built-in.a
  CC      drivers/usb/storage/transport.o
  CC      lib/list_sort.o
  CC      drivers/usb/storage/usb.o
  CC      drivers/input/serio/i8042.o
  CC      fs/efivarfs/inode.o
  LD [M]  drivers/gpu/drm/ast/ast.o
  CC [M]  drivers/gpu/drm/drm_cache.o
  CC [M]  fs/netfs/buffered_read.o
  CC [M]  fs/netfs/io.o
  CC      fs/nfs/write.o
  CC      lib/uuid.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_display.o
  CC [M]  fs/netfs/iterator.o
  CC [M]  drivers/gpu/drm/i915/intel_memory_region.o
  CC      kernel/relay.o
  CC [M]  fs/netfs/main.o
  CC      drivers/net/phy/fixed_phy.o
  CC      fs/nfs/namespace.o
  AR      fs/tracefs/built-in.a
  CC      arch/x86/kernel/itmt.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/timer.o
  AR      drivers/usb/misc/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_device_sysfs.o
  CC [M]  fs/fscache/cache.o
  CC      drivers/usb/gadget/udc/core.o
  CC      drivers/usb/gadget/udc/trace.o
  CC      fs/pstore/pmsg.o
  CC      drivers/acpi/acpica/rsdumpinfo.o
  CC      lib/iov_iter.o
  AR      fs/debugfs/built-in.a
  CC [M]  fs/smb/common/cifs_arc4.o
  CC      fs/efivarfs/file.o
  CC [M]  fs/smb/common/cifs_md4.o
  CC      fs/ntfs/super.o
  CC      drivers/usb/storage/initializers.o
  CC      net/ipv4/fib_semantics.o
  CC      drivers/base/firmware.o
  CC      arch/x86/kernel/umip.o
  CC      drivers/input/serio/libps2.o
  CC      drivers/acpi/acpica/rsinfo.o
  CC      drivers/scsi/scsi_sysfs.o
  CC      net/ipv4/fib_trie.o
  CC [M]  drivers/gpu/drm/drm_client.o
  CC      net/ipv4/fib_notifier.o
  AR      fs/pstore/built-in.a
  CC      fs/nfs/mount_clnt.o
  CC [M]  fs/smb/client/trace.o
  CC [M]  fs/fuse/dev.o
  CC [M]  drivers/net/usb/ax88172a.o
  CC [M]  fs/fuse/dir.o
  CC      drivers/input/keyboard/atkbd.o
  CC      drivers/rtc/lib.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/vmm.o
  CC      arch/x86/kernel/unwind_orc.o
  CC      net/ipv4/inet_fragment.o
  AR      drivers/input/mouse/built-in.a
  CC [M]  drivers/gpu/drm/i915/intel_pcode.o
  CC      drivers/base/init.o
  CC [M]  drivers/net/phy/phylink.o
  CC [M]  drivers/gpu/drm/i915/intel_region_ttm.o
  CC      drivers/input/input.o
  CC [M]  fs/netfs/objects.o
  CC [M]  fs/fscache/cookie.o
  CC      drivers/acpi/acpica/rsio.o
  CC      drivers/usb/core/hcd.o
  CC      drivers/usb/serial/generic.o
  CC      fs/efivarfs/super.o
  CC [M]  fs/smb/client/cifsfs.o
  CC      drivers/usb/host/ohci-pci.o
  CC      kernel/utsname_sysctl.o
  CC [M]  fs/smb/client/cifs_debug.o
  AR      drivers/usb/gadget/function/built-in.a
  CC      fs/ntfs/sysctl.o
  CC      drivers/usb/storage/sierra_ms.o
  CC [M]  drivers/gpu/drm/i915/intel_runtime_pm.o
  CC      kernel/delayacct.o
  CC      arch/x86/kernel/callthunks.o
  AR      drivers/input/serio/built-in.a
  CC [M]  fs/overlayfs/super.o
  CC      arch/x86/kernel/cet.o
  CC      fs/ntfs/unistr.o
  CC      drivers/rtc/class.o
  CC      drivers/acpi/acpica/rsirq.o
  CC      drivers/usb/storage/option_ms.o
  AR      drivers/usb/gadget/udc/built-in.a
  AR      drivers/usb/gadget/legacy/built-in.a
  CC      drivers/usb/gadget/usbstring.o
  CC      net/ipv4/ping.o
  CC      drivers/base/map.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.o
  CC [M]  drivers/net/usb/ax88179_178a.o
  CC      drivers/usb/gadget/config.o
  CC      arch/x86/kernel/mmconf-fam10h_64.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/user.o
  CC      drivers/acpi/acpica/rslist.o
  CC      kernel/taskstats.o
  CC      drivers/acpi/acpica/rsmemory.o
  LD [M]  fs/netfs/netfs.o
  CC      fs/efivarfs/vars.o
  CC      kernel/tsacct.o
  CC [M]  drivers/gpu/drm/nouveau/nvif/userc361.o
  CC [M]  drivers/gpu/drm/xe/xe_drm_client.o
  CC [M]  drivers/net/usb/cdc_ether.o
  CC      drivers/usb/host/uhci-hcd.o
  AR      drivers/input/keyboard/built-in.a
  CC      drivers/acpi/acpica/rsmisc.o
  CC      drivers/usb/serial/bus.o
  CC [M]  drivers/net/usb/cdc_eem.o
  CC      drivers/input/input-compat.o
  AR      drivers/scsi/built-in.a
  CC      drivers/usb/host/xhci.o
  CC      drivers/usb/host/xhci-mem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.o
  CC      arch/x86/kernel/vsmp_64.o
  CC      drivers/base/devres.o
  CC      fs/ntfs/upcase.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC      drivers/rtc/interface.o
  CC      drivers/usb/storage/usual-tables.o
  CC      drivers/acpi/acpica/rsserial.o
  CC [M]  drivers/gpu/drm/i915/intel_sbi.o
  CC [M]  fs/fuse/file.o
  CC      mm/swap_slots.o
  CC      drivers/usb/serial/console.o
  CC [M]  fs/fscache/io.o
  CC [M]  fs/fscache/main.o
  CC      drivers/usb/gadget/epautoconf.o
  CC      net/ipv4/ip_tunnel_core.o
  CC      fs/nfs/nfstrace.o
  CC      drivers/base/attribute_container.o
  CC      drivers/usb/host/xhci-ext-caps.o
  CC      drivers/usb/serial/ftdi_sio.o
  CC      drivers/input/input-mt.o
  CC [M]  fs/overlayfs/namei.o
  AR      arch/x86/kernel/built-in.a
  CC [M]  fs/fuse/inode.o
  CC      net/ipv4/gre_offload.o
  AR      fs/efivarfs/built-in.a
  CC      drivers/base/transport_class.o
  CC      lib/clz_ctz.o
  AR      arch/x86/built-in.a
  CC [M]  fs/fuse/control.o
  CC      drivers/acpi/acpica/rsutils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/client.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/engine.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/enum.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/event.o
  CC      lib/bsearch.o
  CC      drivers/usb/core/urb.o
  AR      fs/ntfs/built-in.a
  CC      drivers/acpi/acpica/rsxface.o
  AR      drivers/usb/storage/built-in.a
  CC [M]  fs/overlayfs/util.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ring.o
  CC      kernel/tracepoint.o
  CC [M]  drivers/net/usb/smsc75xx.o
  CC      drivers/base/topology.o
  CC      lib/find_bit.o
  AR      drivers/i2c/algos/built-in.a
  CC [M]  drivers/i2c/algos/i2c-algo-bit.o
  AR      drivers/i3c/built-in.a
  CC      drivers/i2c/busses/i2c-designware-common.o
  CC      drivers/i2c/busses/i2c-designware-master.o
  CC      drivers/i2c/i2c-boardinfo.o
  AR      drivers/i2c/muxes/built-in.a
  CC [M]  drivers/i2c/muxes/i2c-mux-gpio.o
  CC      drivers/usb/gadget/composite.o
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC      fs/btrfs/extent-tree.o
  CC [M]  drivers/gpu/drm/i915/intel_step.o
  CC [M]  drivers/net/phy/aquantia_main.o
  CC      mm/dmapool.o
  CC      drivers/input/input-poller.o
  CC      drivers/acpi/power.o
  CC [M]  fs/fuse/xattr.o
  CC [M]  drivers/gpu/drm/i915/intel_uncore.o
  CC      drivers/usb/host/xhci-ring.o
  CC      kernel/latencytop.o
  CC      drivers/acpi/acpica/tbdata.o
  CC      lib/llist.o
  CC [M]  drivers/net/phy/aquantia_hwmon.o
  CC [M]  fs/fuse/acl.o
  CC [M]  fs/fuse/readdir.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.o
  CC      lib/memweight.o
  CC      net/ipv4/metrics.o
  CC      drivers/usb/gadget/functions.o
  CC      fs/btrfs/print-tree.o
  CC      lib/kfifo.o
  CC      drivers/base/container.o
  CC [M]  fs/smb/client/connect.o
  CC      kernel/irq_work.o
  CC      drivers/rtc/nvmem.o
  CC      drivers/usb/core/message.o
  CC [M]  fs/fscache/volume.o
  CC      drivers/rtc/dev.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/firmware.o
  CC      drivers/input/ff-core.o
  CC      drivers/i2c/i2c-core-base.o
  CC      net/ipv4/netlink.o
  CC      drivers/usb/serial/pl2303.o
  CC      drivers/acpi/acpica/tbfadt.o
  CC      drivers/i2c/i2c-core-smbus.o
  CC      drivers/rtc/proc.o
  CC      mm/hugetlb.o
  CC      net/ipv4/nexthop.o
  CC      drivers/base/property.o
  CC      drivers/acpi/event.o
  CC      drivers/base/cacheinfo.o
  CC [M]  fs/smb/client/dir.o
  CC      drivers/acpi/acpica/tbfind.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_bios.o
  CC      drivers/acpi/evged.o
  CC [M]  drivers/net/phy/ax88796b.o
  CC [M]  fs/overlayfs/inode.o
  CC [M]  drivers/net/phy/bcm7xxx.o
  CC      drivers/i2c/busses/i2c-designware-platdrv.o
  CC      drivers/usb/core/driver.o
  CC      drivers/usb/host/xhci-hub.o
  CC      drivers/rtc/sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_exec_queue.o
  CC [M]  fs/fuse/ioctl.o
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC      drivers/acpi/acpica/tbinstal.o
  CC      kernel/static_call.o
  CC      kernel/static_call_inline.o
  CC      lib/percpu-refcount.o
  CC      drivers/acpi/acpica/tbprint.o
  CC      drivers/i2c/i2c-core-acpi.o
  CC [M]  fs/smb/client/file.o
  CC      drivers/input/touchscreen.o
  CC      drivers/i2c/i2c-core-slave.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/gpuobj.o
  CC      net/ipv4/udp_tunnel_stub.o
  CC      drivers/usb/gadget/configfs.o
  CC [M]  drivers/net/usb/smsc95xx.o
  CC [M]  drivers/gpu/drm/i915/intel_wakeref.o
  CC [M]  fs/overlayfs/file.o
  CC      drivers/acpi/acpica/tbutils.o
  CC      drivers/acpi/sysfs.o
  CC [M]  fs/fscache/proc.o
  CC      drivers/acpi/acpica/tbxface.o
  CC      drivers/base/swnode.o
  CC      drivers/acpi/acpica/tbxfload.o
  CC      drivers/base/auxiliary.o
  AR      drivers/usb/serial/built-in.a
  CC      drivers/rtc/rtc-mc146818-lib.o
  CC      drivers/acpi/acpica/tbxfroot.o
  CC [M]  drivers/usb/class/usbtmc.o
  CC      drivers/i2c/busses/i2c-designware-baytrail.o
  CC      kernel/user-return-notifier.o
  CC [M]  drivers/net/phy/bcm87xx.o
  CC      fs/btrfs/root-tree.o
  CC      drivers/i2c/i2c-dev.o
  LD [M]  fs/fuse/fuse.o
  CC      lib/rhashtable.o
  CC      drivers/input/ff-memless.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_benchmark.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC      lib/base64.o
  CC      drivers/input/vivaldi-fmap.o
  CC [M]  drivers/net/phy/bcm-phy-lib.o
  CC      drivers/base/devtmpfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/intr.o
  CC      drivers/usb/gadget/u_f.o
  CC      kernel/padata.o
  CC [M]  drivers/i2c/i2c-smbus.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_dp.o
  CC      drivers/acpi/acpica/utaddress.o
  CC      drivers/base/node.o
  CC      drivers/rtc/rtc-cmos.o
  CC      drivers/usb/core/config.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_afmt.o
  CC      drivers/base/memory.o
  CC      drivers/acpi/acpica/utalloc.o
  CC      drivers/usb/core/file.o
  LD [M]  fs/fscache/fscache.o
  CC      mm/hugetlb_vmemmap.o
  CC      drivers/acpi/property.o
  CC      drivers/acpi/acpi_cmos_rtc.o
  CC [M]  drivers/net/ipvlan/ipvlan_core.o
  CC      drivers/input/input-leds.o
  CC      mm/mempolicy.o
  CC [M]  drivers/i2c/busses/i2c-scmi.o
  CC      drivers/base/module.o
  CC [M]  fs/overlayfs/dir.o
  CC [M]  fs/overlayfs/readdir.o
  AR      drivers/media/i2c/built-in.a
  AR      drivers/ptp/built-in.a
  AR      drivers/media/tuners/built-in.a
  CC [M]  drivers/ptp/ptp_clock.o
  CC [M]  fs/overlayfs/copy_up.o
  AR      drivers/media/rc/keymaps/built-in.a
  AR      drivers/media/rc/built-in.a
  CC [M]  drivers/ptp/ptp_chardev.o
  AR      drivers/media/common/b2c2/built-in.a
  AR      drivers/media/common/saa7146/built-in.a
  CC      drivers/acpi/acpica/utascii.o
  AR      drivers/media/common/siano/built-in.a
  CC [M]  drivers/i2c/i2c-mux.o
  CC [M]  fs/overlayfs/export.o
  AR      drivers/media/common/v4l2-tpg/built-in.a
  AR      drivers/media/common/videobuf2/built-in.a
  AR      drivers/media/common/built-in.a
  AR      drivers/media/platform/allegro-dvt/built-in.a
  AR      drivers/media/platform/amlogic/meson-ge2d/built-in.a
  AR      drivers/media/pci/ttpci/built-in.a
  AR      drivers/media/platform/amlogic/built-in.a
  AR      drivers/media/pci/b2c2/built-in.a
  AR      drivers/media/platform/amphion/built-in.a
  AR      drivers/media/pci/pluto2/built-in.a
  AR      drivers/media/platform/aspeed/built-in.a
  AR      drivers/media/pci/dm1105/built-in.a
  AR      drivers/media/platform/atmel/built-in.a
  AR      drivers/media/pci/pt1/built-in.a
  AR      drivers/media/platform/cadence/built-in.a
  AR      drivers/media/pci/pt3/built-in.a
  AR      drivers/usb/gadget/built-in.a
  CC [M]  drivers/ptp/ptp_sysfs.o
  AR      drivers/media/platform/chips-media/built-in.a
  AR      drivers/media/pci/mantis/built-in.a
  CC [M]  drivers/ptp/ptp_vclock.o
  CC [M]  fs/overlayfs/params.o
  AR      drivers/media/pci/ngene/built-in.a
  AR      drivers/media/platform/intel/built-in.a
  AR      drivers/media/pci/ddbridge/built-in.a
  AR      drivers/media/platform/marvell/built-in.a
  AR      drivers/media/pci/saa7146/built-in.a
  AR      drivers/media/pci/smipcie/built-in.a
  AR      drivers/media/platform/mediatek/jpeg/built-in.a
  CC      fs/btrfs/dir-item.o
  CC      fs/open.o
  AR      drivers/media/pci/netup_unidvb/built-in.a
  CC      net/ipv4/sysctl_net_ipv4.o
  AR      drivers/media/platform/mediatek/mdp/built-in.a
  AR      drivers/media/platform/microchip/built-in.a
  AR      drivers/media/pci/intel/ipu3/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/common/built-in.a
  AR      drivers/media/pci/intel/ivsc/built-in.a
  AR      drivers/media/platform/nvidia/tegra-vde/built-in.a
  AR      drivers/media/pci/intel/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/encoder/built-in.a
  AR      drivers/media/platform/nvidia/built-in.a
  AR      drivers/media/pci/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/decoder/built-in.a
  AR      drivers/media/platform/mediatek/vcodec/built-in.a
  AR      drivers/media/platform/mediatek/vpu/built-in.a
  CC      kernel/jump_label.o
  CC      net/ipv4/proc.o
  CC [M]  drivers/gpu/drm/i915/vlv_sideband.o
  CC      net/ipv4/syncookies.o
  CC      drivers/input/mousedev.o
  AR      drivers/media/platform/mediatek/mdp3/built-in.a
  CC      net/ipv4/esp4.o
  AR      drivers/media/platform/mediatek/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/ioctl.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  AR      drivers/media/platform/nxp/dw100/built-in.a
  CC      drivers/acpi/acpica/utbuffer.o
  AR      drivers/media/platform/nxp/imx-jpeg/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC      drivers/base/pinctrl.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_idle_sysfs.o
  CC [M]  drivers/net/usb/mcs7830.o
  AR      drivers/media/platform/nxp/imx8-isi/built-in.a
  AR      drivers/media/platform/nxp/built-in.a
  CC      fs/read_write.o
  AR      drivers/media/platform/qcom/camss/built-in.a
  AR      drivers/rtc/built-in.a
  CC [M]  drivers/net/phy/broadcom.o
  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
  CC      drivers/usb/host/xhci-dbg.o
  AR      drivers/media/platform/renesas/rzg2l-cru/built-in.a
  CC      kernel/context_tracking.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_trace_points.o
  AR      drivers/media/platform/renesas/vsp1/built-in.a
  AR      drivers/media/platform/renesas/built-in.a
  AR      drivers/power/reset/built-in.a
  AR      drivers/media/platform/rockchip/rga/built-in.a
  CC      drivers/power/supply/power_supply_core.o
  CC      drivers/hwmon/hwmon.o
  AR      drivers/media/platform/rockchip/rkisp1/built-in.a
  AR      drivers/media/platform/rockchip/built-in.a
  CC [M]  drivers/i2c/busses/i2c-ccgx-ucsi.o
  CC      drivers/usb/core/buffer.o
  CC      lib/once.o
  AR      drivers/media/platform/samsung/exynos-gsc/built-in.a
  AR      drivers/media/platform/samsung/exynos4-is/built-in.a
  AR      drivers/media/platform/samsung/s3c-camif/built-in.a
  CC      drivers/power/supply/power_supply_sysfs.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/net/phy/lxt.o
  AR      drivers/media/platform/samsung/built-in.a
  CC      fs/nfs/export.o
  AR      drivers/media/platform/st/sti/bdisp/built-in.a
  CC      fs/nfs/sysfs.o
  CC      fs/nfs/fs_context.o
  AR      drivers/media/platform/st/sti/c8sectpfe/built-in.a
  AR      drivers/media/platform/st/sti/delta/built-in.a
  CC      drivers/acpi/acpica/utcksum.o
  AR      drivers/media/platform/st/sti/hva/built-in.a
  CC      kernel/iomem.o
  AR      drivers/media/platform/st/stm32/built-in.a
  AR      drivers/media/platform/st/built-in.a
  CC      drivers/base/devcoredump.o
  CC [M]  drivers/ptp/ptp_kvm_x86.o
  AR      drivers/media/platform/sunxi/sun4i-csi/built-in.a
  AR      drivers/media/platform/sunxi/sun6i-csi/built-in.a
  CC [M]  drivers/ptp/ptp_kvm_common.o
  AR      drivers/media/platform/sunxi/sun6i-mipi-csi2/built-in.a
  CC [M]  drivers/net/phy/realtek.o
  CC [M]  drivers/net/phy/smsc.o
  AR      drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/built-in.a
  LD [M]  drivers/ptp/ptp.o
  AR      drivers/media/platform/sunxi/sun8i-di/built-in.a
  AR      drivers/media/platform/sunxi/sun8i-rotate/built-in.a
  CC      drivers/base/platform-msi.o
  LD [M]  fs/overlayfs/overlay.o
  CC      drivers/base/physical_location.o
  AR      drivers/media/platform/sunxi/built-in.a
  CC [M]  drivers/net/usb/usbnet.o
  AR      drivers/media/platform/ti/am437x/built-in.a
  CC [M]  drivers/net/usb/cdc_ncm.o
  AR      drivers/media/platform/ti/cal/built-in.a
  CC [M]  drivers/net/ipvlan/ipvlan_main.o
  AR      drivers/media/platform/ti/vpe/built-in.a
  CC      lib/refcount.o
  AR      drivers/media/platform/ti/davinci/built-in.a
  AR      drivers/media/platform/ti/omap/built-in.a
  CC      drivers/usb/host/xhci-trace.o
  AR      drivers/media/platform/ti/omap3isp/built-in.a
  CC      drivers/usb/host/xhci-debugfs.o
  CC      kernel/rseq.o
  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      drivers/acpi/x86/apple.o
  CC [M]  fs/smb/client/inode.o
  AR      drivers/media/platform/xilinx/built-in.a
  AR      drivers/media/platform/built-in.a
  CC      drivers/input/evdev.o
  CC      drivers/power/supply/power_supply_leds.o
  CC      drivers/acpi/acpica/utcopy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/memory.o
  AR      drivers/thermal/broadcom/built-in.a
  CC      drivers/usb/core/sysfs.o
  CC [M]  drivers/i2c/busses/i2c-i801.o
  AR      drivers/thermal/samsung/built-in.a
  AR      drivers/media/usb/b2c2/built-in.a
  CC      drivers/thermal/intel/intel_tcc.o
  AR      drivers/media/usb/dvb-usb/built-in.a
  CC [M]  drivers/i2c/busses/i2c-isch.o
  AR      drivers/media/usb/dvb-usb-v2/built-in.a
  CC      lib/rcuref.o
  CC      fs/btrfs/file-item.o
  AR      drivers/media/usb/s2255/built-in.a
  AR      drivers/media/usb/siano/built-in.a
  CC      drivers/thermal/intel/therm_throt.o
  AR      drivers/media/usb/ttusb-budget/built-in.a
  AR      drivers/media/usb/ttusb-dec/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  GZIP    kernel/config_data.gz
  CC [M]  drivers/gpu/drm/i915/vlv_suspend.o
  AR      drivers/media/usb/built-in.a
  AR      drivers/thermal/st/built-in.a
  CC      kernel/configs.o
  AR      drivers/thermal/qcom/built-in.a
  CC      drivers/power/supply/power_supply_hwmon.o
  AR      drivers/media/mmc/siano/built-in.a
  AR      drivers/thermal/tegra/built-in.a
  AR      drivers/media/mmc/built-in.a
  CC [M]  drivers/net/vxlan/vxlan_core.o
  AR      drivers/thermal/mediatek/built-in.a
  AR      drivers/media/firewire/built-in.a
  CC      drivers/thermal/thermal_core.o
  CC [M]  drivers/net/vxlan/vxlan_multicast.o
  CC [M]  drivers/net/vxlan/vxlan_vnifilter.o
  CC [M]  drivers/net/vxlan/vxlan_mdb.o
  AR      drivers/media/spi/built-in.a
  CC      fs/nfs/sysctl.o
  CC      drivers/base/trace.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_dram.o
  AR      drivers/media/test-drivers/built-in.a
  AR      drivers/media/built-in.a
  CC      lib/usercopy.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_gmch.o
  CC [M]  drivers/net/usb/r8153_ecm.o
  LD [M]  drivers/ptp/ptp_kvm.o
  AR      drivers/net/ethernet/cavium/common/built-in.a
  AR      drivers/net/ethernet/cortina/built-in.a
  AR      drivers/net/ethernet/cavium/thunder/built-in.a
  AR      drivers/net/ethernet/engleder/built-in.a
  AR      drivers/net/ethernet/cavium/liquidio/built-in.a
  AR      drivers/net/ethernet/ezchip/built-in.a
  AR      drivers/net/ethernet/cavium/octeon/built-in.a
  AR      drivers/net/ethernet/fungible/built-in.a
  AR      drivers/net/ethernet/cavium/built-in.a
  AR      drivers/net/ethernet/huawei/built-in.a
  CC      drivers/thermal/thermal_sysfs.o
  CC      drivers/thermal/thermal_trip.o
  CC [M]  drivers/gpu/drm/i915/soc/intel_pch.o
  CC [M]  drivers/hwmon/acpi_power_meter.o
  CC      drivers/net/loopback.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_main.o
  CC      drivers/acpi/acpica/utexcep.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_hw.o
  CC      lib/errseq.o
  CC [M]  drivers/net/ethernet/intel/e1000e/82571.o
  CC      net/ipv4/esp4_offload.o
  LD [M]  drivers/net/phy/aquantia.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_main.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_main.o
  AR      drivers/net/phy/built-in.a
  AR      drivers/power/supply/built-in.a
  CC [M]  drivers/net/ethernet/intel/igb/igb_ethtool.o
  AR      drivers/power/built-in.a
  CC      lib/bucket_locks.o
  CC      fs/nfs/nfs2super.o
  CC [M]  drivers/net/ethernet/intel/igbvf/vf.o
  AR      kernel/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/mm.o
  CC      net/ipv4/netfilter.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_mac.o
  CC      drivers/net/netconsole.o
  AR      drivers/net/ethernet/i825xx/built-in.a
  CC [M]  drivers/gpu/drm/drm_client_modeset.o
  AR      drivers/net/ethernet/microsoft/built-in.a
  CC      fs/file_table.o
  AR      drivers/base/built-in.a
  CC      drivers/usb/host/xhci-pci.o
  CC [M]  drivers/i2c/busses/i2c-ismt.o
  CC      drivers/acpi/acpica/utdebug.o
  CC      drivers/usb/core/endpoint.o
  AR      drivers/input/built-in.a
  CC [M]  fs/smb/client/link.o
  CC [M]  drivers/thermal/intel/x86_pkg_temp_thermal.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC      fs/nfs/proc.o
  CC      fs/btrfs/inode-item.o
  CC [M]  drivers/hwmon/coretemp.o
  CC [M]  drivers/net/ipvlan/ipvlan_l3s.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_encoders.o
  CC      lib/generic-radix-tree.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sa.o
  CC      fs/btrfs/disk-io.o
  CC [M]  drivers/gpu/drm/i915/i915_memcpy.o
  CC      mm/sparse.o
  CC      fs/btrfs/transaction.o
  CC      fs/btrfs/inode.o
  CC      drivers/acpi/acpica/utdecode.o
  CC      lib/string_helpers.o
  CC [M]  drivers/net/dummy.o
  AR      drivers/thermal/intel/built-in.a
  CC [M]  drivers/gpu/drm/i915/i915_mm.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
  CC [M]  drivers/net/ethernet/intel/igbvf/mbx.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_common.o
  CC [M]  drivers/gpu/drm/i915/i915_sw_fence.o
  LD [M]  drivers/net/usb/asix.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.o
  CC      fs/btrfs/file.o
  CC      drivers/usb/core/devio.o
  CC      fs/nfs/nfs2xdr.o
  CC [M]  drivers/gpu/drm/i915/i915_sw_fence_work.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/object.o
  CC      drivers/watchdog/watchdog_core.o
  CC      drivers/thermal/thermal_helpers.o
  CC [M]  drivers/md/persistent-data/dm-array.o
  CC      fs/super.o
  CC      drivers/opp/core.o
  CC      drivers/acpi/acpica/utdelete.o
  CC [M]  drivers/md/persistent-data/dm-bitset.o
  CC      net/ipv4/inet_diag.o
  CC      drivers/opp/cpu.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ich8lan.o
  CC [M]  drivers/i2c/busses/i2c-piix4.o
  AR      drivers/hwmon/built-in.a
  CC      drivers/thermal/thermal_hwmon.o
  CC      drivers/cpufreq/cpufreq.o
  CC      drivers/cpuidle/governors/menu.o
  CC      drivers/mmc/core/core.o
  CC      lib/hexdump.o
  CC      drivers/cpuidle/governors/haltpoll.o
  AR      drivers/usb/host/built-in.a
  CC      drivers/mmc/core/bus.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/atombios_i2c.o
  CC [M]  drivers/net/macvlan.o
  LD [M]  drivers/net/ipvlan/ipvlan.o
  CC [M]  drivers/net/ethernet/intel/igbvf/ethtool.o
  CC [M]  drivers/net/ethernet/intel/e1000e/80003es2lan.o
  CC      drivers/thermal/gov_fair_share.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_ethtool.o
  CC      mm/sparse-vmemmap.o
  CC      drivers/acpi/acpica/uterror.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  CC      lib/kstrtox.o
  CC      drivers/opp/debugfs.o
  CC [M]  drivers/md/persistent-data/dm-block-manager.o
  CC [M]  drivers/net/ethernet/intel/e1000/e1000_param.o
  CC [M]  fs/smb/client/misc.o
  CC      fs/char_dev.o
  CC      fs/btrfs/defrag.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/oproxy.o
  AR      drivers/net/ethernet/intel/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbevf/vf.o
  CC [M]  drivers/md/persistent-data/dm-space-map-common.o
  CC      drivers/watchdog/watchdog_dev.o
  CC [M]  drivers/gpu/drm/i915/i915_syncmap.o
  CC      drivers/watchdog/softdog.o
  CC      drivers/thermal/gov_step_wise.o
  CC      drivers/acpi/acpica/uteval.o
  CC      drivers/cpuidle/cpuidle.o
  CC      lib/debug_info.o
  CC [M]  fs/smb/client/netmisc.o
  CC      fs/btrfs/extent_map.o
  CC      drivers/mmc/core/host.o
  CC      fs/btrfs/sysfs.o
  AR      drivers/cpuidle/governors/built-in.a
  CC      fs/btrfs/accessors.o
  CC [M]  drivers/net/ethernet/intel/ixgbevf/mbx.o
  CC [M]  drivers/i2c/busses/i2c-designware-pcidrv.o
  CC      mm/mmu_notifier.o
  CC [M]  drivers/md/persistent-data/dm-space-map-disk.o
  CC      fs/nfs/nfs3super.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.o
  CC [M]  drivers/md/persistent-data/dm-space-map-metadata.o
  CC      mm/ksm.o
  CC [M]  drivers/net/ethernet/intel/igbvf/netdev.o
  CC      drivers/acpi/acpica/utglobal.o
  CC      drivers/thermal/gov_user_space.o
  AR      drivers/opp/built-in.a
  AR      drivers/ufs/built-in.a
  AR      drivers/leds/trigger/built-in.a
  CC      fs/stat.o
  CC [M]  drivers/leds/trigger/ledtrig-audio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/option.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  CC      net/ipv4/tcp_diag.o
  CC [M]  drivers/net/ethernet/intel/e1000e/mac.o
  CC [M]  drivers/net/ethernet/intel/e1000e/manage.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.o
  CC      drivers/acpi/acpica/uthex.o
  AR      drivers/watchdog/built-in.a
  CC [M]  drivers/md/persistent-data/dm-transaction-manager.o
  CC      drivers/usb/core/notify.o
  CC [M]  drivers/gpu/drm/i915/i915_user_extensions.o
  CC      fs/nfs/nfs3client.o
  AR      drivers/thermal/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ethtool.o
  CC      drivers/cpuidle/driver.o
  AR      drivers/leds/blink/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.o
  CC      drivers/mmc/core/mmc.o
  AR      drivers/leds/simple/built-in.a
  CC      drivers/leds/led-core.o
  CC [M]  drivers/md/persistent-data/dm-btree.o
  CC      drivers/acpi/acpica/utids.o
  LD [M]  drivers/i2c/busses/i2c-designware-pci.o
  AR      drivers/i2c/busses/built-in.a
  AR      drivers/i2c/built-in.a
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC      fs/btrfs/xattr.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC      drivers/cpufreq/freq_table.o
  LD [M]  drivers/net/ethernet/intel/e1000/e1000.o
  CC      drivers/mmc/core/mmc_ops.o
  CC [M]  drivers/gpu/drm/i915/i915_ioc32.o
  CC [M]  drivers/gpu/drm/i915/i915_debugfs.o
  CC [M]  drivers/gpu/drm/i915/i915_debugfs_params.o
  CC [M]  drivers/net/ethernet/intel/e100.o
  CC      lib/iomap.o
  CC      drivers/acpi/acpica/utinit.o
  CC      drivers/acpi/x86/utils.o
  CC      drivers/cpuidle/governor.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_debugfs.o
  CC      fs/btrfs/ordered-data.o
  CC      drivers/usb/core/generic.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/ramht.o
  CC [M]  fs/smb/client/smbencrypt.o
  CC [M]  drivers/md/persistent-data/dm-btree-remove.o
  CC      drivers/cpuidle/sysfs.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_i225.o
  CC      drivers/cpuidle/poll_state.o
  CC      fs/btrfs/extent_io.o
  CC      fs/btrfs/volumes.o
  CC      fs/btrfs/async-thread.o
  CC      fs/btrfs/ioctl.o
  LD [M]  drivers/net/vxlan/vxlan.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/subdev.o
  CC      drivers/usb/core/quirks.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_base.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_debugfs_params.o
  CC      drivers/leds/led-class.o
  CC      drivers/acpi/x86/s2idle.o
  CC      drivers/cpufreq/cpufreq_performance.o
  CC      drivers/cpuidle/cpuidle-haltpoll.o
  CC      drivers/acpi/acpica/utlock.o
  CC      drivers/acpi/acpica/utmath.o
  CC      net/ipv4/udp_diag.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_nvm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  CC [M]  drivers/gpu/drm/drm_color_mgmt.o
  CC      fs/nfs/nfs3proc.o
  CC      fs/btrfs/locking.o
  CC      lib/pci_iomap.o
  CC      drivers/usb/core/devices.o
  CC      drivers/usb/core/phy.o
  CC      drivers/cpufreq/cpufreq_ondemand.o
  CC [M]  drivers/net/ethernet/intel/e1000e/nvm.o
  CC      fs/btrfs/orphan.o
  AR      drivers/cpuidle/built-in.a
  CC      drivers/cpufreq/cpufreq_governor.o
  CC [M]  drivers/md/persistent-data/dm-btree-spine.o
  CC      drivers/acpi/acpica/utmisc.o
  CC      lib/iomap_copy.o
  CC      drivers/acpi/acpica/utmutex.o
  CC      drivers/acpi/acpica/utnonansi.o
  CC      drivers/cpufreq/cpufreq_governor_attr_set.o
  CC      lib/devres.o
  CC      drivers/leds/led-triggers.o
  CC      drivers/usb/core/port.o
  CC      drivers/usb/core/hcd-pci.o
  AR      drivers/net/ethernet/litex/built-in.a
  CC      lib/check_signature.o
  AR      drivers/net/ethernet/microchip/built-in.a
  AR      drivers/net/ethernet/mscc/built-in.a
  AR      drivers/net/ethernet/neterion/built-in.a
  AR      drivers/net/ethernet/netronome/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbevf/ipsec.o
  CC      lib/interval_tree.o
  LD [M]  drivers/net/ethernet/intel/igbvf/igbvf.o
  CC      drivers/acpi/debugfs.o
  CC      lib/assoc_array.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/core/uevent.o
  CC [M]  fs/smb/client/transport.o
  CC      net/ipv4/tcp_cubic.o
  CC      drivers/acpi/acpica/utobject.o
  CC [M]  drivers/gpu/drm/i915/display/intel_pipe_crc.o
  CC [M]  drivers/gpu/drm/i915/i915_pmu.o
  CC      drivers/mmc/core/sd.o
  CC      drivers/acpi/acpi_lpat.o
  CC      fs/btrfs/export.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_phy.o
  AR      drivers/net/ethernet/ni/built-in.a
  CC [M]  drivers/gpu/drm/drm_connector.o
  CC [M]  fs/smb/client/cached_dir.o
  CC      lib/list_debug.o
  CC      fs/btrfs/tree-log.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_diag.o
  AR      drivers/net/ethernet/packetengines/built-in.a
  CC      drivers/acpi/acpica/utosi.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_82599.o
  CC      lib/debugobjects.o
  CC      drivers/mmc/host/sdhci.o
  CC      net/ipv4/xfrm4_policy.o
  LD [M]  drivers/md/persistent-data/dm-persistent-data.o
  CC      drivers/cpufreq/acpi-cpufreq.o
  CC      drivers/acpi/acpica/utownerid.o
  CC      drivers/md/md.o
  CC      fs/btrfs/free-space-cache.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ib.o
  AR      drivers/leds/built-in.a
  CC      drivers/usb/core/usb-acpi.o
  CC [M]  drivers/net/mii.o
  AR      drivers/firmware/arm_ffa/built-in.a
  CC [M]  drivers/net/ethernet/intel/igb/e1000_82575.o
  AR      drivers/firmware/arm_scmi/built-in.a
  CC      fs/btrfs/zlib.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_mac.o
  AR      drivers/firmware/broadcom/built-in.a
  CC      drivers/acpi/acpica/utpredef.o
  AR      drivers/firmware/cirrus/built-in.a
  AR      drivers/firmware/meson/built-in.a
  CC      drivers/acpi/acpi_lpit.o
  CC      lib/bitrev.o
  CC      fs/nfs/nfs3xdr.o
  CC      lib/crc16.o
  AR      drivers/crypto/stm32/built-in.a
  CC      fs/btrfs/lzo.o
  AR      drivers/crypto/xilinx/built-in.a
  CC      fs/btrfs/zstd.o
  AR      drivers/crypto/hisilicon/built-in.a
  CC [M]  drivers/net/ethernet/intel/e1000e/phy.o
  AR      drivers/crypto/intel/keembay/built-in.a
  CC      drivers/firmware/efi/libstub/efi-stub-helper.o
  CC      drivers/acpi/acpica/utresdecode.o
  AR      drivers/crypto/intel/ixp4xx/built-in.a
  CC      drivers/firmware/efi/efi-bgrt.o
  AR      drivers/crypto/intel/built-in.a
  AR      drivers/crypto/starfive/built-in.a
  AR      drivers/crypto/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/fw.o
  CC      drivers/firmware/efi/libstub/gop.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_ethtool.o
  CC [M]  drivers/gpu/drm/i915/gt/gen2_engine_cs.o
  CC      mm/slub.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  CC      lib/crc-t10dif.o
  CC      fs/exec.o
  AR      drivers/firmware/imx/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/gen6_engine_cs.o
  AR      drivers/firmware/psci/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_ptp.o
  CC      drivers/acpi/acpica/utresrc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/hs.o
  CC      drivers/acpi/prmt.o
  CC      drivers/clocksource/acpi_pm.o
  CC      fs/btrfs/compression.o
  AR      drivers/usb/core/built-in.a
  AR      drivers/usb/built-in.a
  CC      drivers/cpufreq/intel_pstate.o
  CC      net/ipv4/xfrm4_state.o
  CC      drivers/hid/usbhid/hid-core.o
  CC      drivers/mmc/core/sd_ops.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/ls.o
  CC      drivers/hid/usbhid/hiddev.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_dump.o
  CC      fs/pipe.o
  CC      drivers/acpi/acpi_pcc.o
  HOSTCC  lib/gen_crc32table
  CC [M]  drivers/gpu/drm/i915/gt/gen6_ppgtt.o
  CC      drivers/mmc/core/sdio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/acr.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  LD [M]  drivers/net/ethernet/intel/ixgbevf/ixgbevf.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_pll.o
  CC      drivers/firmware/efi/libstub/secureboot.o
  CC      lib/libcrc32c.o
  CC      drivers/firmware/efi/libstub/tpm.o
  CC      drivers/acpi/acpica/utstate.o
  CC [M]  drivers/gpu/drm/i915/gt/gen7_renderclear.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC      net/ipv4/xfrm4_input.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.o
  CC      fs/btrfs/delayed-ref.o
  CC      drivers/clocksource/i8253.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_nvm.o
  CC      fs/btrfs/relocation.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/nvfw/flcn.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_engine_cs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.o
  CC      net/ipv4/xfrm4_output.o
  CC      lib/xxhash.o
  CC      drivers/acpi/acpica/utstring.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_82598.o
  CC      drivers/firmware/efi/libstub/file.o
  CC [M]  fs/smb/client/cifs_unicode.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_ppgtt.o
  CC      net/ipv4/xfrm4_protocol.o
  AR      drivers/staging/media/built-in.a
  AR      drivers/net/ethernet/realtek/built-in.a
  AR      drivers/staging/built-in.a
  CC [M]  drivers/net/ethernet/realtek/8139cp.o
  AR      drivers/clocksource/built-in.a
  AR      drivers/net/ethernet/renesas/built-in.a
  CC [M]  drivers/net/ethernet/realtek/8139too.o
  CC [M]  drivers/gpu/drm/xe/xe_heci_gsc.o
  AR      drivers/net/ethernet/sfc/built-in.a
  AR      drivers/net/ethernet/smsc/built-in.a
  AR      drivers/net/ethernet/socionext/built-in.a
  CC [M]  drivers/net/ethernet/smsc/smsc9420.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
  CC      fs/namei.o
  CC      drivers/hid/hid-core.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_phy.o
  AR      fs/nfs/built-in.a
  CC [M]  net/ipv4/ip_tunnel.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_tsn.o
  CC [M]  drivers/net/ethernet/intel/igc/igc_xdp.o
  CC      drivers/acpi/acpica/utstrsuppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sync.o
  CC [M]  drivers/net/ethernet/intel/e1000e/param.o
  CC      lib/genalloc.o
  CC      drivers/mmc/core/sdio_ops.o
  CC      lib/percpu_counter.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_breadcrumbs.o
  AR      drivers/hid/usbhid/built-in.a
  CC [M]  fs/smb/client/nterr.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_context.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_context_sseu.o
  CC      drivers/hid/hid-input.o
  CC      drivers/acpi/acpica/utstrtoul64.o
  CC      lib/fault-inject.o
  CC      drivers/firmware/efi/libstub/mem.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC      fs/btrfs/delayed-inode.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/cmdq.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_mbx.o
  CC [M]  net/ipv4/udp_tunnel_core.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_cs.o
  CC [M]  fs/smb/client/cifsencrypt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.o
  AR      drivers/cpufreq/built-in.a
  CC [M]  drivers/gpu/drm/drm_crtc.o
  CC      fs/fcntl.o
  CC [M]  drivers/gpu/drm/drm_displayid.o
  CC [M]  drivers/gpu/drm/drm_drv.o
  CC      drivers/md/md-bitmap.o
  CC      drivers/acpi/acpica/utxface.o
  CC [M]  drivers/gpu/drm/drm_dumb_buffers.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_phy.o
  CC [M]  net/ipv4/udp_tunnel_nic.o
  CC      drivers/mmc/host/sdhci-pci-core.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/fw.o
  CC      drivers/mmc/core/sdio_bus.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC      fs/btrfs/scrub.o
  CC      lib/syscall.o
  CC      fs/btrfs/backref.o
  CC [M]  drivers/gpu/drm/drm_edid.o
  CC      drivers/firmware/efi/libstub/random.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ethtool.o
  LD [M]  drivers/net/ethernet/intel/igc/igc.o
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  CC      lib/dynamic_debug.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_preempt_mgr.o
  CC      drivers/acpi/acpica/utxfinit.o
  CC      drivers/acpi/ac.o
  CC      drivers/acpi/button.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_pm.o
  CC [M]  drivers/net/ethernet/intel/igb/e1000_i210.o
  CC [M]  drivers/net/ethernet/intel/e1000e/netdev.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.o
  CC      lib/errname.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.o
  CC      lib/nlattr.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_ptp.o
  AR      drivers/net/ethernet/vertexcom/built-in.a
  AR      drivers/net/ethernet/wangxun/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  AR      drivers/net/ethernet/xilinx/built-in.a
  CC [M]  drivers/net/ethernet/realtek/r8169_main.o
  AR      drivers/net/ethernet/synopsys/built-in.a
  AR      drivers/net/ethernet/pensando/built-in.a
  CC [M]  drivers/net/ethernet/realtek/r8169_firmware.o
  CC      drivers/mmc/core/sdio_cis.o
  CC      drivers/firmware/efi/libstub/randomalloc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.o
  AR      drivers/firmware/smccc/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.o
  CC      drivers/acpi/acpica/utxferror.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sched.o
  CC      drivers/acpi/acpica/utxfmutex.o
  AR      drivers/firmware/tegra/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.o
  CC      drivers/hid/hid-quirks.o
  CC      lib/checksum.o
  CC [M]  fs/smb/client/readdir.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.o
  CC      drivers/acpi/fan_core.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/msgq.o
  CC      drivers/acpi/fan_attr.o
  CC      mm/migrate.o
  CC [M]  drivers/net/ethernet/realtek/r8169_phy_config.o
  CC      drivers/firmware/efi/libstub/pci.o
  CC      lib/cpu_rmap.o
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC      lib/dynamic_queue_limits.o
  CC      drivers/mmc/host/sdhci-pci-o2micro.o
  CC      drivers/acpi/processor_driver.o
  AR      drivers/acpi/acpica/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/intel_engine_user.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.o
  CC      drivers/acpi/processor_thermal.o
  CC      drivers/firmware/efi/libstub/skip_spaces.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/qmgr.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_execlists_submission.o
  CC      drivers/md/md-autodetect.o
  LD [M]  net/ipv4/udp_tunnel.o
  AR      net/ipv4/built-in.a
  CC [M]  fs/smb/client/ioctl.o
  CC      drivers/mmc/core/sdio_io.o
  AR      net/built-in.a
  CC      drivers/mmc/core/sdio_irq.o
  CC      lib/glob.o
  CC      drivers/acpi/processor_idle.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt.o
  CC      drivers/mmc/host/sdhci-pci-arasan.o
  CC [M]  fs/smb/client/sess.o
  CC      fs/btrfs/ulist.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.o
  CC      lib/strncpy_from_user.o
  CC      drivers/mmc/host/sdhci-pci-dwc-mshc.o
  CC      lib/strnlen_user.o
  CC      drivers/md/dm-uevent.o
  CC      drivers/firmware/efi/libstub/lib-cmdline.o
  CC      drivers/hid/hid-debug.o
  CC [M]  drivers/net/ethernet/intel/e1000e/ptp.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.o
  CC      drivers/acpi/processor_throttling.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt.o
  CC      fs/ioctl.o
  CC      drivers/firmware/efi/libstub/lib-ctype.o
  CC      drivers/firmware/efi/libstub/alignedmem.o
  CC      drivers/firmware/efi/libstub/relocate.o
  AR      drivers/platform/x86/amd/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.o
  CC      drivers/platform/x86/intel/pmc/core.o
  AR      drivers/platform/surface/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/v1.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_buffer_pool.o
  CC      drivers/platform/x86/intel/pmc/core_ssram.o
  CC [M]  drivers/gpu/drm/drm_encoder.o
  CC [M]  drivers/net/ethernet/intel/igb/igb_hwmon.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_x540.o
  CC      drivers/mmc/core/slot-gpio.o
  CC      fs/readdir.o
  CC      drivers/mmc/core/regulator.o
  CC      drivers/platform/x86/p2sb.o
  CC      drivers/firmware/efi/efi.o
  CC      lib/net_utils.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/gm200.o
  CC      drivers/platform/x86/intel/pmc/spt.o
  CC      drivers/mmc/host/sdhci-pci-gli.o
  CC      fs/btrfs/qgroup.o
  CC [M]  drivers/net/mdio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.o
  CC      drivers/platform/x86/pmc_atom.o
  CC      drivers/firmware/efi/vars.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_x550.o
  CC      drivers/firmware/efi/libstub/printk.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_csa.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/gp102.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_lib.o
  CC      fs/btrfs/send.o
  CC      drivers/hid/hidraw.o
  CC      drivers/hid/hid-generic.o
  CC      drivers/acpi/processor_perflib.o
  CC      lib/sg_pool.o
  CC      drivers/mmc/host/sdhci-acpi.o
  CC [M]  drivers/net/tun.o
  CC [M]  drivers/net/veth.o
  CC      drivers/hid/hid-a4tech.o
  CC      drivers/mmc/host/cqhci-core.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/ga100.o
  CC [M]  drivers/gpu/drm/drm_file.o
  CC [M]  fs/smb/client/export.o
  CC      drivers/mmc/core/debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/falcon/ga102.o
  CC      drivers/acpi/container.o
  CC      drivers/firmware/efi/libstub/vsprintf.o
  CC [M]  drivers/mmc/host/sdhci-pltfm.o
  CC [M]  drivers/gpu/drm/drm_fourcc.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_clock_utils.o
  LD [M]  drivers/net/ethernet/intel/igb/igb.o
  CC [M]  drivers/platform/x86/wmi.o
  CC      drivers/platform/x86/intel/pmc/cnp.o
  CC [M]  fs/smb/client/unc.o
  CC      drivers/firmware/efi/libstub/x86-stub.o
  CC      fs/select.o
  CC [M]  drivers/gpu/drm/drm_framebuffer.o
  CC      mm/memory-tiers.o
  CC      drivers/acpi/thermal.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_debugfs.o
  CC      drivers/md/dm.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_engines_debugfs.o
  CC      mm/migrate_device.o
  CC      drivers/acpi/acpi_memhotplug.o
  CC      drivers/platform/x86/intel/pmc/icl.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.o
  CC      drivers/md/dm-table.o
  LD [M]  drivers/net/ethernet/realtek/r8169.o
  CC      drivers/platform/x86/intel/pmc/tgl.o
  CC      lib/stackdepot.o
  CC      lib/ucs2_string.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_irq.o
  CC      fs/dcache.o
  CC      drivers/acpi/ioapic.o
  CC      drivers/firmware/efi/reboot.o
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC      drivers/hid/hid-apple.o
  CC      drivers/mmc/core/block.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_mcr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.o
  CC      drivers/platform/x86/intel/pmc/adl.o
  CC [M]  fs/smb/client/winucase.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/base.o
  CC      drivers/mailbox/mailbox.o
  CC [M]  fs/smb/client/smb2ops.o
  CC      drivers/mailbox/pcc.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm.o
  CC      drivers/acpi/battery.o
  CC      drivers/acpi/hed.o
  CC      lib/sbitmap.o
  CC      drivers/acpi/bgrt.o
  CC      drivers/firmware/efi/memattr.o
  CC      drivers/acpi/cppc_acpi.o
  CC      drivers/firmware/efi/tpm.o
  CC      drivers/platform/x86/intel/pmc/mtl.o
  CC      drivers/hid/hid-belkin.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.o
  CC      fs/inode.o
  CC      drivers/firmware/efi/libstub/x86-5lvl.o
  CC      fs/btrfs/dev-replace.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.o
  AR      drivers/mmc/host/built-in.a
  CC [M]  drivers/gpu/drm/drm_gem.o
  CC      drivers/firmware/efi/memmap.o
  CC      drivers/hid/hid-cherry.o
  CC      drivers/platform/x86/intel/pmc/pltdrv.o
  CC      drivers/firmware/efi/esrt.o
  CC      fs/attr.o
  CC [M]  fs/smb/client/smb2maperror.o
  CC      drivers/devfreq/devfreq.o
  CC      fs/bad_inode.o
  CC      fs/file.o
  CC      drivers/acpi/spcr.o
  CC      drivers/powercap/powercap_sys.o
  CC [M]  drivers/devfreq/governor_simpleondemand.o
  AR      drivers/mailbox/built-in.a
  AR      drivers/perf/built-in.a
  CC      lib/group_cpus.o
  CC [M]  lib/asn1_decoder.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_pm_irq.o
  CC      drivers/powercap/intel_rapl_common.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.o
  CC      drivers/hid/hid-chicony.o
  CC      mm/huge_memory.o
  CC [M]  drivers/gpu/drm/drm_ioctl.o
  STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_requests.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
  STUBCPY drivers/firmware/efi/libstub/file.stub.o
  AR      drivers/platform/x86/intel/pmc/built-in.a
  STUBCPY drivers/firmware/efi/libstub/gop.stub.o
  GEN     lib/oid_registry_data.c
  STUBCPY drivers/firmware/efi/libstub/lib-cmdline.stub.o
  STUBCPY drivers/firmware/efi/libstub/lib-ctype.stub.o
  CC      drivers/hid/hid-cypress.o
  STUBCPY drivers/firmware/efi/libstub/mem.stub.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.o
  CC [M]  drivers/platform/x86/intel/pmt/class.o
  STUBCPY drivers/firmware/efi/libstub/pci.stub.o
  STUBCPY drivers/firmware/efi/libstub/printk.stub.o
  STUBCPY drivers/firmware/efi/libstub/random.stub.o
  STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC      drivers/md/dm-target.o
  STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
  CC      fs/filesystems.o
  STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.o
  STUBCPY drivers/firmware/efi/libstub/skip_spaces.stub.o
  LD [M]  drivers/net/ethernet/intel/e1000e/e1000e.o
  STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.o
  STUBCPY drivers/firmware/efi/libstub/vsprintf.stub.o
  STUBCPY drivers/firmware/efi/libstub/x86-5lvl.stub.o
  CC      fs/namespace.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_sysfs.o
  CC      drivers/firmware/efi/efi-pstore.o
  CC [M]  drivers/devfreq/governor_performance.o
  STUBCPY drivers/firmware/efi/libstub/x86-stub.stub.o
  AR      drivers/firmware/efi/libstub/lib.a
  CC [M]  drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm20b.o
  CC      fs/seq_file.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.o
  CC      drivers/acpi/acpi_pad.o
  CC      drivers/md/dm-linear.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gtt.o
  CC      drivers/md/dm-stripe.o
  CC      drivers/md/dm-ioctl.o
  CC [M]  lib/oid_registry.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp108.o
  CC      drivers/hid/hid-ezkey.o
  CC      mm/khugepaged.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC      drivers/mmc/core/queue.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.o
  CC [M]  drivers/platform/x86/intel/pmt/telemetry.o
  CC      drivers/hid/hid-kensington.o
  CC      drivers/md/dm-io.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.o
  CC [M]  drivers/gpu/drm/drm_lease.o
  CC      drivers/hid/hid-lg.o
  CC [M]  fs/smb/client/smb2transport.o
  CC      drivers/firmware/efi/cper.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.o
  AR      lib/lib.a
  GEN     lib/crc32table.h
  CC [M]  drivers/platform/x86/intel/pmt/crashlog.o
  CC      lib/crc32.o
  CC      drivers/firmware/efi/cper_cxl.o
  CC      drivers/md/dm-kcopyd.o
  CC      fs/xattr.o
  CC [M]  drivers/acpi/acpi_video.o
  CC      drivers/md/dm-sysfs.o
  CC      drivers/powercap/intel_rapl_msr.o
  CC      drivers/md/dm-stats.o
  AR      drivers/devfreq/built-in.a
  CC      drivers/ras/ras.o
  CC      drivers/md/dm-rq.o
  CC      drivers/ras/debugfs.o
  CC      fs/libfs.o
  CC      fs/btrfs/raid56.o
  CC      drivers/md/dm-io-rewind.o
  CC      fs/btrfs/uuid-tree.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp10b.o
  CC      fs/fs-writeback.o
  CC      drivers/platform/x86/intel/turbo_max_3.o
  CC      drivers/hid/hid-lg-g15.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_class.o
  CC      mm/page_counter.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_llc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/tu102.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_lrc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.o
  AR      lib/built-in.a
  CC      drivers/hid/hid-microsoft.o
  AR      drivers/mmc/core/built-in.a
  CC      drivers/hid/hid-monterey.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.o
  AR      drivers/mmc/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.o
  AR      drivers/hwtracing/intel_th/built-in.a
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_telemetry.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_migrate.o
  LD [M]  drivers/platform/x86/intel/pmt/pmt_crashlog.o
  CC [M]  drivers/net/ethernet/intel/ixgbe/ixgbe_ipsec.o
  CC      drivers/md/dm-builtin.o
  CC [M]  drivers/platform/x86/intel/vsec.o
  CC [M]  drivers/md/dm-bufio.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC [M]  fs/smb/client/smb2misc.o
  CC      mm/memcontrol.o
  AR      drivers/powercap/built-in.a
  CC      drivers/android/binderfs.o
  CC      drivers/firmware/efi/runtime-wrappers.o
  CC      drivers/android/binder.o
  CC [M]  drivers/md/dm-bio-prison-v1.o
  CC      mm/vmpressure.o
  CC [M]  drivers/md/dm-bio-prison-v2.o
  AR      drivers/nvmem/layouts/built-in.a
  CC      drivers/nvmem/core.o
  CC [M]  drivers/gpu/drm/drm_managed.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga100.o
  CC      drivers/firmware/efi/dev-path-parser.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/acr/ga102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_umc.o
  CC [M]  drivers/platform/x86/intel/rst.o
  AR      drivers/ras/built-in.a
  CC [M]  drivers/acpi/video_detect.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v11_0_i2c.o
  CC      fs/pnode.o
  CC      fs/btrfs/props.o
  CC      fs/btrfs/free-space-tree.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_mocs.o
  CC      fs/btrfs/tree-checker.o
  CC      fs/btrfs/space-info.o
  CC [M]  drivers/md/dm-crypt.o
  CC      fs/btrfs/block-rsv.o
  AR      drivers/platform/x86/intel/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/intel_ppgtt.o
  LD [M]  drivers/platform/x86/intel/intel_vsec.o
  AR      drivers/acpi/built-in.a
  CC [M]  drivers/gpu/drm/i915/gt/intel_rc6.o
  AR      drivers/hid/built-in.a
  CC [M]  drivers/md/dm-thin.o
  CC      fs/splice.o
  AR      drivers/firmware/xilinx/built-in.a
  CC      drivers/firmware/dmi_scan.o
  CC [M]  drivers/md/dm-thin-metadata.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/nv50.o
  CC      fs/sync.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  LD [M]  drivers/platform/x86/intel/intel-rst.o
  CC      mm/swap_cgroup.o
  CC [M]  drivers/platform/x86/wmi-bmof.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/g84.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC      drivers/android/binder_alloc.o
  CC      fs/btrfs/delalloc-space.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC      drivers/firmware/efi/apple-properties.o
  CC      mm/hugetlb_cgroup.o
  CC      mm/kmemleak.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.o
  LD [M]  drivers/acpi/video.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gk20a.o
  CC [M]  drivers/mtd/chips/chipreg.o
  CC      fs/utimes.o
  AR      drivers/nvmem/built-in.a
  CC      drivers/firmware/efi/earlycon.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.o
  CC      drivers/firmware/dmi-sysfs.o
  CC [M]  drivers/platform/x86/mxm-wmi.o
  LD [M]  drivers/net/ethernet/intel/ixgbe/ixgbe.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_rap.o
  LD [M]  drivers/md/dm-bio-prison.o
  AR      drivers/net/ethernet/built-in.a
  CC      fs/d_path.o
  CC [M]  fs/smb/client/smb2pdu.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC [M]  fs/smb/client/smb2inode.o
  CC [M]  fs/smb/client/smb2file.o
  AR      drivers/net/built-in.a
  CC      drivers/firmware/efi/cper-x86.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/gm20b.o
  AR      drivers/md/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bar/tu102.o
  CC      drivers/firmware/dmi-id.o
  CC [M]  drivers/gpu/drm/drm_mm.o
  CC [M]  drivers/uio/uio.o
  CC [M]  drivers/gpu/drm/drm_mode_config.o
  CC      fs/btrfs/block-group.o
  CC      mm/page_isolation.o
  CC [M]  drivers/platform/x86/intel_ips.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fw_attestation.o
  CC      drivers/firmware/memmap.o
  CC [M]  drivers/mtd/mtdcore.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_region_lmem.o
  CC      mm/early_ioremap.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_renderstate.o
  CC [M]  fs/smb/client/cifsacl.o
  CC [M]  drivers/gpu/drm/drm_mode_object.o
  CC [M]  drivers/mtd/mtdsuper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_securedisplay.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_eeprom.o
  CC [M]  drivers/gpu/drm/xe/xe_range_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC      mm/cma.o
  CC      fs/btrfs/discard.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_reset.o
  CC      mm/secretmem.o
  CC [M]  fs/smb/client/fs_context.o
  CC [M]  fs/smb/client/dns_resolve.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/bit.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/boost.o
  AR      drivers/firmware/efi/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/conn.o
  CC [M]  drivers/gpu/drm/drm_modes.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ring.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/cstep.o
  CC      fs/btrfs/reflink.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/dcb.o
  CC [M]  drivers/mtd/mtdconcat.o
  AR      drivers/firmware/built-in.a
  CC [M]  drivers/vfio/pci/vfio_pci_core.o
  CC      fs/btrfs/subpage.o
  CC [M]  drivers/vfio/vfio_main.o
  CC      fs/stack.o
  CC [M]  drivers/vfio/iova_bitmap.o
  CC [M]  drivers/bluetooth/btusb.o
  CC [M]  drivers/bluetooth/btintel.o
  CC [M]  drivers/pps/pps.o
  CC [M]  drivers/bluetooth/btbcm.o
  CC [M]  drivers/pps/kapi.o
  ASN.1   fs/smb/client/cifs_spnego_negtokeninit.asn1.[ch]
  CC [M]  fs/smb/client/namespace.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mca.o
  AR      drivers/platform/x86/built-in.a
  AR      drivers/platform/built-in.a
  CC [M]  drivers/bluetooth/btrtl.o
  CC [M]  drivers/vfio/group.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.o
  CC [M]  drivers/gpu/drm/drm_modeset_lock.o
  LD [M]  drivers/md/dm-thin-pool.o
  CC      fs/btrfs/tree-mod-log.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC [M]  fs/smb/client/smb1ops.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ring_submission.o
  CC [M]  drivers/vfio/container.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.o
  CC [M]  drivers/dca/dca-core.o
  CC      fs/fs_struct.o
  CC [M]  drivers/ssb/main.o
  CC [M]  drivers/ssb/scan.o
  CC [M]  drivers/vhost/net.o
  CC [M]  drivers/ssb/sprom.o
  CC [M]  drivers/vfio/pci/vfio_pci_intrs.o
  CC [M]  drivers/mtd/mtdpart.o
  CC [M]  drivers/vfio/virqfd.o
  CC [M]  fs/smb/client/cifssmb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/dp.o
  CC [M]  drivers/pps/sysfs.o
  CC [M]  drivers/mtd/mtdchar.o
  CC      mm/userfaultfd.o
  CC [M]  fs/smb/client/cifs_spnego_negtokeninit.asn1.o
  CC      fs/btrfs/extent-io-tree.o
  CC [M]  drivers/gpu/drm/drm_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.o
  CC [M]  fs/smb/client/asn1.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_rps.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC [M]  drivers/vfio/pci/vfio_pci_rdwr.o
  CC      fs/btrfs/fs.o
  CC [M]  drivers/gpu/drm/drm_prime.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/extdev.o
  LD [M]  drivers/pps/pps_core.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC      fs/btrfs/messages.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/dca/dca-sysfs.o
  CC [M]  drivers/vhost/vhost.o
  CC [M]  drivers/vfio/vfio_iommu_type1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/fan.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  CC [M]  drivers/ssb/pci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/gpio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_pmu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik.o
  CC [M]  drivers/vhost/iotlb.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/vfio/pci/vfio_pci_config.o
  CC [M]  drivers/gpu/drm/drm_print.o
  CC [M]  drivers/gpu/drm/drm_property.o
  CC [M]  drivers/ssb/pcihost_wrapper.o
  CC      fs/btrfs/bio.o
  CC      fs/btrfs/lru_cache.o
  CC [M]  drivers/gpu/drm/drm_syncobj.o
  CC [M]  drivers/vfio/pci/vfio_pci.o
  LD [M]  drivers/dca/dca.o
  CC [M]  drivers/gpu/drm/drm_sysfs.o
  CC [M]  drivers/gpu/drm/drm_trace_points.o
  LD [M]  drivers/mtd/mtd.o
  CC      mm/memremap.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/image.o
  CC [M]  drivers/gpu/drm/drm_vblank.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik_ih.o
  LD [M]  drivers/vfio/vfio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/mxm.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC [M]  drivers/gpu/drm/drm_vblank_work.o
  CC      mm/hmm.o
  CC      fs/statfs.o
  CC      mm/memfd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/npde.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pcir.o
  AR      drivers/android/built-in.a
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/perf.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v8_0.o
  CC      fs/fs_pin.o
  CC      fs/nsfs.o
  CC [M]  drivers/ssb/driver_chipcommon.o
  CC      fs/fs_types.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      fs/fs_context.o
  LD [M]  drivers/vhost/vhost_net.o
  CC      fs/fs_parser.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.o
  CC [M]  drivers/gpu/drm/xe/xe_tile_sysfs.o
  CC      mm/bootmem_info.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cik_sdma.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v4_2.o
  CC [M]  drivers/ssb/driver_chipcommon_pmu.o
  CC [M]  drivers/gpu/drm/drm_vma_manager.o
  CC [M]  drivers/ssb/driver_pcicore.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sa_media.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sseu.o
  CC      fs/fsopen.o
  CC [M]  drivers/gpu/drm/drm_writeback.o
  CC      fs/init.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/ramcfg.o
  LD [M]  drivers/vfio/pci/vfio-pci.o
  CC      fs/kernel_read_file.o
  LD [M]  drivers/vfio/pci/vfio-pci-core.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/lib/drm_random.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.o
  CC [M]  drivers/gpu/drm/drm_ioc32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.o
  CC      fs/mnt_idmapping.o
  CC      fs/btrfs/acl.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.o
  CC [M]  drivers/gpu/drm/drm_panel.o
  LD [M]  drivers/vhost/vhost_iotlb.o
  CC [M]  drivers/gpu/drm/drm_pci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowpci.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowramin.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC [M]  drivers/gpu/drm/drm_debugfs.o
  CC [M]  drivers/gpu/drm/drm_debugfs_crc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowrom.o
  CC [M]  drivers/gpu/drm/drm_edid_load.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v2_0.o
  CC [M]  drivers/gpu/drm/drm_panel_orientation_quirks.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/therm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si.o
  AR      mm/built-in.a
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  CC [M]  drivers/gpu/drm/drm_exec.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/vmap.o
  CC      fs/remap_range.o
  CC      fs/buffer.o
  CC [M]  drivers/gpu/drm/drm_gpuvm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_sseu_debugfs.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_timeline.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_tlb.o
  CC      fs/mpage.o
  CC      fs/proc_namespace.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_wopcm.o
  CC [M]  drivers/gpu/drm/drm_buddy.o
  CC      fs/direct-io.o
  CC [M]  drivers/gpu/drm/drm_gem_shmem_helper.o
  LD [M]  drivers/ssb/ssb.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_workarounds.o
  CC [M]  drivers/gpu/drm/i915/gt/shmem_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/volt.o
  CC [M]  drivers/gpu/drm/drm_suballoc.o
  CC [M]  drivers/gpu/drm/drm_gem_ttm_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v6_0.o
  CC [M]  drivers/gpu/drm/drm_atomic_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/vpstate.o
  CC [M]  drivers/gpu/drm/drm_atomic_state_helper.o
  CC [M]  drivers/gpu/drm/i915/gt/sysfs_engines.o
  CC      fs/eventpoll.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/gpu/drm/drm_bridge_connector.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/amd/amdgpu/si_ih.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_ggtt_gmch.o
  CC [M]  drivers/gpu/drm/drm_crtc_helper.o
  CC [M]  drivers/gpu/drm/drm_damage_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0205.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/M0209.o
  AR      fs/btrfs/built-in.a
  CC      fs/anon_inodes.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bios/P0260.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/si_dma.o
  CC      fs/signalfd.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC [M]  drivers/gpu/drm/i915/gt/gen6_renderstate.o
  CC      fs/timerfd.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v6_0.o
  CC [M]  drivers/gpu/drm/drm_encoder_slave.o
  CC [M]  drivers/gpu/drm/drm_flip_work.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v3_1.o
  CC [M]  drivers/gpu/drm/drm_format_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/hwsq.o
  CC [M]  drivers/gpu/drm/i915/gt/gen7_renderstate.o
  CC [M]  drivers/gpu/drm/drm_gem_atomic_helper.o
  CC [M]  drivers/gpu/drm/drm_gem_framebuffer_helper.o
  CC      fs/eventfd.o
  CC [M]  drivers/gpu/drm/drm_kms_helper_common.o
  CC [M]  drivers/gpu/drm/i915/gt/gen8_renderstate.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv04.o
  LD [M]  fs/smb/client/cifs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vi.o
  CC      fs/userfaultfd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv31.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/i915/gt/gen9_renderstate.o
  CC [M]  drivers/gpu/drm/drm_modeset_helper.o
  CC      fs/aio.o
  CC [M]  drivers/gpu/drm/drm_plane_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/nv50.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_vi.o
  CC      fs/locks.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v6_1.o
  CC      fs/binfmt_script.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/bus/gf100.o
  CC      fs/binfmt_elf.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/base.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_busy.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_clflush.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC      fs/compat_binfmt_elf.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/soc15.o
  CC [M]  drivers/gpu/drm/drm_probe_helper.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_context.o
  CC [M]  drivers/gpu/drm/drm_rect.o
  CC [M]  drivers/gpu/drm/drm_self_refresh_helper.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_create.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/emu_soc.o
  CC [M]  drivers/gpu/drm/drm_simple_kms_helper.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.o
  CC [M]  drivers/gpu/drm/bridge/panel.o
  CC [M]  drivers/gpu/drm/drm_fbdev_generic.o
  CC      fs/mbcache.o
  CC [M]  drivers/gpu/drm/drm_fb_helper.o
  LD [M]  drivers/gpu/drm/drm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv04.o
  CC      fs/posix_acl.o
  LD [M]  drivers/gpu/drm/drm_shmem_helper.o
  LD [M]  drivers/gpu/drm/drm_suballoc_helper.o
  LD [M]  drivers/gpu/drm/drm_ttm_helper.o
  CC      fs/coredump.o
  CC      fs/drop_caches.o
  AR      drivers/gpu/drm/built-in.a
  CC      fs/sysctls.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv40.o
  CC      fs/fhandle.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/xe/xe_vm_madvise.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_ai.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/mcp77.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/nouveau/nvkm/subdev/clk/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/gm20b.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_domain.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllnv04.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega10_reg_init.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_internal.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_object.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_lmem.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega20_reg_init.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_4.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v2_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/clk/pllgt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv04.o
  CC [M]  drivers/gpu/drm/xe/xe_hwmon.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_mman.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_pages.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nv.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_phys.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv05.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/arct_reg_init.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mxgpu_nv.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv10.o
  CC [M]  drivers/gpu/drm/xe/xe_display.o
  CC [M]  drivers/gpu/drm/xe/display/xe_fb_pin.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v4_0.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/nouveau/nvkm/subdev/devinit/nv1a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv20.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v5_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/g98.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_pm.o
  LD [M]  drivers/gpu/drm/drm_kms_helper.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/mcp89.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_rps.o
  CC [M]  drivers/gpu/drm/xe/display/xe_display_misc.o
  CC [M]  drivers/gpu/drm/xe/display/ext/i915_irq.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/xe/display/ext/i915_utils.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aldebaran_reg_init.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gv100.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_region.o
  CC [M]  drivers/gpu/drm/xe/i915-soc/intel_dram.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_shmem.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_shrinker.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aldebaran.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/soc21.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sienna_cichlid.o
  AR      fs/built-in.a
  CC [M]  drivers/gpu/drm/amd/amdgpu/smu_v13_0_10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/devinit/ga100.o
  CC [M]  drivers/gpu/drm/xe/i915-soc/intel_pch.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v4_3.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_stolen.o
  CC [M]  drivers/gpu/drm/xe/i915-display/icl_dsi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v6_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/user.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp100.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_7.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/hdp_v5_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/gv100.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fault/tu102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_audio.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_throttle.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_backlight.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/nbio_v7_9.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_tiling.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bios.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_bw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv1a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cdclk.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v1_7.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v3_6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/df_v4_3.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_color.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv25.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v8_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_connector.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm_move.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv35.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv36.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_ttm_pm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_userptr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_1.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gem_wait.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/i915/gem/i915_gemfs.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/i915/i915_active.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.o
  CC [M]  drivers/gpu/drm/i915/i915_cmd_parser.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.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/amd/amdgpu/mmhub_v2_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv46.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cursor.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_cx0_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv47.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv49.o
  CC [M]  drivers/gpu/drm/i915/i915_deps.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/xe/i915-display/intel_display.o
  CC [M]  drivers/gpu/drm/i915/i915_gem_evict.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv4e.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_debugfs_params.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gmc_v11_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.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/i915/i915_gem.o
  CC [M]  drivers/gpu/drm/i915/i915_query.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v3_0_3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gt215.o
  CC [M]  drivers/gpu/drm/i915/i915_request.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp77.o
  CC [M]  drivers/gpu/drm/i915/i915_scheduler.o
  CC [M]  drivers/gpu/drm/i915/i915_trace_points.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/mcp89.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_device.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_driver.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gf108.o
  CC [M]  drivers/gpu/drm/i915/i915_ttm_buddy_manager.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/umc_v6_7.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_irq.o
  CC [M]  drivers/gpu/drm/i915/i915_vma.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_params.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_map.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_power_well.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/nouveau/nvkm/subdev/fb/gk110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/iceland_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/tonga_ih.o
  CC [M]  drivers/gpu/drm/i915/i915_vma_resource.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/cz_ih.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega10_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vega20_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp102.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_display_wa.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dkl_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/navi10_ih.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/ih_v6_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dmc.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/ih_v6_1.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/tu102.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_aux_backlight.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ga102.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_hdcp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v3_1.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v10_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v11_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v12_0.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v13_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_gsc_uc_heci_cmd_submit.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dp_mst.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v10_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dpt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/dce_v11_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv1a.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_drrs.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_capture.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv20.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv41.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_fw.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/i915/gt/uc/intel_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv4e.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramnv50.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/amd/amdgpu/amdgpu_rlc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_dsi_vbt.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v8_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_log.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fdi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/rammcp77.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_log_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v10_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/xe/i915-display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgm200.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_rc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_global_state.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_gmbus.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/imu_v11_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hdcp.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp100.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.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/i915/gt/uc/intel_huc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v11_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hotplug_irq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/imu_v11_0_3.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc_debugfs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgp102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr2.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_hti.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/sddr3.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_huc_fw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr3.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_link_bw.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fb/gddr5.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/base.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v2_4.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_lock.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v3_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/nv50.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_modeset_verify.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_panel.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/fuse/gm107.o
  CC [M]  drivers/gpu/drm/i915/gt/uc/intel_uc_fw.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_4.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pipe_crc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pmdemand.o
  CC [M]  drivers/gpu/drm/i915/gt/intel_gsc.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_pps.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/base.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_psr.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_qp_tables.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v5_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/nv50.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_quirks.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v5_2.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/sdma_v6_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_snps_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.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/xe/i915-display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/i915/i915_hwmon.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/g94.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vga.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mes_v10_1.o
  CC [M]  drivers/gpu/drm/i915/display/hsw_ips.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gf119.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_vrr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gpio/ga102.o
  CC [M]  drivers/gpu/drm/i915/display/intel_atomic.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_wm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/base.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_scaler.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/gsp/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv04.o
  CC [M]  drivers/gpu/drm/i915/display/intel_atomic_plane.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_universal_plane.o
  CC [M]  drivers/gpu/drm/xe/i915-display/skl_watermark.o
  CC [M]  drivers/gpu/drm/xe/xe_pmu.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_acpi.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_opregion.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv4e.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/mes_v11_0.o
  CC [M]  drivers/gpu/drm/xe/i915-display/intel_fbdev.o
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/g94.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf117.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.o
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v5_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_audio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gf119.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gk110.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_errors_abi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/gm200.o
  CC [M]  drivers/gpu/drm/i915/display/intel_bios.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v6_0.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/pad.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  CC [M]  drivers/gpu/drm/i915/display/intel_bw.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_gem.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv04.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma_types.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_irq.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband_reg.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h
  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/i2c/padnv4e.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padnv50.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg_defs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padg94.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_trace.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_reg.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/uvd_v7_0.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_active_types.h
  CC [M]  drivers/gpu/drm/i915/display/intel_cdclk.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_utils.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_config.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vce.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v3_0.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vma.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgm200.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/vlv_sideband.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_gem_stolen.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_mchbar_regs.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_debugfs.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_gpu_error.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_pch.h
  CC [M]  drivers/gpu/drm/i915/display/intel_color.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_dram.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/soc/intel_gmch.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_vgpu.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_fixed.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_runtime_pm.h
  CC [M]  drivers/gpu/drm/i915/display/intel_combo_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv04.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_uncore.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/vce_v4_0.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_step.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv4e.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_uc_fw.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busnv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/busgf119.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bit.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_pci_config.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_sw_ring.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object_frontbuffer.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/gt/intel_rps.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_clock_gating.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/intel_gt_types.h
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/pxp/intel_pxp.h
  CC [M]  drivers/gpu/drm/i915/display/intel_connector.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v1_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.o
  HDRTEST drivers/gpu/drm/xe/compat-i915-headers/i915_active.h
  CC [M]  drivers/gpu/drm/i915/display/intel_crtc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/i2c/anx9805.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v2_0.o
  HDRTEST drivers/gpu/drm/xe/instructions/xe_instr_defs.h
  HDRTEST drivers/gpu/drm/xe/instructions/xe_gfxpipe_commands.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/base.o
  HDRTEST drivers/gpu/drm/xe/instructions/xe_mi_commands.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/xe/regs/xe_gt_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/iccsense/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v2_5.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v3_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v4_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_mchbar_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gf100.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.o
  HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
  HDRTEST drivers/gpu/drm/xe/xe_assert.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gk104.o
  HDRTEST drivers/gpu/drm/xe/xe_bb.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm200.o
  HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v1_0.o
  HDRTEST drivers/gpu/drm/xe/xe_bo.h
  CC [M]  drivers/gpu/drm/i915/display/intel_crtc_state_dump.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v2_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v2_1.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.o
  HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
  HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp102.o
  CC [M]  drivers/gpu/drm/i915/display/intel_cursor.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp10b.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/ltc/ga102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/athub_v3_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv04.o
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump_types.h
  CC [M]  drivers/gpu/drm/i915/display/intel_display_driver.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v9_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv11.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v11_0.o
  HDRTEST drivers/gpu/drm/xe/xe_device.h
  HDRTEST drivers/gpu/drm/xe/xe_device_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_device_types.h
  HDRTEST drivers/gpu/drm/xe/xe_display.h
  CC [M]  drivers/gpu/drm/i915/display/intel_display_irq.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_params.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv17.o
  HDRTEST drivers/gpu/drm/xe/xe_dma_buf.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/nv44.o
  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_drm_client.h
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power.o
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/g98.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power_map.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v11_0_6.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0_3.o
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/smuio_v13_0_6.o
  HDRTEST drivers/gpu/drm/xe/xe_exec_queue.h
  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/mc/gk104.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_power_well.o
  HDRTEST drivers/gpu/drm/xe/xe_exec_queue_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gk20a.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_reset.o
  HDRTEST drivers/gpu/drm/xe/xe_execlist.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp100.o
  HDRTEST drivers/gpu/drm/xe/xe_execlist_types.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_module.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/gp10b.o
  HDRTEST drivers/gpu/drm/xe/xe_force_wake_types.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_chardev.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_topology.o
  HDRTEST drivers/gpu/drm/xe/xe_gt.h
  CC [M]  drivers/gpu/drm/i915/display/intel_display_rps.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_clock.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mc/ga100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_pasid.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv41.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_doorbell.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_wa.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv44.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dmc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_flat_memory.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpio_phy.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/g84.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_printk.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/mcp77.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_sysfs_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_queue.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpll.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk104.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpll_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_cik.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v9.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gk20a.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v10.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dpt.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  CC [M]  drivers/gpu/drm/i915/display/intel_drrs.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
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v11.o
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_kernel_queue.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/tu102.o
  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/nouveau/nvkm/subdev/mmu/mem.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsb.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_packet_manager_v9.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fb.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/memnv50.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fb_pin.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process_queue_manager.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads_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/xe/xe_guc_ct.h
  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/amd/amdgpu/../amdkfd/kfd_device_queue_manager.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_ct_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_cik.o
  CC [M]  drivers/gpu/drm/i915/display/intel_fifo_underrun.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv41.o
  CC [M]  drivers/gpu/drm/i915/display/intel_frontbuffer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_vi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_global_state.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv44.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmnv50.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_exec_queue_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_fwif.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmmcp77.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgf100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk104.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.h
  CC [M]  drivers/gpu/drm/i915/display/intel_hdcp.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_log.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v9.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v10.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_log_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager_v11.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_pc_types.h
  CC [M]  drivers/gpu/drm/i915/display/intel_hdcp_gsc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_interrupt.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_events.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_submit_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/cik_event_interrupt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgm20b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp100.o
  HDRTEST drivers/gpu/drm/xe/xe_guc_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgp10b.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hotplug.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v10.o
  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/amd/amdgpu/../amdkfd/kfd_crat.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debug.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmgv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmmtu102.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hotplug_irq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.o
  HDRTEST drivers/gpu/drm/xe/xe_heci_gsc.h
  HDRTEST drivers/gpu/drm/xe/xe_huc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hti.o
  HDRTEST drivers/gpu/drm/xe/xe_huc_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/umem.o
  HDRTEST drivers/gpu/drm/xe/xe_huc_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  CC [M]  drivers/gpu/drm/i915/display/intel_link_bw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/base.o
  CC [M]  drivers/gpu/drm/i915/display/intel_load_detect.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/mxms.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10_3.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.o
  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/i915/display/intel_lpe_audio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../acp/acp_hw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/mxm/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/agp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_ioc32.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_lock.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/base.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_verify.o
  CC [M]  drivers/gpu/drm/i915/display/intel_modeset_setup.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/pcie.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/arcturus_ppt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv04.o
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/navi10_ppt.o
  CC [M]  drivers/gpu/drm/i915/display/intel_overlay.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/sienna_cichlid_ppt.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/amd/amdgpu/../pm/swsmu/smu11/vangogh_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/cyan_skillfish_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu11/smu_v11_0.o
  CC [M]  drivers/gpu/drm/i915/display/intel_plane_initial.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/renoir_ppt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv46.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu12/smu_v12_0.o
  HDRTEST drivers/gpu/drm/xe/xe_hwmon.h
  CC [M]  drivers/gpu/drm/i915/display/intel_pmdemand.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/nv4c.o
  HDRTEST drivers/gpu/drm/xe/xe_irq.h
  HDRTEST drivers/gpu/drm/xe/xe_lrc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/aldebaran_ppt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/yellow_carp_ppt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/g92.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/pci/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu13/smu_v13_0_5_ppt.o
  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
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf100.o
  HDRTEST drivers/gpu/drm/xe/xe_lrc_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.o
  CC [M]  drivers/gpu/drm/i915/display/intel_psr.o
  CC [M]  drivers/gpu/drm/i915/display/intel_quirks.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sprite.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gf106.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/swsmu/smu_cmn.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sprite_uapi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu8_smumgr.o
  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
  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/xe/xe_macros.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/base.o
  HDRTEST drivers/gpu/drm/xe/xe_map.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu7_smumgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega10_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/memx.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu10_smumgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/ci_smumgr.o
  CC [M]  drivers/gpu/drm/i915/display/intel_tc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega12_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gt215.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vblank.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_vga.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gf119.o
  CC [M]  drivers/gpu/drm/i915/display/intel_wm.o
  CC [M]  drivers/gpu/drm/i915/display/i9xx_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vegam_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/smu9_smumgr.o
  HDRTEST drivers/gpu/drm/xe/xe_migrate.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/smumgr/vega20_smumgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hwmgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/processpptables.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/hardwaremanager.o
  CC [M]  drivers/gpu/drm/i915/display/i9xx_wm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu8_hwmgr.o
  CC [M]  drivers/gpu/drm/i915/display/skl_scaler.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk208.o
  HDRTEST drivers/gpu/drm/xe/xe_migrate_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_mmio.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pppcielanes.o
  HDRTEST drivers/gpu/drm/xe/xe_mocs.h
  HDRTEST drivers/gpu/drm/xe/xe_module.h
  CC [M]  drivers/gpu/drm/i915/display/skl_universal_plane.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/process_pptables_v1_0.o
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomctrl.o
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ppatomfwctrl.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_hwmgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_powertune.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_thermal.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm200.o
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.o
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode_api.h
  HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pm.h
  HDRTEST drivers/gpu/drm/xe/xe_pmu.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_clockpowergating.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_processpptables.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_hwmgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_powertune.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_thermal.o
  CC [M]  drivers/gpu/drm/i915/display/skl_watermark.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu10_hwmgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_psm.o
  HDRTEST drivers/gpu/drm/xe/xe_pmu_types.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf100.o
  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
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gf117.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gk104.o
  CC [M]  drivers/gpu/drm/i915/display/intel_acpi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/pp_overdriver.o
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu_helper.o
  CC [M]  drivers/gpu/drm/i915/display/intel_opregion.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_processpptables.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_hwmgr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_powertune.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_thermal.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/common_baco.o
  HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega10_baco.o
  HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
  HDRTEST drivers/gpu/drm/xe/xe_query.h
  CC [M]  drivers/gpu/drm/i915/display/intel_fbdev.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega20_baco.o
  HDRTEST drivers/gpu/drm/xe/xe_range_fence.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/privring/gp10b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/vega12_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu9_baco.o
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/tonga_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/polaris_baco.o
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
  CC [M]  drivers/gpu/drm/i915/display/dvo_ch7017.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/fiji_baco.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/ci_baco.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/nouveau/nvkm/subdev/therm/fanpwm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/hwmgr/smu7_baco.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/fantog.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ch7xxx.o
  HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/legacy_dpm.o
  HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/ic.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_smc.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ivch.o
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/temp.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/legacy-dpm/si_dpm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_smc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_pm.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_ns2501.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../pm/amdgpu_dpm_internal.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_plane.o
  HDRTEST drivers/gpu/drm/xe/xe_rtp_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sa.h
  HDRTEST drivers/gpu/drm/xe/xe_sa_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crtc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_irq.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_sil164.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/g84.o
  CC [M]  drivers/gpu/drm/i915/display/dvo_tfp410.o
  HDRTEST drivers/gpu/drm/xe/xe_sched_job.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf100.o
  CC [M]  drivers/gpu/drm/i915/display/g4x_dp.o
  HDRTEST drivers/gpu/drm/xe/xe_sched_job_types.h
  HDRTEST drivers/gpu/drm/xe/xe_step.h
  HDRTEST drivers/gpu/drm/xe/xe_step_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gf119.o
  HDRTEST drivers/gpu/drm/xe/xe_sync.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
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_services.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_helpers.o
  CC [M]  drivers/gpu/drm/i915/display/g4x_hdmi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_pp_smu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_psr.o
  CC [M]  drivers/gpu/drm/i915/display/icl_dsi.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_replay.o
  HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tile.h
  CC [M]  drivers/gpu/drm/i915/display/intel_backlight.o
  HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs.h
  CC [M]  drivers/gpu/drm/i915/display/intel_crt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/therm/gp100.o
  HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs_types.h
  CC [M]  drivers/gpu/drm/i915/display/intel_cx0_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_hdcp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_crc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/conversion.o
  CC [M]  drivers/gpu/drm/i915/display/intel_ddi.o
  CC [M]  drivers/gpu/drm/i915/display/intel_ddi_buf_trans.o
  HDRTEST drivers/gpu/drm/xe/xe_trace.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/fixpt31_32.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv40.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/nv41.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/timer/gk20a.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/top/ga100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_display_device.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/vector.o
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
  CC [M]  drivers/gpu/drm/i915/display/intel_display_trace.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/uvfn.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/basics/dc_common.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_interface.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/vfn/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_helper.o
  HDRTEST drivers/gpu/drm/xe/xe_tuning.h
  HDRTEST drivers/gpu/drm/xe/xe_uc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/command_table_helper.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser_common.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/vfn/tu102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/bios_parser2.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dkl_phy.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce60/command_table_helper_dce60.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/vfn/ga100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp.o
  HDRTEST drivers/gpu/drm/xe/xe_uc_debugfs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gpio.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce110/command_table_helper_dce110.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_aux.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper_dce112.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_aux_backlight.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gf100.o
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw.h
  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/i915/display/intel_dp_hdcp.o
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_abi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/bios/dce112/command_table_helper2_dce112.o
  HDRTEST drivers/gpu/drm/xe/xe_uc_fw_types.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dce_calcs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.o
  HDRTEST drivers/gpu/drm/xe/xe_vm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/custom_float.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gm20b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/bw_fixed.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_lib.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/falcon.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_rq_dlg_helpers.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/xtensa.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dp_link_training.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/bsp/g84.o
  HDRTEST drivers/gpu/drm/xe/xe_vm_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_madvise.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dml1_display_rq_dlg_calc.o
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gt215.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/nouveau/nvkm/engine/ce/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn10/dcn10_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gk104.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/dcn20_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/display_mode_vba.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/nouveau/nvkm/engine/ce/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dsi_vbt.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20.o
  CC [M]  drivers/gpu/drm/i915/display/intel_dvo.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gp102.o
  HDRTEST drivers/gpu/drm/xe/xe_wa.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_rq_dlg_calc_20v2.o
  HDRTEST drivers/gpu/drm/xe/xe_wait_user_fence.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/tu102.o
  HDRTEST drivers/gpu/drm/xe/xe_wopcm.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn20/display_mode_vba_20v2.o
  HDRTEST drivers/gpu/drm/xe/xe_wopcm_types.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/ga100.o
  CC [M]  drivers/gpu/drm/i915/display/intel_gmbus.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/ce/ga102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_rq_dlg_calc_21.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/cipher/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn21/display_mode_vba_21.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/dcn30_fpu.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_mode_vba_30.o
  CC [M]  drivers/gpu/drm/i915/display/intel_hdmi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/acpi.o
  LD [M]  drivers/gpu/drm/xe/xe.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn30/display_rq_dlg_calc_30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn31/display_mode_vba_31.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/ctrl.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/engine/device/pci.o
  CC [M]  drivers/gpu/drm/i915/display/intel_lspcon.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_mode_vba_314.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/i915/display/intel_lvds.o
  CC [M]  drivers/gpu/drm/i915/display/intel_panel.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/chan.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/i915/display/intel_pps.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/head.o
  CC [M]  drivers/gpu/drm/i915/display/intel_qp_tables.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn314/display_rq_dlg_calc_314.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.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/disp/vga.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/nv04.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/disp/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/g84.o
  CC [M]  drivers/gpu/drm/i915/display/intel_sdvo.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/i915/display/intel_vdsc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn32/display_mode_vba_util_32.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/i915/display/intel_vrr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn321/dcn321_fpu.o
  CC [M]  drivers/gpu/drm/i915/display/vlv_dsi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/g94.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn301/dcn301_fpu.o
  CC [M]  drivers/gpu/drm/i915/display/vlv_dsi_pll.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dcn302/dcn302_fpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/mcp77.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/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/dsc/rc_calc_fpu.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/i915/i915_perf.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/nouveau/nvkm/engine/disp/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calcs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gk110.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/gm107.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_huc.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_cmd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dml/calcs/dcn_calc_auto.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce60/dce60_clk_mgr.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_debugfs.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dce100/dce_clk_mgr.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_gsccs.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/gp102.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/nouveau/nvkm/engine/disp/gv100.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/tu102.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_irq.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/disp/ga102.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_pm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/udisp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn10/rv1_clk_mgr_vbios_smu.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/disp/uconn.o
  CC [M]  drivers/gpu/drm/i915/pxp/intel_pxp_session.o
  CC [M]  drivers/gpu/drm/i915/i915_gpu_error.o
  CC [M]  drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uoutp.o
  CC [M]  drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.o
  CC [M]  drivers/gpu/drm/i915/selftests/intel_scheduler_helpers.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/disp/uhead.o
  CC [M]  drivers/gpu/drm/i915/selftests/i915_random.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/nv04.o
  CC [M]  drivers/gpu/drm/i915/selftests/i915_selftest.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/gf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn20/dcn20_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn201/dcn201_clk_mgr.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_atomic.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn21/rn_clk_mgr.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/amd/amdgpu/../display/dc/clk_mgr/dcn30/dcn30_clk_mgr_smu_msg.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/gf119.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_flush_test.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/gv100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/user.o
  CC [M]  drivers/gpu/drm/i915/selftests/igt_live_test.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/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/amd/amdgpu/../display/dc/clk_mgr/dcn31/dcn31_clk_mgr.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/i915/i915_vgpu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usernv04.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn314/dcn314_smu.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
  HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/dma/usergv100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_crtc_state_dump.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn314/dcn314_clk_mgr.o
  HDRTEST drivers/gpu/drm/i915/display/hsw_ips.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/base.o
  HDRTEST drivers/gpu/drm/i915/display/g4x_hdmi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/cgrp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.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
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn315/dcn315_smu.o
  HDRTEST drivers/gpu/drm/i915/display/skl_watermark_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dmc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/chid.o
  HDRTEST drivers/gpu/drm/i915/display/intel_vga.h
  HDRTEST drivers/gpu/drm/i915/display/intel_audio.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn315/dcn315_clk_mgr.o
  HDRTEST drivers/gpu/drm/i915/display/intel_lvds.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.o
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_setup.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn316/dcn316_smu.o
  HDRTEST drivers/gpu/drm/i915/display/intel_cdclk.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_limits.h
  HDRTEST drivers/gpu/drm/i915/display/intel_hotplug.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dkl_phy.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn316/dcn316_clk_mgr.o
  HDRTEST drivers/gpu/drm/i915/display/intel_atomic.h
  HDRTEST drivers/gpu/drm/i915/display/intel_color_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.o
  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
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_audio.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_mst.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_stream_encoder.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fdi_regs.h
  HDRTEST drivers/gpu/drm/i915/display/g4x_dp.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/runq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_link_encoder.o
  HDRTEST drivers/gpu/drm/i915/display/intel_tc.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_params.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv10.o
  HDRTEST drivers/gpu/drm/i915/display/intel_frontbuffer.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi_vbt.h
  HDRTEST drivers/gpu/drm/i915/display/intel_psr.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_hwseq.o
  HDRTEST drivers/gpu/drm/i915/display/intel_crt.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_mem_input.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv17.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv40.o
  HDRTEST drivers/gpu/drm/i915/display/intel_opregion.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv50.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clock_source.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/g84.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/g98.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_scl_filters.o
  HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.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
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.o
  HDRTEST drivers/gpu/drm/i915/display/intel_drrs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_rps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_transform.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk208.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_opp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_dmcu.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_abm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_ipp.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fbdev.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_aux.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/../display/dc/dce/dce_i2c.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c_hw.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fdi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_fb.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c_sw.o
  HDRTEST drivers/gpu/drm/i915/display/intel_qp_tables.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dsb_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vdsc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gm200.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gp100.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/gv100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_snps_phy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/tu102.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_core.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_pll.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_psr.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_abm.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_abm_lcd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/ga102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/ucgrp.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo_dev.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_panel_cntl.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_hw_lock_mgr.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_outbox.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dmub_replay.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/gpio_base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/fifo/uchan.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv04.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sdvo_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pch_refclk.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/gpio_service.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_factory.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv15.o
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_lock.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv17.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_trace.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_gpio.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_hpd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv20.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_ddc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_generic.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/hw_translate.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce60/hw_translate_dce60.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce60/hw_factory_dce60.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv25.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce80/hw_translate_dce80.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv2a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce80/hw_factory_dce80.o
  HDRTEST drivers/gpu/drm/i915/display/i9xx_plane.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux_backlight.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce110/hw_translate_dce110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce110/hw_factory_dce110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce120/hw_translate_dce120.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv34.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dpll_mgr.h
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dce120/hw_factory_dce120.o
  HDRTEST drivers/gpu/drm/i915/display/intel_plane_initial.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn10/hw_translate_dcn10.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn10/hw_factory_dcn10.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv35.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn20/hw_translate_dcn20.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn20/hw_factory_dcn20.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn21/hw_translate_dcn21.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv44.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn21/hw_factory_dcn21.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn30/hw_translate_dcn30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn30/hw_factory_dcn30.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn315/hw_translate_dcn315.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gt200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn315/hw_factory_dcn315.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn32/hw_translate_dcn32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp79.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_device.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/mcp89.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fifo_underrun.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cursor.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/gpio/dcn32/hw_factory_dcn32.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/irq_service.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf104.o
  HDRTEST drivers/gpu/drm/i915/display/vlv_dsi_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_cx0_phy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf108.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce60/irq_service_dce60.o
  HDRTEST drivers/gpu/drm/i915/display/skl_scaler.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce80/irq_service_dce80.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce110/irq_service_dce110.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dce120/irq_service_dce120.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hti.h
  HDRTEST drivers/gpu/drm/i915/display/icl_dsi_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn10/irq_service_dcn10.o
  HDRTEST drivers/gpu/drm/i915/display/intel_atomic_plane.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn20/irq_service_dcn20.o
  HDRTEST drivers/gpu/drm/i915/display/skl_watermark.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf117.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fbc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn21/irq_service_dcn21.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_reg_defs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_acpi.h
  HDRTEST drivers/gpu/drm/i915/display/intel_connector.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn201/irq_service_dcn201.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dpt.h
  HDRTEST drivers/gpu/drm/i915/display/intel_quirks.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_link_training.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn30/irq_service_dcn30.o
  HDRTEST drivers/gpu/drm/i915/display/intel_color.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gk110b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn302/irq_service_dcn302.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn303/irq_service_dcn303.o
  HDRTEST drivers/gpu/drm/i915/display/intel_crtc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gk208.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_debugfs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_modeset_verify.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power_well.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gm107.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn31/irq_service_dcn31.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn314/irq_service_dcn314.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gm20b.o
  HDRTEST drivers/gpu/drm/i915/display/intel_psr_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_wm.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pipe_crc.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn315/irq_service_dcn315.o
  HDRTEST drivers/gpu/drm/i915/display/intel_audio_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/irq/dcn32/irq_service_dcn32.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gp104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_detection.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_dpms.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gp107.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gp108.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gp10b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_factory.o
  HDRTEST drivers/gpu/drm/i915/display/intel_panel.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/gv100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_resource.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/tu102.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ga102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_validation.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sprite.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/accessories/link_dp_trace.o
  HDRTEST drivers/gpu/drm/i915/display/intel_wm_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tv.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv40.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/accessories/link_dp_cts.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxnv50.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hti_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vrr.h
  HDRTEST drivers/gpu/drm/i915/display/intel_load_detect.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/accessories/link_fpga.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/hwss/link_hwss_dio.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/hwss/link_hwss_dpia.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf108.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/hwss/link_hwss_hpo_dp.o
  HDRTEST drivers/gpu/drm/i915/display/skl_universal_plane.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf117.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf119.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/hwss/link_hwss_dio_fixed_vs_pe_retimer.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.o
  HDRTEST drivers/gpu/drm/i915/display/intel_mg_phy_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_hpd.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_ddc.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dpcd.o
  HDRTEST drivers/gpu/drm/i915/display/intel_bw.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_dpia.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk110b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk208.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgk20a.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_training.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm107.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_irq.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm200.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_training_8b_10b.o
  HDRTEST drivers/gpu/drm/i915/display/intel_de.h
  HDRTEST drivers/gpu/drm/i915/display/intel_lvds_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgm20b.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp100.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_training_128b_132b.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_training_dpia.o
  HDRTEST drivers/gpu/drm/i915/display/intel_gmbus_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_training_auxless.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi_dcs_backlight.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_training_fixed_vs_pe_retimer.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sdvo.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp102.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_phy.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp104.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgp107.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_aux.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_capability.o
  HDRTEST drivers/gpu/drm/i915/display/intel_vdsc_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_edp_panel_control.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgv100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxtu102.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dvo_regs.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxga102.o
  HDRTEST drivers/gpu/drm/i915/display/intel_gmbus.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_irq_handler.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/link/protocols/link_dp_dpia_bw.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hdcp_gsc.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/virtual/virtual_link_encoder.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv40.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dmc_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/virtual/virtual_stream_encoder.o
  HDRTEST drivers/gpu/drm/i915/display/intel_ddi.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.o
  HDRTEST drivers/gpu/drm/i915/display/intel_hotplug_irq.h
  HDRTEST drivers/gpu/drm/i915/display/intel_tv_regs.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/virtual/virtual_link_hwss.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv50.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mpeg/g84.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/dc_dsc.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mspdec/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/rc_calc.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dsb.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mspdec/g98.o
  HDRTEST drivers/gpu/drm/i915/display/intel_bios.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dsc/rc_calc_dpi.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gt215.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_resource.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gf100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pch_display.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/mspdec/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_init.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_types.h
  HDRTEST drivers/gpu/drm/i915/display/intel_backlight.h
  HDRTEST drivers/gpu/drm/i915/display/intel_vblank.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msppp/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msppp/g98.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msppp/gt215.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msppp/gf100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_pmdemand.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hwseq.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_dpp.o
  HDRTEST drivers/gpu/drm/i915/display/intel_backlight_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_combo_phy_regs.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_reset.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_dpp_cm.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msvld/base.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msvld/g98.o
  HDRTEST drivers/gpu/drm/i915/display/intel_display_power_map.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msvld/gt215.o
  HDRTEST drivers/gpu/drm/i915/display/intel_ddi_buf_trans.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_wa.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msvld/mcp89.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hubp.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_mpc.o
  HDRTEST drivers/gpu/drm/i915/display/icl_dsi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_opp.o
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msvld/gf100.o
  HDRTEST drivers/gpu/drm/i915/display/intel_lspcon.h
  HDRTEST drivers/gpu/drm/i915/display/intel_dpio_phy.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/msvld/gk104.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_hubbub.o
  HDRTEST drivers/gpu/drm/i915/display/intel_dp_hdcp.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/nvenc/base.o
  HDRTEST drivers/gpu/drm/i915/display/intel_fb_pin.h
  HDRTEST drivers/gpu/drm/i915/display/intel_display_debugfs_params.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_optc.o
  HDRTEST drivers/gpu/drm/i915/display/intel_link_bw.h
  HDRTEST drivers/gpu/drm/i915/display/intel_pps.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/nvenc/gm107.o
  HDRTEST drivers/gpu/drm/i915/display/intel_sprite_uapi.h
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_mmhubbub.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_stream_encoder.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_link_encoder.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_gem_ttm.h
  CC [M]  drivers/gpu/drm/nouveau/nvkm/engine/nvdec/base.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_dccg.o
  CC [M]  drivers/gpu/drm/amd/amdgpu/../display/dc/dcn20/dcn20_vmid.o
  HDRTEST drivers/gpu/drm/i915/gem/i915_



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

* [Intel-xe] ✓ CI.Hooks: success for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (23 preceding siblings ...)
  2023-11-14 13:16 ` [Intel-xe] ✓ CI.Build: " Patchwork
@ 2023-11-14 13:16 ` Patchwork
  2023-11-14 13:18 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
  2023-11-14 13:51 ` [Intel-xe] ✓ CI.BAT: " Patchwork
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:16 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
State : success

== Summary ==

run-parts: executing /workspace/ci/hooks/00-showenv
/workspace
+ pwd
+ ls -la
total 956
drwxrwxr-x 12 1003 1003   4096 Nov 14 13:16 .
drwxr-xr-x  1 root root   4096 Nov 14 13:16 ..
-rw-rw-r--  1 1003 1003 797776 Nov 14 13:16 build.log
-rw-rw-r--  1 1003 1003   3082 Nov 14 13:08 checkpatch.log
drwxrwxr-x  5 1003 1003   4096 Nov 14 13:05 ci
drwxrwxr-x  9 1003 1003   4096 Nov 14 13:05 docker
drwxrwxr-x  8 1003 1003   4096 Nov 14 13:05 .git
-rw-rw-r--  1 1003 1003   1397 Nov 14 13:07 git_apply.log
drwxrwxr-x  4 1003 1003   4096 Nov 14 13:05 .github
-rw-rw-r--  1 1003 1003    233 Nov 14 13:05 .groovylintrc.json
-rw-rw-r--  1 1003 1003     78 Nov 14 13:16 hooks.log
drwxrwxr-x 31 1003 1003   4096 Nov 14 13:16 kernel
-rw-rw-r--  1 1003 1003  67974 Nov 14 13:07 kernel.mbox
-rw-rw-r--  1 1003 1003  28749 Nov 14 13:09 kunit.log
-rw-rw-r--  1 1003 1003     48 Nov 14 13:07 parent.tag
drwxrwxr-x 44 1003 1003   4096 Nov 14 13:05 pipelines
-rw-rw-r--  1 1003 1003    793 Nov 14 13:05 README.adoc
drwxrwxr-x  3 1003 1003   4096 Nov 14 13:05 scripts
drwxrwxr-x  3 1003 1003   4096 Nov 14 13:05 src
drwxrwxr-x  2 1003 1003   4096 Nov 14 13:05 vars
drwxrwxr-x  2 1003 1003   4096 Nov 14 13:05 .vscode
+ uname -a
Linux 3c1c23f6e5a4 5.4.0-164-generic #181-Ubuntu SMP Fri Sep 1 13:41:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
+ export
+ grep -Ei '(^|\W)CI_'
declare -x CI_KERNEL_BUILD_DIR="/workspace/kernel/build64-default"
declare -x CI_KERNEL_SRC_DIR="/workspace/kernel"
declare -x CI_TOOLS_SRC_DIR="/workspace/ci"
declare -x CI_WORKSPACE_DIR="/workspace"
+ '[' -n /workspace ']'
+ git_args='-C /workspace/kernel'
+ git_log_args=
+ git --no-pager -C /workspace/kernel log --format=oneline --abbrev-commit
32fa0441b drm/xe: Initialize GuC earlier during probe
7d3fbb0e1 drm/xe/guc: Move GuC power control init to "post-hwconfig"
0f61dd5ff drm/xe/guc: Allocate GuC data structures in system memory for initial load
08f0712e8 drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
cf405071c drm/xe/uc: Extract xe_uc_sanitize_reset
8fb404848 drm/xe/uc: Store firmware binary in system-memory backed BO
030166acc drm/xe/uc: Split xe_uc_fw_init
7e0121fd7 drm/xe: Reorder GGTT init to earlier point in probe
ee8f7ec79 drm/xe: Move force_wake init to earlier point in probe
69f783f8d drm/xe: Move system memory management init to earlier point in probe
19bdcd70f drm/xe: Don't "peek" into GMD_ID
efea961ab drm/xe/device: Introduce xe_device_probe_early
cb26847c8 drm/xe: Map the entire BAR0 and hold onto the initial mapping
5e888d7e0 drm/xe: Introduce xe_tile_init_early and use at earlier point in probe
b082b038a drm/xe: Split xe_info_init
95648fa68 drm/xe: Move xe_mmio_probe_tiles outside of MMIO setup
bb09a122c drm/xe: Move xe_set_dma_info outside of MMIO setup
a48563b38 drm/xe/irq: Don't call pci_free_irq_vectors
d5ac5bea2 drm/xe: Use managed pci_enable_device
b15910a5d drm/xe: Skip calling drm_dev_put on probe error
7dc3dda9b drm/xe: Raise GT frequency before GuC/HuC load
run-parts: executing /workspace/ci/hooks/10-build-W1
+ SRC_DIR=/workspace/kernel
+ RESTORE_DISPLAY_CONFIG=0
+ '[' -n /workspace/kernel/build64-default ']'
+ BUILD_DIR=/workspace/kernel/build64-default
+ cd /workspace/kernel
+ grep -q -e '^CONFIG_DRM_XE_DISPLAY=[yY]' /workspace/kernel/build64-default/.config
+ RESTORE_DISPLAY_CONFIG=1
+ trap cleanup EXIT
+ ./scripts/config --file /workspace/kernel/build64-default/.config --disable CONFIG_DRM_XE_DISPLAY
++ nproc
+ make -j48 O=/workspace/kernel/build64-default modules_prepare
make[1]: Entering directory '/workspace/kernel/build64-default'
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile
  GEN     Makefile
  UPD     include/config/kernel.release
  UPD     include/generated/compile.h
  UPD     include/generated/utsrelease.h
  DESCEND objtool
  HOSTCC  /workspace/kernel/build64-default/tools/objtool/fixdep.o
  CALL    ../scripts/checksyscalls.sh
  HOSTLD  /workspace/kernel/build64-default/tools/objtool/fixdep-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/fixdep
  INSTALL libsubcmd_headers
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/exec-cmd.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/help.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/pager.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/parse-options.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/run-command.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/sigchain.o
  CC      /workspace/kernel/build64-default/tools/objtool/libsubcmd/subcmd-config.o
  LD      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd-in.o
  AR      /workspace/kernel/build64-default/tools/objtool/libsubcmd/libsubcmd.a
  CC      /workspace/kernel/build64-default/tools/objtool/weak.o
  CC      /workspace/kernel/build64-default/tools/objtool/check.o
  CC      /workspace/kernel/build64-default/tools/objtool/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/builtin-check.o
  CC      /workspace/kernel/build64-default/tools/objtool/elf.o
  CC      /workspace/kernel/build64-default/tools/objtool/objtool.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_gen.o
  CC      /workspace/kernel/build64-default/tools/objtool/orc_dump.o
  CC      /workspace/kernel/build64-default/tools/objtool/libstring.o
  CC      /workspace/kernel/build64-default/tools/objtool/libctype.o
  CC      /workspace/kernel/build64-default/tools/objtool/str_error_r.o
  CC      /workspace/kernel/build64-default/tools/objtool/librbtree.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/special.o
  CC      /workspace/kernel/build64-default/tools/objtool/arch/x86/decode.o
  LD      /workspace/kernel/build64-default/tools/objtool/arch/x86/objtool-in.o
  LD      /workspace/kernel/build64-default/tools/objtool/objtool-in.o
  LINK    /workspace/kernel/build64-default/tools/objtool/objtool
make[1]: Leaving directory '/workspace/kernel/build64-default'
++ nproc
+ make -j48 O=/workspace/kernel/build64-default M=drivers/gpu/drm/xe W=1
make[1]: Entering directory '/workspace/kernel/build64-default'
  CC [M]  drivers/gpu/drm/xe/xe_bb.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/xe/xe_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_devcoredump.o
  CC [M]  drivers/gpu/drm/xe/xe_device.o
  CC [M]  drivers/gpu/drm/xe/xe_device_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_dma_buf.o
  CC [M]  drivers/gpu/drm/xe/xe_drm_client.o
  CC [M]  drivers/gpu/drm/xe/xe_exec.o
  CC [M]  drivers/gpu/drm/xe/xe_execlist.o
  CC [M]  drivers/gpu/drm/xe/xe_exec_queue.o
  CC [M]  drivers/gpu/drm/xe/xe_force_wake.o
  CC [M]  drivers/gpu/drm/xe/xe_ggtt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_clock.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_idle_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_mcr.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_pagefault.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.o
  CC [M]  drivers/gpu/drm/xe/xe_gt_topology.o
  HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
  CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_ct.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_hwconfig.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_log.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_pc.o
  CC [M]  drivers/gpu/drm/xe/xe_guc_submit.o
  CC [M]  drivers/gpu/drm/xe/xe_heci_gsc.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_hw_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_huc.o
  CC [M]  drivers/gpu/drm/xe/xe_huc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_irq.o
  CC [M]  drivers/gpu/drm/xe/xe_lrc.o
  CC [M]  drivers/gpu/drm/xe/xe_mmio.o
  CC [M]  drivers/gpu/drm/xe/xe_mocs.o
  CC [M]  drivers/gpu/drm/xe/xe_module.o
  CC [M]  drivers/gpu/drm/xe/xe_pat.o
  CC [M]  drivers/gpu/drm/xe/xe_pci.o
  CC [M]  drivers/gpu/drm/xe/xe_pcode.o
  CC [M]  drivers/gpu/drm/xe/xe_pm.o
  CC [M]  drivers/gpu/drm/xe/xe_preempt_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_pt.o
  CC [M]  drivers/gpu/drm/xe/xe_pt_walk.o
  CC [M]  drivers/gpu/drm/xe/xe_query.o
  CC [M]  drivers/gpu/drm/xe/xe_range_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_sr.o
  CC [M]  drivers/gpu/drm/xe/xe_reg_whitelist.o
  CC [M]  drivers/gpu/drm/xe/xe_rtp.o
  CC [M]  drivers/gpu/drm/xe/xe_sa.o
  CC [M]  drivers/gpu/drm/xe/xe_sched_job.o
  CC [M]  drivers/gpu/drm/xe/xe_step.o
  CC [M]  drivers/gpu/drm/xe/xe_sync.o
  CC [M]  drivers/gpu/drm/xe/xe_tile.o
  CC [M]  drivers/gpu/drm/xe/xe_tile_sysfs.o
  CC [M]  drivers/gpu/drm/xe/xe_trace.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_sys_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_vram_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_tuning.o
  CC [M]  drivers/gpu/drm/xe/xe_uc.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_debugfs.o
  CC [M]  drivers/gpu/drm/xe/xe_uc_fw.o
  CC [M]  drivers/gpu/drm/xe/xe_vm_madvise.o
  CC [M]  drivers/gpu/drm/xe/xe_wait_user_fence.o
  CC [M]  drivers/gpu/drm/xe/xe_wopcm.o
  CC [M]  drivers/gpu/drm/xe/xe_hwmon.o
  CC [M]  drivers/gpu/drm/xe/xe_pmu.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_klvs_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.o
  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/xe/abi/guc_communication_mmio_abi.h
  HDRTEST drivers/gpu/drm/xe/abi/guc_actions_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.o
  HDRTEST drivers/gpu/drm/xe/abi/guc_messages_abi.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.o
  HDRTEST drivers/gpu/drm/xe/instructions/xe_instr_defs.h
  HDRTEST drivers/gpu/drm/xe/instructions/xe_gfxpipe_commands.h
  HDRTEST drivers/gpu/drm/xe/instructions/xe_mi_commands.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_reg_defs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_guc_regs.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_gt_regs.h
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.o
  HDRTEST drivers/gpu/drm/xe/regs/xe_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_gpu_commands.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_lrc_layout.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_mchbar_regs.h
  HDRTEST drivers/gpu/drm/xe/regs/xe_engine_regs.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_pci_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_migrate_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_dma_buf_test.h
  HDRTEST drivers/gpu/drm/xe/tests/xe_bo_test.h
  HDRTEST drivers/gpu/drm/xe/xe_assert.h
  HDRTEST drivers/gpu/drm/xe/xe_bb.h
  HDRTEST drivers/gpu/drm/xe/xe_bb_types.h
  HDRTEST drivers/gpu/drm/xe/xe_bo.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_evict.h
  HDRTEST drivers/gpu/drm/xe/xe_bo_types.h
  HDRTEST drivers/gpu/drm/xe/xe_debugfs.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump.h
  HDRTEST drivers/gpu/drm/xe/xe_devcoredump_types.h
  HDRTEST drivers/gpu/drm/xe/xe_device.h
  HDRTEST drivers/gpu/drm/xe/xe_device_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_device_types.h
  HDRTEST drivers/gpu/drm/xe/xe_dma_buf.h
  HDRTEST drivers/gpu/drm/xe/xe_drm_client.h
  HDRTEST drivers/gpu/drm/xe/xe_drv.h
  HDRTEST drivers/gpu/drm/xe/xe_exec.h
  HDRTEST drivers/gpu/drm/xe/xe_exec_queue.h
  HDRTEST drivers/gpu/drm/xe/xe_exec_queue_types.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist.h
  HDRTEST drivers/gpu/drm/xe/xe_execlist_types.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake.h
  HDRTEST drivers/gpu/drm/xe/xe_force_wake_types.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt.h
  HDRTEST drivers/gpu/drm/xe/xe_ggtt_types.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/xe/xe_gt_idle_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_idle_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_mcr.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_pagefault.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_printk.h
  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
  HDRTEST drivers/gpu/drm/xe/xe_gt_tlb_invalidation_types.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_topology.h
  HDRTEST drivers/gpu/drm/xe/xe_gt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_ads.h
  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/xe/xe_guc_exec_queue_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_fwif.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_hwconfig.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_log.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_submit_types.h
  HDRTEST drivers/gpu/drm/xe/xe_guc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_heci_gsc.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
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_engine_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_hw_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_hwmon.h
  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/xe/xe_macros.h
  HDRTEST drivers/gpu/drm/xe/xe_map.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate.h
  HDRTEST drivers/gpu/drm/xe/xe_migrate_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_mmio.h
  HDRTEST drivers/gpu/drm/xe/xe_mocs.h
  HDRTEST drivers/gpu/drm/xe/xe_module.h
  HDRTEST drivers/gpu/drm/xe/xe_pat.h
  HDRTEST drivers/gpu/drm/xe/xe_pci.h
  HDRTEST drivers/gpu/drm/xe/xe_pci_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode.h
  HDRTEST drivers/gpu/drm/xe/xe_pcode_api.h
  HDRTEST drivers/gpu/drm/xe/xe_platform_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pm.h
  HDRTEST drivers/gpu/drm/xe/xe_pmu.h
  HDRTEST drivers/gpu/drm/xe/xe_pmu_types.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_preempt_fence_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_types.h
  HDRTEST drivers/gpu/drm/xe/xe_pt_walk.h
  HDRTEST drivers/gpu/drm/xe/xe_query.h
  HDRTEST drivers/gpu/drm/xe/xe_range_fence.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_sr_types.h
  HDRTEST drivers/gpu/drm/xe/xe_reg_whitelist.h
  HDRTEST drivers/gpu/drm/xe/xe_res_cursor.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops.h
  HDRTEST drivers/gpu/drm/xe/xe_ring_ops_types.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp.h
  HDRTEST drivers/gpu/drm/xe/xe_rtp_types.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
  HDRTEST drivers/gpu/drm/xe/xe_sched_job_types.h
  HDRTEST drivers/gpu/drm/xe/xe_step.h
  HDRTEST drivers/gpu/drm/xe/xe_step_types.h
  HDRTEST drivers/gpu/drm/xe/xe_sync.h
  HDRTEST drivers/gpu/drm/xe/xe_sync_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tile.h
  HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs.h
  HDRTEST drivers/gpu/drm/xe/xe_tile_sysfs_types.h
  HDRTEST drivers/gpu/drm/xe/xe_trace.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_stolen_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_sys_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr.h
  HDRTEST drivers/gpu/drm/xe/xe_ttm_vram_mgr_types.h
  HDRTEST drivers/gpu/drm/xe/xe_tuning.h
  HDRTEST drivers/gpu/drm/xe/xe_uc.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/xe/xe_uc_fw_types.h
  HDRTEST drivers/gpu/drm/xe/xe_uc_types.h
  HDRTEST drivers/gpu/drm/xe/xe_vm.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_doc.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_madvise.h
  HDRTEST drivers/gpu/drm/xe/xe_vm_types.h
  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/xe/xe_wopcm_types.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  GEN     xe_wa_oob.c xe_wa_oob.h
  CC [M]  drivers/gpu/drm/xe/xe_guc.o
  CC [M]  drivers/gpu/drm/xe/xe_migrate.o
  CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
  CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
  CC [M]  drivers/gpu/drm/xe/xe_vm.o
  CC [M]  drivers/gpu/drm/xe/xe_wa.o
  LD [M]  drivers/gpu/drm/xe/xe.o
  MODPOST drivers/gpu/drm/xe/Module.symvers
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_bo_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_dma_buf_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_migrate_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_pci_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_rtp_test.o
WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpu/drm/xe/tests/xe_wa_test.o
  CC [M]  drivers/gpu/drm/xe/xe.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_bo_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_pci_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.mod.o
  CC [M]  drivers/gpu/drm/xe/tests/xe_wa_test.mod.o
  LD [M]  drivers/gpu/drm/xe/tests/xe_pci_test.ko
  LD [M]  drivers/gpu/drm/xe/xe.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_bo_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_dma_buf_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_migrate_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_wa_test.ko
  LD [M]  drivers/gpu/drm/xe/tests/xe_rtp_test.ko
make[1]: Leaving directory '/workspace/kernel/build64-default'
+ cleanup
+ '[' 1 -eq 1 ']'
+ ./scripts/config --file /workspace/kernel/build64-default/.config --enable CONFIG_DRM_XE_DISPLAY
run-parts: executing /workspace/ci/hooks/20-kernel-doc
+ SRC_DIR=/workspace/kernel
+ cd /workspace/kernel
+ find drivers/gpu/drm/xe/ -name '*.[ch]' -not -path 'drivers/gpu/drm/xe/display/*'
+ xargs ./scripts/kernel-doc -Werror -none include/uapi/drm/xe_drm.h
All hooks done



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

* [Intel-xe] ✓ CI.checksparse: success for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (24 preceding siblings ...)
  2023-11-14 13:16 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
@ 2023-11-14 13:18 ` Patchwork
  2023-11-14 13:51 ` [Intel-xe] ✓ CI.BAT: " Patchwork
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:18 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
State : success

== Summary ==

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

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



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

* [Intel-xe] ✓ CI.BAT: success for drm/xe: Probe tweaks and reordering (rev2)
  2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
                   ` (25 preceding siblings ...)
  2023-11-14 13:18 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
@ 2023-11-14 13:51 ` Patchwork
  26 siblings, 0 replies; 56+ messages in thread
From: Patchwork @ 2023-11-14 13:51 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe: Probe tweaks and reordering (rev2)
URL   : https://patchwork.freedesktop.org/series/126392/
State : success

== Summary ==

CI Bug Log - changes from xe-488-7dc3dda9b2df5a5c8949532f254a0689de70f093_BAT -> xe-pw-126392v2_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-126392v2_BAT:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@xe_evict_ccs@evict-overcommit-simple}:
    - bat-adlp-7:         NOTRUN -> [SKIP][1] +1 other test skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-126392v2/bat-adlp-7/igt@xe_evict_ccs@evict-overcommit-simple.html

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

  Here are the changes found in xe-pw-126392v2_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1:
    - bat-adlp-7:         [PASS][2] -> [FAIL][3] ([Intel XE#480]) +1 other test fail
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-488-7dc3dda9b2df5a5c8949532f254a0689de70f093/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-126392v2/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html

  * igt@xe_module_load@load:
    - bat-dg2-oem2:       [PASS][4] -> [INCOMPLETE][5] ([Intel XE#597] / [Intel XE#714])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-488-7dc3dda9b2df5a5c8949532f254a0689de70f093/bat-dg2-oem2/igt@xe_module_load@load.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-126392v2/bat-dg2-oem2/igt@xe_module_load@load.html
    - bat-atsm-2:         [PASS][6] -> [INCOMPLETE][7] ([Intel XE#714])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-488-7dc3dda9b2df5a5c8949532f254a0689de70f093/bat-atsm-2/igt@xe_module_load@load.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-126392v2/bat-atsm-2/igt@xe_module_load@load.html

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

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


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

  * IGT: IGT_7584 -> IGT_7587
  * Linux: xe-488-7dc3dda9b2df5a5c8949532f254a0689de70f093 -> xe-pw-126392v2

  IGT_7584: 30e6ded90039edde8aa6c435001f8d63159356bb @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  IGT_7587: bec435c24d23524d55f419a02af375e84c9be9d3 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-488-7dc3dda9b2df5a5c8949532f254a0689de70f093: 7dc3dda9b2df5a5c8949532f254a0689de70f093
  xe-pw-126392v2: 126392v2

== Logs ==

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

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

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

* Re: [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early Michał Winiarski
@ 2023-11-15 14:41   ` Matthew Brost
  2023-11-15 21:31   ` Matt Roper
  1 sibling, 0 replies; 56+ messages in thread
From: Matthew Brost @ 2023-11-15 14:41 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:20PM +0100, Michał Winiarski wrote:
> SR-IOV VF doesn't have access to MMIO registers used to determine
> graphics/media ID. It can however communicate with GuC.
> Introduce xe_device_probe_early, which initializes enough HW to use
> MMIO GuC communication.
> This will allow both VF and PF/native driver to have unified probe
> ordering.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
> v1 -> v2:
> - Add comment to "early" variant (Lucas)
> 
>  drivers/gpu/drm/xe/xe_device.c | 22 ++++++++++++++++++----
>  drivers/gpu/drm/xe/xe_device.h |  5 +++++
>  drivers/gpu/drm/xe/xe_mmio.c   | 16 ++++++++++------
>  drivers/gpu/drm/xe/xe_mmio.h   |  1 +
>  drivers/gpu/drm/xe/xe_pci.c    | 22 +++++++++++++++++++---
>  5 files changed, 53 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 3a98e7b502190..6fe669fdf1c0a 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -364,6 +364,24 @@ static int xe_set_dma_info(struct xe_device *xe)
>  	return err;
>  }
>  
> +/*
> + * Initialize MMIO resources that don't require any knowledge about tile count.
> + */
> +int xe_device_probe_early(struct xe_device *xe)
> +{
> +	int err;
> +
> +	err = xe_mmio_init(xe);
> +	if (err)
> +		return err;
> +
> +	err = xe_mmio_root_tile_init(xe);
> +	if (err)
> +		return err;
> +
> +	return 0;
> +}
> +
>  int xe_device_probe(struct xe_device *xe)
>  {
>  	struct xe_tile *tile;
> @@ -382,10 +400,6 @@ int xe_device_probe(struct xe_device *xe)
>  	if (err)
>  		return err;
>  
> -	err = xe_mmio_init(xe);
> -	if (err)
> -		return err;
> -
>  	xe_mmio_probe_tiles(xe);
>  
>  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
> diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
> index c4232de40ae08..b80230c631068 100644
> --- a/drivers/gpu/drm/xe/xe_device.h
> +++ b/drivers/gpu/drm/xe/xe_device.h
> @@ -37,6 +37,7 @@ static inline struct xe_device *ttm_to_xe_device(struct ttm_device *ttm)
>  
>  struct xe_device *xe_device_create(struct pci_dev *pdev,
>  				   const struct pci_device_id *ent);
> +int xe_device_probe_early(struct xe_device *xe);
>  int xe_device_probe(struct xe_device *xe);
>  void xe_device_remove(struct xe_device *xe);
>  void xe_device_shutdown(struct xe_device *xe);
> @@ -123,6 +124,10 @@ static inline bool xe_device_uc_enabled(struct xe_device *xe)
>  	for ((id__) = 0; (id__) < (xe__)->info.tile_count; (id__)++) \
>  		for_each_if((tile__) = &(xe__)->tiles[(id__)])
>  
> +#define for_each_remote_tile(tile__, xe__, id__) \
> +	for ((id__) = 1; (id__) < (xe__)->info.tile_count; (id__)++) \
> +		for_each_if((tile__) = &(xe__)->tiles[(id__)])
> +
>  /*
>   * FIXME: This only works for now since multi-tile and standalone media
>   * happen to be mutually exclusive.  Future platforms may change this...
> diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
> index acf6dfca0bc46..8eb19a4bca9c6 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.c
> +++ b/drivers/gpu/drm/xe/xe_mmio.c
> @@ -15,10 +15,12 @@
>  #include "regs/xe_regs.h"
>  #include "xe_bo.h"
>  #include "xe_device.h"
> +#include "xe_ggtt.h"
>  #include "xe_gt.h"
>  #include "xe_gt_mcr.h"
>  #include "xe_macros.h"
>  #include "xe_module.h"
> +#include "xe_tile.h"
>  
>  #define XEHP_MTCFG_ADDR		XE_REG(0x101800)
>  #define TILE_COUNT		REG_GENMASK(15, 8)
> @@ -375,10 +377,8 @@ static int xe_verify_lmem_ready(struct xe_device *xe)
>  
>  int xe_mmio_init(struct xe_device *xe)
>  {
> -	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>  	const int mmio_bar = 0;
> -	int err;
>  
>  	/*
>  	 * Map the entire BAR.
> @@ -392,12 +392,16 @@ int xe_mmio_init(struct xe_device *xe)
>  		return -EIO;
>  	}
>  
> -	err = drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
> -	if (err)
> -		return err;
> +	return drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
> +}
> +
> +int xe_mmio_root_tile_init(struct xe_device *xe)
> +{
> +	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
> +	int err;
>  
>  	/* Setup first tile; other tiles (if present) will be setup later. */
> -	root_tile->mmio.size = xe->mmio.size;
> +	root_tile->mmio.size = SZ_16M;
>  	root_tile->mmio.regs = xe->mmio.regs;
>  
>  	err = xe_verify_lmem_ready(xe);
> diff --git a/drivers/gpu/drm/xe/xe_mmio.h b/drivers/gpu/drm/xe/xe_mmio.h
> index 9f1a25cfd2cf0..74976af15ea60 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.h
> +++ b/drivers/gpu/drm/xe/xe_mmio.h
> @@ -21,6 +21,7 @@ struct xe_device;
>  #define GEN12_LMEM_BAR		2
>  
>  int xe_mmio_init(struct xe_device *xe);
> +int xe_mmio_root_tile_init(struct xe_device *xe);
>  void xe_mmio_probe_tiles(struct xe_device *xe);
>  
>  static inline u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg)
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index c50cc3f7cbe06..a1026b7ee4727 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -537,10 +537,12 @@ static void handle_gmdid(struct xe_device *xe,
>   * Initialize device info content that only depends on static driver_data passed to the driver at
>   * probe time from PCI ID table.
>   */
> -static void xe_info_init_early(struct xe_device *xe,
> +static int xe_info_init_early(struct xe_device *xe,
>  			       const struct xe_device_desc *desc,
>  			       const struct xe_subplatform_desc *subplatform_desc)
>  {
> +	int err;
> +
>  	xe->info.platform = desc->platform;
>  	xe->info.subplatform = subplatform_desc ?
>  		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
> @@ -554,6 +556,12 @@ static void xe_info_init_early(struct xe_device *xe,
>  	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
>  				  enable_display &&
>  				  desc->has_display;
> +
> +	err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0);
> +	if (err)
> +		return err;
> +
> +	return 0;
>  }
>  
>  /*
> @@ -621,13 +629,15 @@ static int xe_info_init(struct xe_device *xe,
>  	 */
>  	xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
>  
> -	for_each_tile(tile, xe, id) {
> +	for_each_remote_tile(tile, xe, id) {
>  		int err;
>  
>  		err = xe_tile_init_early(tile, xe, id);
>  		if (err)
>  			return err;
> +	}
>  
> +	for_each_tile(tile, xe, id) {
>  		gt = tile->primary_gt;
>  		gt->info.id = xe->info.gt_count++;
>  		gt->info.type = XE_GT_TYPE_MAIN;
> @@ -727,7 +737,13 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	pci_set_master(pdev);
>  	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
>  
> -	xe_info_init_early(xe, desc, subplatform_desc);
> +	err = xe_info_init_early(xe, desc, subplatform_desc);
> +	if (err)
> +		return err;
> +
> +	err = xe_device_probe_early(xe);
> +	if (err)
> +		return err;
>  
>  	err = xe_info_init(xe, desc, subplatform_desc);
>  	if (err)
> -- 
> 2.42.1
> 

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

* Re: [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID Michał Winiarski
@ 2023-11-15 14:45   ` Matthew Brost
  2023-11-15 21:51   ` Matt Roper
  1 sibling, 0 replies; 56+ messages in thread
From: Matthew Brost @ 2023-11-15 14:45 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:21PM +0100, Michał Winiarski wrote:
> Now that MMIO init got moved to device early, we can use regular
> xe_mmio_read helpers to get to GMD_ID register.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
>  drivers/gpu/drm/xe/regs/xe_gt_regs.h |  1 +
>  drivers/gpu/drm/xe/xe_pci.c          | 35 ++++++++--------------------
>  2 files changed, 11 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> index cc27fe8fc3633..6b195115564ce 100644
> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> @@ -38,6 +38,7 @@
>  #define   GMD_ID_ARCH_MASK			REG_GENMASK(31, 22)
>  #define   GMD_ID_RELEASE_MASK			REG_GENMASK(21, 14)
>  #define   GMD_ID_REVID				REG_GENMASK(5, 0)
> +#define MEDIA_GMD_ID				XE_REG(GMD_ID.addr + MEDIA_GT_GSI_OFFSET)
>  
>  #define FORCEWAKE_ACK_GSC			XE_REG(0xdf8)
>  #define FORCEWAKE_ACK_GT_MTL			XE_REG(0xdfc)
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index a1026b7ee4727..a6c08577b01d2 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -21,6 +21,7 @@
>  #include "xe_drv.h"
>  #include "xe_gt.h"
>  #include "xe_macros.h"
> +#include "xe_mmio.h"
>  #include "xe_module.h"
>  #include "xe_pci_types.h"
>  #include "xe_pm.h"
> @@ -441,29 +442,6 @@ find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
>  	return NULL;
>  }
>  
> -static void peek_gmdid(struct xe_device *xe, u32 gmdid_offset, u32 *ver, u32 *revid)
> -{
> -	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> -	void __iomem *map = pci_iomap_range(pdev, 0, gmdid_offset, sizeof(u32));
> -	u32 val;
> -
> -	if (!map) {
> -		drm_err(&xe->drm, "Failed to read GMD_ID (%#x) from PCI BAR.\n",
> -			gmdid_offset);
> -		*ver = 0;
> -		*revid = 0;
> -
> -		return;
> -	}
> -
> -	val = ioread32(map);
> -	pci_iounmap(pdev, map);
> -
> -	*ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 +
> -		REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> -	*revid = REG_FIELD_GET(GMD_ID_REVID, val);
> -}
> -
>  /*
>   * Pre-GMD_ID platform: device descriptor already points to the appropriate
>   * graphics descriptor. Simply forward the description and calculate the version
> @@ -495,9 +473,14 @@ static void handle_gmdid(struct xe_device *xe,
>  			 u32 *graphics_revid,
>  			 u32 *media_revid)
>  {
> +	struct xe_gt *gt = xe_root_mmio_gt(xe);
> +	u32 val;
>  	u32 ver;
>  
> -	peek_gmdid(xe, GMD_ID.addr, &ver, graphics_revid);
> +	val = xe_mmio_read32(gt, GMD_ID);
> +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> +	*graphics_revid = REG_FIELD_GET(GMD_ID_REVID, val);
> +
>  	for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
>  		if (ver == graphics_ip_map[i].ver) {
>  			xe->info.graphics_verx100 = ver;
> @@ -512,7 +495,9 @@ static void handle_gmdid(struct xe_device *xe,
>  			ver / 100, ver % 100);
>  	}
>  
> -	peek_gmdid(xe, GMD_ID.addr + 0x380000, &ver, media_revid);
> +	val = xe_mmio_read32(gt, MEDIA_GMD_ID);
> +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> +	*media_revid = REG_FIELD_GET(GMD_ID_REVID, val);
>  
>  	/* Media may legitimately be fused off / not present */
>  	if (ver == 0)
> -- 
> 2.42.1
> 

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

* Re: [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe Michał Winiarski
@ 2023-11-15 15:09   ` Matthew Brost
  2023-11-21 16:07     ` Michał Winiarski
  0 siblings, 1 reply; 56+ messages in thread
From: Matthew Brost @ 2023-11-15 15:09 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:31PM +0100, Michał Winiarski wrote:
> SR-IOV VF has limited access to MMIO registers. Fortunately, it is able
> to access a curated subset that is needed to initialize the driver by
> communicating with SR-IOV PF using GuC CT.
> Initialize GuC earlier in order to keep the unified probe ordering
> between VF and PF modes.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_device.c | 11 +++++++++++
>  drivers/gpu/drm/xe/xe_gt.c     | 16 ++++------------
>  drivers/gpu/drm/xe/xe_guc.c    | 15 ++++++++++-----
>  drivers/gpu/drm/xe/xe_uc.c     | 35 ++++++++++++++++++++++++++--------
>  4 files changed, 52 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 531aca74e8eb4..ecbf1effecc41 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -32,6 +32,7 @@
>  #include "xe_pat.h"
>  #include "xe_pcode.h"
>  #include "xe_pm.h"
> +#include "xe_uc.h"
>  #include "xe_query.h"
>  #include "xe_tile.h"
>  #include "xe_ttm_stolen_mgr.h"
> @@ -414,6 +415,16 @@ int xe_device_probe(struct xe_device *xe)
>  			return err;
>  	}
>  
> +	for_each_gt(gt, xe, id) {
> +		err = xe_uc_init(&gt->uc);
> +		if (err)
> +			return err;
> +
> +		err = xe_uc_init_hwconfig(&gt->uc);
> +		if (err)
> +			return err;
> +	}
> +

I think this should be a GT level function rather touching the UC layer
here. Also maybe combine xe_force_wake_init_gt & xe_ggtt_init_early into
this new function too if it makes sense.

Also a comment of why this located wouldn't hurt either.

Other than these nits the patch itslef makes sense to me.

Matt

>  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 73665e4e66f22..bee661e1f164a 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -344,14 +344,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
>  			goto err_force_wake;
>  	}
>  
> -	err = xe_uc_init(&gt->uc);
> -	if (err)
> -		goto err_force_wake;
> -
> -	err = xe_uc_init_hwconfig(&gt->uc);
> -	if (err)
> -		goto err_force_wake;
> -
>  	xe_gt_idle_sysfs_init(&gt->gtidle);
>  
>  	/* XXX: Fake that we pull the engine mask from hwconfig blob */
> @@ -415,10 +407,6 @@ static int all_fw_domain_init(struct xe_gt *gt)
>  	if (err)
>  		goto err_force_wake;
>  
> -	err = xe_uc_init_post_hwconfig(&gt->uc);
> -	if (err)
> -		goto err_force_wake;
> -
>  	if (!xe_gt_is_media_type(gt)) {
>  		/*
>  		 * USM has its only SA pool to non-block behind user operations
> @@ -442,6 +430,10 @@ static int all_fw_domain_init(struct xe_gt *gt)
>  		}
>  	}
>  
> +	err = xe_uc_init_post_hwconfig(&gt->uc);
> +	if (err)
> +		goto err_force_wake;
> +
>  	err = xe_uc_init_hw(&gt->uc);
>  	if (err)
>  		goto err_force_wake;
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index e04b04be32b7d..895bcc24ae2c8 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -572,26 +572,31 @@ static int __xe_guc_upload(struct xe_guc *guc)
>   */
>  int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
>  {
> +	struct xe_gt *gt = guc_to_gt(guc);
>  	int ret;
>  
>  	xe_guc_ads_populate_minimal(&guc->ads);
>  
> +	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
> +	if (ret)
> +		return ret;
> +
>  	/* Raise GT freq to speed up HuC/GuC load */
>  	xe_guc_pc_init_early(&guc->pc);
>  
>  	ret = __xe_guc_upload(guc);
>  	if (ret)
> -		return ret;
> +		goto out;
>  
>  	ret = xe_guc_hwconfig_init(guc);
>  	if (ret)
> -		return ret;
> +		goto out;
>  
>  	ret = xe_guc_enable_communication(guc);
> -	if (ret)
> -		return ret;
> +out:
> +	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
>  
> -	return 0;
> +	return ret;
>  }
>  
>  int xe_guc_upload(struct xe_guc *guc)
> diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
> index 13e76e6805ca1..069207a7f2f21 100644
> --- a/drivers/gpu/drm/xe/xe_uc.c
> +++ b/drivers/gpu/drm/xe/xe_uc.c
> @@ -29,8 +29,16 @@ uc_to_xe(struct xe_uc *uc)
>  /* Should be called once at driver load only */
>  int xe_uc_init(struct xe_uc *uc)
>  {
> +	struct xe_device *xe = uc_to_xe(uc);
> +	struct xe_gt *gt = uc_to_gt(uc);
>  	int ret;
>  
> +	xe_device_mem_access_get(xe);
> +
> +	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
> +	if (ret)
> +		goto err;
> +
>  	/*
>  	 * We call the GuC/HuC init functions even if GuC submission is off to
>  	 * correctly move our tracking of the FW state to "disabled".
> @@ -38,26 +46,36 @@ int xe_uc_init(struct xe_uc *uc)
>  
>  	ret = xe_guc_init(&uc->guc);
>  	if (ret)
> -		goto err;
> +		goto err_fw;
>  
>  	ret = xe_huc_init(&uc->huc);
>  	if (ret)
> -		goto err;
> +		goto err_fw;
>  
>  	if (!xe_device_uc_enabled(uc_to_xe(uc)))
> -		return 0;
> +		goto out;
> +
>  
>  	ret = xe_wopcm_init(&uc->wopcm);
>  	if (ret)
> -		goto err;
> +		goto err_fw;
>  
>  	ret = xe_guc_submit_init(&uc->guc);
>  	if (ret)
> -		goto err;
> +		goto err_fw;
> +
> +out:
> +	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
> +
> +	xe_device_mem_access_put(xe);
>  
>  	return 0;
>  
> +err_fw:
> +	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
>  err:
> +	xe_device_mem_access_put(xe);
> +
>  	return ret;
>  }
>  
> @@ -117,17 +135,18 @@ int xe_uc_sanitize_reset(struct xe_uc *uc)
>   */
>  int xe_uc_init_hwconfig(struct xe_uc *uc)
>  {
> +	struct xe_device *xe = uc_to_xe(uc);
>  	int ret;
>  
>  	/* GuC submission not enabled, nothing to do */
>  	if (!xe_device_uc_enabled(uc_to_xe(uc)))
>  		return 0;
>  
> +	xe_device_mem_access_get(xe);
>  	ret = xe_guc_min_load_for_hwconfig(&uc->guc);
> -	if (ret)
> -		return ret;
> +	xe_device_mem_access_put(xe);
>  
> -	return 0;
> +	return ret;
>  }
>  
>  /*
> -- 
> 2.42.1
> 

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

* Re: [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device Michał Winiarski
@ 2023-11-15 20:47   ` Matt Roper
  2023-11-21 12:45     ` Michał Winiarski
  0 siblings, 1 reply; 56+ messages in thread
From: Matt Roper @ 2023-11-15 20:47 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:13PM +0100, Michał Winiarski wrote:
> Xe uses devres for most of its driver-lifetime resources, use it for pci
> device as well.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> ---
> v2 -> v3:
> - Mark xe_pci_clear_master as static to fix W=1 build warning (CI)
> 
>  drivers/gpu/drm/xe/xe_pci.c | 26 ++++++++++++++------------
>  1 file changed, 14 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index de986aaee3bb2..e6b59c4b02bdc 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -663,6 +663,11 @@ static void xe_pci_remove(struct pci_dev *pdev)
>  	pci_set_drvdata(pdev, NULL);
>  }
>  
> +static void xe_pci_clear_master(void *pdev)
> +{
> +	pci_clear_master(pdev);
> +}
> +
>  static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  {
>  	const struct xe_device_desc *desc = (const void *)ent->driver_data;
> @@ -691,23 +696,25 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	if (xe_display_driver_probe_defer(pdev))
>  		return -EPROBE_DEFER;
>  
> +	err = pcim_enable_device(pdev);
> +	if (err)
> +		return err;
> +
>  	xe = xe_device_create(pdev, ent);
>  	if (IS_ERR(xe))
>  		return PTR_ERR(xe);
>  
> +	pci_set_drvdata(pdev, xe);
> +
>  	xe_pm_assert_unbounded_bridge(xe);
>  	subplatform_desc = find_subplatform(xe, desc);
>  
> -	pci_set_drvdata(pdev, xe);
> -	err = pci_enable_device(pdev);
> -	if (err)
> -		return err;
> -
>  	pci_set_master(pdev);
> +	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);

Is it necessary to do this explicitly?  I think this already happens in
pci_disable_device -> do_pci_disable_device, right?  I don't see any
other drivers adding an explicit managed action to do it either.


Matt

>  
>  	err = xe_info_init(xe, desc, subplatform_desc);
>  	if (err)
> -		goto err_pci_disable;
> +		return err;
>  
>  	xe_display_probe(xe);
>  
> @@ -734,16 +741,11 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  
>  	err = xe_device_probe(xe);
>  	if (err)
> -		goto err_pci_disable;
> +		return err;
>  
>  	xe_pm_init(xe);
>  
>  	return 0;
> -
> -err_pci_disable:
> -	pci_disable_device(pdev);
> -
> -	return err;
>  }
>  
>  static void xe_pci_shutdown(struct pci_dev *pdev)
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 03/20] drm/xe/irq: Don't call pci_free_irq_vectors
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 03/20] drm/xe/irq: Don't call pci_free_irq_vectors Michał Winiarski
@ 2023-11-15 20:49   ` Matt Roper
  0 siblings, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 20:49 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:14PM +0100, Michał Winiarski wrote:
> For devres managed devices, pci_alloc_irq_vectors is also managed (see
> pci_setup_msi_context for reference).
> PCI device used by Xe is devres managed (it was enabled with
> pcim_enable_device), which means that calls to pci_free_irq_vectors are
> redundant and can be safely removed.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_irq.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
> index c5315e02fc5bb..df4da774d0275 100644
> --- a/drivers/gpu/drm/xe/xe_irq.c
> +++ b/drivers/gpu/drm/xe/xe_irq.c
> @@ -603,7 +603,6 @@ static void irq_uninstall(struct drm_device *drm, void *arg)
>  
>  	irq = pci_irq_vector(pdev, 0);
>  	free_irq(irq, xe);
> -	pci_free_irq_vectors(pdev);
>  }
>  
>  int xe_irq_install(struct xe_device *xe)
> @@ -630,7 +629,7 @@ int xe_irq_install(struct xe_device *xe)
>  	err = request_irq(irq, irq_handler, IRQF_SHARED, DRIVER_NAME, xe);
>  	if (err < 0) {
>  		drm_err(&xe->drm, "Failed to request MSI/MSIX IRQ %d\n", err);
> -		goto free_pci_irq_vectors;
> +		return err;
>  	}
>  
>  	xe->irq.enabled = true;
> @@ -645,8 +644,6 @@ int xe_irq_install(struct xe_device *xe)
>  
>  free_irq_handler:
>  	free_irq(irq, xe);
> -free_pci_irq_vectors:
> -	pci_free_irq_vectors(pdev);
>  
>  	return err;
>  }
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early Michał Winiarski
  2023-11-15 14:41   ` Matthew Brost
@ 2023-11-15 21:31   ` Matt Roper
  1 sibling, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 21:31 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:20PM +0100, Michał Winiarski wrote:
> SR-IOV VF doesn't have access to MMIO registers used to determine
> graphics/media ID. It can however communicate with GuC.
> Introduce xe_device_probe_early, which initializes enough HW to use
> MMIO GuC communication.
> This will allow both VF and PF/native driver to have unified probe
> ordering.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
> v1 -> v2:
> - Add comment to "early" variant (Lucas)
> 
>  drivers/gpu/drm/xe/xe_device.c | 22 ++++++++++++++++++----
>  drivers/gpu/drm/xe/xe_device.h |  5 +++++
>  drivers/gpu/drm/xe/xe_mmio.c   | 16 ++++++++++------
>  drivers/gpu/drm/xe/xe_mmio.h   |  1 +
>  drivers/gpu/drm/xe/xe_pci.c    | 22 +++++++++++++++++++---
>  5 files changed, 53 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 3a98e7b502190..6fe669fdf1c0a 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -364,6 +364,24 @@ static int xe_set_dma_info(struct xe_device *xe)
>  	return err;
>  }
>  
> +/*
> + * Initialize MMIO resources that don't require any knowledge about tile count.
> + */
> +int xe_device_probe_early(struct xe_device *xe)
> +{
> +	int err;
> +
> +	err = xe_mmio_init(xe);
> +	if (err)
> +		return err;
> +
> +	err = xe_mmio_root_tile_init(xe);
> +	if (err)
> +		return err;
> +
> +	return 0;
> +}
> +
>  int xe_device_probe(struct xe_device *xe)
>  {
>  	struct xe_tile *tile;
> @@ -382,10 +400,6 @@ int xe_device_probe(struct xe_device *xe)
>  	if (err)
>  		return err;
>  
> -	err = xe_mmio_init(xe);
> -	if (err)
> -		return err;
> -
>  	xe_mmio_probe_tiles(xe);
>  
>  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
> diff --git a/drivers/gpu/drm/xe/xe_device.h b/drivers/gpu/drm/xe/xe_device.h
> index c4232de40ae08..b80230c631068 100644
> --- a/drivers/gpu/drm/xe/xe_device.h
> +++ b/drivers/gpu/drm/xe/xe_device.h
> @@ -37,6 +37,7 @@ static inline struct xe_device *ttm_to_xe_device(struct ttm_device *ttm)
>  
>  struct xe_device *xe_device_create(struct pci_dev *pdev,
>  				   const struct pci_device_id *ent);
> +int xe_device_probe_early(struct xe_device *xe);
>  int xe_device_probe(struct xe_device *xe);
>  void xe_device_remove(struct xe_device *xe);
>  void xe_device_shutdown(struct xe_device *xe);
> @@ -123,6 +124,10 @@ static inline bool xe_device_uc_enabled(struct xe_device *xe)
>  	for ((id__) = 0; (id__) < (xe__)->info.tile_count; (id__)++) \
>  		for_each_if((tile__) = &(xe__)->tiles[(id__)])
>  
> +#define for_each_remote_tile(tile__, xe__, id__) \
> +	for ((id__) = 1; (id__) < (xe__)->info.tile_count; (id__)++) \
> +		for_each_if((tile__) = &(xe__)->tiles[(id__)])
> +
>  /*
>   * FIXME: This only works for now since multi-tile and standalone media
>   * happen to be mutually exclusive.  Future platforms may change this...
> diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
> index acf6dfca0bc46..8eb19a4bca9c6 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.c
> +++ b/drivers/gpu/drm/xe/xe_mmio.c
> @@ -15,10 +15,12 @@
>  #include "regs/xe_regs.h"
>  #include "xe_bo.h"
>  #include "xe_device.h"
> +#include "xe_ggtt.h"
>  #include "xe_gt.h"
>  #include "xe_gt_mcr.h"
>  #include "xe_macros.h"
>  #include "xe_module.h"
> +#include "xe_tile.h"
>  
>  #define XEHP_MTCFG_ADDR		XE_REG(0x101800)
>  #define TILE_COUNT		REG_GENMASK(15, 8)
> @@ -375,10 +377,8 @@ static int xe_verify_lmem_ready(struct xe_device *xe)
>  
>  int xe_mmio_init(struct xe_device *xe)
>  {
> -	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>  	const int mmio_bar = 0;
> -	int err;
>  
>  	/*
>  	 * Map the entire BAR.
> @@ -392,12 +392,16 @@ int xe_mmio_init(struct xe_device *xe)
>  		return -EIO;
>  	}
>  
> -	err = drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
> -	if (err)
> -		return err;
> +	return drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
> +}
> +
> +int xe_mmio_root_tile_init(struct xe_device *xe)
> +{
> +	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
> +	int err;
>  
>  	/* Setup first tile; other tiles (if present) will be setup later. */
> -	root_tile->mmio.size = xe->mmio.size;
> +	root_tile->mmio.size = SZ_16M;
>  	root_tile->mmio.regs = xe->mmio.regs;
>  
>  	err = xe_verify_lmem_ready(xe);
> diff --git a/drivers/gpu/drm/xe/xe_mmio.h b/drivers/gpu/drm/xe/xe_mmio.h
> index 9f1a25cfd2cf0..74976af15ea60 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.h
> +++ b/drivers/gpu/drm/xe/xe_mmio.h
> @@ -21,6 +21,7 @@ struct xe_device;
>  #define GEN12_LMEM_BAR		2
>  
>  int xe_mmio_init(struct xe_device *xe);
> +int xe_mmio_root_tile_init(struct xe_device *xe);
>  void xe_mmio_probe_tiles(struct xe_device *xe);
>  
>  static inline u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg)
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index c50cc3f7cbe06..a1026b7ee4727 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -537,10 +537,12 @@ static void handle_gmdid(struct xe_device *xe,
>   * Initialize device info content that only depends on static driver_data passed to the driver at
>   * probe time from PCI ID table.
>   */
> -static void xe_info_init_early(struct xe_device *xe,
> +static int xe_info_init_early(struct xe_device *xe,
>  			       const struct xe_device_desc *desc,
>  			       const struct xe_subplatform_desc *subplatform_desc)
>  {
> +	int err;
> +
>  	xe->info.platform = desc->platform;
>  	xe->info.subplatform = subplatform_desc ?
>  		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
> @@ -554,6 +556,12 @@ static void xe_info_init_early(struct xe_device *xe,
>  	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
>  				  enable_display &&
>  				  desc->has_display;
> +
> +	err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0);
> +	if (err)
> +		return err;
> +
> +	return 0;
>  }
>  
>  /*
> @@ -621,13 +629,15 @@ static int xe_info_init(struct xe_device *xe,
>  	 */
>  	xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
>  
> -	for_each_tile(tile, xe, id) {
> +	for_each_remote_tile(tile, xe, id) {
>  		int err;
>  
>  		err = xe_tile_init_early(tile, xe, id);
>  		if (err)
>  			return err;
> +	}
>  
> +	for_each_tile(tile, xe, id) {
>  		gt = tile->primary_gt;
>  		gt->info.id = xe->info.gt_count++;
>  		gt->info.type = XE_GT_TYPE_MAIN;
> @@ -727,7 +737,13 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	pci_set_master(pdev);
>  	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
>  
> -	xe_info_init_early(xe, desc, subplatform_desc);
> +	err = xe_info_init_early(xe, desc, subplatform_desc);
> +	if (err)
> +		return err;
> +
> +	err = xe_device_probe_early(xe);
> +	if (err)
> +		return err;
>  
>  	err = xe_info_init(xe, desc, subplatform_desc);
>  	if (err)
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID Michał Winiarski
  2023-11-15 14:45   ` Matthew Brost
@ 2023-11-15 21:51   ` Matt Roper
  2023-11-20 19:57     ` Lucas De Marchi
  1 sibling, 1 reply; 56+ messages in thread
From: Matt Roper @ 2023-11-15 21:51 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:21PM +0100, Michał Winiarski wrote:
> Now that MMIO init got moved to device early, we can use regular
> xe_mmio_read helpers to get to GMD_ID register.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> ---
>  drivers/gpu/drm/xe/regs/xe_gt_regs.h |  1 +
>  drivers/gpu/drm/xe/xe_pci.c          | 35 ++++++++--------------------
>  2 files changed, 11 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> index cc27fe8fc3633..6b195115564ce 100644
> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> @@ -38,6 +38,7 @@
>  #define   GMD_ID_ARCH_MASK			REG_GENMASK(31, 22)
>  #define   GMD_ID_RELEASE_MASK			REG_GENMASK(21, 14)
>  #define   GMD_ID_REVID				REG_GENMASK(5, 0)
> +#define MEDIA_GMD_ID				XE_REG(GMD_ID.addr + MEDIA_GT_GSI_OFFSET)
>  
>  #define FORCEWAKE_ACK_GSC			XE_REG(0xdf8)
>  #define FORCEWAKE_ACK_GT_MTL			XE_REG(0xdfc)
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index a1026b7ee4727..a6c08577b01d2 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -21,6 +21,7 @@
>  #include "xe_drv.h"
>  #include "xe_gt.h"
>  #include "xe_macros.h"
> +#include "xe_mmio.h"
>  #include "xe_module.h"
>  #include "xe_pci_types.h"
>  #include "xe_pm.h"
> @@ -441,29 +442,6 @@ find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
>  	return NULL;
>  }
>  
> -static void peek_gmdid(struct xe_device *xe, u32 gmdid_offset, u32 *ver, u32 *revid)
> -{
> -	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> -	void __iomem *map = pci_iomap_range(pdev, 0, gmdid_offset, sizeof(u32));
> -	u32 val;
> -
> -	if (!map) {
> -		drm_err(&xe->drm, "Failed to read GMD_ID (%#x) from PCI BAR.\n",
> -			gmdid_offset);
> -		*ver = 0;
> -		*revid = 0;
> -
> -		return;
> -	}
> -
> -	val = ioread32(map);
> -	pci_iounmap(pdev, map);
> -
> -	*ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 +
> -		REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> -	*revid = REG_FIELD_GET(GMD_ID_REVID, val);
> -}
> -
>  /*
>   * Pre-GMD_ID platform: device descriptor already points to the appropriate
>   * graphics descriptor. Simply forward the description and calculate the version
> @@ -495,9 +473,14 @@ static void handle_gmdid(struct xe_device *xe,
>  			 u32 *graphics_revid,
>  			 u32 *media_revid)
>  {
> +	struct xe_gt *gt = xe_root_mmio_gt(xe);
> +	u32 val;
>  	u32 ver;
>  
> -	peek_gmdid(xe, GMD_ID.addr, &ver, graphics_revid);
> +	val = xe_mmio_read32(gt, GMD_ID);
> +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> +	*graphics_revid = REG_FIELD_GET(GMD_ID_REVID, val);
> +
>  	for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
>  		if (ver == graphics_ip_map[i].ver) {
>  			xe->info.graphics_verx100 = ver;
> @@ -512,7 +495,9 @@ static void handle_gmdid(struct xe_device *xe,
>  			ver / 100, ver % 100);
>  	}
>  
> -	peek_gmdid(xe, GMD_ID.addr + 0x380000, &ver, media_revid);
> +	val = xe_mmio_read32(gt, MEDIA_GMD_ID);

It's unfortunate that we have to read the GMD_ID register through the
wrong GT pointer, but I don't see a good way to avoid it.  Maybe rather
than defining MEDIA_GMD_ID with the built-in offset (which people may
try to copy/paste for other register definitions without realizing this
is a one-time special case), we should just do something like

        struct xe_reg media_gmdid_reg = GMD_ID;

        /*
         * Since we haven't initialized the media GT yet, we need to
         * read media's GMD_ID register through the primary GT's
         * mmio; that means we also need to explicitly add in the
         * media GSI offset.
         */
         media_gmdid_reg.addr += MEDIA_GT_GSI_OFFSET;
         val = xe_mmio_read32(gt, media_gmdid_reg);


Matt

> +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> +	*media_revid = REG_FIELD_GET(GMD_ID_REVID, val);
>  
>  	/* Media may legitimately be fused off / not present */
>  	if (ver == 0)
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 11/20] drm/xe: Move system memory management init to earlier point in probe
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 11/20] drm/xe: Move system memory management init to earlier point in probe Michał Winiarski
@ 2023-11-15 21:55   ` Matt Roper
  0 siblings, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 21:55 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:22PM +0100, Michał Winiarski wrote:
> GuC will need to be loaded earlier during probe. And in order to load
> GuC, we will need the ability to create system memory allocations.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_device.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index 6fe669fdf1c0a..a89b5a32c093d 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -402,6 +402,8 @@ int xe_device_probe(struct xe_device *xe)
>  
>  	xe_mmio_probe_tiles(xe);
>  
> +	xe_ttm_sys_mgr_init(xe);
> +
>  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
>  	if (err)
>  		return err;
> @@ -430,8 +432,6 @@ int xe_device_probe(struct xe_device *xe)
>  	if (err)
>  		goto err_irq_shutdown;
>  
> -	xe_ttm_sys_mgr_init(xe);
> -
>  	for_each_tile(tile, xe, id) {
>  		err = xe_tile_init_noalloc(tile);
>  		if (err)
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 12/20] drm/xe: Move force_wake init to earlier point in probe
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 12/20] drm/xe: Move force_wake " Michał Winiarski
@ 2023-11-15 21:59   ` Matt Roper
  0 siblings, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 21:59 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:23PM +0100, Michał Winiarski wrote:
> GuC will need to be loaded earlier during probe. And in order to load
> GuC, being able to take the forcewake is going to be needed.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_device.c | 3 +++
>  drivers/gpu/drm/xe/xe_gt.c     | 2 --
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index a89b5a32c093d..fde597fe0b513 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -404,6 +404,9 @@ int xe_device_probe(struct xe_device *xe)
>  
>  	xe_ttm_sys_mgr_init(xe);
>  
> +	for_each_gt(gt, xe, id)
> +		xe_force_wake_init_gt(gt, gt_to_fw(gt));
> +
>  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index 6c885dde5d59c..c8e2689873c37 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -292,8 +292,6 @@ int xe_gt_init_early(struct xe_gt *gt)
>  {
>  	int err;
>  
> -	xe_force_wake_init_gt(gt, gt_to_fw(gt));
> -
>  	err = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
>  	if (err)
>  		return err;
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 13/20] drm/xe: Reorder GGTT init to earlier point in probe
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 13/20] drm/xe: Reorder GGTT " Michał Winiarski
@ 2023-11-15 22:19   ` Matt Roper
  0 siblings, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 22:19 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:24PM +0100, Michał Winiarski wrote:
> GuC will need to be loaded earlier during probe. Having functional GGTT
> is one of the prerequisites.
> Also rename xe_ggtt_init_noalloc to xe_ggtt_init_early to match the new
> call site.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_device.c |  7 +++++++
>  drivers/gpu/drm/xe/xe_ggtt.c   | 20 ++++++++++++++++----
>  drivers/gpu/drm/xe/xe_ggtt.h   |  2 +-
>  drivers/gpu/drm/xe/xe_tile.c   |  4 ----
>  4 files changed, 24 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> index fde597fe0b513..531aca74e8eb4 100644
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -24,6 +24,7 @@
>  #include "xe_drv.h"
>  #include "xe_exec_queue.h"
>  #include "xe_exec.h"
> +#include "xe_ggtt.h"
>  #include "xe_gt.h"
>  #include "xe_irq.h"
>  #include "xe_mmio.h"
> @@ -407,6 +408,12 @@ int xe_device_probe(struct xe_device *xe)
>  	for_each_gt(gt, xe, id)
>  		xe_force_wake_init_gt(gt, gt_to_fw(gt));
>  
> +	for_each_tile(tile, xe, id) {
> +		err = xe_ggtt_init_early(tile->mem.ggtt);
> +		if (err)
> +			return err;
> +	}
> +
>  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 0e2a41837f169..fab3cc04882da 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -96,14 +96,20 @@ static void xe_ggtt_clear(struct xe_ggtt *ggtt, u64 start, u64 size)
>  	}
>  }
>  
> -static void ggtt_fini_noalloc(struct drm_device *drm, void *arg)
> +static void ggtt_fini_early(struct drm_device *drm, void *arg)
>  {
>  	struct xe_ggtt *ggtt = arg;
>  
>  	mutex_destroy(&ggtt->lock);
>  	drm_mm_takedown(&ggtt->mm);
> +}
> +
> +static void ggtt_fini(struct drm_device *drm, void *arg)
> +{
> +	struct xe_ggtt *ggtt = arg;
>  
>  	xe_bo_unpin_map_no_vm(ggtt->scratch);
> +	ggtt->scratch = NULL;
>  }
>  
>  static void primelockdep(struct xe_ggtt *ggtt)
> @@ -124,7 +130,12 @@ static const struct xe_ggtt_pt_ops xelpg_pt_ops = {
>  	.pte_encode_bo = xelpg_ggtt_pte_encode_bo,
>  };
>  
> -int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt)
> +/*
> + * Early GGTT initialization, which allows to create new mappings usable by the GuC.
> + * Mappings are not usable by the HW engines, as it doesn't have scratch / initial clear done to it
> + * yet. That will happen in the regular, non-early GGTT init.
> + */
> +int xe_ggtt_init_early(struct xe_ggtt *ggtt)
>  {
>  	struct xe_device *xe = tile_to_xe(ggtt->tile);
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> @@ -178,7 +189,7 @@ int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt)
>  	mutex_init(&ggtt->lock);
>  	primelockdep(ggtt);
>  
> -	return drmm_add_action_or_reset(&xe->drm, ggtt_fini_noalloc, ggtt);
> +	return drmm_add_action_or_reset(&xe->drm, ggtt_fini_early, ggtt);
>  }
>  
>  static void xe_ggtt_initial_clear(struct xe_ggtt *ggtt)
> @@ -226,7 +237,8 @@ int xe_ggtt_init(struct xe_ggtt *ggtt)
>  	xe_map_memset(xe, &ggtt->scratch->vmap, 0, 0, ggtt->scratch->size);
>  
>  	xe_ggtt_initial_clear(ggtt);
> -	return 0;
> +
> +	return drmm_add_action_or_reset(&xe->drm, ggtt_fini, ggtt);
>  err:
>  	ggtt->scratch = NULL;
>  	return err;
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.h b/drivers/gpu/drm/xe/xe_ggtt.h
> index 3faa3c6d0375f..a09c166dff701 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.h
> +++ b/drivers/gpu/drm/xe/xe_ggtt.h
> @@ -12,7 +12,7 @@ struct drm_printer;
>  
>  void xe_ggtt_set_pte(struct xe_ggtt *ggtt, u64 addr, u64 pte);
>  void xe_ggtt_invalidate(struct xe_ggtt *ggtt);
> -int xe_ggtt_init_noalloc(struct xe_ggtt *ggtt);
> +int xe_ggtt_init_early(struct xe_ggtt *ggtt);
>  int xe_ggtt_init(struct xe_ggtt *ggtt);
>  void xe_ggtt_printk(struct xe_ggtt *ggtt, const char *prefix);
>  
> diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
> index daf1ac39dcbb1..731869e49b016 100644
> --- a/drivers/gpu/drm/xe/xe_tile.c
> +++ b/drivers/gpu/drm/xe/xe_tile.c
> @@ -166,10 +166,6 @@ int xe_tile_init_noalloc(struct xe_tile *tile)
>  	if (err)
>  		goto err_mem_access;
>  
> -	err = xe_ggtt_init_noalloc(tile->mem.ggtt);
> -	if (err)
> -		goto err_mem_access;
> -
>  	tile->mem.kernel_bb_pool = xe_sa_bo_manager_init(tile, SZ_1M, 16);
>  	if (IS_ERR(tile->mem.kernel_bb_pool))
>  		err = PTR_ERR(tile->mem.kernel_bb_pool);
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 14/20] drm/xe/uc: Split xe_uc_fw_init
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 14/20] drm/xe/uc: Split xe_uc_fw_init Michał Winiarski
@ 2023-11-15 22:28   ` Matt Roper
  0 siblings, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 22:28 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:25PM +0100, Michał Winiarski wrote:
> The function does a driver specific "request firmware" step that
> includes validating the input, followed by wrapping the firmware binary
> into a buffer object. Split it into smaller parts.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_uc_fw.c | 82 +++++++++++++++++++++++++++--------
>  1 file changed, 63 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
> index 3032c4f148d48..df46751fb5959 100644
> --- a/drivers/gpu/drm/xe/xe_uc_fw.c
> +++ b/drivers/gpu/drm/xe/xe_uc_fw.c
> @@ -524,14 +524,11 @@ static int parse_headers(struct xe_uc_fw *uc_fw, const struct firmware *fw)
>  	return 0;
>  }
>  
> -int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
> +static int uc_fw_request(struct xe_uc_fw *uc_fw, const struct firmware **firmware_p)
>  {
>  	struct xe_device *xe = uc_fw_to_xe(uc_fw);
> -	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
> -	struct xe_tile *tile = gt_to_tile(gt);
>  	struct device *dev = xe->drm.dev;
>  	const struct firmware *fw = NULL;
> -	struct xe_bo *obj;
>  	int err;
>  
>  	/*
> @@ -575,10 +572,41 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
>  	if (err)
>  		goto fail;
>  
> -	obj = xe_bo_create_from_data(xe, tile, fw->data, fw->size,
> +	*firmware_p = fw;
> +
> +	return 0;
> +
> +fail:
> +	xe_uc_fw_change_status(uc_fw, err == -ENOENT ?
> +			       XE_UC_FIRMWARE_MISSING :
> +			       XE_UC_FIRMWARE_ERROR);
> +
> +	drm_notice(&xe->drm, "%s firmware %s: fetch failed with error %d\n",
> +		   xe_uc_fw_type_repr(uc_fw->type), uc_fw->path, err);
> +	drm_info(&xe->drm, "%s firmware(s) can be downloaded from %s\n",
> +		 xe_uc_fw_type_repr(uc_fw->type), XE_UC_FIRMWARE_URL);
> +
> +	release_firmware(fw);		/* OK even if fw is NULL */
> +
> +	return err;
> +}
> +
> +static void uc_fw_release(const struct firmware *fw)
> +{
> +	release_firmware(fw);
> +}
> +
> +static int uc_fw_copy(struct xe_uc_fw *uc_fw, const void *data, size_t size, u32 flags)
> +{
> +	struct xe_device *xe = uc_fw_to_xe(uc_fw);
> +	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
> +	struct xe_tile *tile = gt_to_tile(gt);
> +	struct xe_bo *obj;
> +	int err;
> +
> +	obj = xe_bo_create_from_data(xe, tile, data, size,
>  				     ttm_bo_type_kernel,
> -				     XE_BO_CREATE_VRAM_IF_DGFX(tile) |
> -				     XE_BO_CREATE_GGTT_BIT);
> +				     flags);
>  	if (IS_ERR(obj)) {
>  		drm_notice(&xe->drm, "%s firmware %s: failed to create / populate bo",
>  			   xe_uc_fw_type_repr(uc_fw->type), uc_fw->path);
> @@ -587,28 +615,44 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
>  	}
>  
>  	uc_fw->bo = obj;
> -	uc_fw->size = fw->size;
> -	xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_AVAILABLE);
> +	uc_fw->size = size;
>  
> -	release_firmware(fw);
> +	xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_AVAILABLE);
>  
>  	err = drmm_add_action_or_reset(&xe->drm, uc_fw_fini, uc_fw);
>  	if (err)
> -		return err;
> +		goto fail;
>  
>  	return 0;
>  
>  fail:
> -	xe_uc_fw_change_status(uc_fw, err == -ENOENT ?
> -			       XE_UC_FIRMWARE_MISSING :
> -			       XE_UC_FIRMWARE_ERROR);
> -
> -	drm_notice(&xe->drm, "%s firmware %s: fetch failed with error %d\n",
> +	xe_uc_fw_change_status(uc_fw, XE_UC_FIRMWARE_ERROR);
> +	drm_notice(&xe->drm, "%s firmware %s: copy failed with error %d\n",
>  		   xe_uc_fw_type_repr(uc_fw->type), uc_fw->path, err);
> -	drm_info(&xe->drm, "%s firmware(s) can be downloaded from %s\n",
> -		 xe_uc_fw_type_repr(uc_fw->type), XE_UC_FIRMWARE_URL);
>  
> -	release_firmware(fw);		/* OK even if fw is NULL */
> +	return err;
> +}
> +
> +int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
> +{
> +	const struct firmware *fw = NULL;
> +	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
> +	struct xe_tile *tile = gt_to_tile(gt);
> +	int err;
> +
> +	err = uc_fw_request(uc_fw, &fw);
> +	if (err)
> +		return err;
> +
> +	/* no error and no firmware means nothing to copy */
> +	if (!fw)
> +		return 0;
> +
> +	err = uc_fw_copy(uc_fw, fw->data, fw->size,
> +			 XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
> +
> +	uc_fw_release(fw);
> +
>  	return err;
>  }
>  
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO Michał Winiarski
@ 2023-11-15 22:34   ` Matt Roper
  2023-11-20 20:04   ` Lucas De Marchi
  1 sibling, 0 replies; 56+ messages in thread
From: Matt Roper @ 2023-11-15 22:34 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:26PM +0100, Michał Winiarski wrote:
> The firmware loading for GuC is about to be moved, and will happen much
> earlier in the probe process, when local-memory is not yet available.
> While this has the potential to make the firmware loading process
> slower, this is only happening during probe and full device reset.
> Since both are not hot-paths - store all UC-like firmware in system
> memory.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

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

> ---
>  drivers/gpu/drm/xe/xe_uc_fw.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
> index df46751fb5959..b04dd7d034d83 100644
> --- a/drivers/gpu/drm/xe/xe_uc_fw.c
> +++ b/drivers/gpu/drm/xe/xe_uc_fw.c
> @@ -636,8 +636,6 @@ static int uc_fw_copy(struct xe_uc_fw *uc_fw, const void *data, size_t size, u32
>  int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
>  {
>  	const struct firmware *fw = NULL;
> -	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
> -	struct xe_tile *tile = gt_to_tile(gt);
>  	int err;
>  
>  	err = uc_fw_request(uc_fw, &fw);
> @@ -649,7 +647,7 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
>  		return 0;
>  
>  	err = uc_fw_copy(uc_fw, fw->data, fw->size,
> -			 XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
> +			 XE_BO_CREATE_SYSTEM_BIT | XE_BO_CREATE_GGTT_BIT);
>  
>  	uc_fw_release(fw);
>  
> -- 
> 2.42.1
> 

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

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

* Re: [Intel-xe] [PATCH v3 16/20] drm/xe/uc: Extract xe_uc_sanitize_reset
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 16/20] drm/xe/uc: Extract xe_uc_sanitize_reset Michał Winiarski
@ 2023-11-16 12:56   ` Matthew Brost
  0 siblings, 0 replies; 56+ messages in thread
From: Matthew Brost @ 2023-11-16 12:56 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:27PM +0100, Michał Winiarski wrote:
> Earlier GuC load will require more fine-grained control over reset.
> Extract it outside of xe_uc_init_hw.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_gt.c |  4 ++++
>  drivers/gpu/drm/xe/xe_uc.c | 14 ++++++++------
>  drivers/gpu/drm/xe/xe_uc.h |  2 +-
>  3 files changed, 13 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index c8e2689873c37..d0962e0cc27e9 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -537,6 +537,10 @@ static int do_gt_restart(struct xe_gt *gt)
>  	for_each_hw_engine(hwe, gt, id)
>  		xe_hw_engine_enable_ring(hwe);
>  
> +	err = xe_uc_sanitize_reset(&gt->uc);
> +	if (err)
> +		return err;
> +
>  	err = xe_uc_init_hw(&gt->uc);
>  	if (err)
>  		return err;
> diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
> index 784f53c5f282f..13e76e6805ca1 100644
> --- a/drivers/gpu/drm/xe/xe_uc.c
> +++ b/drivers/gpu/drm/xe/xe_uc.c
> @@ -69,10 +69,16 @@ int xe_uc_init(struct xe_uc *uc)
>   */
>  int xe_uc_init_post_hwconfig(struct xe_uc *uc)
>  {
> +	int ret;
> +
>  	/* GuC submission not enabled, nothing to do */
>  	if (!xe_device_uc_enabled(uc_to_xe(uc)))
>  		return 0;
>  
> +	ret = xe_uc_sanitize_reset(uc);
> +	if (ret)
> +		return ret;
> +
>  	return xe_guc_init_post_hwconfig(&uc->guc);
>  }
>  
> @@ -90,13 +96,13 @@ static int uc_reset(struct xe_uc *uc)
>  	return 0;
>  }
>  
> -void xe_uc_sanitize(struct xe_uc *uc)
> +static void xe_uc_sanitize(struct xe_uc *uc)
>  {
>  	xe_huc_sanitize(&uc->huc);
>  	xe_guc_sanitize(&uc->guc);
>  }
>  
> -static int xe_uc_sanitize_reset(struct xe_uc *uc)
> +int xe_uc_sanitize_reset(struct xe_uc *uc)
>  {
>  	xe_uc_sanitize(uc);
>  
> @@ -136,10 +142,6 @@ int xe_uc_init_hw(struct xe_uc *uc)
>  	if (!xe_device_uc_enabled(uc_to_xe(uc)))
>  		return 0;
>  
> -	ret = xe_uc_sanitize_reset(uc);
> -	if (ret)
> -		return ret;
> -
>  	ret = xe_huc_upload(&uc->huc);
>  	if (ret)
>  		return ret;
> diff --git a/drivers/gpu/drm/xe/xe_uc.h b/drivers/gpu/drm/xe/xe_uc.h
> index 4109ae7028af5..5d5110c0c834b 100644
> --- a/drivers/gpu/drm/xe/xe_uc.h
> +++ b/drivers/gpu/drm/xe/xe_uc.h
> @@ -19,6 +19,6 @@ void xe_uc_stop_prepare(struct xe_uc *uc);
>  int xe_uc_stop(struct xe_uc *uc);
>  int xe_uc_start(struct xe_uc *uc);
>  int xe_uc_suspend(struct xe_uc *uc);
> -void xe_uc_sanitize(struct xe_uc *uc);
> +int xe_uc_sanitize_reset(struct xe_uc *uc);
>  
>  #endif
> -- 
> 2.42.1
> 

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

* Re: [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig" Michał Winiarski
@ 2023-11-20 13:25   ` Matthew Brost
  2023-11-20 20:09   ` Lucas De Marchi
  1 sibling, 0 replies; 56+ messages in thread
From: Matthew Brost @ 2023-11-20 13:25 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:28PM +0100, Michał Winiarski wrote:
> Move params that are not used for initial "hwconfig" load to
> "post-hwconfig" phase.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_guc.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 84f0b5488783b..d1181ddf4bdae 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -192,6 +192,26 @@ static void guc_init_params(struct xe_guc *guc)
>  	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
>  	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
>  
> +	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
> +	params[GUC_CTL_FEATURE] = 0;
> +	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
> +	params[GUC_CTL_ADS] = guc_ctl_ads_flags(guc);
> +	params[GUC_CTL_WA] = 0;
> +	params[GUC_CTL_DEVID] = guc_ctl_devid(guc);
> +
> +	for (i = 0; i < GUC_CTL_MAX_DWORDS; i++)
> +		drm_dbg(&xe->drm, "GuC param[%2d] = 0x%08x\n", i, params[i]);
> +}
> +
> +static void guc_init_params_post_hwconfig(struct xe_guc *guc)
> +{
> +	struct xe_device *xe = guc_to_xe(guc);
> +	u32 *params = guc->params;
> +	int i;
> +
> +	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
> +	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
> +
>  	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
>  	params[GUC_CTL_FEATURE] = guc_ctl_feature_flags(guc);
>  	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
> @@ -289,6 +309,8 @@ int xe_guc_init(struct xe_guc *guc)
>   */
>  int xe_guc_init_post_hwconfig(struct xe_guc *guc)
>  {
> +	guc_init_params_post_hwconfig(guc);
> +
>  	return xe_guc_ads_init_post_hwconfig(&guc->ads);
>  }
>  
> -- 
> 2.42.1
> 

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

* Re: [Intel-xe] [PATCH v3 19/20] drm/xe/guc: Move GuC power control init to "post-hwconfig"
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 19/20] drm/xe/guc: Move GuC power control init to "post-hwconfig" Michał Winiarski
@ 2023-11-20 13:30   ` Matthew Brost
  0 siblings, 0 replies; 56+ messages in thread
From: Matthew Brost @ 2023-11-20 13:30 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Tue, Nov 14, 2023 at 02:02:30PM +0100, Michał Winiarski wrote:
> SLPC is not used at "hwconfig" stage. Move the initialization of data
> structures used for SLPC to a later point in probe.
> Also - move the xe_guc_pc_init_early to happen just prior to initial
> "hwconfig" load.
> 
> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>

Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_gt.c  |  3 ---
>  drivers/gpu/drm/xe/xe_guc.c | 25 +++++++++++++++++++------
>  2 files changed, 19 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> index d0962e0cc27e9..73665e4e66f22 100644
> --- a/drivers/gpu/drm/xe/xe_gt.c
> +++ b/drivers/gpu/drm/xe/xe_gt.c
> @@ -348,9 +348,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
>  	if (err)
>  		goto err_force_wake;
>  
> -	/* Raise GT freq to speed up HuC/GuC load */
> -	xe_guc_pc_init_early(&gt->uc.guc.pc);
> -
>  	err = xe_uc_init_hwconfig(&gt->uc);
>  	if (err)
>  		goto err_force_wake;
> diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> index 3f430d5bc1051..e04b04be32b7d 100644
> --- a/drivers/gpu/drm/xe/xe_guc.c
> +++ b/drivers/gpu/drm/xe/xe_guc.c
> @@ -246,11 +246,19 @@ static void guc_fini(struct drm_device *drm, void *arg)
>  	struct xe_guc *guc = arg;
>  
>  	xe_force_wake_get(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
> -	xe_guc_pc_fini(&guc->pc);
>  	xe_uc_fini_hw(&guc_to_gt(guc)->uc);
>  	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
>  }
>  
> +static void guc_fini_post_hwconfig(struct drm_device *drm, void *arg)
> +{
> +	struct xe_guc *guc = arg;
> +
> +	xe_force_wake_get(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
> +	xe_guc_pc_fini(&guc->pc);
> +	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
> +}
> +
>  static int __guc_bo_reinit(struct xe_guc *guc, struct xe_bo **src)
>  {
>  	struct xe_tile *tile = gt_to_tile(guc_to_gt(guc));
> @@ -316,11 +324,7 @@ int xe_guc_init(struct xe_guc *guc)
>  	if (ret)
>  		goto out;
>  
> -	ret = xe_guc_pc_init(&guc->pc);
> -	if (ret)
> -		goto out;
> -
> -	ret = drmm_add_action_or_reset(&gt_to_xe(gt)->drm, guc_fini, guc);
> +	ret = drmm_add_action_or_reset(&xe->drm, guc_fini, guc);
>  	if (ret)
>  		goto out;
>  
> @@ -348,6 +352,7 @@ int xe_guc_init(struct xe_guc *guc)
>   */
>  int xe_guc_init_post_hwconfig(struct xe_guc *guc)
>  {
> +	struct xe_gt *gt = guc_to_gt(guc);
>  	int ret;
>  
>  	ret = xe_guc_realloc_post_hwconfig(guc);
> @@ -356,6 +361,11 @@ int xe_guc_init_post_hwconfig(struct xe_guc *guc)
>  
>  	guc_init_params_post_hwconfig(guc);
>  
> +	ret = xe_guc_pc_init(&guc->pc);
> +	if (ret)
> +		return ret;
> +	ret = drmm_add_action_or_reset(&gt_to_xe(gt)->drm, guc_fini_post_hwconfig, guc);
> +
>  	return xe_guc_ads_init_post_hwconfig(&guc->ads);
>  }
>  
> @@ -566,6 +576,9 @@ int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
>  
>  	xe_guc_ads_populate_minimal(&guc->ads);
>  
> +	/* Raise GT freq to speed up HuC/GuC load */
> +	xe_guc_pc_init_early(&guc->pc);
> +
>  	ret = __xe_guc_upload(guc);
>  	if (ret)
>  		return ret;
> -- 
> 2.42.1
> 

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

* Re: [Intel-xe] [PATCH v3 06/20] drm/xe: Split xe_info_init
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 06/20] drm/xe: Split xe_info_init Michał Winiarski
@ 2023-11-20 19:47   ` Lucas De Marchi
  0 siblings, 0 replies; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-20 19:47 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, intel-xe

On Tue, Nov 14, 2023 at 02:02:17PM +0100, Michał Winiarski wrote:
>Parts of xe_info_init are only dealing with processing driver_data.
>Extract it into xe_info_init_early to be able to use it earlier duing
>probe.
>
>Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>Reviewed-by: Matthew Brost <matthew.brost@intel.com>


Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

Lucas De Marchi

>---
>v1 -> v2:
>- Add comment to "early" variant (Lucas)
>- Move xe_info_init_early usage in kunit to correct patch (Matt Brost)
>
> drivers/gpu/drm/xe/tests/xe_pci.c |  1 +
> drivers/gpu/drm/xe/xe_pci.c       | 41 ++++++++++++++++++++++---------
> 2 files changed, 30 insertions(+), 12 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/tests/xe_pci.c b/drivers/gpu/drm/xe/tests/xe_pci.c
>index a40879da2fbe1..733df9a270db2 100644
>--- a/drivers/gpu/drm/xe/tests/xe_pci.c
>+++ b/drivers/gpu/drm/xe/tests/xe_pci.c
>@@ -143,6 +143,7 @@ int xe_pci_fake_device_init(struct xe_device *xe, enum xe_platform platform,
> 		return -ENODEV;
>
> done:
>+	xe_info_init_early(xe, desc, subplatform_desc);
> 	xe_info_init(xe, desc, subplatform_desc);
>
> 	return 0;
>diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>index e6b59c4b02bdc..d603093f32274 100644
>--- a/drivers/gpu/drm/xe/xe_pci.c
>+++ b/drivers/gpu/drm/xe/xe_pci.c
>@@ -532,7 +532,34 @@ static void handle_gmdid(struct xe_device *xe,
> 	}
> }
>
>+/*
>+ * Initialize device info content that only depends on static driver_data passed to the driver at
>+ * probe time from PCI ID table.
>+ */
>+static void xe_info_init_early(struct xe_device *xe,
>+			       const struct xe_device_desc *desc,
>+			       const struct xe_subplatform_desc *subplatform_desc)
>+{
>+	xe->info.platform = desc->platform;
>+	xe->info.subplatform = subplatform_desc ?
>+		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
>+
>+	xe->info.is_dgfx = desc->is_dgfx;
>+	xe->info.has_heci_gscfi = desc->has_heci_gscfi;
>+	xe->info.has_llc = desc->has_llc;
>+	xe->info.bypass_mtcfg = desc->bypass_mtcfg;
>+	xe->info.supports_mmio_ext = desc->supports_mmio_ext;
>+
>+	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
>+				  enable_display &&
>+				  desc->has_display;
>+}
>
>+/*
>+ * Initialize device info content that does require knowledge about graphics / media IP version.
>+ * Make sure that GT / tile structures allocated by the driver match the data present in device
>+ * info.
>+ */
> static int xe_info_init(struct xe_device *xe,
> 			const struct xe_device_desc *desc,
> 			const struct xe_subplatform_desc *subplatform_desc)
>@@ -544,10 +571,6 @@ static int xe_info_init(struct xe_device *xe,
> 	struct xe_gt *gt;
> 	u8 id;
>
>-	xe->info.platform = desc->platform;
>-	xe->info.subplatform = subplatform_desc ?
>-		subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
>-
> 	/*
> 	 * If this platform supports GMD_ID, we'll detect the proper IP
> 	 * descriptor to use from hardware registers. desc->graphics will only
>@@ -573,13 +596,8 @@ static int xe_info_init(struct xe_device *xe,
> 	if (!graphics_desc)
> 		return -ENODEV;
>
>-	xe->info.is_dgfx = desc->is_dgfx;
>-	xe->info.has_heci_gscfi = desc->has_heci_gscfi;
> 	xe->info.graphics_name = graphics_desc->name;
> 	xe->info.media_name = media_desc ? media_desc->name : "none";
>-	xe->info.has_llc = desc->has_llc;
>-	xe->info.bypass_mtcfg = desc->bypass_mtcfg;
>-	xe->info.supports_mmio_ext = desc->supports_mmio_ext;
> 	xe->info.tile_mmio_ext_size = graphics_desc->tile_mmio_ext_size;
>
> 	xe->info.dma_mask_size = graphics_desc->dma_mask_size;
>@@ -591,9 +609,6 @@ static int xe_info_init(struct xe_device *xe,
> 	xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
> 	xe->info.has_range_tlb_invalidation = graphics_desc->has_range_tlb_invalidation;
>
>-	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
>-				  enable_display &&
>-				  desc->has_display;
> 	/*
> 	 * All platforms have at least one primary GT.  Any platform with media
> 	 * version 13 or higher has an additional dedicated media GT.  And
>@@ -712,6 +727,8 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> 	pci_set_master(pdev);
> 	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
>
>+	xe_info_init_early(xe, desc, subplatform_desc);
>+
> 	err = xe_info_init(xe, desc, subplatform_desc);
> 	if (err)
> 		return err;
>-- 
>2.42.1
>

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

* Re: [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID
  2023-11-15 21:51   ` Matt Roper
@ 2023-11-20 19:57     ` Lucas De Marchi
  2023-11-21 13:27       ` Michał Winiarski
  0 siblings, 1 reply; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-20 19:57 UTC (permalink / raw)
  To: Matt Roper; +Cc: Michał Winiarski, intel-xe

On Wed, Nov 15, 2023 at 01:51:00PM -0800, Matt Roper wrote:
>On Tue, Nov 14, 2023 at 02:02:21PM +0100, Michał Winiarski wrote:
>> Now that MMIO init got moved to device early, we can use regular
>> xe_mmio_read helpers to get to GMD_ID register.
>>
>> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>> ---
>>  drivers/gpu/drm/xe/regs/xe_gt_regs.h |  1 +
>>  drivers/gpu/drm/xe/xe_pci.c          | 35 ++++++++--------------------
>>  2 files changed, 11 insertions(+), 25 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> index cc27fe8fc3633..6b195115564ce 100644
>> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> @@ -38,6 +38,7 @@
>>  #define   GMD_ID_ARCH_MASK			REG_GENMASK(31, 22)
>>  #define   GMD_ID_RELEASE_MASK			REG_GENMASK(21, 14)
>>  #define   GMD_ID_REVID				REG_GENMASK(5, 0)
>> +#define MEDIA_GMD_ID				XE_REG(GMD_ID.addr + MEDIA_GT_GSI_OFFSET)
>>
>>  #define FORCEWAKE_ACK_GSC			XE_REG(0xdf8)
>>  #define FORCEWAKE_ACK_GT_MTL			XE_REG(0xdfc)
>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>> index a1026b7ee4727..a6c08577b01d2 100644
>> --- a/drivers/gpu/drm/xe/xe_pci.c
>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>> @@ -21,6 +21,7 @@
>>  #include "xe_drv.h"
>>  #include "xe_gt.h"
>>  #include "xe_macros.h"
>> +#include "xe_mmio.h"
>>  #include "xe_module.h"
>>  #include "xe_pci_types.h"
>>  #include "xe_pm.h"
>> @@ -441,29 +442,6 @@ find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
>>  	return NULL;
>>  }
>>
>> -static void peek_gmdid(struct xe_device *xe, u32 gmdid_offset, u32 *ver, u32 *revid)
>> -{
>> -	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>> -	void __iomem *map = pci_iomap_range(pdev, 0, gmdid_offset, sizeof(u32));
>> -	u32 val;
>> -
>> -	if (!map) {
>> -		drm_err(&xe->drm, "Failed to read GMD_ID (%#x) from PCI BAR.\n",
>> -			gmdid_offset);
>> -		*ver = 0;
>> -		*revid = 0;
>> -
>> -		return;
>> -	}
>> -
>> -	val = ioread32(map);
>> -	pci_iounmap(pdev, map);
>> -
>> -	*ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 +
>> -		REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
>> -	*revid = REG_FIELD_GET(GMD_ID_REVID, val);
>> -}
>> -
>>  /*
>>   * Pre-GMD_ID platform: device descriptor already points to the appropriate
>>   * graphics descriptor. Simply forward the description and calculate the version
>> @@ -495,9 +473,14 @@ static void handle_gmdid(struct xe_device *xe,
>>  			 u32 *graphics_revid,
>>  			 u32 *media_revid)
>>  {
>> +	struct xe_gt *gt = xe_root_mmio_gt(xe);
>> +	u32 val;
>>  	u32 ver;
>>
>> -	peek_gmdid(xe, GMD_ID.addr, &ver, graphics_revid);
>> +	val = xe_mmio_read32(gt, GMD_ID);
>> +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
>> +	*graphics_revid = REG_FIELD_GET(GMD_ID_REVID, val);
>> +
>>  	for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
>>  		if (ver == graphics_ip_map[i].ver) {
>>  			xe->info.graphics_verx100 = ver;
>> @@ -512,7 +495,9 @@ static void handle_gmdid(struct xe_device *xe,
>>  			ver / 100, ver % 100);
>>  	}
>>
>> -	peek_gmdid(xe, GMD_ID.addr + 0x380000, &ver, media_revid);
>> +	val = xe_mmio_read32(gt, MEDIA_GMD_ID);
>
>It's unfortunate that we have to read the GMD_ID register through the
>wrong GT pointer, but I don't see a good way to avoid it.  Maybe rather
>than defining MEDIA_GMD_ID with the built-in offset (which people may
>try to copy/paste for other register definitions without realizing this
>is a one-time special case), we should just do something like
>
>        struct xe_reg media_gmdid_reg = GMD_ID;
>
>        /*
>         * Since we haven't initialized the media GT yet, we need to
>         * read media's GMD_ID register through the primary GT's
>         * mmio; that means we also need to explicitly add in the
>         * media GSI offset.
>         */
>         media_gmdid_reg.addr += MEDIA_GT_GSI_OFFSET;
>         val = xe_mmio_read32(gt, media_gmdid_reg);


since we already have a new use case for having a peek_gmdid
(https://patchwork.freedesktop.org/series/126609/), maybe rename the
function and leave this logic adding MEDIA_GT_GSI_OFFSET inside that
single function?

with this patch getting a r-b, we already have all the pre-requisites
reviewed so I'd be happy to rebase my series on top.

Lucas De Marchi

>
>
>Matt
>
>> +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
>> +	*media_revid = REG_FIELD_GET(GMD_ID_REVID, val);
>>
>>  	/* Media may legitimately be fused off / not present */
>>  	if (ver == 0)
>> --
>> 2.42.1
>>
>
>-- 
>Matt Roper
>Graphics Software Engineer
>Linux GPU Platform Enablement
>Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO Michał Winiarski
  2023-11-15 22:34   ` Matt Roper
@ 2023-11-20 20:04   ` Lucas De Marchi
  2023-11-20 21:34     ` Daniele Ceraolo Spurio
  1 sibling, 1 reply; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-20 20:04 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, intel-xe

On Tue, Nov 14, 2023 at 02:02:26PM +0100, Michał Winiarski wrote:
>The firmware loading for GuC is about to be moved, and will happen much
>earlier in the probe process, when local-memory is not yet available.
>While this has the potential to make the firmware loading process
>slower, this is only happening during probe and full device reset.
>Since both are not hot-paths - store all UC-like firmware in system
>memory.

is this really possible? AFAIR we needed it to be in vram for DG2.
Or maybe it was a WA that is not needed anymore?

+Daniele. Do you remember any limitation here?

Lucas De Marchi

>
>Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>---
> drivers/gpu/drm/xe/xe_uc_fw.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c b/drivers/gpu/drm/xe/xe_uc_fw.c
>index df46751fb5959..b04dd7d034d83 100644
>--- a/drivers/gpu/drm/xe/xe_uc_fw.c
>+++ b/drivers/gpu/drm/xe/xe_uc_fw.c
>@@ -636,8 +636,6 @@ static int uc_fw_copy(struct xe_uc_fw *uc_fw, const void *data, size_t size, u32
> int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
> {
> 	const struct firmware *fw = NULL;
>-	struct xe_gt *gt = uc_fw_to_gt(uc_fw);
>-	struct xe_tile *tile = gt_to_tile(gt);
> 	int err;
>
> 	err = uc_fw_request(uc_fw, &fw);
>@@ -649,7 +647,7 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
> 		return 0;
>
> 	err = uc_fw_copy(uc_fw, fw->data, fw->size,
>-			 XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
>+			 XE_BO_CREATE_SYSTEM_BIT | XE_BO_CREATE_GGTT_BIT);
>
> 	uc_fw_release(fw);
>
>-- 
>2.42.1
>

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

* Re: [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig" Michał Winiarski
  2023-11-20 13:25   ` Matthew Brost
@ 2023-11-20 20:09   ` Lucas De Marchi
  2023-11-21 13:36     ` Michał Winiarski
  1 sibling, 1 reply; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-20 20:09 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, intel-xe

On Tue, Nov 14, 2023 at 02:02:28PM +0100, Michał Winiarski wrote:
>Move params that are not used for initial "hwconfig" load to
>"post-hwconfig" phase.
>
>Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>


Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

... but I thought we'd remove the double guc load. Did we change
direction?

Lucas De Marchi

>---
> drivers/gpu/drm/xe/xe_guc.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
>diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
>index 84f0b5488783b..d1181ddf4bdae 100644
>--- a/drivers/gpu/drm/xe/xe_guc.c
>+++ b/drivers/gpu/drm/xe/xe_guc.c
>@@ -192,6 +192,26 @@ static void guc_init_params(struct xe_guc *guc)
> 	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
> 	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
>
>+	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
>+	params[GUC_CTL_FEATURE] = 0;
>+	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
>+	params[GUC_CTL_ADS] = guc_ctl_ads_flags(guc);
>+	params[GUC_CTL_WA] = 0;
>+	params[GUC_CTL_DEVID] = guc_ctl_devid(guc);
>+
>+	for (i = 0; i < GUC_CTL_MAX_DWORDS; i++)
>+		drm_dbg(&xe->drm, "GuC param[%2d] = 0x%08x\n", i, params[i]);
>+}
>+
>+static void guc_init_params_post_hwconfig(struct xe_guc *guc)
>+{
>+	struct xe_device *xe = guc_to_xe(guc);
>+	u32 *params = guc->params;
>+	int i;
>+
>+	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
>+	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
>+
> 	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
> 	params[GUC_CTL_FEATURE] = guc_ctl_feature_flags(guc);
> 	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
>@@ -289,6 +309,8 @@ int xe_guc_init(struct xe_guc *guc)
>  */
> int xe_guc_init_post_hwconfig(struct xe_guc *guc)
> {
>+	guc_init_params_post_hwconfig(guc);
>+
> 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
> }
>
>-- 
>2.42.1
>

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

* Re: [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load
  2023-11-14 13:02 ` [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load Michał Winiarski
@ 2023-11-20 20:20   ` Lucas De Marchi
  2023-11-21 13:42     ` Michał Winiarski
  0 siblings, 1 reply; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-20 20:20 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, intel-xe

On Tue, Nov 14, 2023 at 02:02:29PM +0100, Michał Winiarski wrote:
>GuC load will need to happen at an earlier point in probe, where local
>memory is not yet available. Use system memory for GuC data structures
>used for initial "hwconfig" load, and realloc at a later,
>"post-hwconfig" load, when local memory is available.
>
>Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>---
> drivers/gpu/drm/xe/xe_guc.c     | 45 +++++++++++++++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_ads.c |  2 +-
> drivers/gpu/drm/xe/xe_guc_ct.c  |  2 +-
> drivers/gpu/drm/xe/xe_guc_log.c |  2 +-
> 4 files changed, 48 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
>index d1181ddf4bdae..3f430d5bc1051 100644
>--- a/drivers/gpu/drm/xe/xe_guc.c
>+++ b/drivers/gpu/drm/xe/xe_guc.c
>@@ -251,6 +251,45 @@ static void guc_fini(struct drm_device *drm, void *arg)
> 	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
> }
>
>+static int __guc_bo_reinit(struct xe_guc *guc, struct xe_bo **src)
>+{
>+	struct xe_tile *tile = gt_to_tile(guc_to_gt(guc));
>+	struct xe_device *xe = guc_to_xe(guc);
>+	struct xe_bo *bo;
>+
>+	bo = xe_bo_create_from_data(xe, tile, &(*src)->vmap.vaddr, (*src)->size, ttm_bo_type_kernel,

in general we should not access a iosys_map like that. Maybe add an
assert above this line:

	xe_assert(xe, !(*src)->vmap.is_iomem);

>+				    XE_BO_CREATE_VRAM_IF_DGFX(tile));

humn... maybe we are missing a XE_BO_CREATE_VRAM(tile)?

Lucas De Marchi

>+	if (IS_ERR(bo))
>+		return PTR_ERR(bo);
>+
>+	xchg(src, bo);
>+	xe_bo_unpin_map_no_vm(bo);
>+
>+	return 0;
>+}
>+
>+static int xe_guc_realloc_post_hwconfig(struct xe_guc *guc)
>+{
>+	int ret;
>+
>+	if (!IS_DGFX(guc_to_xe(guc)))
>+		return 0;
>+
>+	ret = __guc_bo_reinit(guc, &guc->log.bo);
>+	if (ret)
>+		return ret;
>+
>+	ret = __guc_bo_reinit(guc, &guc->ads.bo);
>+	if (ret)
>+		return ret;
>+
>+	ret = __guc_bo_reinit(guc, &guc->ct.bo);
>+	if (ret)
>+		return ret;
>+
>+	return 0;
>+}
>+
> int xe_guc_init(struct xe_guc *guc)
> {
> 	struct xe_device *xe = guc_to_xe(guc);
>@@ -309,6 +348,12 @@ int xe_guc_init(struct xe_guc *guc)
>  */
> int xe_guc_init_post_hwconfig(struct xe_guc *guc)
> {
>+	int ret;
>+
>+	ret = xe_guc_realloc_post_hwconfig(guc);
>+	if (ret)
>+		return ret;
>+
> 	guc_init_params_post_hwconfig(guc);
>
> 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
>diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
>index 88789826e7817..88514d09303d0 100644
>--- a/drivers/gpu/drm/xe/xe_guc_ads.c
>+++ b/drivers/gpu/drm/xe/xe_guc_ads.c
>@@ -282,7 +282,7 @@ int xe_guc_ads_init(struct xe_guc_ads *ads)
> 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ads_size(ads) +
> 				  MAX_GOLDEN_LRC_SIZE,
> 				  ttm_bo_type_kernel,
>-				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
>+				  XE_BO_CREATE_SYSTEM_BIT |
> 				  XE_BO_CREATE_GGTT_BIT);
> 	if (IS_ERR(bo))
> 		return PTR_ERR(bo);
>diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
>index a84e111bb36ad..8f190cc0e5527 100644
>--- a/drivers/gpu/drm/xe/xe_guc_ct.c
>+++ b/drivers/gpu/drm/xe/xe_guc_ct.c
>@@ -148,7 +148,7 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
>
> 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ct_size(),
> 				  ttm_bo_type_kernel,
>-				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
>+				  XE_BO_CREATE_SYSTEM_BIT |
> 				  XE_BO_CREATE_GGTT_BIT);
> 	if (IS_ERR(bo))
> 		return PTR_ERR(bo);
>diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
>index 45c60a9c631c3..6334311a56e63 100644
>--- a/drivers/gpu/drm/xe/xe_guc_log.c
>+++ b/drivers/gpu/drm/xe/xe_guc_log.c
>@@ -93,7 +93,7 @@ int xe_guc_log_init(struct xe_guc_log *log)
>
> 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_log_size(),
> 				  ttm_bo_type_kernel,
>-				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
>+				  XE_BO_CREATE_SYSTEM_BIT |
> 				  XE_BO_CREATE_GGTT_BIT);
> 	if (IS_ERR(bo))
> 		return PTR_ERR(bo);
>-- 
>2.42.1
>

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

* Re: [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO
  2023-11-20 20:04   ` Lucas De Marchi
@ 2023-11-20 21:34     ` Daniele Ceraolo Spurio
  0 siblings, 0 replies; 56+ messages in thread
From: Daniele Ceraolo Spurio @ 2023-11-20 21:34 UTC (permalink / raw)
  To: Lucas De Marchi, Michał Winiarski; +Cc: Matt Roper, intel-xe



On 11/20/2023 12:04 PM, Lucas De Marchi wrote:
> On Tue, Nov 14, 2023 at 02:02:26PM +0100, Michał Winiarski wrote:
>> The firmware loading for GuC is about to be moved, and will happen much
>> earlier in the probe process, when local-memory is not yet available.
>> While this has the potential to make the firmware loading process
>> slower, this is only happening during probe and full device reset.
>> Since both are not hot-paths - store all UC-like firmware in system
>> memory.
>
> is this really possible? AFAIR we needed it to be in vram for DG2.
> Or maybe it was a WA that is not needed anymore?
>
> +Daniele. Do you remember any limitation here?

It's a performance thing. Having the objects in vram makes them faster 
to transfer to WOPCM, which is relevant in scenarios where we need to 
reload the GuC, of which I think the most critical is the S3 exit. I 
don't know if we ever took actual measurements on how much faster 
loading from vram actually is, so no idea if the performance impact is 
acceptable or not.

Daniele

>
> Lucas De Marchi
>
>>
>> Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_uc_fw.c | 4 +---
>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_uc_fw.c 
>> b/drivers/gpu/drm/xe/xe_uc_fw.c
>> index df46751fb5959..b04dd7d034d83 100644
>> --- a/drivers/gpu/drm/xe/xe_uc_fw.c
>> +++ b/drivers/gpu/drm/xe/xe_uc_fw.c
>> @@ -636,8 +636,6 @@ static int uc_fw_copy(struct xe_uc_fw *uc_fw, 
>> const void *data, size_t size, u32
>> int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
>> {
>>     const struct firmware *fw = NULL;
>> -    struct xe_gt *gt = uc_fw_to_gt(uc_fw);
>> -    struct xe_tile *tile = gt_to_tile(gt);
>>     int err;
>>
>>     err = uc_fw_request(uc_fw, &fw);
>> @@ -649,7 +647,7 @@ int xe_uc_fw_init(struct xe_uc_fw *uc_fw)
>>         return 0;
>>
>>     err = uc_fw_copy(uc_fw, fw->data, fw->size,
>> -             XE_BO_CREATE_VRAM_IF_DGFX(tile) | XE_BO_CREATE_GGTT_BIT);
>> +             XE_BO_CREATE_SYSTEM_BIT | XE_BO_CREATE_GGTT_BIT);
>>
>>     uc_fw_release(fw);
>>
>> -- 
>> 2.42.1
>>


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

* Re: [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device
  2023-11-15 20:47   ` Matt Roper
@ 2023-11-21 12:45     ` Michał Winiarski
  0 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-21 12:45 UTC (permalink / raw)
  To: Matt Roper; +Cc: Lucas De Marchi, intel-xe

On Wed, Nov 15, 2023 at 12:47:00PM -0800, Matt Roper wrote:
> On Tue, Nov 14, 2023 at 02:02:13PM +0100, Michał Winiarski wrote:
> > Xe uses devres for most of its driver-lifetime resources, use it for pci
> > device as well.
> > 
> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> > ---
> > v2 -> v3:
> > - Mark xe_pci_clear_master as static to fix W=1 build warning (CI)
> > 
> >  drivers/gpu/drm/xe/xe_pci.c | 26 ++++++++++++++------------
> >  1 file changed, 14 insertions(+), 12 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> > index de986aaee3bb2..e6b59c4b02bdc 100644
> > --- a/drivers/gpu/drm/xe/xe_pci.c
> > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > @@ -663,6 +663,11 @@ static void xe_pci_remove(struct pci_dev *pdev)
> >  	pci_set_drvdata(pdev, NULL);
> >  }
> >  
> > +static void xe_pci_clear_master(void *pdev)
> > +{
> > +	pci_clear_master(pdev);
> > +}
> > +
> >  static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> >  {
> >  	const struct xe_device_desc *desc = (const void *)ent->driver_data;
> > @@ -691,23 +696,25 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> >  	if (xe_display_driver_probe_defer(pdev))
> >  		return -EPROBE_DEFER;
> >  
> > +	err = pcim_enable_device(pdev);
> > +	if (err)
> > +		return err;
> > +
> >  	xe = xe_device_create(pdev, ent);
> >  	if (IS_ERR(xe))
> >  		return PTR_ERR(xe);
> >  
> > +	pci_set_drvdata(pdev, xe);
> > +
> >  	xe_pm_assert_unbounded_bridge(xe);
> >  	subplatform_desc = find_subplatform(xe, desc);
> >  
> > -	pci_set_drvdata(pdev, xe);
> > -	err = pci_enable_device(pdev);
> > -	if (err)
> > -		return err;
> > -
> >  	pci_set_master(pdev);
> > +	devm_add_action(&pdev->dev, xe_pci_clear_master, pdev);
> 
> Is it necessary to do this explicitly?  I think this already happens in
> pci_disable_device -> do_pci_disable_device, right?  I don't see any
> other drivers adding an explicit managed action to do it either.

You're right - it can be removed.

Thanks,
-Michał

> 
> 
> Matt
> 
> >  
> >  	err = xe_info_init(xe, desc, subplatform_desc);
> >  	if (err)
> > -		goto err_pci_disable;
> > +		return err;
> >  
> >  	xe_display_probe(xe);
> >  
> > @@ -734,16 +741,11 @@ static int xe_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> >  
> >  	err = xe_device_probe(xe);
> >  	if (err)
> > -		goto err_pci_disable;
> > +		return err;
> >  
> >  	xe_pm_init(xe);
> >  
> >  	return 0;
> > -
> > -err_pci_disable:
> > -	pci_disable_device(pdev);
> > -
> > -	return err;
> >  }
> >  
> >  static void xe_pci_shutdown(struct pci_dev *pdev)
> > -- 
> > 2.42.1
> > 
> 
> -- 
> Matt Roper
> Graphics Software Engineer
> Linux GPU Platform Enablement
> Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID
  2023-11-20 19:57     ` Lucas De Marchi
@ 2023-11-21 13:27       ` Michał Winiarski
  2023-11-21 16:54         ` Lucas De Marchi
  0 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-21 13:27 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: Matt Roper, intel-xe

On Mon, Nov 20, 2023 at 01:57:42PM -0600, Lucas De Marchi wrote:
> On Wed, Nov 15, 2023 at 01:51:00PM -0800, Matt Roper wrote:
> > On Tue, Nov 14, 2023 at 02:02:21PM +0100, Michał Winiarski wrote:
> > > Now that MMIO init got moved to device early, we can use regular
> > > xe_mmio_read helpers to get to GMD_ID register.
> > > 
> > > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> > > ---
> > >  drivers/gpu/drm/xe/regs/xe_gt_regs.h |  1 +
> > >  drivers/gpu/drm/xe/xe_pci.c          | 35 ++++++++--------------------
> > >  2 files changed, 11 insertions(+), 25 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> > > index cc27fe8fc3633..6b195115564ce 100644
> > > --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> > > +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> > > @@ -38,6 +38,7 @@
> > >  #define   GMD_ID_ARCH_MASK			REG_GENMASK(31, 22)
> > >  #define   GMD_ID_RELEASE_MASK			REG_GENMASK(21, 14)
> > >  #define   GMD_ID_REVID				REG_GENMASK(5, 0)
> > > +#define MEDIA_GMD_ID				XE_REG(GMD_ID.addr + MEDIA_GT_GSI_OFFSET)
> > > 
> > >  #define FORCEWAKE_ACK_GSC			XE_REG(0xdf8)
> > >  #define FORCEWAKE_ACK_GT_MTL			XE_REG(0xdfc)
> > > diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> > > index a1026b7ee4727..a6c08577b01d2 100644
> > > --- a/drivers/gpu/drm/xe/xe_pci.c
> > > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > > @@ -21,6 +21,7 @@
> > >  #include "xe_drv.h"
> > >  #include "xe_gt.h"
> > >  #include "xe_macros.h"
> > > +#include "xe_mmio.h"
> > >  #include "xe_module.h"
> > >  #include "xe_pci_types.h"
> > >  #include "xe_pm.h"
> > > @@ -441,29 +442,6 @@ find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
> > >  	return NULL;
> > >  }
> > > 
> > > -static void peek_gmdid(struct xe_device *xe, u32 gmdid_offset, u32 *ver, u32 *revid)
> > > -{
> > > -	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> > > -	void __iomem *map = pci_iomap_range(pdev, 0, gmdid_offset, sizeof(u32));
> > > -	u32 val;
> > > -
> > > -	if (!map) {
> > > -		drm_err(&xe->drm, "Failed to read GMD_ID (%#x) from PCI BAR.\n",
> > > -			gmdid_offset);
> > > -		*ver = 0;
> > > -		*revid = 0;
> > > -
> > > -		return;
> > > -	}
> > > -
> > > -	val = ioread32(map);
> > > -	pci_iounmap(pdev, map);
> > > -
> > > -	*ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 +
> > > -		REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> > > -	*revid = REG_FIELD_GET(GMD_ID_REVID, val);
> > > -}
> > > -
> > >  /*
> > >   * Pre-GMD_ID platform: device descriptor already points to the appropriate
> > >   * graphics descriptor. Simply forward the description and calculate the version
> > > @@ -495,9 +473,14 @@ static void handle_gmdid(struct xe_device *xe,
> > >  			 u32 *graphics_revid,
> > >  			 u32 *media_revid)
> > >  {
> > > +	struct xe_gt *gt = xe_root_mmio_gt(xe);
> > > +	u32 val;
> > >  	u32 ver;
> > > 
> > > -	peek_gmdid(xe, GMD_ID.addr, &ver, graphics_revid);
> > > +	val = xe_mmio_read32(gt, GMD_ID);
> > > +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> > > +	*graphics_revid = REG_FIELD_GET(GMD_ID_REVID, val);
> > > +
> > >  	for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
> > >  		if (ver == graphics_ip_map[i].ver) {
> > >  			xe->info.graphics_verx100 = ver;
> > > @@ -512,7 +495,9 @@ static void handle_gmdid(struct xe_device *xe,
> > >  			ver / 100, ver % 100);
> > >  	}
> > > 
> > > -	peek_gmdid(xe, GMD_ID.addr + 0x380000, &ver, media_revid);
> > > +	val = xe_mmio_read32(gt, MEDIA_GMD_ID);
> > 
> > It's unfortunate that we have to read the GMD_ID register through the
> > wrong GT pointer, but I don't see a good way to avoid it.  Maybe rather
> > than defining MEDIA_GMD_ID with the built-in offset (which people may
> > try to copy/paste for other register definitions without realizing this
> > is a one-time special case), we should just do something like
> > 
> >        struct xe_reg media_gmdid_reg = GMD_ID;
> > 
> >        /*
> >         * Since we haven't initialized the media GT yet, we need to
> >         * read media's GMD_ID register through the primary GT's
> >         * mmio; that means we also need to explicitly add in the
> >         * media GSI offset.
> >         */
> >         media_gmdid_reg.addr += MEDIA_GT_GSI_OFFSET;
> >         val = xe_mmio_read32(gt, media_gmdid_reg);
> 
> 
> since we already have a new use case for having a peek_gmdid
> (https://patchwork.freedesktop.org/series/126609/), maybe rename the
> function and leave this logic adding MEDIA_GT_GSI_OFFSET inside that
> single function?
> 
> with this patch getting a r-b, we already have all the pre-requisites
> reviewed so I'd be happy to rebase my series on top.

I'll bring back the "peek" as:
static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u32 *revid)

and use GMD_ID reg directly (with += MEDIA_GT_GSI_OFFSET for media).

Thanks,
-Michał

> 
> Lucas De Marchi
> 
> > 
> > 
> > Matt
> > 
> > > +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
> > > +	*media_revid = REG_FIELD_GET(GMD_ID_REVID, val);
> > > 
> > >  	/* Media may legitimately be fused off / not present */
> > >  	if (ver == 0)
> > > --
> > > 2.42.1
> > > 
> > 
> > -- 
> > Matt Roper
> > Graphics Software Engineer
> > Linux GPU Platform Enablement
> > Intel Corporation

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

* Re: [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig"
  2023-11-20 20:09   ` Lucas De Marchi
@ 2023-11-21 13:36     ` Michał Winiarski
  0 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-21 13:36 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: Matt Roper, intel-xe

On Mon, Nov 20, 2023 at 02:09:26PM -0600, Lucas De Marchi wrote:
> On Tue, Nov 14, 2023 at 02:02:28PM +0100, Michał Winiarski wrote:
> > Move params that are not used for initial "hwconfig" load to
> > "post-hwconfig" phase.
> > 
> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> 
> 
> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
> 
> ... but I thought we'd remove the double guc load. Did we change
> direction?

Unfortunately, some things are still missing.
Let's take GuC log, if we would want to load GuC early during probe
(where LMEM is not initialized yet), GuC log needs to be allocated in
system memory. Unfortunately - there's no interface to register a new
GuC log buffer, which makes it problematic if we want to transition to
LMEM GuC log.

Perhaps the transition to single load will make sense in the future, but
I'd like to see SR-IOV VF code merged before any further refactoring.

-Michał

> 
> Lucas De Marchi
> 
> > ---
> > drivers/gpu/drm/xe/xe_guc.c | 22 ++++++++++++++++++++++
> > 1 file changed, 22 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> > index 84f0b5488783b..d1181ddf4bdae 100644
> > --- a/drivers/gpu/drm/xe/xe_guc.c
> > +++ b/drivers/gpu/drm/xe/xe_guc.c
> > @@ -192,6 +192,26 @@ static void guc_init_params(struct xe_guc *guc)
> > 	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
> > 	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
> > 
> > +	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
> > +	params[GUC_CTL_FEATURE] = 0;
> > +	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
> > +	params[GUC_CTL_ADS] = guc_ctl_ads_flags(guc);
> > +	params[GUC_CTL_WA] = 0;
> > +	params[GUC_CTL_DEVID] = guc_ctl_devid(guc);
> > +
> > +	for (i = 0; i < GUC_CTL_MAX_DWORDS; i++)
> > +		drm_dbg(&xe->drm, "GuC param[%2d] = 0x%08x\n", i, params[i]);
> > +}
> > +
> > +static void guc_init_params_post_hwconfig(struct xe_guc *guc)
> > +{
> > +	struct xe_device *xe = guc_to_xe(guc);
> > +	u32 *params = guc->params;
> > +	int i;
> > +
> > +	BUILD_BUG_ON(sizeof(guc->params) != GUC_CTL_MAX_DWORDS * sizeof(u32));
> > +	BUILD_BUG_ON(GUC_CTL_MAX_DWORDS + 2 != SOFT_SCRATCH_COUNT);
> > +
> > 	params[GUC_CTL_LOG_PARAMS] = guc_ctl_log_params_flags(guc);
> > 	params[GUC_CTL_FEATURE] = guc_ctl_feature_flags(guc);
> > 	params[GUC_CTL_DEBUG] = guc_ctl_debug_flags(guc);
> > @@ -289,6 +309,8 @@ int xe_guc_init(struct xe_guc *guc)
> >  */
> > int xe_guc_init_post_hwconfig(struct xe_guc *guc)
> > {
> > +	guc_init_params_post_hwconfig(guc);
> > +
> > 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
> > }
> > 
> > -- 
> > 2.42.1
> > 

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

* Re: [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load
  2023-11-20 20:20   ` Lucas De Marchi
@ 2023-11-21 13:42     ` Michał Winiarski
  2023-11-21 16:49       ` Lucas De Marchi
  0 siblings, 1 reply; 56+ messages in thread
From: Michał Winiarski @ 2023-11-21 13:42 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: Matt Roper, intel-xe

On Mon, Nov 20, 2023 at 02:20:22PM -0600, Lucas De Marchi wrote:
> On Tue, Nov 14, 2023 at 02:02:29PM +0100, Michał Winiarski wrote:
> > GuC load will need to happen at an earlier point in probe, where local
> > memory is not yet available. Use system memory for GuC data structures
> > used for initial "hwconfig" load, and realloc at a later,
> > "post-hwconfig" load, when local memory is available.
> > 
> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_guc.c     | 45 +++++++++++++++++++++++++++++++++
> > drivers/gpu/drm/xe/xe_guc_ads.c |  2 +-
> > drivers/gpu/drm/xe/xe_guc_ct.c  |  2 +-
> > drivers/gpu/drm/xe/xe_guc_log.c |  2 +-
> > 4 files changed, 48 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> > index d1181ddf4bdae..3f430d5bc1051 100644
> > --- a/drivers/gpu/drm/xe/xe_guc.c
> > +++ b/drivers/gpu/drm/xe/xe_guc.c
> > @@ -251,6 +251,45 @@ static void guc_fini(struct drm_device *drm, void *arg)
> > 	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
> > }
> > 
> > +static int __guc_bo_reinit(struct xe_guc *guc, struct xe_bo **src)
> > +{
> > +	struct xe_tile *tile = gt_to_tile(guc_to_gt(guc));
> > +	struct xe_device *xe = guc_to_xe(guc);
> > +	struct xe_bo *bo;
> > +
> > +	bo = xe_bo_create_from_data(xe, tile, &(*src)->vmap.vaddr, (*src)->size, ttm_bo_type_kernel,
> 
> in general we should not access a iosys_map like that. Maybe add an
> assert above this line:
> 
> 	xe_assert(xe, !(*src)->vmap.is_iomem);

Makes sense - I'll add the assert.

> 
> > +				    XE_BO_CREATE_VRAM_IF_DGFX(tile));
> 

> humn... maybe we are missing a XE_BO_CREATE_VRAM(tile)?

It's only called for "IS_DGFX", so I think we're fine for now.

Thanks,
-Michał

> 
> Lucas De Marchi
> 
> > +	if (IS_ERR(bo))
> > +		return PTR_ERR(bo);
> > +
> > +	xchg(src, bo);
> > +	xe_bo_unpin_map_no_vm(bo);
> > +
> > +	return 0;
> > +}
> > +
> > +static int xe_guc_realloc_post_hwconfig(struct xe_guc *guc)
> > +{
> > +	int ret;
> > +
> > +	if (!IS_DGFX(guc_to_xe(guc)))
> > +		return 0;
> > +
> > +	ret = __guc_bo_reinit(guc, &guc->log.bo);
> > +	if (ret)
> > +		return ret;
> > +
> > +	ret = __guc_bo_reinit(guc, &guc->ads.bo);
> > +	if (ret)
> > +		return ret;
> > +
> > +	ret = __guc_bo_reinit(guc, &guc->ct.bo);
> > +	if (ret)
> > +		return ret;
> > +
> > +	return 0;
> > +}
> > +
> > int xe_guc_init(struct xe_guc *guc)
> > {
> > 	struct xe_device *xe = guc_to_xe(guc);
> > @@ -309,6 +348,12 @@ int xe_guc_init(struct xe_guc *guc)
> >  */
> > int xe_guc_init_post_hwconfig(struct xe_guc *guc)
> > {
> > +	int ret;
> > +
> > +	ret = xe_guc_realloc_post_hwconfig(guc);
> > +	if (ret)
> > +		return ret;
> > +
> > 	guc_init_params_post_hwconfig(guc);
> > 
> > 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
> > diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
> > index 88789826e7817..88514d09303d0 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_ads.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
> > @@ -282,7 +282,7 @@ int xe_guc_ads_init(struct xe_guc_ads *ads)
> > 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ads_size(ads) +
> > 				  MAX_GOLDEN_LRC_SIZE,
> > 				  ttm_bo_type_kernel,
> > -				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
> > +				  XE_BO_CREATE_SYSTEM_BIT |
> > 				  XE_BO_CREATE_GGTT_BIT);
> > 	if (IS_ERR(bo))
> > 		return PTR_ERR(bo);
> > diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
> > index a84e111bb36ad..8f190cc0e5527 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_ct.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
> > @@ -148,7 +148,7 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
> > 
> > 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ct_size(),
> > 				  ttm_bo_type_kernel,
> > -				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
> > +				  XE_BO_CREATE_SYSTEM_BIT |
> > 				  XE_BO_CREATE_GGTT_BIT);
> > 	if (IS_ERR(bo))
> > 		return PTR_ERR(bo);
> > diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
> > index 45c60a9c631c3..6334311a56e63 100644
> > --- a/drivers/gpu/drm/xe/xe_guc_log.c
> > +++ b/drivers/gpu/drm/xe/xe_guc_log.c
> > @@ -93,7 +93,7 @@ int xe_guc_log_init(struct xe_guc_log *log)
> > 
> > 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_log_size(),
> > 				  ttm_bo_type_kernel,
> > -				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
> > +				  XE_BO_CREATE_SYSTEM_BIT |
> > 				  XE_BO_CREATE_GGTT_BIT);
> > 	if (IS_ERR(bo))
> > 		return PTR_ERR(bo);
> > -- 
> > 2.42.1
> > 

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

* Re: [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe
  2023-11-15 15:09   ` Matthew Brost
@ 2023-11-21 16:07     ` Michał Winiarski
  0 siblings, 0 replies; 56+ messages in thread
From: Michał Winiarski @ 2023-11-21 16:07 UTC (permalink / raw)
  To: Matthew Brost; +Cc: Matt Roper, Lucas De Marchi, intel-xe

On Wed, Nov 15, 2023 at 03:09:31PM +0000, Matthew Brost wrote:
> On Tue, Nov 14, 2023 at 02:02:31PM +0100, Michał Winiarski wrote:
> > SR-IOV VF has limited access to MMIO registers. Fortunately, it is able
> > to access a curated subset that is needed to initialize the driver by
> > communicating with SR-IOV PF using GuC CT.
> > Initialize GuC earlier in order to keep the unified probe ordering
> > between VF and PF modes.
> > 
> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
> > ---
> >  drivers/gpu/drm/xe/xe_device.c | 11 +++++++++++
> >  drivers/gpu/drm/xe/xe_gt.c     | 16 ++++------------
> >  drivers/gpu/drm/xe/xe_guc.c    | 15 ++++++++++-----
> >  drivers/gpu/drm/xe/xe_uc.c     | 35 ++++++++++++++++++++++++++--------
> >  4 files changed, 52 insertions(+), 25 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> > index 531aca74e8eb4..ecbf1effecc41 100644
> > --- a/drivers/gpu/drm/xe/xe_device.c
> > +++ b/drivers/gpu/drm/xe/xe_device.c
> > @@ -32,6 +32,7 @@
> >  #include "xe_pat.h"
> >  #include "xe_pcode.h"
> >  #include "xe_pm.h"
> > +#include "xe_uc.h"
> >  #include "xe_query.h"
> >  #include "xe_tile.h"
> >  #include "xe_ttm_stolen_mgr.h"
> > @@ -414,6 +415,16 @@ int xe_device_probe(struct xe_device *xe)
> >  			return err;
> >  	}
> >  
> > +	for_each_gt(gt, xe, id) {
> > +		err = xe_uc_init(&gt->uc);
> > +		if (err)
> > +			return err;
> > +
> > +		err = xe_uc_init_hwconfig(&gt->uc);
> > +		if (err)
> > +			return err;
> > +	}
> > +
> 
> I think this should be a GT level function rather touching the UC layer
> here. Also maybe combine xe_force_wake_init_gt & xe_ggtt_init_early into
> this new function too if it makes sense.
> 
> Also a comment of why this located wouldn't hurt either.
> 
> Other than these nits the patch itslef makes sense to me.
> 
> Matt

I'll introduce xe_gt_init_hwconfig for uc_init / uc_init_hwconfig.

Combining other things (forcewake / ggtt) into it is problematic and
doesn't really make sense to me.
GGTT is per-tile, while forcewake needs to be initialized for all GTs
(for TLB invalidation purpose) before doing GGTT mappings (which uc_init
is going to do), so we can't easily handle it in a single for_each_gt
loop.

Thanks,
-Michał

> 
> >  	err = drmm_add_action_or_reset(&xe->drm, xe_driver_flr_fini, xe);
> >  	if (err)
> >  		return err;
> > diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c
> > index 73665e4e66f22..bee661e1f164a 100644
> > --- a/drivers/gpu/drm/xe/xe_gt.c
> > +++ b/drivers/gpu/drm/xe/xe_gt.c
> > @@ -344,14 +344,6 @@ static int gt_fw_domain_init(struct xe_gt *gt)
> >  			goto err_force_wake;
> >  	}
> >  
> > -	err = xe_uc_init(&gt->uc);
> > -	if (err)
> > -		goto err_force_wake;
> > -
> > -	err = xe_uc_init_hwconfig(&gt->uc);
> > -	if (err)
> > -		goto err_force_wake;
> > -
> >  	xe_gt_idle_sysfs_init(&gt->gtidle);
> >  
> >  	/* XXX: Fake that we pull the engine mask from hwconfig blob */
> > @@ -415,10 +407,6 @@ static int all_fw_domain_init(struct xe_gt *gt)
> >  	if (err)
> >  		goto err_force_wake;
> >  
> > -	err = xe_uc_init_post_hwconfig(&gt->uc);
> > -	if (err)
> > -		goto err_force_wake;
> > -
> >  	if (!xe_gt_is_media_type(gt)) {
> >  		/*
> >  		 * USM has its only SA pool to non-block behind user operations
> > @@ -442,6 +430,10 @@ static int all_fw_domain_init(struct xe_gt *gt)
> >  		}
> >  	}
> >  
> > +	err = xe_uc_init_post_hwconfig(&gt->uc);
> > +	if (err)
> > +		goto err_force_wake;
> > +
> >  	err = xe_uc_init_hw(&gt->uc);
> >  	if (err)
> >  		goto err_force_wake;
> > diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
> > index e04b04be32b7d..895bcc24ae2c8 100644
> > --- a/drivers/gpu/drm/xe/xe_guc.c
> > +++ b/drivers/gpu/drm/xe/xe_guc.c
> > @@ -572,26 +572,31 @@ static int __xe_guc_upload(struct xe_guc *guc)
> >   */
> >  int xe_guc_min_load_for_hwconfig(struct xe_guc *guc)
> >  {
> > +	struct xe_gt *gt = guc_to_gt(guc);
> >  	int ret;
> >  
> >  	xe_guc_ads_populate_minimal(&guc->ads);
> >  
> > +	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
> > +	if (ret)
> > +		return ret;
> > +
> >  	/* Raise GT freq to speed up HuC/GuC load */
> >  	xe_guc_pc_init_early(&guc->pc);
> >  
> >  	ret = __xe_guc_upload(guc);
> >  	if (ret)
> > -		return ret;
> > +		goto out;
> >  
> >  	ret = xe_guc_hwconfig_init(guc);
> >  	if (ret)
> > -		return ret;
> > +		goto out;
> >  
> >  	ret = xe_guc_enable_communication(guc);
> > -	if (ret)
> > -		return ret;
> > +out:
> > +	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
> >  
> > -	return 0;
> > +	return ret;
> >  }
> >  
> >  int xe_guc_upload(struct xe_guc *guc)
> > diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
> > index 13e76e6805ca1..069207a7f2f21 100644
> > --- a/drivers/gpu/drm/xe/xe_uc.c
> > +++ b/drivers/gpu/drm/xe/xe_uc.c
> > @@ -29,8 +29,16 @@ uc_to_xe(struct xe_uc *uc)
> >  /* Should be called once at driver load only */
> >  int xe_uc_init(struct xe_uc *uc)
> >  {
> > +	struct xe_device *xe = uc_to_xe(uc);
> > +	struct xe_gt *gt = uc_to_gt(uc);
> >  	int ret;
> >  
> > +	xe_device_mem_access_get(xe);
> > +
> > +	ret = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
> > +	if (ret)
> > +		goto err;
> > +
> >  	/*
> >  	 * We call the GuC/HuC init functions even if GuC submission is off to
> >  	 * correctly move our tracking of the FW state to "disabled".
> > @@ -38,26 +46,36 @@ int xe_uc_init(struct xe_uc *uc)
> >  
> >  	ret = xe_guc_init(&uc->guc);
> >  	if (ret)
> > -		goto err;
> > +		goto err_fw;
> >  
> >  	ret = xe_huc_init(&uc->huc);
> >  	if (ret)
> > -		goto err;
> > +		goto err_fw;
> >  
> >  	if (!xe_device_uc_enabled(uc_to_xe(uc)))
> > -		return 0;
> > +		goto out;
> > +
> >  
> >  	ret = xe_wopcm_init(&uc->wopcm);
> >  	if (ret)
> > -		goto err;
> > +		goto err_fw;
> >  
> >  	ret = xe_guc_submit_init(&uc->guc);
> >  	if (ret)
> > -		goto err;
> > +		goto err_fw;
> > +
> > +out:
> > +	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
> > +
> > +	xe_device_mem_access_put(xe);
> >  
> >  	return 0;
> >  
> > +err_fw:
> > +	xe_force_wake_put(gt_to_fw(gt), XE_FW_GT);
> >  err:
> > +	xe_device_mem_access_put(xe);
> > +
> >  	return ret;
> >  }
> >  
> > @@ -117,17 +135,18 @@ int xe_uc_sanitize_reset(struct xe_uc *uc)
> >   */
> >  int xe_uc_init_hwconfig(struct xe_uc *uc)
> >  {
> > +	struct xe_device *xe = uc_to_xe(uc);
> >  	int ret;
> >  
> >  	/* GuC submission not enabled, nothing to do */
> >  	if (!xe_device_uc_enabled(uc_to_xe(uc)))
> >  		return 0;
> >  
> > +	xe_device_mem_access_get(xe);
> >  	ret = xe_guc_min_load_for_hwconfig(&uc->guc);
> > -	if (ret)
> > -		return ret;
> > +	xe_device_mem_access_put(xe);
> >  
> > -	return 0;
> > +	return ret;
> >  }
> >  
> >  /*
> > -- 
> > 2.42.1
> > 

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

* Re: [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load
  2023-11-21 13:42     ` Michał Winiarski
@ 2023-11-21 16:49       ` Lucas De Marchi
  0 siblings, 0 replies; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-21 16:49 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, intel-xe

On Tue, Nov 21, 2023 at 02:42:20PM +0100, Michał Winiarski wrote:
>On Mon, Nov 20, 2023 at 02:20:22PM -0600, Lucas De Marchi wrote:
>> On Tue, Nov 14, 2023 at 02:02:29PM +0100, Michał Winiarski wrote:
>> > GuC load will need to happen at an earlier point in probe, where local
>> > memory is not yet available. Use system memory for GuC data structures
>> > used for initial "hwconfig" load, and realloc at a later,
>> > "post-hwconfig" load, when local memory is available.
>> >
>> > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>> > ---
>> > drivers/gpu/drm/xe/xe_guc.c     | 45 +++++++++++++++++++++++++++++++++
>> > drivers/gpu/drm/xe/xe_guc_ads.c |  2 +-
>> > drivers/gpu/drm/xe/xe_guc_ct.c  |  2 +-
>> > drivers/gpu/drm/xe/xe_guc_log.c |  2 +-
>> > 4 files changed, 48 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/xe/xe_guc.c b/drivers/gpu/drm/xe/xe_guc.c
>> > index d1181ddf4bdae..3f430d5bc1051 100644
>> > --- a/drivers/gpu/drm/xe/xe_guc.c
>> > +++ b/drivers/gpu/drm/xe/xe_guc.c
>> > @@ -251,6 +251,45 @@ static void guc_fini(struct drm_device *drm, void *arg)
>> > 	xe_force_wake_put(gt_to_fw(guc_to_gt(guc)), XE_FORCEWAKE_ALL);
>> > }
>> >
>> > +static int __guc_bo_reinit(struct xe_guc *guc, struct xe_bo **src)
>> > +{
>> > +	struct xe_tile *tile = gt_to_tile(guc_to_gt(guc));
>> > +	struct xe_device *xe = guc_to_xe(guc);
>> > +	struct xe_bo *bo;
>> > +
>> > +	bo = xe_bo_create_from_data(xe, tile, &(*src)->vmap.vaddr, (*src)->size, ttm_bo_type_kernel,
>>
>> in general we should not access a iosys_map like that. Maybe add an
>> assert above this line:
>>
>> 	xe_assert(xe, !(*src)->vmap.is_iomem);
>
>Makes sense - I'll add the assert.
>
>>
>> > +				    XE_BO_CREATE_VRAM_IF_DGFX(tile));
>>
>
>> humn... maybe we are missing a XE_BO_CREATE_VRAM(tile)?
>
>It's only called for "IS_DGFX", so I think we're fine for now.

but that was the point... checking IF_DGFX() everywhere, including
code paths we should only be at for dgfx seems wasteful. Anyway, this is
independent from this patch and something that can be done later.

Lucas De Marchi

>
>Thanks,
>-Michał
>
>>
>> Lucas De Marchi
>>
>> > +	if (IS_ERR(bo))
>> > +		return PTR_ERR(bo);
>> > +
>> > +	xchg(src, bo);
>> > +	xe_bo_unpin_map_no_vm(bo);
>> > +
>> > +	return 0;
>> > +}
>> > +
>> > +static int xe_guc_realloc_post_hwconfig(struct xe_guc *guc)
>> > +{
>> > +	int ret;
>> > +
>> > +	if (!IS_DGFX(guc_to_xe(guc)))
>> > +		return 0;
>> > +
>> > +	ret = __guc_bo_reinit(guc, &guc->log.bo);
>> > +	if (ret)
>> > +		return ret;
>> > +
>> > +	ret = __guc_bo_reinit(guc, &guc->ads.bo);
>> > +	if (ret)
>> > +		return ret;
>> > +
>> > +	ret = __guc_bo_reinit(guc, &guc->ct.bo);
>> > +	if (ret)
>> > +		return ret;
>> > +
>> > +	return 0;
>> > +}
>> > +
>> > int xe_guc_init(struct xe_guc *guc)
>> > {
>> > 	struct xe_device *xe = guc_to_xe(guc);
>> > @@ -309,6 +348,12 @@ int xe_guc_init(struct xe_guc *guc)
>> >  */
>> > int xe_guc_init_post_hwconfig(struct xe_guc *guc)
>> > {
>> > +	int ret;
>> > +
>> > +	ret = xe_guc_realloc_post_hwconfig(guc);
>> > +	if (ret)
>> > +		return ret;
>> > +
>> > 	guc_init_params_post_hwconfig(guc);
>> >
>> > 	return xe_guc_ads_init_post_hwconfig(&guc->ads);
>> > diff --git a/drivers/gpu/drm/xe/xe_guc_ads.c b/drivers/gpu/drm/xe/xe_guc_ads.c
>> > index 88789826e7817..88514d09303d0 100644
>> > --- a/drivers/gpu/drm/xe/xe_guc_ads.c
>> > +++ b/drivers/gpu/drm/xe/xe_guc_ads.c
>> > @@ -282,7 +282,7 @@ int xe_guc_ads_init(struct xe_guc_ads *ads)
>> > 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ads_size(ads) +
>> > 				  MAX_GOLDEN_LRC_SIZE,
>> > 				  ttm_bo_type_kernel,
>> > -				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
>> > +				  XE_BO_CREATE_SYSTEM_BIT |
>> > 				  XE_BO_CREATE_GGTT_BIT);
>> > 	if (IS_ERR(bo))
>> > 		return PTR_ERR(bo);
>> > diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c
>> > index a84e111bb36ad..8f190cc0e5527 100644
>> > --- a/drivers/gpu/drm/xe/xe_guc_ct.c
>> > +++ b/drivers/gpu/drm/xe/xe_guc_ct.c
>> > @@ -148,7 +148,7 @@ int xe_guc_ct_init(struct xe_guc_ct *ct)
>> >
>> > 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_ct_size(),
>> > 				  ttm_bo_type_kernel,
>> > -				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
>> > +				  XE_BO_CREATE_SYSTEM_BIT |
>> > 				  XE_BO_CREATE_GGTT_BIT);
>> > 	if (IS_ERR(bo))
>> > 		return PTR_ERR(bo);
>> > diff --git a/drivers/gpu/drm/xe/xe_guc_log.c b/drivers/gpu/drm/xe/xe_guc_log.c
>> > index 45c60a9c631c3..6334311a56e63 100644
>> > --- a/drivers/gpu/drm/xe/xe_guc_log.c
>> > +++ b/drivers/gpu/drm/xe/xe_guc_log.c
>> > @@ -93,7 +93,7 @@ int xe_guc_log_init(struct xe_guc_log *log)
>> >
>> > 	bo = xe_bo_create_pin_map(xe, tile, NULL, guc_log_size(),
>> > 				  ttm_bo_type_kernel,
>> > -				  XE_BO_CREATE_VRAM_IF_DGFX(tile) |
>> > +				  XE_BO_CREATE_SYSTEM_BIT |
>> > 				  XE_BO_CREATE_GGTT_BIT);
>> > 	if (IS_ERR(bo))
>> > 		return PTR_ERR(bo);
>> > --
>> > 2.42.1
>> >

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

* Re: [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID
  2023-11-21 13:27       ` Michał Winiarski
@ 2023-11-21 16:54         ` Lucas De Marchi
  0 siblings, 0 replies; 56+ messages in thread
From: Lucas De Marchi @ 2023-11-21 16:54 UTC (permalink / raw)
  To: Michał Winiarski; +Cc: Matt Roper, intel-xe

On Tue, Nov 21, 2023 at 02:27:47PM +0100, Michał Winiarski wrote:
>On Mon, Nov 20, 2023 at 01:57:42PM -0600, Lucas De Marchi wrote:
>> On Wed, Nov 15, 2023 at 01:51:00PM -0800, Matt Roper wrote:
>> > On Tue, Nov 14, 2023 at 02:02:21PM +0100, Michał Winiarski wrote:
>> > > Now that MMIO init got moved to device early, we can use regular
>> > > xe_mmio_read helpers to get to GMD_ID register.
>> > >
>> > > Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
>> > > ---
>> > >  drivers/gpu/drm/xe/regs/xe_gt_regs.h |  1 +
>> > >  drivers/gpu/drm/xe/xe_pci.c          | 35 ++++++++--------------------
>> > >  2 files changed, 11 insertions(+), 25 deletions(-)
>> > >
>> > > diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> > > index cc27fe8fc3633..6b195115564ce 100644
>> > > --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> > > +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
>> > > @@ -38,6 +38,7 @@
>> > >  #define   GMD_ID_ARCH_MASK			REG_GENMASK(31, 22)
>> > >  #define   GMD_ID_RELEASE_MASK			REG_GENMASK(21, 14)
>> > >  #define   GMD_ID_REVID				REG_GENMASK(5, 0)
>> > > +#define MEDIA_GMD_ID				XE_REG(GMD_ID.addr + MEDIA_GT_GSI_OFFSET)
>> > >
>> > >  #define FORCEWAKE_ACK_GSC			XE_REG(0xdf8)
>> > >  #define FORCEWAKE_ACK_GT_MTL			XE_REG(0xdfc)
>> > > diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>> > > index a1026b7ee4727..a6c08577b01d2 100644
>> > > --- a/drivers/gpu/drm/xe/xe_pci.c
>> > > +++ b/drivers/gpu/drm/xe/xe_pci.c
>> > > @@ -21,6 +21,7 @@
>> > >  #include "xe_drv.h"
>> > >  #include "xe_gt.h"
>> > >  #include "xe_macros.h"
>> > > +#include "xe_mmio.h"
>> > >  #include "xe_module.h"
>> > >  #include "xe_pci_types.h"
>> > >  #include "xe_pm.h"
>> > > @@ -441,29 +442,6 @@ find_subplatform(const struct xe_device *xe, const struct xe_device_desc *desc)
>> > >  	return NULL;
>> > >  }
>> > >
>> > > -static void peek_gmdid(struct xe_device *xe, u32 gmdid_offset, u32 *ver, u32 *revid)
>> > > -{
>> > > -	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>> > > -	void __iomem *map = pci_iomap_range(pdev, 0, gmdid_offset, sizeof(u32));
>> > > -	u32 val;
>> > > -
>> > > -	if (!map) {
>> > > -		drm_err(&xe->drm, "Failed to read GMD_ID (%#x) from PCI BAR.\n",
>> > > -			gmdid_offset);
>> > > -		*ver = 0;
>> > > -		*revid = 0;
>> > > -
>> > > -		return;
>> > > -	}
>> > > -
>> > > -	val = ioread32(map);
>> > > -	pci_iounmap(pdev, map);
>> > > -
>> > > -	*ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 +
>> > > -		REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
>> > > -	*revid = REG_FIELD_GET(GMD_ID_REVID, val);
>> > > -}
>> > > -
>> > >  /*
>> > >   * Pre-GMD_ID platform: device descriptor already points to the appropriate
>> > >   * graphics descriptor. Simply forward the description and calculate the version
>> > > @@ -495,9 +473,14 @@ static void handle_gmdid(struct xe_device *xe,
>> > >  			 u32 *graphics_revid,
>> > >  			 u32 *media_revid)
>> > >  {
>> > > +	struct xe_gt *gt = xe_root_mmio_gt(xe);
>> > > +	u32 val;
>> > >  	u32 ver;
>> > >
>> > > -	peek_gmdid(xe, GMD_ID.addr, &ver, graphics_revid);
>> > > +	val = xe_mmio_read32(gt, GMD_ID);
>> > > +	ver = REG_FIELD_GET(GMD_ID_ARCH_MASK, val) * 100 + REG_FIELD_GET(GMD_ID_RELEASE_MASK, val);
>> > > +	*graphics_revid = REG_FIELD_GET(GMD_ID_REVID, val);
>> > > +
>> > >  	for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
>> > >  		if (ver == graphics_ip_map[i].ver) {
>> > >  			xe->info.graphics_verx100 = ver;
>> > > @@ -512,7 +495,9 @@ static void handle_gmdid(struct xe_device *xe,
>> > >  			ver / 100, ver % 100);
>> > >  	}
>> > >
>> > > -	peek_gmdid(xe, GMD_ID.addr + 0x380000, &ver, media_revid);
>> > > +	val = xe_mmio_read32(gt, MEDIA_GMD_ID);
>> >
>> > It's unfortunate that we have to read the GMD_ID register through the
>> > wrong GT pointer, but I don't see a good way to avoid it.  Maybe rather
>> > than defining MEDIA_GMD_ID with the built-in offset (which people may
>> > try to copy/paste for other register definitions without realizing this
>> > is a one-time special case), we should just do something like
>> >
>> >        struct xe_reg media_gmdid_reg = GMD_ID;
>> >
>> >        /*
>> >         * Since we haven't initialized the media GT yet, we need to
>> >         * read media's GMD_ID register through the primary GT's
>> >         * mmio; that means we also need to explicitly add in the
>> >         * media GSI offset.
>> >         */
>> >         media_gmdid_reg.addr += MEDIA_GT_GSI_OFFSET;
>> >         val = xe_mmio_read32(gt, media_gmdid_reg);
>>
>>
>> since we already have a new use case for having a peek_gmdid
>> (https://patchwork.freedesktop.org/series/126609/), maybe rename the
>> function and leave this logic adding MEDIA_GT_GSI_OFFSET inside that
>> single function?
>>
>> with this patch getting a r-b, we already have all the pre-requisites
>> reviewed so I'd be happy to rebase my series on top.
>
>I'll bring back the "peek" as:
>static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u32 *revid)
>
>and use GMD_ID reg directly (with += MEDIA_GT_GSI_OFFSET for media).

with that, few free to add
	
	Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

thanks
Lucas De Marchi

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

end of thread, other threads:[~2023-11-21 16:54 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-14 13:02 [Intel-xe] [PATCH v3 00/20] drm/xe: Probe tweaks and reordering Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 01/20] drm/xe: Skip calling drm_dev_put on probe error Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 02/20] drm/xe: Use managed pci_enable_device Michał Winiarski
2023-11-15 20:47   ` Matt Roper
2023-11-21 12:45     ` Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 03/20] drm/xe/irq: Don't call pci_free_irq_vectors Michał Winiarski
2023-11-15 20:49   ` Matt Roper
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 04/20] drm/xe: Move xe_set_dma_info outside of MMIO setup Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 05/20] drm/xe: Move xe_mmio_probe_tiles " Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 06/20] drm/xe: Split xe_info_init Michał Winiarski
2023-11-20 19:47   ` Lucas De Marchi
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 07/20] drm/xe: Introduce xe_tile_init_early and use at earlier point in probe Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 08/20] drm/xe: Map the entire BAR0 and hold onto the initial mapping Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 09/20] drm/xe/device: Introduce xe_device_probe_early Michał Winiarski
2023-11-15 14:41   ` Matthew Brost
2023-11-15 21:31   ` Matt Roper
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 10/20] drm/xe: Don't "peek" into GMD_ID Michał Winiarski
2023-11-15 14:45   ` Matthew Brost
2023-11-15 21:51   ` Matt Roper
2023-11-20 19:57     ` Lucas De Marchi
2023-11-21 13:27       ` Michał Winiarski
2023-11-21 16:54         ` Lucas De Marchi
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 11/20] drm/xe: Move system memory management init to earlier point in probe Michał Winiarski
2023-11-15 21:55   ` Matt Roper
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 12/20] drm/xe: Move force_wake " Michał Winiarski
2023-11-15 21:59   ` Matt Roper
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 13/20] drm/xe: Reorder GGTT " Michał Winiarski
2023-11-15 22:19   ` Matt Roper
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 14/20] drm/xe/uc: Split xe_uc_fw_init Michał Winiarski
2023-11-15 22:28   ` Matt Roper
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 15/20] drm/xe/uc: Store firmware binary in system-memory backed BO Michał Winiarski
2023-11-15 22:34   ` Matt Roper
2023-11-20 20:04   ` Lucas De Marchi
2023-11-20 21:34     ` Daniele Ceraolo Spurio
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 16/20] drm/xe/uc: Extract xe_uc_sanitize_reset Michał Winiarski
2023-11-16 12:56   ` Matthew Brost
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 17/20] drm/xe/guc: Split GuC params used for "hwconfig" and "post-hwconfig" Michał Winiarski
2023-11-20 13:25   ` Matthew Brost
2023-11-20 20:09   ` Lucas De Marchi
2023-11-21 13:36     ` Michał Winiarski
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 18/20] drm/xe/guc: Allocate GuC data structures in system memory for initial load Michał Winiarski
2023-11-20 20:20   ` Lucas De Marchi
2023-11-21 13:42     ` Michał Winiarski
2023-11-21 16:49       ` Lucas De Marchi
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 19/20] drm/xe/guc: Move GuC power control init to "post-hwconfig" Michał Winiarski
2023-11-20 13:30   ` Matthew Brost
2023-11-14 13:02 ` [Intel-xe] [PATCH v3 20/20] drm/xe: Initialize GuC earlier during probe Michał Winiarski
2023-11-15 15:09   ` Matthew Brost
2023-11-21 16:07     ` Michał Winiarski
2023-11-14 13:07 ` [Intel-xe] ✓ CI.Patch_applied: success for drm/xe: Probe tweaks and reordering (rev2) Patchwork
2023-11-14 13:08 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-11-14 13:09 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-11-14 13:16 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-11-14 13:16 ` [Intel-xe] ✓ CI.Hooks: " Patchwork
2023-11-14 13:18 ` [Intel-xe] ✓ CI.checksparse: " Patchwork
2023-11-14 13:51 ` [Intel-xe] ✓ CI.BAT: " Patchwork

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.