* [PATCH v5 01/23] drm/xe/huc: Adjust HuC check on primary GT
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 02/23] drm/xe: Drop GT parameter to xe_display_irq_postinstall() Matt Roper
` (25 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Daniele Ceraolo Spurio, Tejas Upadhyay
The HuC initialization code determines whether a platform can have a HuC
on the primary GT by checking whether tile->media_gt is NULL; old Xe1
platforms that combined render+media into a single GT will always have a
NULL media_gt pointer. However once we allow media to be disabled via
configfs, there will also be cases where tile->media_gt is NULL on more
modern platforms, causing this condition to behave incorrectly.
To handle cases where media gets disabled via configfs (or theoretical
cases where media is truly fused off in hardware), change the condition
to consider the graphics version of the primary GT; only the old Xe1
platforms with graphics versions 12.55 or earlier should try to
initialize a HuC on the primary GT.
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/xe/xe_huc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_huc.c b/drivers/gpu/drm/xe/xe_huc.c
index 7e43b2dd6a32..0a70c8924582 100644
--- a/drivers/gpu/drm/xe/xe_huc.c
+++ b/drivers/gpu/drm/xe/xe_huc.c
@@ -66,14 +66,18 @@ static int huc_alloc_gsc_pkt(struct xe_huc *huc)
int xe_huc_init(struct xe_huc *huc)
{
struct xe_gt *gt = huc_to_gt(huc);
- struct xe_tile *tile = gt_to_tile(gt);
struct xe_device *xe = gt_to_xe(gt);
int ret;
huc->fw.type = XE_UC_FW_TYPE_HUC;
- /* On platforms with a media GT the HuC is only available there */
- if (tile->media_gt && (gt != tile->media_gt)) {
+ /*
+ * The HuC is only available on the media GT on most platforms. The
+ * exception to that rule are the old Xe1 platforms where there was
+ * no separate GT for media IP, so the HuC was part of the primary
+ * GT. Such platforms have graphics versions 12.55 and earlier.
+ */
+ if (!xe_gt_is_media_type(gt) && GRAPHICS_VERx100(xe) > 1255) {
xe_uc_fw_change_status(&huc->fw, XE_UC_FIRMWARE_NOT_SUPPORTED);
return 0;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 02/23] drm/xe: Drop GT parameter to xe_display_irq_postinstall()
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
2025-10-13 20:09 ` [PATCH v5 01/23] drm/xe/huc: Adjust HuC check on primary GT Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 03/23] drm/xe: Move 'va_bits' flag back to platform descriptor Matt Roper
` (24 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Lucas De Marchi
Display interrupt handling has no relation to GT(s) on the platforms
supported by the Xe driver. We only call xe_display_irq_postinstall
with the first tile's primary GT, so the single condition that uses the
GT pointer within the function always evaluates to true. Drop the
unnecessary parameter and the condition.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/display/xe_display.c | 5 ++---
drivers/gpu/drm/xe/display/xe_display.h | 4 ++--
drivers/gpu/drm/xe/xe_irq.c | 2 +-
3 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_display.c b/drivers/gpu/drm/xe/display/xe_display.c
index 5f4044e63185..47619bb8dc10 100644
--- a/drivers/gpu/drm/xe/display/xe_display.c
+++ b/drivers/gpu/drm/xe/display/xe_display.c
@@ -227,15 +227,14 @@ void xe_display_irq_reset(struct xe_device *xe)
gen11_display_irq_reset(display);
}
-void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt)
+void xe_display_irq_postinstall(struct xe_device *xe)
{
struct intel_display *display = xe->display;
if (!xe->info.probe_display)
return;
- if (gt->info.id == XE_GT0)
- gen11_de_irq_postinstall(display);
+ gen11_de_irq_postinstall(display);
}
static bool suspend_to_idle(void)
diff --git a/drivers/gpu/drm/xe/display/xe_display.h b/drivers/gpu/drm/xe/display/xe_display.h
index e533aa4750bc..76db95c25f7e 100644
--- a/drivers/gpu/drm/xe/display/xe_display.h
+++ b/drivers/gpu/drm/xe/display/xe_display.h
@@ -26,7 +26,7 @@ void xe_display_unregister(struct xe_device *xe);
void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl);
void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir);
void xe_display_irq_reset(struct xe_device *xe);
-void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt);
+void xe_display_irq_postinstall(struct xe_device *xe);
void xe_display_pm_suspend(struct xe_device *xe);
void xe_display_pm_shutdown(struct xe_device *xe);
@@ -55,7 +55,7 @@ static inline void xe_display_unregister(struct xe_device *xe) {}
static inline void xe_display_irq_handler(struct xe_device *xe, u32 master_ctl) {}
static inline void xe_display_irq_enable(struct xe_device *xe, u32 gu_misc_iir) {}
static inline void xe_display_irq_reset(struct xe_device *xe) {}
-static inline void xe_display_irq_postinstall(struct xe_device *xe, struct xe_gt *gt) {}
+static inline void xe_display_irq_postinstall(struct xe_device *xe) {}
static inline void xe_display_pm_suspend(struct xe_device *xe) {}
static inline void xe_display_pm_shutdown(struct xe_device *xe) {}
diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index af519414a429..9b938f1edaf5 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -657,7 +657,7 @@ static void xe_irq_postinstall(struct xe_device *xe)
xe_memirq_postinstall(&tile->memirq);
}
- xe_display_irq_postinstall(xe, xe_root_mmio_gt(xe));
+ xe_display_irq_postinstall(xe);
xe_i2c_irq_postinstall(xe);
/*
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 03/23] drm/xe: Move 'va_bits' flag back to platform descriptor
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
2025-10-13 20:09 ` [PATCH v5 01/23] drm/xe/huc: Adjust HuC check on primary GT Matt Roper
2025-10-13 20:09 ` [PATCH v5 02/23] drm/xe: Drop GT parameter to xe_display_irq_postinstall() Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 04/23] drm/xe: Move 'vm_max_level' " Matt Roper
` (23 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Lucas De Marchi, Michal Wajdeczko
The number of virtual address bits is something that should be tracked
at the platform level rather than the IP level. Even when mixing and
matching various graphics, media, and display IP blocks, the platform as
a whole has to have consistent page table handling. This is also a
trait that should be tied to the platform even if the graphics IP itself
is not present (e.g., if we disable the primary GT via configfs).
v2:
- Drop the default value of 48 and explicitly set it in each relevant
descriptor. (Lucas, Michal)
v3:
- Drop an outdated comment about default value. (Michal)
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 21 +++++++++++++++------
drivers/gpu/drm/xe/xe_pci_types.h | 2 +-
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 944c698808ac..e9d2e5dca2b6 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -52,13 +52,11 @@ __diag_ignore_all("-Woverride-init", "Allow field overrides in table");
static const struct xe_graphics_desc graphics_xelp = {
.hw_engine_mask = BIT(XE_HW_ENGINE_RCS0) | BIT(XE_HW_ENGINE_BCS0),
- .va_bits = 48,
.vm_max_level = 3,
};
#define XE_HP_FEATURES \
.has_range_tlb_inval = true, \
- .va_bits = 48, \
.vm_max_level = 3
static const struct xe_graphics_desc graphics_xehpg = {
@@ -84,7 +82,6 @@ static const struct xe_graphics_desc graphics_xehpc = {
BIT(XE_HW_ENGINE_CCS2) | BIT(XE_HW_ENGINE_CCS3),
XE_HP_FEATURES,
- .va_bits = 57,
.vm_max_level = 4,
.vram_flags = XE_VRAM_FLAGS_NEED64K,
@@ -108,7 +105,6 @@ static const struct xe_graphics_desc graphics_xelpg = {
.has_range_tlb_inval = 1, \
.has_usm = 1, \
.has_64bit_timestamp = 1, \
- .va_bits = 48, \
.vm_max_level = 4, \
.hw_engine_mask = \
BIT(XE_HW_ENGINE_RCS0) | \
@@ -174,6 +170,7 @@ static const struct xe_device_desc tgl_desc = {
.has_sriov = true,
.max_gt_per_tile = 1,
.require_force_probe = true,
+ .va_bits = 48,
};
static const struct xe_device_desc rkl_desc = {
@@ -185,6 +182,7 @@ static const struct xe_device_desc rkl_desc = {
.has_llc = true,
.max_gt_per_tile = 1,
.require_force_probe = true,
+ .va_bits = 48,
};
static const u16 adls_rpls_ids[] = { INTEL_RPLS_IDS(NOP), 0 };
@@ -203,6 +201,7 @@ static const struct xe_device_desc adl_s_desc = {
{ XE_SUBPLATFORM_ALDERLAKE_S_RPLS, "RPLS", adls_rpls_ids },
{},
},
+ .va_bits = 48,
};
static const u16 adlp_rplu_ids[] = { INTEL_RPLU_IDS(NOP), 0 };
@@ -221,6 +220,7 @@ static const struct xe_device_desc adl_p_desc = {
{ XE_SUBPLATFORM_ALDERLAKE_P_RPLU, "RPLU", adlp_rplu_ids },
{},
},
+ .va_bits = 48,
};
static const struct xe_device_desc adl_n_desc = {
@@ -233,6 +233,7 @@ static const struct xe_device_desc adl_n_desc = {
.has_sriov = true,
.max_gt_per_tile = 1,
.require_force_probe = true,
+ .va_bits = 48,
};
#define DGFX_FEATURES \
@@ -249,6 +250,7 @@ static const struct xe_device_desc dg1_desc = {
.has_heci_gscfi = 1,
.max_gt_per_tile = 1,
.require_force_probe = true,
+ .va_bits = 48,
};
static const u16 dg2_g10_ids[] = { INTEL_DG2_G10_IDS(NOP), INTEL_ATS_M150_IDS(NOP), 0 };
@@ -265,7 +267,8 @@ static const u16 dg2_g12_ids[] = { INTEL_DG2_G12_IDS(NOP), 0 };
{ XE_SUBPLATFORM_DG2_G11, "G11", dg2_g11_ids }, \
{ XE_SUBPLATFORM_DG2_G12, "G12", dg2_g12_ids }, \
{ } \
- }
+ }, \
+ .va_bits = 48
static const struct xe_device_desc ats_m_desc = {
.pre_gmdid_graphics_ip = &graphics_ip_xehpg,
@@ -303,6 +306,7 @@ static const __maybe_unused struct xe_device_desc pvc_desc = {
.max_gt_per_tile = 1,
.max_remote_tiles = 1,
.require_force_probe = true,
+ .va_bits = 57,
.has_mbx_power_limits = false,
};
@@ -314,6 +318,7 @@ static const struct xe_device_desc mtl_desc = {
.has_display = true,
.has_pxp = true,
.max_gt_per_tile = 2,
+ .va_bits = 48,
};
static const struct xe_device_desc lnl_desc = {
@@ -323,6 +328,7 @@ static const struct xe_device_desc lnl_desc = {
.has_pxp = true,
.max_gt_per_tile = 2,
.needs_scratch = true,
+ .va_bits = 48,
};
static const struct xe_device_desc bmg_desc = {
@@ -338,6 +344,7 @@ static const struct xe_device_desc bmg_desc = {
.has_sriov = true,
.max_gt_per_tile = 2,
.needs_scratch = true,
+ .va_bits = 48,
};
static const struct xe_device_desc ptl_desc = {
@@ -348,6 +355,7 @@ static const struct xe_device_desc ptl_desc = {
.max_gt_per_tile = 2,
.needs_scratch = true,
.needs_shared_vf_gt_wq = true,
+ .va_bits = 48,
};
#undef PLATFORM
@@ -585,6 +593,8 @@ static int xe_info_init_early(struct xe_device *xe,
subplatform_desc->subplatform : XE_SUBPLATFORM_NONE;
xe->info.dma_mask_size = desc->dma_mask_size;
+ xe->info.va_bits = desc->va_bits;
+
xe->info.is_dgfx = desc->is_dgfx;
xe->info.has_fan_control = desc->has_fan_control;
xe->info.has_mbx_power_limits = desc->has_mbx_power_limits;
@@ -715,7 +725,6 @@ static int xe_info_init(struct xe_device *xe,
}
xe->info.vram_flags = graphics_desc->vram_flags;
- xe->info.va_bits = graphics_desc->va_bits;
xe->info.vm_max_level = graphics_desc->vm_max_level;
xe->info.has_asid = graphics_desc->has_asid;
xe->info.has_atomic_enable_pte_bit = graphics_desc->has_atomic_enable_pte_bit;
diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h
index b11bf6abda5b..7c27e3742aa7 100644
--- a/drivers/gpu/drm/xe/xe_pci_types.h
+++ b/drivers/gpu/drm/xe/xe_pci_types.h
@@ -30,6 +30,7 @@ struct xe_device_desc {
u8 dma_mask_size;
u8 max_remote_tiles:2;
u8 max_gt_per_tile:2;
+ u8 va_bits;
u8 require_force_probe:1;
u8 is_dgfx:1;
@@ -52,7 +53,6 @@ struct xe_device_desc {
};
struct xe_graphics_desc {
- u8 va_bits;
u8 vm_max_level;
u8 vram_flags;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 04/23] drm/xe: Move 'vm_max_level' flag back to platform descriptor
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (2 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 03/23] drm/xe: Move 'va_bits' flag back to platform descriptor Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 05/23] drm/xe: Move 'vram_flags' " Matt Roper
` (22 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Lucas De Marchi, Gustavo Sousa
The number of page table levels for PPGTT virtual addresses is something
that should be tracked at the platform level rather than the IP level.
Even when mixing and matching various graphics, media, and display IP
blocks, the platform as a whole has to have consistent page table
handling. This is also a trait that should be tied to the platform even
if the graphics IP itself is not present (e.g., if we disable the
primary GT via configfs).
v2:
- Drop default value of 4 and explicitly set the value in each platform
descriptor. (Lucas)
v3:
- Drop outdated code comment and commit message paragraph about default
value. (Gustavo)
v4:
- Add missing setting for tgl_desc. (Gustavo)
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 23 +++++++++++++++--------
drivers/gpu/drm/xe/xe_pci_types.h | 2 +-
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index e9d2e5dca2b6..c237313b04e1 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -51,13 +51,10 @@ __diag_ignore_all("-Woverride-init", "Allow field overrides in table");
static const struct xe_graphics_desc graphics_xelp = {
.hw_engine_mask = BIT(XE_HW_ENGINE_RCS0) | BIT(XE_HW_ENGINE_BCS0),
-
- .vm_max_level = 3,
};
#define XE_HP_FEATURES \
- .has_range_tlb_inval = true, \
- .vm_max_level = 3
+ .has_range_tlb_inval = true
static const struct xe_graphics_desc graphics_xehpg = {
.hw_engine_mask =
@@ -82,7 +79,6 @@ static const struct xe_graphics_desc graphics_xehpc = {
BIT(XE_HW_ENGINE_CCS2) | BIT(XE_HW_ENGINE_CCS3),
XE_HP_FEATURES,
- .vm_max_level = 4,
.vram_flags = XE_VRAM_FLAGS_NEED64K,
.has_asid = 1,
@@ -105,7 +101,6 @@ static const struct xe_graphics_desc graphics_xelpg = {
.has_range_tlb_inval = 1, \
.has_usm = 1, \
.has_64bit_timestamp = 1, \
- .vm_max_level = 4, \
.hw_engine_mask = \
BIT(XE_HW_ENGINE_RCS0) | \
BIT(XE_HW_ENGINE_BCS8) | BIT(XE_HW_ENGINE_BCS0) | \
@@ -171,6 +166,7 @@ static const struct xe_device_desc tgl_desc = {
.max_gt_per_tile = 1,
.require_force_probe = true,
.va_bits = 48,
+ .vm_max_level = 3,
};
static const struct xe_device_desc rkl_desc = {
@@ -183,6 +179,7 @@ static const struct xe_device_desc rkl_desc = {
.max_gt_per_tile = 1,
.require_force_probe = true,
.va_bits = 48,
+ .vm_max_level = 3,
};
static const u16 adls_rpls_ids[] = { INTEL_RPLS_IDS(NOP), 0 };
@@ -202,6 +199,7 @@ static const struct xe_device_desc adl_s_desc = {
{},
},
.va_bits = 48,
+ .vm_max_level = 3,
};
static const u16 adlp_rplu_ids[] = { INTEL_RPLU_IDS(NOP), 0 };
@@ -221,6 +219,7 @@ static const struct xe_device_desc adl_p_desc = {
{},
},
.va_bits = 48,
+ .vm_max_level = 3,
};
static const struct xe_device_desc adl_n_desc = {
@@ -234,6 +233,7 @@ static const struct xe_device_desc adl_n_desc = {
.max_gt_per_tile = 1,
.require_force_probe = true,
.va_bits = 48,
+ .vm_max_level = 3,
};
#define DGFX_FEATURES \
@@ -251,6 +251,7 @@ static const struct xe_device_desc dg1_desc = {
.max_gt_per_tile = 1,
.require_force_probe = true,
.va_bits = 48,
+ .vm_max_level = 3,
};
static const u16 dg2_g10_ids[] = { INTEL_DG2_G10_IDS(NOP), INTEL_ATS_M150_IDS(NOP), 0 };
@@ -268,7 +269,8 @@ static const u16 dg2_g12_ids[] = { INTEL_DG2_G12_IDS(NOP), 0 };
{ XE_SUBPLATFORM_DG2_G12, "G12", dg2_g12_ids }, \
{ } \
}, \
- .va_bits = 48
+ .va_bits = 48, \
+ .vm_max_level = 3
static const struct xe_device_desc ats_m_desc = {
.pre_gmdid_graphics_ip = &graphics_ip_xehpg,
@@ -307,6 +309,7 @@ static const __maybe_unused struct xe_device_desc pvc_desc = {
.max_remote_tiles = 1,
.require_force_probe = true,
.va_bits = 57,
+ .vm_max_level = 4,
.has_mbx_power_limits = false,
};
@@ -319,6 +322,7 @@ static const struct xe_device_desc mtl_desc = {
.has_pxp = true,
.max_gt_per_tile = 2,
.va_bits = 48,
+ .vm_max_level = 4,
};
static const struct xe_device_desc lnl_desc = {
@@ -329,6 +333,7 @@ static const struct xe_device_desc lnl_desc = {
.max_gt_per_tile = 2,
.needs_scratch = true,
.va_bits = 48,
+ .vm_max_level = 4,
};
static const struct xe_device_desc bmg_desc = {
@@ -345,6 +350,7 @@ static const struct xe_device_desc bmg_desc = {
.max_gt_per_tile = 2,
.needs_scratch = true,
.va_bits = 48,
+ .vm_max_level = 4,
};
static const struct xe_device_desc ptl_desc = {
@@ -356,6 +362,7 @@ static const struct xe_device_desc ptl_desc = {
.needs_scratch = true,
.needs_shared_vf_gt_wq = true,
.va_bits = 48,
+ .vm_max_level = 4,
};
#undef PLATFORM
@@ -594,6 +601,7 @@ static int xe_info_init_early(struct xe_device *xe,
xe->info.dma_mask_size = desc->dma_mask_size;
xe->info.va_bits = desc->va_bits;
+ xe->info.vm_max_level = desc->vm_max_level;
xe->info.is_dgfx = desc->is_dgfx;
xe->info.has_fan_control = desc->has_fan_control;
@@ -725,7 +733,6 @@ static int xe_info_init(struct xe_device *xe,
}
xe->info.vram_flags = graphics_desc->vram_flags;
- xe->info.vm_max_level = graphics_desc->vm_max_level;
xe->info.has_asid = graphics_desc->has_asid;
xe->info.has_atomic_enable_pte_bit = graphics_desc->has_atomic_enable_pte_bit;
if (xe->info.platform != XE_PVC)
diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h
index 7c27e3742aa7..e59b59ec636d 100644
--- a/drivers/gpu/drm/xe/xe_pci_types.h
+++ b/drivers/gpu/drm/xe/xe_pci_types.h
@@ -31,6 +31,7 @@ struct xe_device_desc {
u8 max_remote_tiles:2;
u8 max_gt_per_tile:2;
u8 va_bits;
+ u8 vm_max_level;
u8 require_force_probe:1;
u8 is_dgfx:1;
@@ -53,7 +54,6 @@ struct xe_device_desc {
};
struct xe_graphics_desc {
- u8 vm_max_level;
u8 vram_flags;
u64 hw_engine_mask; /* hardware engines provided by graphics IP */
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 05/23] drm/xe: Move 'vram_flags' flag back to platform descriptor
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (3 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 04/23] drm/xe: Move 'vm_max_level' " Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 06/23] drm/xe: Move 'has_flatccs' " Matt Roper
` (21 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Lucas De Marchi
Restrictions and requirements on VRAM alignment are something that
should be tracked at the platform level rather than the IP level. Even
when mixing and matching various graphics, media, and display IP blocks,
the platform as a whole has to have consistent memory allocation
handling. This is also a trait that should be tied to the platform even
if the graphics IP itself is not present (e.g., if we disable the
primary GT via configfs).
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 8 ++++----
drivers/gpu/drm/xe/xe_pci_types.h | 3 +--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index c237313b04e1..8210066ccb32 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -63,7 +63,6 @@ static const struct xe_graphics_desc graphics_xehpg = {
BIT(XE_HW_ENGINE_CCS2) | BIT(XE_HW_ENGINE_CCS3),
XE_HP_FEATURES,
- .vram_flags = XE_VRAM_FLAGS_NEED64K,
.has_flat_ccs = 1,
};
@@ -79,7 +78,6 @@ static const struct xe_graphics_desc graphics_xehpc = {
BIT(XE_HW_ENGINE_CCS2) | BIT(XE_HW_ENGINE_CCS3),
XE_HP_FEATURES,
- .vram_flags = XE_VRAM_FLAGS_NEED64K,
.has_asid = 1,
.has_atomic_enable_pte_bit = 1,
@@ -270,7 +268,8 @@ static const u16 dg2_g12_ids[] = { INTEL_DG2_G12_IDS(NOP), 0 };
{ } \
}, \
.va_bits = 48, \
- .vm_max_level = 3
+ .vm_max_level = 3, \
+ .vram_flags = XE_VRAM_FLAGS_NEED64K
static const struct xe_device_desc ats_m_desc = {
.pre_gmdid_graphics_ip = &graphics_ip_xehpg,
@@ -310,6 +309,7 @@ static const __maybe_unused struct xe_device_desc pvc_desc = {
.require_force_probe = true,
.va_bits = 57,
.vm_max_level = 4,
+ .vram_flags = XE_VRAM_FLAGS_NEED64K,
.has_mbx_power_limits = false,
};
@@ -602,6 +602,7 @@ static int xe_info_init_early(struct xe_device *xe,
xe->info.dma_mask_size = desc->dma_mask_size;
xe->info.va_bits = desc->va_bits;
xe->info.vm_max_level = desc->vm_max_level;
+ xe->info.vram_flags = desc->vram_flags;
xe->info.is_dgfx = desc->is_dgfx;
xe->info.has_fan_control = desc->has_fan_control;
@@ -732,7 +733,6 @@ static int xe_info_init(struct xe_device *xe,
media_desc = NULL;
}
- xe->info.vram_flags = graphics_desc->vram_flags;
xe->info.has_asid = graphics_desc->has_asid;
xe->info.has_atomic_enable_pte_bit = graphics_desc->has_atomic_enable_pte_bit;
if (xe->info.platform != XE_PVC)
diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h
index e59b59ec636d..3189bd95bb6e 100644
--- a/drivers/gpu/drm/xe/xe_pci_types.h
+++ b/drivers/gpu/drm/xe/xe_pci_types.h
@@ -32,6 +32,7 @@ struct xe_device_desc {
u8 max_gt_per_tile:2;
u8 va_bits;
u8 vm_max_level;
+ u8 vram_flags;
u8 require_force_probe:1;
u8 is_dgfx:1;
@@ -54,8 +55,6 @@ struct xe_device_desc {
};
struct xe_graphics_desc {
- u8 vram_flags;
-
u64 hw_engine_mask; /* hardware engines provided by graphics IP */
u8 has_asid:1;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 06/23] drm/xe: Move 'has_flatccs' flag back to platform descriptor
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (4 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 05/23] drm/xe: Move 'vram_flags' " Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 07/23] drm/xe: Read VF GMD_ID with a specifically-allocated dummy GT Matt Roper
` (20 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Lucas De Marchi
FlatCCS presence/absence is a flag that should be tracked at the
platform level rather than the IP level. FlatCCS affects the
device-wide memory initialization and reservations so its effects are
not confined to a single IP block or GT. This is also a trait that
should be tied to the platform even if the graphics IP itself is not
present (e.g., if we disable the primary GT via configfs).
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 12 ++++++------
drivers/gpu/drm/xe/xe_pci_types.h | 2 +-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 8210066ccb32..076d944cce6a 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -63,8 +63,6 @@ static const struct xe_graphics_desc graphics_xehpg = {
BIT(XE_HW_ENGINE_CCS2) | BIT(XE_HW_ENGINE_CCS3),
XE_HP_FEATURES,
-
- .has_flat_ccs = 1,
};
static const struct xe_graphics_desc graphics_xehpc = {
@@ -95,7 +93,6 @@ static const struct xe_graphics_desc graphics_xelpg = {
#define XE2_GFX_FEATURES \
.has_asid = 1, \
.has_atomic_enable_pte_bit = 1, \
- .has_flat_ccs = 1, \
.has_range_tlb_inval = 1, \
.has_usm = 1, \
.has_64bit_timestamp = 1, \
@@ -259,6 +256,7 @@ static const u16 dg2_g12_ids[] = { INTEL_DG2_G12_IDS(NOP), 0 };
#define DG2_FEATURES \
DGFX_FEATURES, \
PLATFORM(DG2), \
+ .has_flat_ccs = 1, \
.has_gsc_nvm = 1, \
.has_heci_gscfi = 1, \
.subplatforms = (const struct xe_subplatform_desc[]) { \
@@ -329,6 +327,7 @@ static const struct xe_device_desc lnl_desc = {
PLATFORM(LUNARLAKE),
.dma_mask_size = 46,
.has_display = true,
+ .has_flat_ccs = 1,
.has_pxp = true,
.max_gt_per_tile = 2,
.needs_scratch = true,
@@ -342,6 +341,7 @@ static const struct xe_device_desc bmg_desc = {
.dma_mask_size = 46,
.has_display = true,
.has_fan_control = true,
+ .has_flat_ccs = 1,
.has_mbx_power_limits = true,
.has_gsc_nvm = 1,
.has_heci_cscfi = 1,
@@ -357,6 +357,7 @@ static const struct xe_device_desc ptl_desc = {
PLATFORM(PANTHERLAKE),
.dma_mask_size = 46,
.has_display = true,
+ .has_flat_ccs = 1,
.has_sriov = true,
.max_gt_per_tile = 2,
.needs_scratch = true,
@@ -606,6 +607,8 @@ static int xe_info_init_early(struct xe_device *xe,
xe->info.is_dgfx = desc->is_dgfx;
xe->info.has_fan_control = desc->has_fan_control;
+ /* runtime fusing may force flat_ccs to disabled later */
+ xe->info.has_flat_ccs = desc->has_flat_ccs;
xe->info.has_mbx_power_limits = desc->has_mbx_power_limits;
xe->info.has_gsc_nvm = desc->has_gsc_nvm;
xe->info.has_heci_gscfi = desc->has_heci_gscfi;
@@ -738,9 +741,6 @@ static int xe_info_init(struct xe_device *xe,
if (xe->info.platform != XE_PVC)
xe->info.has_device_atomics_on_smem = 1;
- /* Runtime detection may change this later */
- xe->info.has_flat_ccs = graphics_desc->has_flat_ccs;
-
xe->info.has_range_tlb_inval = graphics_desc->has_range_tlb_inval;
xe->info.has_usm = graphics_desc->has_usm;
xe->info.has_64bit_timestamp = graphics_desc->has_64bit_timestamp;
diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h
index 3189bd95bb6e..a4451bdc79fb 100644
--- a/drivers/gpu/drm/xe/xe_pci_types.h
+++ b/drivers/gpu/drm/xe/xe_pci_types.h
@@ -39,6 +39,7 @@ struct xe_device_desc {
u8 has_display:1;
u8 has_fan_control:1;
+ u8 has_flat_ccs:1;
u8 has_gsc_nvm:1;
u8 has_heci_gscfi:1;
u8 has_heci_cscfi:1;
@@ -59,7 +60,6 @@ struct xe_graphics_desc {
u8 has_asid:1;
u8 has_atomic_enable_pte_bit:1;
- u8 has_flat_ccs:1;
u8 has_indirect_ring_state:1;
u8 has_range_tlb_inval:1;
u8 has_usm:1;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 07/23] drm/xe: Read VF GMD_ID with a specifically-allocated dummy GT
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (5 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 06/23] drm/xe: Move 'has_flatccs' " Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 08/23] drm/xe: Move primary GT allocation from xe_tile_init_early to xe_tile_init Matt Roper
` (19 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Michal Wajdeczko, Lucas De Marchi
SRIOV VF initialization has a bit of a chicken and egg design problem.
Determining the IP version of the graphics and media IPs can't be done
via direct register reads as it is on PF or native and instead requires
querying the GuC. However initialization of the GT, including its GuC,
needs to wait until after we know the IP versions so that the proper
initialization steps for the platform/IP are followed.
Currently the (somewhat hacky) solution is to manually fill out just
enough fields in tile 0's primary GT structure to make it look as if the
GT has been initialized so that the GuC can be partially initialized and
queried to obtain the GMD_ID values. When the GT gets properly
initialized during the regular flows, the hacked-up values will get
overwritten as part of the general initialization flows.
Rather than using tile 0's primary GT structure to hold the hacked up
values for querying every GT on every tile, instead allocate a dedicated
dummy structure. This will allow us to move the tile->primary_gt's
allocation to a more consistent place later in the initialization flow
in future patches (i.e., we shouldn't even allocate this GT structure if
the GT is disabled/unavailable). It also helps ensure there can't be
any accidental leakage of initialization or state between the dummy
initialization for GMD_ID and the real driver initialization of the GT.
v2:
- Initialize gt->tile for temporary GT. (CI, Michal)
- Use scope-based cleanup handler to free temp GT. (Michal)
- Propagate actual error code from xe_gt_sriov_vf_bootstrap() rather
than just setting IP version to 0.0 now that read_gmdid() can return
an error. (Michal)
v3:
- Explicitly initialize gt to NULL, just in case something else gets
inserted before the kzalloc() in the future. (Lucas)
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/tests/xe_pci.c | 6 ++-
drivers/gpu/drm/xe/xe_pci.c | 70 ++++++++++++++++++-------------
2 files changed, 45 insertions(+), 31 deletions(-)
diff --git a/drivers/gpu/drm/xe/tests/xe_pci.c b/drivers/gpu/drm/xe/tests/xe_pci.c
index 69e2840c7ef0..0b1401b88cb8 100644
--- a/drivers/gpu/drm/xe/tests/xe_pci.c
+++ b/drivers/gpu/drm/xe/tests/xe_pci.c
@@ -307,8 +307,8 @@ const void *xe_pci_id_gen_param(struct kunit *test, const void *prev, char *desc
}
EXPORT_SYMBOL_IF_KUNIT(xe_pci_id_gen_param);
-static void fake_read_gmdid(struct xe_device *xe, enum xe_gmdid_type type,
- u32 *ver, u32 *revid)
+static int fake_read_gmdid(struct xe_device *xe, enum xe_gmdid_type type,
+ u32 *ver, u32 *revid)
{
struct kunit *test = kunit_get_current_test();
struct xe_pci_fake_data *data = test->priv;
@@ -320,6 +320,8 @@ static void fake_read_gmdid(struct xe_device *xe, enum xe_gmdid_type type,
*ver = data->graphics_verx100;
*revid = xe_step_to_gmdid(data->step.graphics);
}
+
+ return 0;
}
static void fake_xe_info_probe_tile_count(struct xe_device *xe)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 076d944cce6a..7fb960b61bf4 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -466,7 +466,7 @@ enum xe_gmdid_type {
GMDID_MEDIA
};
-static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u32 *revid)
+static int read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver, u32 *revid)
{
struct xe_mmio *mmio = xe_root_tile_mmio(xe);
struct xe_reg gmdid_reg = GMD_ID;
@@ -475,22 +475,24 @@ static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver,
KUNIT_STATIC_STUB_REDIRECT(read_gmdid, xe, type, ver, revid);
if (IS_SRIOV_VF(xe)) {
- struct xe_gt *gt = xe_root_mmio_gt(xe);
-
/*
* To get the value of the GMDID register, VFs must obtain it
* from the GuC using MMIO communication.
*
- * Note that at this point the xe_gt is not fully uninitialized
- * and only basic access to MMIO registers is possible. To use
- * our existing GuC communication functions we must perform at
- * least basic xe_gt and xe_guc initialization.
- *
- * Since to obtain the value of GMDID_MEDIA we need to use the
- * media GuC, temporarily tweak the gt type.
+ * Note that at this point the GTs are not initialized and only
+ * tile-level access to MMIO registers is possible. To use our
+ * existing GuC communication functions we must create a dummy
+ * GT structure and perform at least basic xe_gt and xe_guc
+ * initialization.
*/
- xe_gt_assert(gt, gt->info.type == XE_GT_TYPE_UNINITIALIZED);
+ struct xe_gt *gt __free(kfree) = NULL;
+ int err;
+ gt = kzalloc(sizeof(*gt), GFP_KERNEL);
+ if (!gt)
+ return -ENOMEM;
+
+ gt->tile = &xe->tiles[0];
if (type == GMDID_MEDIA) {
gt->info.id = 1;
gt->info.type = XE_GT_TYPE_MEDIA;
@@ -502,15 +504,11 @@ static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver,
xe_gt_mmio_init(gt);
xe_guc_comm_init_early(>->uc.guc);
- /* Don't bother with GMDID if failed to negotiate the GuC ABI */
- val = xe_gt_sriov_vf_bootstrap(gt) ? 0 : xe_gt_sriov_vf_gmdid(gt);
+ err = xe_gt_sriov_vf_bootstrap(gt);
+ if (err)
+ return err;
- /*
- * Only undo xe_gt.info here, the remaining changes made above
- * will be overwritten as part of the regular initialization.
- */
- gt->info.id = 0;
- gt->info.type = XE_GT_TYPE_UNINITIALIZED;
+ val = xe_gt_sriov_vf_gmdid(gt);
} else {
/*
* GMD_ID is a GT register, but at this point in the driver
@@ -528,6 +526,8 @@ static void read_gmdid(struct xe_device *xe, enum xe_gmdid_type type, u32 *ver,
*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);
+
+ return 0;
}
static const struct xe_ip *find_graphics_ip(unsigned int verx100)
@@ -554,18 +554,21 @@ static const struct xe_ip *find_media_ip(unsigned int verx100)
* Read IP version from hardware and select graphics/media IP descriptors
* based on the result.
*/
-static void handle_gmdid(struct xe_device *xe,
- const struct xe_ip **graphics_ip,
- const struct xe_ip **media_ip,
- u32 *graphics_revid,
- u32 *media_revid)
+static int handle_gmdid(struct xe_device *xe,
+ const struct xe_ip **graphics_ip,
+ const struct xe_ip **media_ip,
+ u32 *graphics_revid,
+ u32 *media_revid)
{
u32 ver;
+ int ret;
*graphics_ip = NULL;
*media_ip = NULL;
- read_gmdid(xe, GMDID_GRAPHICS, &ver, graphics_revid);
+ ret = read_gmdid(xe, GMDID_GRAPHICS, &ver, graphics_revid);
+ if (ret)
+ return ret;
*graphics_ip = find_graphics_ip(ver);
if (!*graphics_ip) {
@@ -573,16 +576,21 @@ static void handle_gmdid(struct xe_device *xe,
ver / 100, ver % 100);
}
- read_gmdid(xe, GMDID_MEDIA, &ver, media_revid);
+ ret = read_gmdid(xe, GMDID_MEDIA, &ver, media_revid);
+ if (ret)
+ return ret;
+
/* Media may legitimately be fused off / not present */
if (ver == 0)
- return;
+ return 0;
*media_ip = find_media_ip(ver);
if (!*media_ip) {
drm_err(&xe->drm, "Hardware reports unknown media version %u.%02u\n",
ver / 100, ver % 100);
}
+
+ return 0;
}
/*
@@ -693,6 +701,7 @@ static int xe_info_init(struct xe_device *xe,
const struct xe_media_desc *media_desc;
struct xe_tile *tile;
struct xe_gt *gt;
+ int ret;
u8 id;
/*
@@ -708,8 +717,11 @@ static int xe_info_init(struct xe_device *xe,
xe->info.step = xe_step_pre_gmdid_get(xe);
} else {
xe_assert(xe, !desc->pre_gmdid_media_ip);
- handle_gmdid(xe, &graphics_ip, &media_ip,
- &graphics_gmdid_revid, &media_gmdid_revid);
+ ret = handle_gmdid(xe, &graphics_ip, &media_ip,
+ &graphics_gmdid_revid, &media_gmdid_revid);
+ if (ret)
+ return ret;
+
xe->info.step = xe_step_gmdid_get(xe,
graphics_gmdid_revid,
media_gmdid_revid);
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 08/23] drm/xe: Move primary GT allocation from xe_tile_init_early to xe_tile_init
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (6 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 07/23] drm/xe: Read VF GMD_ID with a specifically-allocated dummy GT Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 09/23] drm/xe: Skip L2 / TDF cache flushes if primary GT is disabled Matt Roper
` (18 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Michal Wajdeczko, Lucas De Marchi
During the early days of the Xe driver, there were cases where we
accessed some fields in the primary GT's xe_gt structure before the GT
itself was formally initialized; this required that the structure itself
be allocated during xe_tile_init_early(). A lot of refactoring of the
device probe has happened since that time and there's no longer a need
to allocate the primary GT early. Move the allocation into
xe_info_init() where GT initialization happens and where we're doing the
allocation of the media GT.
v2:
- Only make this change after a separate patch to perform VF GMD_ID
lookup with a dummy GT instead of xe_root_mmio_gt().
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 4 ++++
drivers/gpu/drm/xe/xe_tile.c | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 7fb960b61bf4..4b8dd40decd8 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -776,6 +776,10 @@ static int xe_info_init(struct xe_device *xe,
for_each_tile(tile, xe, id) {
int err;
+ tile->primary_gt = xe_gt_alloc(tile);
+ if (IS_ERR(tile->primary_gt))
+ return PTR_ERR(tile->primary_gt);
+
gt = tile->primary_gt;
gt->info.type = XE_GT_TYPE_MAIN;
gt->info.id = tile->id * xe->info.max_gt_per_tile;
diff --git a/drivers/gpu/drm/xe/xe_tile.c b/drivers/gpu/drm/xe/xe_tile.c
index 8fd6ee990d14..4f4f9a5c43af 100644
--- a/drivers/gpu/drm/xe/xe_tile.c
+++ b/drivers/gpu/drm/xe/xe_tile.c
@@ -157,10 +157,6 @@ int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id)
if (err)
return err;
- tile->primary_gt = xe_gt_alloc(tile);
- if (IS_ERR(tile->primary_gt))
- return PTR_ERR(tile->primary_gt);
-
xe_pcode_init(tile);
return 0;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 09/23] drm/xe: Skip L2 / TDF cache flushes if primary GT is disabled
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (7 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 08/23] drm/xe: Move primary GT allocation from xe_tile_init_early to xe_tile_init Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 10/23] drm/xe/query: Report hwconfig size as 0 " Matt Roper
` (17 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Tejas Upadhyay
If the primary GT is disabled via configfs, GT-side L2 and TD cache
flushes are unnecessary since nothing is using/filling these caches.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 6f8f72fd1b13..e2aa79a78938 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1062,6 +1062,8 @@ void xe_device_l2_flush(struct xe_device *xe)
unsigned int fw_ref;
gt = xe_root_mmio_gt(xe);
+ if (!gt)
+ return;
if (!XE_GT_WA(gt, 16023588340))
return;
@@ -1107,6 +1109,9 @@ void xe_device_td_flush(struct xe_device *xe)
return;
root_gt = xe_root_mmio_gt(xe);
+ if (!root_gt)
+ return;
+
if (XE_GT_WA(root_gt, 16023588340)) {
/* A transient flush is not sufficient: flush the L2 */
xe_device_l2_flush(xe);
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 10/23] drm/xe/query: Report hwconfig size as 0 if primary GT is disabled
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (8 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 09/23] drm/xe: Skip L2 / TDF cache flushes if primary GT is disabled Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 11/23] drm/xe/pmu: Initialize PMU event types based on first available GT Matt Roper
` (16 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Tejas Upadhyay
The hwconfig table is part of the primary GT's GuC firmware. If the
primary GT is disabled, the hwconfig is unavailable and should be
reported to userspace as having size 0.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
---
drivers/gpu/drm/xe/xe_query.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_query.c b/drivers/gpu/drm/xe/xe_query.c
index 2e9ff33ed2fe..1c0915e2cc16 100644
--- a/drivers/gpu/drm/xe/xe_query.c
+++ b/drivers/gpu/drm/xe/xe_query.c
@@ -436,7 +436,7 @@ static int query_hwconfig(struct xe_device *xe,
struct drm_xe_device_query *query)
{
struct xe_gt *gt = xe_root_mmio_gt(xe);
- size_t size = xe_guc_hwconfig_size(>->uc.guc);
+ size_t size = gt ? xe_guc_hwconfig_size(>->uc.guc) : 0;
void __user *query_ptr = u64_to_user_ptr(query->data);
void *hwconfig;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 11/23] drm/xe/pmu: Initialize PMU event types based on first available GT
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (9 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 10/23] drm/xe/query: Report hwconfig size as 0 " Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 12/23] drm/xe: Check for primary GT before looking up Wa_22019338487 Matt Roper
` (15 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Lucas De Marchi
GT ID#0 (primary GT on tile 0) may not always be available if the
primary GT has been disabled via configfs. Instead use the first
available GT when determining which PMU events are supported. If there
are no GTs, then don't advertise any GT-related events.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
---
drivers/gpu/drm/xe/xe_pmu.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_pmu.c b/drivers/gpu/drm/xe/xe_pmu.c
index cab51d826345..c63335eb69e5 100644
--- a/drivers/gpu/drm/xe/xe_pmu.c
+++ b/drivers/gpu/drm/xe/xe_pmu.c
@@ -497,7 +497,12 @@ static const struct attribute_group *pmu_events_attr_update[] = {
static void set_supported_events(struct xe_pmu *pmu)
{
struct xe_device *xe = container_of(pmu, typeof(*xe), pmu);
- struct xe_gt *gt = xe_device_get_gt(xe, 0);
+ struct xe_gt *gt;
+ int id;
+
+ /* If there are no GTs, don't support any GT-related events */
+ if (xe->info.gt_count == 0)
+ return;
if (!xe->info.skip_guc_pc) {
pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_GT_C6_RESIDENCY);
@@ -505,6 +510,10 @@ static void set_supported_events(struct xe_pmu *pmu)
pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_GT_REQUESTED_FREQUENCY);
}
+ /* Find the first available GT to query engine event capabilities */
+ for_each_gt(gt, xe, id)
+ break;
+
if (xe_guc_engine_activity_supported(>->uc.guc)) {
pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_ENGINE_ACTIVE_TICKS);
pmu->supported_events |= BIT_ULL(XE_PMU_EVENT_ENGINE_TOTAL_TICKS);
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 12/23] drm/xe: Check for primary GT before looking up Wa_22019338487
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (10 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 11/23] drm/xe/pmu: Initialize PMU event types based on first available GT Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 13/23] drm/xe: Make display part of Wa_22019338487 a device workaround Matt Roper
` (14 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa, Lucas De Marchi
If the primary GT is disabled via configfs, we need to make sure that we
don't search for this workaround on a NULL xe_gt pointer. Since we can
disable the primary GT only on igpu platforms, the media GT is the one
we'd want to check anyway for this workaround.
The ternary operators in ggtt_update_access_counter() were getting a bit
long/complicated, so rewrite them with regular if/else statements.
While we're at it, throw in a couple extra assertions to make sure that
we're truly picking the expected GT according to igpu/dgpu type.
v2:
- Adjust indentation/wrapping; it's easier to read this with longer,
unwrapped lines. (Lucas)
- Tweak wording of commit message to remove ambiguity. (Gustavo)
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_ggtt.c | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
index aca7ae5489b9..40680f0c49a1 100644
--- a/drivers/gpu/drm/xe/xe_ggtt.c
+++ b/drivers/gpu/drm/xe/xe_ggtt.c
@@ -107,10 +107,23 @@ static unsigned int probe_gsm_size(struct pci_dev *pdev)
static void ggtt_update_access_counter(struct xe_ggtt *ggtt)
{
struct xe_tile *tile = ggtt->tile;
- struct xe_gt *affected_gt = XE_GT_WA(tile->primary_gt, 22019338487) ?
- tile->primary_gt : tile->media_gt;
- struct xe_mmio *mmio = &affected_gt->mmio;
- u32 max_gtt_writes = XE_GT_WA(ggtt->tile->primary_gt, 22019338487) ? 1100 : 63;
+ struct xe_gt *affected_gt;
+ u32 max_gtt_writes;
+
+ if (tile->primary_gt && XE_GT_WA(tile->primary_gt, 22019338487)) {
+ affected_gt = tile->primary_gt;
+ max_gtt_writes = 1100;
+
+ /* Only expected to apply to primary GT on dgpu platforms */
+ xe_tile_assert(tile, IS_DGFX(tile_to_xe(tile)));
+ } else {
+ affected_gt = tile->media_gt;
+ max_gtt_writes = 63;
+
+ /* Only expected to apply to media GT on igpu platforms */
+ xe_tile_assert(tile, !IS_DGFX(tile_to_xe(tile)));
+ }
+
/*
* Wa_22019338487: GMD_ID is a RO register, a dummy write forces gunit
* to wait for completion of prior GTT writes before letting this through.
@@ -119,7 +132,7 @@ static void ggtt_update_access_counter(struct xe_ggtt *ggtt)
lockdep_assert_held(&ggtt->lock);
if ((++ggtt->access_count % max_gtt_writes) == 0) {
- xe_mmio_write32(mmio, GMD_ID, 0x0);
+ xe_mmio_write32(&affected_gt->mmio, GMD_ID, 0x0);
ggtt->access_count = 0;
}
}
@@ -291,10 +304,10 @@ int xe_ggtt_init_early(struct xe_ggtt *ggtt)
ggtt->size = GUC_GGTT_TOP;
if (GRAPHICS_VERx100(xe) >= 1270)
- ggtt->pt_ops = (ggtt->tile->media_gt &&
- XE_GT_WA(ggtt->tile->media_gt, 22019338487)) ||
- XE_GT_WA(ggtt->tile->primary_gt, 22019338487) ?
- &xelpg_pt_wa_ops : &xelpg_pt_ops;
+ ggtt->pt_ops =
+ (ggtt->tile->media_gt && XE_GT_WA(ggtt->tile->media_gt, 22019338487)) ||
+ (ggtt->tile->primary_gt && XE_GT_WA(ggtt->tile->primary_gt, 22019338487)) ?
+ &xelpg_pt_wa_ops : &xelpg_pt_ops;
else
ggtt->pt_ops = &xelp_pt_ops;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 13/23] drm/xe: Make display part of Wa_22019338487 a device workaround
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (11 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 12/23] drm/xe: Check for primary GT before looking up Wa_22019338487 Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 14/23] drm/xe/irq: Don't try to lookup engine masks for non-existent primary GT Matt Roper
` (13 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa
The display part of Wa_22019338487 (i.e., avoiding use of stolen memory)
is using a platform test rather than an graphics/media IP test. Since
this workaround is focused on non-GT uses of stolen memory, it makes
sense that we'd want to still apply the workaround on affected platforms
even if the GTs themselves are disabled via configfs.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/display/intel_fbdev_fb.c | 4 ++--
drivers/gpu/drm/xe/display/xe_plane_initial.c | 4 ++--
drivers/gpu/drm/xe/xe_device_wa_oob.rules | 1 +
drivers/gpu/drm/xe/xe_wa_oob.rules | 1 -
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
index 35a5b07eeba4..af72f7305e5a 100644
--- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
@@ -10,7 +10,7 @@
#include "xe_ttm_stolen_mgr.h"
#include "xe_wa.h"
-#include <generated/xe_wa_oob.h>
+#include <generated/xe_device_wa_oob.h>
struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int size)
{
@@ -19,7 +19,7 @@ struct drm_gem_object *intel_fbdev_fb_bo_create(struct drm_device *drm, int size
obj = ERR_PTR(-ENODEV);
- if (!IS_DGFX(xe) && !XE_GT_WA(xe_root_mmio_gt(xe), 22019338487_display)) {
+ if (!IS_DGFX(xe) && !XE_DEVICE_WA(xe, 22019338487_display)) {
obj = xe_bo_create_pin_map_novm(xe, xe_device_get_root_tile(xe),
size,
ttm_bo_type_kernel, XE_BO_FLAG_SCANOUT |
diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c b/drivers/gpu/drm/xe/display/xe_plane_initial.c
index 94f00def811b..12d25c5290fd 100644
--- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
+++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
@@ -25,7 +25,7 @@
#include "xe_vram_types.h"
#include "xe_wa.h"
-#include <generated/xe_wa_oob.h>
+#include <generated/xe_device_wa_oob.h>
void intel_plane_initial_vblank_wait(struct intel_crtc *crtc)
{
@@ -123,7 +123,7 @@ initial_plane_bo(struct xe_device *xe,
phys_base = base;
flags |= XE_BO_FLAG_STOLEN;
- if (XE_GT_WA(xe_root_mmio_gt(xe), 22019338487_display))
+ if (XE_DEVICE_WA(xe, 22019338487_display))
return NULL;
/*
diff --git a/drivers/gpu/drm/xe/xe_device_wa_oob.rules b/drivers/gpu/drm/xe/xe_device_wa_oob.rules
index 3a0c4ccc4224..3cc93f0e77f8 100644
--- a/drivers/gpu/drm/xe/xe_device_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_device_wa_oob.rules
@@ -1,2 +1,3 @@
15015404425 PLATFORM(LUNARLAKE)
PLATFORM(PANTHERLAKE)
+22019338487_display PLATFORM(LUNARLAKE)
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
index f3a6d5d239ce..eb761d30e066 100644
--- a/drivers/gpu/drm/xe/xe_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
@@ -45,7 +45,6 @@
22019338487 MEDIA_VERSION(2000)
GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_not_sriov_vf)
MEDIA_VERSION(3000), MEDIA_STEP(A0, B0), FUNC(xe_rtp_match_not_sriov_vf)
-22019338487_display PLATFORM(LUNARLAKE)
16023588340 GRAPHICS_VERSION(2001), FUNC(xe_rtp_match_not_sriov_vf)
14019789679 GRAPHICS_VERSION(1255)
GRAPHICS_VERSION_RANGE(1270, 2004)
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 14/23] drm/xe/irq: Don't try to lookup engine masks for non-existent primary GT
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (12 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 13/23] drm/xe: Make display part of Wa_22019338487 a device workaround Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 15/23] drm/xe: Handle Wa_22010954014 and Wa_14022085890 as device workarounds Matt Roper
` (12 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Tejas Upadhyay
If the primary GT is disabled via configfs, we shouldn't try to access
it to lookup BCS/CCS engine masks. For the purposes of IRQ reset (which
masks & disables interrupts in an sgunit register), assume all possible
instances are present.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
---
drivers/gpu/drm/xe/xe_irq.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index 9b938f1edaf5..838fb512b777 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -494,11 +494,15 @@ static irqreturn_t dg1_irq_handler(int irq, void *arg)
static void gt_irq_reset(struct xe_tile *tile)
{
struct xe_mmio *mmio = &tile->mmio;
+ u32 ccs_mask = ~0;
+ u32 bcs_mask = ~0;
- u32 ccs_mask = xe_hw_engine_mask_per_class(tile->primary_gt,
- XE_ENGINE_CLASS_COMPUTE);
- u32 bcs_mask = xe_hw_engine_mask_per_class(tile->primary_gt,
- XE_ENGINE_CLASS_COPY);
+ if (tile->primary_gt) {
+ ccs_mask = xe_hw_engine_mask_per_class(tile->primary_gt,
+ XE_ENGINE_CLASS_COMPUTE);
+ bcs_mask = xe_hw_engine_mask_per_class(tile->primary_gt,
+ XE_ENGINE_CLASS_COPY);
+ }
/* Disable RCS, BCS, VCS and VECS class engines. */
xe_mmio_write32(mmio, RENDER_COPY_INTR_ENABLE, 0);
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 15/23] drm/xe: Handle Wa_22010954014 and Wa_14022085890 as device workarounds
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (13 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 14/23] drm/xe/irq: Don't try to lookup engine masks for non-existent primary GT Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:09 ` [PATCH v5 16/23] drm/xe/rtp: Pass xe_device parameter to FUNC matches Matt Roper
` (11 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa
When Wa_22010954014 and Wa_14022085890 were first implemented, we didn't
have a device workaround infrastructure so we hacked them into the GT
workaround list. Now that we have proper device workaround support,
move them to the proper place. Note that Wa_14022085890 specifically
applies to BMG-G21 platforms, so this requires defining a BMG
subplatform to capture the correct subset of device IDs.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_device_wa_oob.rules | 2 ++
drivers/gpu/drm/xe/xe_guc_pc.c | 3 ++-
drivers/gpu/drm/xe/xe_pci.c | 6 ++++++
drivers/gpu/drm/xe/xe_platform_types.h | 1 +
drivers/gpu/drm/xe/xe_wa.c | 2 +-
drivers/gpu/drm/xe/xe_wa_oob.rules | 5 -----
include/drm/intel/pciids.h | 7 +++++--
7 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device_wa_oob.rules b/drivers/gpu/drm/xe/xe_device_wa_oob.rules
index 3cc93f0e77f8..55ba01bc8f38 100644
--- a/drivers/gpu/drm/xe/xe_device_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_device_wa_oob.rules
@@ -1,3 +1,5 @@
+22010954014 PLATFORM(DG2)
15015404425 PLATFORM(LUNARLAKE)
PLATFORM(PANTHERLAKE)
22019338487_display PLATFORM(LUNARLAKE)
+14022085890 SUBPLATFORM(BATTLEMAGE, G21)
diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c
index 3c0feb50a1e2..ff22235857f8 100644
--- a/drivers/gpu/drm/xe/xe_guc_pc.c
+++ b/drivers/gpu/drm/xe/xe_guc_pc.c
@@ -14,6 +14,7 @@
#include <drm/drm_managed.h>
#include <drm/drm_print.h>
+#include <generated/xe_device_wa_oob.h>
#include <generated/xe_wa_oob.h>
#include "abi/guc_actions_slpc_abi.h"
@@ -886,7 +887,7 @@ static int pc_adjust_freq_bounds(struct xe_guc_pc *pc)
if (pc_get_min_freq(pc) > pc->rp0_freq)
ret = pc_set_min_freq(pc, pc->rp0_freq);
- if (XE_GT_WA(tile->primary_gt, 14022085890))
+ if (XE_DEVICE_WA(tile_to_xe(tile), 14022085890))
ret = pc_set_min_freq(pc, max(BMG_MIN_FREQ, pc_get_min_freq(pc)));
out:
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 4b8dd40decd8..00f6757b6eec 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -335,6 +335,8 @@ static const struct xe_device_desc lnl_desc = {
.vm_max_level = 4,
};
+static const u16 bmg_g21_ids[] = { INTEL_BMG_G21_IDS(NOP), 0 };
+
static const struct xe_device_desc bmg_desc = {
DGFX_FEATURES,
PLATFORM(BATTLEMAGE),
@@ -349,6 +351,10 @@ static const struct xe_device_desc bmg_desc = {
.has_sriov = true,
.max_gt_per_tile = 2,
.needs_scratch = true,
+ .subplatforms = (const struct xe_subplatform_desc[]) {
+ { XE_SUBPLATFORM_BATTLEMAGE_G21, "G21", bmg_g21_ids },
+ { }
+ },
.va_bits = 48,
.vm_max_level = 4,
};
diff --git a/drivers/gpu/drm/xe/xe_platform_types.h b/drivers/gpu/drm/xe/xe_platform_types.h
index d08574c4cdb8..3e332214c7bb 100644
--- a/drivers/gpu/drm/xe/xe_platform_types.h
+++ b/drivers/gpu/drm/xe/xe_platform_types.h
@@ -34,6 +34,7 @@ enum xe_subplatform {
XE_SUBPLATFORM_DG2_G10,
XE_SUBPLATFORM_DG2_G11,
XE_SUBPLATFORM_DG2_G12,
+ XE_SUBPLATFORM_BATTLEMAGE_G21,
};
#endif
diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
index c60159a13001..aa1b69f48f6f 100644
--- a/drivers/gpu/drm/xe/xe_wa.c
+++ b/drivers/gpu/drm/xe/xe_wa.c
@@ -1138,6 +1138,6 @@ void xe_wa_apply_tile_workarounds(struct xe_tile *tile)
if (IS_SRIOV_VF(tile->xe))
return;
- if (XE_GT_WA(tile->primary_gt, 22010954014))
+ if (XE_DEVICE_WA(tile->xe, 22010954014))
xe_mmio_rmw32(mmio, XEHP_CLOCK_GATE_DIS, 0, SGSI_SIDECLK_DIS);
}
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
index eb761d30e066..113a62f1b541 100644
--- a/drivers/gpu/drm/xe/xe_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
@@ -14,7 +14,6 @@
14016763929 SUBPLATFORM(DG2, G10)
SUBPLATFORM(DG2, G12)
16017236439 PLATFORM(PVC)
-22010954014 PLATFORM(DG2)
14019821291 MEDIA_VERSION_RANGE(1300, 2000)
14015076503 MEDIA_VERSION(1300)
16020292621 GRAPHICS_VERSION(2004), GRAPHICS_STEP(A0, B0)
@@ -74,9 +73,5 @@
16023683509 MEDIA_VERSION(2000), FUNC(xe_rtp_match_psmi_enabled)
MEDIA_VERSION(3000), MEDIA_STEP(A0, B0), FUNC(xe_rtp_match_psmi_enabled)
-# SoC workaround - currently applies to all platforms with the following
-# primary GT GMDID
-14022085890 GRAPHICS_VERSION(2001)
-
15015404425_disable PLATFORM(PANTHERLAKE), MEDIA_STEP(B0, FOREVER)
16026007364 MEDIA_VERSION(3000)
diff --git a/include/drm/intel/pciids.h b/include/drm/intel/pciids.h
index 69d4ae92d822..452c1de606ff 100644
--- a/include/drm/intel/pciids.h
+++ b/include/drm/intel/pciids.h
@@ -849,7 +849,7 @@
MACRO__(0x64B0, ## __VA_ARGS__)
/* BMG */
-#define INTEL_BMG_IDS(MACRO__, ...) \
+#define INTEL_BMG_G21_IDS(MACRO__, ...) \
MACRO__(0xE202, ## __VA_ARGS__), \
MACRO__(0xE209, ## __VA_ARGS__), \
MACRO__(0xE20B, ## __VA_ARGS__), \
@@ -858,7 +858,10 @@
MACRO__(0xE210, ## __VA_ARGS__), \
MACRO__(0xE211, ## __VA_ARGS__), \
MACRO__(0xE212, ## __VA_ARGS__), \
- MACRO__(0xE216, ## __VA_ARGS__), \
+ MACRO__(0xE216, ## __VA_ARGS__)
+
+#define INTEL_BMG_IDS(MACRO__, ...) \
+ INTEL_BMG_G21_IDS(MACRO__, __VA_ARGS__), \
MACRO__(0xE220, ## __VA_ARGS__), \
MACRO__(0xE221, ## __VA_ARGS__), \
MACRO__(0xE222, ## __VA_ARGS__), \
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 16/23] drm/xe/rtp: Pass xe_device parameter to FUNC matches
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (14 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 15/23] drm/xe: Handle Wa_22010954014 and Wa_14022085890 as device workarounds Matt Roper
@ 2025-10-13 20:09 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 17/23] drm/xe: Bypass Wa_14018094691 when primary GT is disabled Matt Roper
` (10 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:09 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa
FUNC matches in RTP only pass the GT and hwe, preventing them from being
used effectively in device workarounds. Add an additional xe_device
parameter so that we can use them in device workarounds where a GT may
not be available.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/tests/xe_rtp_test.c | 6 ++++--
drivers/gpu/drm/xe/xe_hw_engine.c | 10 ++++++----
drivers/gpu/drm/xe/xe_reg_whitelist.c | 3 ++-
drivers/gpu/drm/xe/xe_rtp.c | 24 +++++++++++++-----------
drivers/gpu/drm/xe/xe_rtp.h | 18 +++++++++++++-----
drivers/gpu/drm/xe/xe_rtp_types.h | 4 +++-
6 files changed, 41 insertions(+), 24 deletions(-)
diff --git a/drivers/gpu/drm/xe/tests/xe_rtp_test.c b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
index b0254b014fe4..d2255a59e58f 100644
--- a/drivers/gpu/drm/xe/tests/xe_rtp_test.c
+++ b/drivers/gpu/drm/xe/tests/xe_rtp_test.c
@@ -48,12 +48,14 @@ struct rtp_test_case {
const struct xe_rtp_entry *entries;
};
-static bool match_yes(const struct xe_gt *gt, const struct xe_hw_engine *hwe)
+static bool match_yes(const struct xe_device *xe, const struct xe_gt *gt,
+ const struct xe_hw_engine *hwe)
{
return true;
}
-static bool match_no(const struct xe_gt *gt, const struct xe_hw_engine *hwe)
+static bool match_no(const struct xe_device *xe, const struct xe_gt *gt,
+ const struct xe_hw_engine *hwe)
{
return false;
}
diff --git a/drivers/gpu/drm/xe/xe_hw_engine.c b/drivers/gpu/drm/xe/xe_hw_engine.c
index 1cf623b4a5bc..cba4375525c7 100644
--- a/drivers/gpu/drm/xe/xe_hw_engine.c
+++ b/drivers/gpu/drm/xe/xe_hw_engine.c
@@ -346,17 +346,19 @@ void xe_hw_engine_enable_ring(struct xe_hw_engine *hwe)
xe_hw_engine_mmio_read32(hwe, RING_MI_MODE(0));
}
-static bool xe_hw_engine_match_fixed_cslice_mode(const struct xe_gt *gt,
+static bool xe_hw_engine_match_fixed_cslice_mode(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
return xe_gt_ccs_mode_enabled(gt) &&
- xe_rtp_match_first_render_or_compute(gt, hwe);
+ xe_rtp_match_first_render_or_compute(xe, gt, hwe);
}
-static bool xe_rtp_cfeg_wmtp_disabled(const struct xe_gt *gt,
+static bool xe_rtp_cfeg_wmtp_disabled(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
- if (GRAPHICS_VER(gt_to_xe(gt)) < 20)
+ if (GRAPHICS_VER(xe) < 20)
return false;
if (hwe->class != XE_ENGINE_CLASS_COMPUTE &&
diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
index 23f6c81d9994..690bc327a363 100644
--- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
+++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
@@ -19,7 +19,8 @@
#undef XE_REG_MCR
#define XE_REG_MCR(...) XE_REG(__VA_ARGS__, .mcr = 1)
-static bool match_not_render(const struct xe_gt *gt,
+static bool match_not_render(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
return hwe->class != XE_ENGINE_CLASS_RENDER;
diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index b5f430d59f80..66707cc89ec9 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -133,10 +133,7 @@ static bool rule_matches(const struct xe_device *xe,
match = hwe->class != r->engine_class;
break;
case XE_RTP_MATCH_FUNC:
- if (drm_WARN_ON(&xe->drm, !gt))
- return false;
-
- match = r->match_func(gt, hwe);
+ match = r->match_func(xe, gt, hwe);
break;
default:
drm_warn(&xe->drm, "Invalid RTP match %u\n",
@@ -343,13 +340,15 @@ void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
}
EXPORT_SYMBOL_IF_KUNIT(xe_rtp_process);
-bool xe_rtp_match_even_instance(const struct xe_gt *gt,
+bool xe_rtp_match_even_instance(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
return hwe->instance % 2 == 0;
}
-bool xe_rtp_match_first_render_or_compute(const struct xe_gt *gt,
+bool xe_rtp_match_first_render_or_compute(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
u64 render_compute_mask = gt->info.engine_mask &
@@ -359,19 +358,22 @@ bool xe_rtp_match_first_render_or_compute(const struct xe_gt *gt,
hwe->engine_id == __ffs(render_compute_mask);
}
-bool xe_rtp_match_not_sriov_vf(const struct xe_gt *gt,
+bool xe_rtp_match_not_sriov_vf(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
- return !IS_SRIOV_VF(gt_to_xe(gt));
+ return !IS_SRIOV_VF(xe);
}
-bool xe_rtp_match_psmi_enabled(const struct xe_gt *gt,
+bool xe_rtp_match_psmi_enabled(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
- return xe_configfs_get_psmi_enabled(to_pci_dev(gt_to_xe(gt)->drm.dev));
+ return xe_configfs_get_psmi_enabled(to_pci_dev(xe->drm.dev));
}
-bool xe_rtp_match_gt_has_discontiguous_dss_groups(const struct xe_gt *gt,
+bool xe_rtp_match_gt_has_discontiguous_dss_groups(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe)
{
return xe_gt_has_discontiguous_dss_groups(gt);
diff --git a/drivers/gpu/drm/xe/xe_rtp.h b/drivers/gpu/drm/xe/xe_rtp.h
index ac12ddf6cde6..e5b8a9452e29 100644
--- a/drivers/gpu/drm/xe/xe_rtp.h
+++ b/drivers/gpu/drm/xe/xe_rtp.h
@@ -440,18 +440,21 @@ void xe_rtp_process(struct xe_rtp_process_ctx *ctx,
/**
* xe_rtp_match_even_instance - Match if engine instance is even
+ * @xe: Device structure
* @gt: GT structure
* @hwe: Engine instance
*
* Returns: true if engine instance is even, false otherwise
*/
-bool xe_rtp_match_even_instance(const struct xe_gt *gt,
+bool xe_rtp_match_even_instance(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe);
/*
* xe_rtp_match_first_render_or_compute - Match if it's first render or compute
* engine in the GT
*
+ * @xe: Device structure
* @gt: GT structure
* @hwe: Engine instance
*
@@ -463,24 +466,29 @@ bool xe_rtp_match_even_instance(const struct xe_gt *gt,
* Returns: true if engine id is the first to match the render reset domain,
* false otherwise.
*/
-bool xe_rtp_match_first_render_or_compute(const struct xe_gt *gt,
+bool xe_rtp_match_first_render_or_compute(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe);
/*
* xe_rtp_match_not_sriov_vf - Match when not on SR-IOV VF device
*
+ * @xe: Device structure
* @gt: GT structure
* @hwe: Engine instance
*
* Returns: true if device is not VF, false otherwise.
*/
-bool xe_rtp_match_not_sriov_vf(const struct xe_gt *gt,
+bool xe_rtp_match_not_sriov_vf(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe);
-bool xe_rtp_match_psmi_enabled(const struct xe_gt *gt,
+bool xe_rtp_match_psmi_enabled(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe);
-bool xe_rtp_match_gt_has_discontiguous_dss_groups(const struct xe_gt *gt,
+bool xe_rtp_match_gt_has_discontiguous_dss_groups(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe);
#endif
diff --git a/drivers/gpu/drm/xe/xe_rtp_types.h b/drivers/gpu/drm/xe/xe_rtp_types.h
index f4cf30e298cf..6ba7f226c227 100644
--- a/drivers/gpu/drm/xe/xe_rtp_types.h
+++ b/drivers/gpu/drm/xe/xe_rtp_types.h
@@ -10,6 +10,7 @@
#include "regs/xe_reg_defs.h"
+struct xe_device;
struct xe_hw_engine;
struct xe_gt;
@@ -86,7 +87,8 @@ struct xe_rtp_rule {
u8 engine_class;
};
/* MATCH_FUNC */
- bool (*match_func)(const struct xe_gt *gt,
+ bool (*match_func)(const struct xe_device *xe,
+ const struct xe_gt *gt,
const struct xe_hw_engine *hwe);
};
};
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 17/23] drm/xe: Bypass Wa_14018094691 when primary GT is disabled
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (15 preceding siblings ...)
2025-10-13 20:09 ` [PATCH v5 16/23] drm/xe/rtp: Pass xe_device parameter to FUNC matches Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 18/23] drm/xe: Correct lineage for Wa_22014953428 and only check with valid GT Matt Roper
` (9 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa
Don't try to lookup Wa_14018094691 on a NULL GT when the primary GT is
disabled. Since this whole workaround centers around mid-thread
preemption behavior, the workaround isn't relevant if the primary GT
(where the engines that can do MTP live) is disabled.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_gsc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_gsc.c b/drivers/gpu/drm/xe/xe_gsc.c
index 83d61bf8ec62..dd69cb834f8e 100644
--- a/drivers/gpu/drm/xe/xe_gsc.c
+++ b/drivers/gpu/drm/xe/xe_gsc.c
@@ -266,7 +266,7 @@ static int gsc_upload_and_init(struct xe_gsc *gsc)
unsigned int fw_ref;
int ret;
- if (XE_GT_WA(tile->primary_gt, 14018094691)) {
+ if (tile->primary_gt && XE_GT_WA(tile->primary_gt, 14018094691)) {
fw_ref = xe_force_wake_get(gt_to_fw(tile->primary_gt), XE_FORCEWAKE_ALL);
/*
@@ -281,7 +281,7 @@ static int gsc_upload_and_init(struct xe_gsc *gsc)
ret = gsc_upload(gsc);
- if (XE_GT_WA(tile->primary_gt, 14018094691))
+ if (tile->primary_gt && XE_GT_WA(tile->primary_gt, 14018094691))
xe_force_wake_put(gt_to_fw(tile->primary_gt), fw_ref);
if (ret)
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 18/23] drm/xe: Correct lineage for Wa_22014953428 and only check with valid GT
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (16 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 17/23] drm/xe: Bypass Wa_14018094691 when primary GT is disabled Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 19/23] drm/xe: Check that GT is not NULL before testing Wa_16023588340 Matt Roper
` (8 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa
Wa_22014953428 was incorrectly labelled with a release-specific ID
number rather than the cross-platform lineage number; fix that.
Also check that the GT is not NULL before trying to lookup the
workaround in it. Since this workaround only applies to DG2 discrete
GPUs (where the primary GT cannot be disabled), no coverage is lost.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_vm.c | 3 ++-
drivers/gpu/drm/xe/xe_wa_oob.rules | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_vm.c b/drivers/gpu/drm/xe/xe_vm.c
index 179758ca7cb8..08bc55bd91d7 100644
--- a/drivers/gpu/drm/xe/xe_vm.c
+++ b/drivers/gpu/drm/xe/xe_vm.c
@@ -1910,6 +1910,7 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
struct xe_device *xe = to_xe_device(dev);
struct xe_file *xef = to_xe_file(file);
struct drm_xe_vm_create *args = data;
+ struct xe_gt *wa_gt = xe_root_mmio_gt(xe);
struct xe_vm *vm;
u32 id;
int err;
@@ -1918,7 +1919,7 @@ int xe_vm_create_ioctl(struct drm_device *dev, void *data,
if (XE_IOCTL_DBG(xe, args->extensions))
return -EINVAL;
- if (XE_GT_WA(xe_root_mmio_gt(xe), 14016763929))
+ if (wa_gt && XE_GT_WA(wa_gt, 22014953428))
args->flags |= DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE;
if (XE_IOCTL_DBG(xe, args->flags & DRM_XE_VM_CREATE_FLAG_FAULT_MODE &&
diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
index 113a62f1b541..4bb94e5799ed 100644
--- a/drivers/gpu/drm/xe/xe_wa_oob.rules
+++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
@@ -11,7 +11,7 @@
18020744125 PLATFORM(PVC)
1509372804 PLATFORM(PVC), GRAPHICS_STEP(A0, C0)
1409600907 GRAPHICS_VERSION_RANGE(1200, 1250)
-14016763929 SUBPLATFORM(DG2, G10)
+22014953428 SUBPLATFORM(DG2, G10)
SUBPLATFORM(DG2, G12)
16017236439 PLATFORM(PVC)
14019821291 MEDIA_VERSION_RANGE(1300, 2000)
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 19/23] drm/xe: Check that GT is not NULL before testing Wa_16023588340
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (17 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 18/23] drm/xe: Correct lineage for Wa_22014953428 and only check with valid GT Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 20/23] drm/xe: Don't check BIOS-disabled FlatCCS if primary GT is disabled Matt Roper
` (7 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Tejas Upadhyay
If the primary GT is disabled, skip the check for this workaround (which
only applies to dgpu platforms where the primary GT cannot be NULL).
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com>
---
drivers/gpu/drm/xe/display/xe_display_wa.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/display/xe_display_wa.c b/drivers/gpu/drm/xe/display/xe_display_wa.c
index 8ada1cbcb16c..2aa1b8c03411 100644
--- a/drivers/gpu/drm/xe/display/xe_display_wa.c
+++ b/drivers/gpu/drm/xe/display/xe_display_wa.c
@@ -13,6 +13,7 @@
bool intel_display_needs_wa_16023588340(struct intel_display *display)
{
struct xe_device *xe = to_xe_device(display->drm);
+ struct xe_gt *wa_gt = xe_root_mmio_gt(xe);
- return XE_GT_WA(xe_root_mmio_gt(xe), 16023588340);
+ return wa_gt && XE_GT_WA(wa_gt, 16023588340);
}
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 20/23] drm/xe: Don't check BIOS-disabled FlatCCS if primary GT is disabled
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (18 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 19/23] drm/xe: Check that GT is not NULL before testing Wa_16023588340 Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 21/23] drm/xe: Break GT setup out of xe_info_init() Matt Roper
` (6 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa
If the primary is GT is disabled via configfs, we can't read the GT
registers that would tell us whether the BIOS has disabled FlatCCS on a
platform that would otherwise have it; we'll just proceed as if the
FlatCCS is still enabled. This is similar to the situation seen by
SRIOV VFs and doesn't cause any functional problems since the hardware
will simply drop writes to the CCS region and reads will always come
back as 0 (indicating uncompressed data). We'll simply miss out on the
chance to avoid some unnecessary overhead during BO creation and
migration.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index e2aa79a78938..5f6a412b571c 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -782,6 +782,8 @@ static int probe_has_flat_ccs(struct xe_device *xe)
return 0;
gt = xe_root_mmio_gt(xe);
+ if (!gt)
+ return 0;
fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT);
if (!fw_ref)
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 21/23] drm/xe: Break GT setup out of xe_info_init()
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (19 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 20/23] drm/xe: Don't check BIOS-disabled FlatCCS if primary GT is disabled Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 22/23] drm/xe/configfs: Add attribute to disable GT types Matt Roper
` (5 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa, Lucas De Marchi
xe_info_init() is getting a bit long and hard to follow. Break the
allocation and basic initialization of the xe_gt structures out to their
own functions.
v2:
- Rename new functions from init_* to alloc_*. (Gustavo)
- Move early NULL return of media GT before allocation. (Gustavo)
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 88 +++++++++++++++++++++++--------------
1 file changed, 54 insertions(+), 34 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 00f6757b6eec..26f90ea21921 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -691,6 +691,53 @@ static void xe_info_probe_tile_count(struct xe_device *xe)
}
}
+static struct xe_gt *alloc_primary_gt(struct xe_tile *tile,
+ const struct xe_graphics_desc *graphics_desc,
+ const struct xe_media_desc *media_desc)
+{
+ struct xe_device *xe = tile_to_xe(tile);
+ struct xe_gt *gt;
+
+ gt = xe_gt_alloc(tile);
+ if (IS_ERR(gt))
+ return gt;
+
+ gt->info.type = XE_GT_TYPE_MAIN;
+ gt->info.id = tile->id * xe->info.max_gt_per_tile;
+ gt->info.has_indirect_ring_state = graphics_desc->has_indirect_ring_state;
+ gt->info.engine_mask = graphics_desc->hw_engine_mask;
+
+ /*
+ * Before media version 13, the media IP was part of the primary GT
+ * so we need to add the media engines to the primary GT's engine list.
+ */
+ if (MEDIA_VER(xe) < 13 && media_desc)
+ gt->info.engine_mask |= media_desc->hw_engine_mask;
+
+ return gt;
+}
+
+static struct xe_gt *alloc_media_gt(struct xe_tile *tile,
+ const struct xe_media_desc *media_desc)
+{
+ struct xe_device *xe = tile_to_xe(tile);
+ struct xe_gt *gt;
+
+ if (MEDIA_VER(xe) < 13 || !media_desc)
+ return NULL;
+
+ gt = xe_gt_alloc(tile);
+ if (IS_ERR(gt))
+ return gt;
+
+ gt->info.type = XE_GT_TYPE_MEDIA;
+ gt->info.id = tile->id * xe->info.max_gt_per_tile + 1;
+ gt->info.has_indirect_ring_state = media_desc->has_indirect_ring_state;
+ gt->info.engine_mask = media_desc->hw_engine_mask;
+
+ return gt;
+}
+
/*
* Initialize device info content that does require knowledge about
* graphics / media IP version.
@@ -773,48 +820,21 @@ static int xe_info_init(struct xe_device *xe,
return err;
}
- /*
- * All platforms have at least one primary GT. Any platform with media
- * version 13 or higher has an additional dedicated media GT. And
- * depending on the graphics IP there may be additional "remote tiles."
- * All of these together determine the overall GT count.
- */
+ /* Allocate any GT and VRAM structures necessary for the platform. */
for_each_tile(tile, xe, id) {
int err;
- tile->primary_gt = xe_gt_alloc(tile);
+ err = xe_tile_alloc_vram(tile);
+ if (err)
+ return err;
+
+ tile->primary_gt = alloc_primary_gt(tile, graphics_desc, media_desc);
if (IS_ERR(tile->primary_gt))
return PTR_ERR(tile->primary_gt);
- gt = tile->primary_gt;
- gt->info.type = XE_GT_TYPE_MAIN;
- gt->info.id = tile->id * xe->info.max_gt_per_tile;
- gt->info.has_indirect_ring_state = graphics_desc->has_indirect_ring_state;
- gt->info.engine_mask = graphics_desc->hw_engine_mask;
-
- err = xe_tile_alloc_vram(tile);
- if (err)
- return err;
-
- if (MEDIA_VER(xe) < 13 && media_desc)
- gt->info.engine_mask |= media_desc->hw_engine_mask;
-
- if (MEDIA_VER(xe) < 13 || !media_desc)
- continue;
-
- /*
- * Allocate and setup media GT for platforms with standalone
- * media.
- */
- tile->media_gt = xe_gt_alloc(tile);
+ tile->media_gt = alloc_media_gt(tile, media_desc);
if (IS_ERR(tile->media_gt))
return PTR_ERR(tile->media_gt);
-
- gt = tile->media_gt;
- gt->info.type = XE_GT_TYPE_MEDIA;
- gt->info.id = tile->id * xe->info.max_gt_per_tile + 1;
- gt->info.has_indirect_ring_state = media_desc->has_indirect_ring_state;
- gt->info.engine_mask = media_desc->hw_engine_mask;
}
/*
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 22/23] drm/xe/configfs: Add attribute to disable GT types
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (20 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 21/23] drm/xe: Break GT setup out of xe_info_init() Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:10 ` [PATCH v5 23/23] drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs Matt Roper
` (4 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Gustavo Sousa, Michal Wajdeczko
Preventing the driver from initializing GTs of specific type(s) can be
useful for debugging and early hardware bringup. Add a configfs
attribute to allow this kind of control for debugging.
With today's platforms and software design, this configuration setting
is only effective for disabling the media GT since the driver currently
requires that there always be a primary GT to probe the device. However
this might change in the future --- in theory it should be possible
(with some additional driver work) to allow an igpu device to come up
with only the media GT and no primary GT. Or to allow an igpu device to
come up with no GTs at all (for display-only usage). A primary GT will
likely always be required on dgpu platforms because we rely on the BCS
engines inside the primary GT for various vram operations.
v2:
- Expand/clarify kerneldoc for configfs attribute. (Gustavo)
- Tighten type usage in gt_types[] structure. (Gustavo)
- Adjust string parsing/name matching to match exact GT names and not
accept partial names. (Gustavo)
v3:
- Switch to scope-based cleanup in gt_types_allowed_store() to fix a
leak if the device is already bound. (Gustavo)
- Switch configfs lookup interface to two boolean functions that
specify whether primary/media are supported rather than one function
that returns a mask. This is simpler to use and understand.
v4:
- Rename xe_configfs_*_gt_supported to xe_configfs_*_gt_allowed for
consistency with configfs interface and other functions. (Gustavo)
- Simplify boolean check in xe_configfs_*_gt_allowed. (Michal)
- Use xe_info() for message printing. (Michal)
- Use guard() instead of scoped_guard(). (Michal)
- Make new functions take 'struct pci_dev' for consistency with other
configfs lookup functions. (Michal)
Cc: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
---
drivers/gpu/drm/xe/xe_configfs.c | 143 +++++++++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_configfs.h | 4 +
drivers/gpu/drm/xe/xe_pci.c | 23 +++++
3 files changed, 170 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_configfs.c b/drivers/gpu/drm/xe/xe_configfs.c
index 464a79c2a903..c1419a270fa4 100644
--- a/drivers/gpu/drm/xe/xe_configfs.c
+++ b/drivers/gpu/drm/xe/xe_configfs.c
@@ -15,6 +15,7 @@
#include "instructions/xe_mi_commands.h"
#include "xe_configfs.h"
+#include "xe_gt_types.h"
#include "xe_hw_engine_types.h"
#include "xe_module.h"
#include "xe_pci_types.h"
@@ -57,6 +58,7 @@
* :
* └── 0000:03:00.0
* ├── survivability_mode
+ * ├── gt_types_allowed
* ├── engines_allowed
* └── enable_psmi
*
@@ -80,6 +82,44 @@
*
* This attribute can only be set before binding to the device.
*
+ * Allowed GT types:
+ * -----------------
+ *
+ * Allow only specific types of GTs to be detected and initialized by the
+ * driver. Any combination of GT types can be enabled/disabled, although
+ * some settings will cause the device to fail to probe.
+ *
+ * Writes support both comma- and newline-separated input format. Reads
+ * will always return one GT type per line. "primary" and "media" are the
+ * GT type names supported by this interface.
+ *
+ * This attribute can only be set before binding to the device.
+ *
+ * Examples:
+ *
+ * Allow both primary and media GTs to be initialized and used. This matches
+ * the driver's default behavior::
+ *
+ * # echo 'primary,media' > /sys/kernel/config/xe/0000:03:00.0/gt_types_allowed
+ *
+ * Allow only the primary GT of each tile to be initialized and used,
+ * effectively disabling the media GT if it exists on the platform::
+ *
+ * # echo 'primary' > /sys/kernel/config/xe/0000:03:00.0/gt_types_allowed
+ *
+ * Allow only the media GT of each tile to be initialized and used,
+ * effectively disabling the primary GT. **This configuration will cause
+ * device probe failure on all current platforms, but may be allowed on
+ * igpu platforms in the future**::
+ *
+ * # echo 'media' > /sys/kernel/config/xe/0000:03:00.0/gt_types_allowed
+ *
+ * Disable all GTs. Only other GPU IP (such as display) is potentially usable.
+ * **This configuration will cause device probe failure on all current
+ * platforms, but may be allowed on igpu platforms in the future**::
+ *
+ * # echo '' > /sys/kernel/config/xe/0000:03:00.0/gt_types_allowed
+ *
* Allowed engines:
* ----------------
*
@@ -215,6 +255,7 @@ struct xe_config_group_device {
struct config_group sriov;
struct xe_config_device {
+ u64 gt_types_allowed;
u64 engines_allowed;
struct wa_bb ctx_restore_post_bb[XE_ENGINE_CLASS_MAX];
struct wa_bb ctx_restore_mid_bb[XE_ENGINE_CLASS_MAX];
@@ -234,6 +275,7 @@ struct xe_config_group_device {
};
static const struct xe_config_device device_defaults = {
+ .gt_types_allowed = U64_MAX,
.engines_allowed = U64_MAX,
.survivability_mode = false,
.enable_psmi = false,
@@ -259,6 +301,7 @@ struct engine_info {
/* Some helpful macros to aid on the sizing of buffer allocation when parsing */
#define MAX_ENGINE_CLASS_CHARS 5
#define MAX_ENGINE_INSTANCE_CHARS 2
+#define MAX_GT_TYPE_CHARS 7
static const struct engine_info engine_info[] = {
{ .cls = "rcs", .mask = XE_HW_ENGINE_RCS_MASK, .engine_class = XE_ENGINE_CLASS_RENDER },
@@ -269,6 +312,14 @@ static const struct engine_info engine_info[] = {
{ .cls = "gsccs", .mask = XE_HW_ENGINE_GSCCS_MASK, .engine_class = XE_ENGINE_CLASS_OTHER },
};
+static const struct {
+ const char name[MAX_GT_TYPE_CHARS + 1];
+ enum xe_gt_type type;
+} gt_types[] = {
+ { .name = "primary", .type = XE_GT_TYPE_MAIN },
+ { .name = "media", .type = XE_GT_TYPE_MEDIA },
+};
+
static struct xe_config_group_device *to_xe_config_group_device(struct config_item *item)
{
return container_of(to_config_group(item), struct xe_config_group_device, group);
@@ -331,6 +382,57 @@ static ssize_t survivability_mode_store(struct config_item *item, const char *pa
return len;
}
+static ssize_t gt_types_allowed_show(struct config_item *item, char *page)
+{
+ struct xe_config_device *dev = to_xe_config_device(item);
+ char *p = page;
+
+ for (size_t i = 0; i < ARRAY_SIZE(gt_types); i++)
+ if (dev->gt_types_allowed & BIT_ULL(gt_types[i].type))
+ p += sprintf(p, "%s\n", gt_types[i].name);
+
+ return p - page;
+}
+
+static ssize_t gt_types_allowed_store(struct config_item *item, const char *page,
+ size_t len)
+{
+ struct xe_config_group_device *dev = to_xe_config_group_device(item);
+ char *buf __free(kfree) = kstrdup(page, GFP_KERNEL);
+ char *p = buf;
+ u64 typemask = 0;
+
+ if (!buf)
+ return -ENOMEM;
+
+ while (p) {
+ char *typename = strsep(&p, ",\n");
+ bool matched = false;
+
+ if (typename[0] == '\0')
+ continue;
+
+ for (size_t i = 0; i < ARRAY_SIZE(gt_types); i++) {
+ if (strcmp(typename, gt_types[i].name) == 0) {
+ typemask |= BIT(gt_types[i].type);
+ matched = true;
+ break;
+ }
+ }
+
+ if (!matched)
+ return -EINVAL;
+ }
+
+ guard(mutex)(&dev->lock);
+ if (is_bound(dev))
+ return -EBUSY;
+
+ dev->config.gt_types_allowed = typemask;
+
+ return len;
+}
+
static ssize_t engines_allowed_show(struct config_item *item, char *page)
{
struct xe_config_device *dev = to_xe_config_device(item);
@@ -711,6 +813,7 @@ CONFIGFS_ATTR(, ctx_restore_mid_bb);
CONFIGFS_ATTR(, ctx_restore_post_bb);
CONFIGFS_ATTR(, enable_psmi);
CONFIGFS_ATTR(, engines_allowed);
+CONFIGFS_ATTR(, gt_types_allowed);
CONFIGFS_ATTR(, survivability_mode);
static struct configfs_attribute *xe_config_device_attrs[] = {
@@ -718,6 +821,7 @@ static struct configfs_attribute *xe_config_device_attrs[] = {
&attr_ctx_restore_post_bb,
&attr_enable_psmi,
&attr_engines_allowed,
+ &attr_gt_types_allowed,
&attr_survivability_mode,
NULL,
};
@@ -957,6 +1061,7 @@ static void dump_custom_dev_config(struct pci_dev *pdev,
dev->config.attr_); \
} while (0)
+ PRI_CUSTOM_ATTR("%llx", gt_types_allowed);
PRI_CUSTOM_ATTR("%llx", engines_allowed);
PRI_CUSTOM_ATTR("%d", enable_psmi);
PRI_CUSTOM_ATTR("%d", survivability_mode);
@@ -1007,6 +1112,44 @@ bool xe_configfs_get_survivability_mode(struct pci_dev *pdev)
return mode;
}
+static u64 get_gt_types_allowed(struct pci_dev *pdev)
+{
+ struct xe_config_group_device *dev = find_xe_config_group_device(pdev);
+ u64 mask;
+
+ if (!dev)
+ return device_defaults.gt_types_allowed;
+
+ mask = dev->config.gt_types_allowed;
+ config_group_put(&dev->group);
+
+ return mask;
+}
+
+/**
+ * xe_configfs_primary_gt_allowed - determine whether primary GTs are supported
+ * @pdev: pci device
+ *
+ * Return: True if primary GTs are enabled, false if they have been disabled via
+ * configfs.
+ */
+bool xe_configfs_primary_gt_allowed(struct pci_dev *pdev)
+{
+ return get_gt_types_allowed(pdev) & BIT_ULL(XE_GT_TYPE_MAIN);
+}
+
+/**
+ * xe_configfs_media_gt_allowed - determine whether media GTs are supported
+ * @pdev: pci device
+ *
+ * Return: True if the media GTs are enabled, false if they have been disabled
+ * via configfs.
+ */
+bool xe_configfs_media_gt_allowed(struct pci_dev *pdev)
+{
+ return get_gt_types_allowed(pdev) & BIT_ULL(XE_GT_TYPE_MEDIA);
+}
+
/**
* xe_configfs_get_engines_allowed - get engine allowed mask from configfs
* @pdev: pci device
diff --git a/drivers/gpu/drm/xe/xe_configfs.h b/drivers/gpu/drm/xe/xe_configfs.h
index 16a1f578e4fe..fed57be0b90e 100644
--- a/drivers/gpu/drm/xe/xe_configfs.h
+++ b/drivers/gpu/drm/xe/xe_configfs.h
@@ -17,6 +17,8 @@ int xe_configfs_init(void);
void xe_configfs_exit(void);
void xe_configfs_check_device(struct pci_dev *pdev);
bool xe_configfs_get_survivability_mode(struct pci_dev *pdev);
+bool xe_configfs_primary_gt_allowed(struct pci_dev *pdev);
+bool xe_configfs_media_gt_allowed(struct pci_dev *pdev);
u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev);
bool xe_configfs_get_psmi_enabled(struct pci_dev *pdev);
u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev, enum xe_engine_class,
@@ -31,6 +33,8 @@ static inline int xe_configfs_init(void) { return 0; }
static inline void xe_configfs_exit(void) { }
static inline void xe_configfs_check_device(struct pci_dev *pdev) { }
static inline bool xe_configfs_get_survivability_mode(struct pci_dev *pdev) { return false; }
+static inline bool xe_configfs_primary_gt_allowed(struct pci_dev *pdev) { return true; }
+static inline bool xe_configfs_media_gt_allowed(struct pci_dev *pdev) { return true; }
static inline u64 xe_configfs_get_engines_allowed(struct pci_dev *pdev) { return U64_MAX; }
static inline bool xe_configfs_get_psmi_enabled(struct pci_dev *pdev) { return false; }
static inline u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev, enum xe_engine_class,
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 26f90ea21921..ef559a79c5ba 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -30,6 +30,7 @@
#include "xe_pci_sriov.h"
#include "xe_pci_types.h"
#include "xe_pm.h"
+#include "xe_printk.h"
#include "xe_sriov.h"
#include "xe_step.h"
#include "xe_survivability_mode.h"
@@ -698,6 +699,11 @@ static struct xe_gt *alloc_primary_gt(struct xe_tile *tile,
struct xe_device *xe = tile_to_xe(tile);
struct xe_gt *gt;
+ if (!xe_configfs_primary_gt_allowed(to_pci_dev(xe->drm.dev))) {
+ xe_info(xe, "Primary GT disabled via configfs\n");
+ return NULL;
+ }
+
gt = xe_gt_alloc(tile);
if (IS_ERR(gt))
return gt;
@@ -723,6 +729,11 @@ static struct xe_gt *alloc_media_gt(struct xe_tile *tile,
struct xe_device *xe = tile_to_xe(tile);
struct xe_gt *gt;
+ if (!xe_configfs_media_gt_allowed(to_pci_dev(xe->drm.dev))) {
+ xe_info(xe, "Media GT disabled via configfs\n");
+ return NULL;
+ }
+
if (MEDIA_VER(xe) < 13 || !media_desc)
return NULL;
@@ -832,6 +843,18 @@ static int xe_info_init(struct xe_device *xe,
if (IS_ERR(tile->primary_gt))
return PTR_ERR(tile->primary_gt);
+ /*
+ * It's not currently possible to probe a device with the
+ * primary GT disabled. With some work, this may be future in
+ * the possible for igpu platforms (although probably not for
+ * dgpu's since access to the primary GT's BCS engines is
+ * required for VRAM management).
+ */
+ if (!tile->primary_gt) {
+ drm_err(&xe->drm, "Cannot probe device with without a primary GT\n");
+ return -ENODEV;
+ }
+
tile->media_gt = alloc_media_gt(tile, media_desc);
if (IS_ERR(tile->media_gt))
return PTR_ERR(tile->media_gt);
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH v5 23/23] drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (21 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 22/23] drm/xe/configfs: Add attribute to disable GT types Matt Roper
@ 2025-10-13 20:10 ` Matt Roper
2025-10-13 20:25 ` Michal Wajdeczko
2025-10-13 23:30 ` ✗ CI.checkpatch: warning for Allow configfs to disable specific GT type(s) (rev5) Patchwork
` (3 subsequent siblings)
26 siblings, 1 reply; 30+ messages in thread
From: Matt Roper @ 2025-10-13 20:10 UTC (permalink / raw)
To: intel-xe; +Cc: matthew.d.roper, Michal Wajdeczko
SR-IOV operation relies on the primary GT's GuC to operate (in both PF
and VF mode). If the primary GT is disabled in VF mode, fail the probe.
If the primary GT is disabled in PF mode, force the device back to
native (non-sriov) mode.
v2:
- Move handling to xe_info_init(). (Michal)
v3:
- Just update the .has_sriov flag in xe_info_init_early(). (Michal)
v4:
- Drop unnecessary comment. (Michal)
- Flip condition order for consistency with other checks. (Michal)
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index ef559a79c5ba..24a38904bb50 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -631,7 +631,8 @@ static int xe_info_init_early(struct xe_device *xe,
xe->info.has_late_bind = desc->has_late_bind;
xe->info.has_llc = desc->has_llc;
xe->info.has_pxp = desc->has_pxp;
- xe->info.has_sriov = desc->has_sriov;
+ xe->info.has_sriov = xe_configfs_primary_gt_allowed(to_pci_dev(xe->drm.dev)) &&
+ desc->has_sriov;
xe->info.skip_guc_pc = desc->skip_guc_pc;
xe->info.skip_mtcfg = desc->skip_mtcfg;
xe->info.skip_pcode = desc->skip_pcode;
--
2.51.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* Re: [PATCH v5 23/23] drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs
2025-10-13 20:10 ` [PATCH v5 23/23] drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs Matt Roper
@ 2025-10-13 20:25 ` Michal Wajdeczko
0 siblings, 0 replies; 30+ messages in thread
From: Michal Wajdeczko @ 2025-10-13 20:25 UTC (permalink / raw)
To: Matt Roper, intel-xe
On 10/13/2025 10:10 PM, Matt Roper wrote:
> SR-IOV operation relies on the primary GT's GuC to operate (in both PF
> and VF mode). If the primary GT is disabled in VF mode, fail the probe.
> If the primary GT is disabled in PF mode, force the device back to
> native (non-sriov) mode.
I guess we should update this msg to the latest approach:
"Don't enable .has_sriov flag if the primary-GT was disabled by configfs."
and then we can keep the change log under ---
>
> v2:
> - Move handling to xe_info_init(). (Michal)
>
> v3:
> - Just update the .has_sriov flag in xe_info_init_early(). (Michal)
>
> v4:
> - Drop unnecessary comment. (Michal)
> - Flip condition order for consistency with other checks. (Michal)
>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> ---
> drivers/gpu/drm/xe/xe_pci.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index ef559a79c5ba..24a38904bb50 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -631,7 +631,8 @@ static int xe_info_init_early(struct xe_device *xe,
> xe->info.has_late_bind = desc->has_late_bind;
> xe->info.has_llc = desc->has_llc;
> xe->info.has_pxp = desc->has_pxp;
> - xe->info.has_sriov = desc->has_sriov;
> + xe->info.has_sriov = xe_configfs_primary_gt_allowed(to_pci_dev(xe->drm.dev)) &&
> + desc->has_sriov;
but this part should work, so
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
> xe->info.skip_guc_pc = desc->skip_guc_pc;
> xe->info.skip_mtcfg = desc->skip_mtcfg;
> xe->info.skip_pcode = desc->skip_pcode;
^ permalink raw reply [flat|nested] 30+ messages in thread
* ✗ CI.checkpatch: warning for Allow configfs to disable specific GT type(s) (rev5)
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (22 preceding siblings ...)
2025-10-13 20:10 ` [PATCH v5 23/23] drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs Matt Roper
@ 2025-10-13 23:30 ` Patchwork
2025-10-13 23:31 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-10-13 23:30 UTC (permalink / raw)
To: Matt Roper; +Cc: intel-xe
== Series Details ==
Series: Allow configfs to disable specific GT type(s) (rev5)
URL : https://patchwork.freedesktop.org/series/154739/
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
fbd08a78c3a3bb17964db2a326514c69c1dca660
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit d61979591f535d88f10c277284c25b054d4658bf
Author: Matt Roper <matthew.d.roper@intel.com>
Date: Mon Oct 13 13:10:06 2025 -0700
drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs
SR-IOV operation relies on the primary GT's GuC to operate (in both PF
and VF mode). If the primary GT is disabled in VF mode, fail the probe.
If the primary GT is disabled in PF mode, force the device back to
native (non-sriov) mode.
v2:
- Move handling to xe_info_init(). (Michal)
v3:
- Just update the .has_sriov flag in xe_info_init_early(). (Michal)
v4:
- Drop unnecessary comment. (Michal)
- Flip condition order for consistency with other checks. (Michal)
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
+ /mt/dim checkpatch c917f7d11493984be9f381ca0a7667bd3e587ada drm-intel
76d771a77b99 drm/xe/huc: Adjust HuC check on primary GT
160ba9d7d20d drm/xe: Drop GT parameter to xe_display_irq_postinstall()
94b202536c60 drm/xe: Move 'va_bits' flag back to platform descriptor
24e84eed298e drm/xe: Move 'vm_max_level' flag back to platform descriptor
ddaaf0b61591 drm/xe: Move 'vram_flags' flag back to platform descriptor
433b948f539a drm/xe: Move 'has_flatccs' flag back to platform descriptor
36507f67b41d drm/xe: Read VF GMD_ID with a specifically-allocated dummy GT
85cb6309c7be drm/xe: Move primary GT allocation from xe_tile_init_early to xe_tile_init
436ff4cc1559 drm/xe: Skip L2 / TDF cache flushes if primary GT is disabled
a683e43eade4 drm/xe/query: Report hwconfig size as 0 if primary GT is disabled
cc0953b32cdc drm/xe/pmu: Initialize PMU event types based on first available GT
227261b3895c drm/xe: Check for primary GT before looking up Wa_22019338487
2774ed19c00b drm/xe: Make display part of Wa_22019338487 a device workaround
5cabc5e5695a drm/xe/irq: Don't try to lookup engine masks for non-existent primary GT
e6b8796fe112 drm/xe: Handle Wa_22010954014 and Wa_14022085890 as device workarounds
-:127: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#127: FILE: include/drm/intel/pciids.h:852:
+#define INTEL_BMG_G21_IDS(MACRO__, ...) \
MACRO__(0xE202, ## __VA_ARGS__), \
MACRO__(0xE209, ## __VA_ARGS__), \
MACRO__(0xE20B, ## __VA_ARGS__), \
BUT SEE:
do {} while (0) advice is over-stated in a few situations:
The more obvious case is macros, like MODULE_PARM_DESC, invoked at
file-scope, where C disallows code (it must be in functions). See
$exceptions if you have one to add by name.
More troublesome is declarative macros used at top of new scope,
like DECLARE_PER_CPU. These might just compile with a do-while-0
wrapper, but would be incorrect. Most of these are handled by
detecting struct,union,etc declaration primitives in $exceptions.
Theres also macros called inside an if (block), which "return" an
expression. These cannot do-while, and need a ({}) wrapper.
Enjoy this qualification while we work to improve our heuristics.
-:127: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'MACRO__' - possible side-effects?
#127: FILE: include/drm/intel/pciids.h:852:
+#define INTEL_BMG_G21_IDS(MACRO__, ...) \
MACRO__(0xE202, ## __VA_ARGS__), \
MACRO__(0xE209, ## __VA_ARGS__), \
MACRO__(0xE20B, ## __VA_ARGS__), \
-:138: ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses
#138: FILE: include/drm/intel/pciids.h:863:
+#define INTEL_BMG_IDS(MACRO__, ...) \
+ INTEL_BMG_G21_IDS(MACRO__, __VA_ARGS__), \
MACRO__(0xE220, ## __VA_ARGS__), \
MACRO__(0xE221, ## __VA_ARGS__), \
MACRO__(0xE222, ## __VA_ARGS__), \
BUT SEE:
do {} while (0) advice is over-stated in a few situations:
The more obvious case is macros, like MODULE_PARM_DESC, invoked at
file-scope, where C disallows code (it must be in functions). See
$exceptions if you have one to add by name.
More troublesome is declarative macros used at top of new scope,
like DECLARE_PER_CPU. These might just compile with a do-while-0
wrapper, but would be incorrect. Most of these are handled by
detecting struct,union,etc declaration primitives in $exceptions.
Theres also macros called inside an if (block), which "return" an
expression. These cannot do-while, and need a ({}) wrapper.
Enjoy this qualification while we work to improve our heuristics.
-:138: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'MACRO__' - possible side-effects?
#138: FILE: include/drm/intel/pciids.h:863:
+#define INTEL_BMG_IDS(MACRO__, ...) \
+ INTEL_BMG_G21_IDS(MACRO__, __VA_ARGS__), \
MACRO__(0xE220, ## __VA_ARGS__), \
MACRO__(0xE221, ## __VA_ARGS__), \
MACRO__(0xE222, ## __VA_ARGS__), \
total: 2 errors, 0 warnings, 2 checks, 87 lines checked
3e87766ccea8 drm/xe/rtp: Pass xe_device parameter to FUNC matches
3e4719d86513 drm/xe: Bypass Wa_14018094691 when primary GT is disabled
087b862cf197 drm/xe: Correct lineage for Wa_22014953428 and only check with valid GT
ad84e03e845b drm/xe: Check that GT is not NULL before testing Wa_16023588340
161daafca9f9 drm/xe: Don't check BIOS-disabled FlatCCS if primary GT is disabled
aa154a02adea drm/xe: Break GT setup out of xe_info_init()
aebc193a406c drm/xe/configfs: Add attribute to disable GT types
-:171: WARNING:LINE_SPACING: Missing a blank line after declarations
#171: FILE: drivers/gpu/drm/xe/xe_configfs.c:401:
+ struct xe_config_group_device *dev = to_xe_config_group_device(item);
+ char *buf __free(kfree) = kstrdup(page, GFP_KERNEL);
total: 0 errors, 1 warnings, 0 checks, 278 lines checked
d61979591f53 drm/xe/sriov: Disable SR-IOV if primary GT is disabled via configfs
^ permalink raw reply [flat|nested] 30+ messages in thread* ✓ CI.KUnit: success for Allow configfs to disable specific GT type(s) (rev5)
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (23 preceding siblings ...)
2025-10-13 23:30 ` ✗ CI.checkpatch: warning for Allow configfs to disable specific GT type(s) (rev5) Patchwork
@ 2025-10-13 23:31 ` Patchwork
2025-10-14 0:11 ` ✓ Xe.CI.BAT: " Patchwork
2025-10-14 8:08 ` ✓ Xe.CI.Full: " Patchwork
26 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-10-13 23:31 UTC (permalink / raw)
To: Matt Roper; +Cc: intel-xe
== Series Details ==
Series: Allow configfs to disable specific GT type(s) (rev5)
URL : https://patchwork.freedesktop.org/series/154739/
State : success
== Summary ==
+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[23:30:23] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:30:27] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:30:58] Starting KUnit Kernel (1/1)...
[23:30:58] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:30:58] ================== guc_buf (11 subtests) ===================
[23:30:58] [PASSED] test_smallest
[23:30:58] [PASSED] test_largest
[23:30:58] [PASSED] test_granular
[23:30:58] [PASSED] test_unique
[23:30:58] [PASSED] test_overlap
[23:30:58] [PASSED] test_reusable
[23:30:58] [PASSED] test_too_big
[23:30:58] [PASSED] test_flush
[23:30:58] [PASSED] test_lookup
[23:30:58] [PASSED] test_data
[23:30:58] [PASSED] test_class
[23:30:58] ===================== [PASSED] guc_buf =====================
[23:30:58] =================== guc_dbm (7 subtests) ===================
[23:30:58] [PASSED] test_empty
[23:30:58] [PASSED] test_default
[23:30:58] ======================== test_size ========================
[23:30:58] [PASSED] 4
[23:30:58] [PASSED] 8
[23:30:58] [PASSED] 32
[23:30:58] [PASSED] 256
[23:30:58] ==================== [PASSED] test_size ====================
[23:30:58] ======================= test_reuse ========================
[23:30:58] [PASSED] 4
[23:30:58] [PASSED] 8
[23:30:58] [PASSED] 32
[23:30:58] [PASSED] 256
[23:30:58] =================== [PASSED] test_reuse ====================
[23:30:58] =================== test_range_overlap ====================
[23:30:58] [PASSED] 4
[23:30:58] [PASSED] 8
[23:30:58] [PASSED] 32
[23:30:58] [PASSED] 256
[23:30:58] =============== [PASSED] test_range_overlap ================
[23:30:58] =================== test_range_compact ====================
[23:30:58] [PASSED] 4
[23:30:58] [PASSED] 8
[23:30:58] [PASSED] 32
[23:30:58] [PASSED] 256
[23:30:58] =============== [PASSED] test_range_compact ================
[23:30:58] ==================== test_range_spare =====================
[23:30:58] [PASSED] 4
[23:30:58] [PASSED] 8
[23:30:58] [PASSED] 32
[23:30:58] [PASSED] 256
[23:30:58] ================ [PASSED] test_range_spare =================
[23:30:58] ===================== [PASSED] guc_dbm =====================
[23:30:58] =================== guc_idm (6 subtests) ===================
[23:30:58] [PASSED] bad_init
[23:30:58] [PASSED] no_init
[23:30:58] [PASSED] init_fini
[23:30:58] [PASSED] check_used
[23:30:58] [PASSED] check_quota
[23:30:58] [PASSED] check_all
[23:30:58] ===================== [PASSED] guc_idm =====================
[23:30:58] ================== no_relay (3 subtests) ===================
[23:30:58] [PASSED] xe_drops_guc2pf_if_not_ready
[23:30:58] [PASSED] xe_drops_guc2vf_if_not_ready
[23:30:58] [PASSED] xe_rejects_send_if_not_ready
[23:30:58] ==================== [PASSED] no_relay =====================
[23:30:58] ================== pf_relay (14 subtests) ==================
[23:30:58] [PASSED] pf_rejects_guc2pf_too_short
[23:30:58] [PASSED] pf_rejects_guc2pf_too_long
[23:30:58] [PASSED] pf_rejects_guc2pf_no_payload
[23:30:58] [PASSED] pf_fails_no_payload
[23:30:58] [PASSED] pf_fails_bad_origin
[23:30:58] [PASSED] pf_fails_bad_type
[23:30:58] [PASSED] pf_txn_reports_error
[23:30:58] [PASSED] pf_txn_sends_pf2guc
[23:30:58] [PASSED] pf_sends_pf2guc
[23:30:58] [SKIPPED] pf_loopback_nop
[23:30:58] [SKIPPED] pf_loopback_echo
[23:30:58] [SKIPPED] pf_loopback_fail
[23:30:58] [SKIPPED] pf_loopback_busy
[23:30:58] [SKIPPED] pf_loopback_retry
[23:30:58] ==================== [PASSED] pf_relay =====================
[23:30:58] ================== vf_relay (3 subtests) ===================
[23:30:58] [PASSED] vf_rejects_guc2vf_too_short
[23:30:58] [PASSED] vf_rejects_guc2vf_too_long
[23:30:58] [PASSED] vf_rejects_guc2vf_no_payload
[23:30:58] ==================== [PASSED] vf_relay =====================
[23:30:58] ===================== lmtt (1 subtest) =====================
[23:30:58] ======================== test_ops =========================
[23:30:58] [PASSED] 2-level
[23:30:58] [PASSED] multi-level
[23:30:58] ==================== [PASSED] test_ops =====================
[23:30:58] ====================== [PASSED] lmtt =======================
[23:30:58] ================= pf_service (11 subtests) =================
[23:30:58] [PASSED] pf_negotiate_any
[23:30:58] [PASSED] pf_negotiate_base_match
[23:30:58] [PASSED] pf_negotiate_base_newer
[23:30:58] [PASSED] pf_negotiate_base_next
[23:30:58] [SKIPPED] pf_negotiate_base_older
[23:30:58] [PASSED] pf_negotiate_base_prev
[23:30:58] [PASSED] pf_negotiate_latest_match
[23:30:58] [PASSED] pf_negotiate_latest_newer
[23:30:58] [PASSED] pf_negotiate_latest_next
[23:30:58] [SKIPPED] pf_negotiate_latest_older
[23:30:58] [SKIPPED] pf_negotiate_latest_prev
[23:30:58] =================== [PASSED] pf_service ====================
[23:30:58] ================= xe_guc_g2g (2 subtests) ==================
[23:30:58] ============== xe_live_guc_g2g_kunit_default ==============
[23:30:58] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[23:30:58] ============== xe_live_guc_g2g_kunit_allmem ===============
[23:30:58] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[23:30:58] =================== [SKIPPED] xe_guc_g2g ===================
[23:30:58] =================== xe_mocs (2 subtests) ===================
[23:30:58] ================ xe_live_mocs_kernel_kunit ================
[23:30:58] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[23:30:58] ================ xe_live_mocs_reset_kunit =================
[23:30:58] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[23:30:58] ==================== [SKIPPED] xe_mocs =====================
[23:30:58] ================= xe_migrate (2 subtests) ==================
[23:30:58] ================= xe_migrate_sanity_kunit =================
[23:30:58] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[23:30:58] ================== xe_validate_ccs_kunit ==================
[23:30:58] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[23:30:58] =================== [SKIPPED] xe_migrate ===================
[23:30:58] ================== xe_dma_buf (1 subtest) ==================
[23:30:58] ==================== xe_dma_buf_kunit =====================
[23:30:58] ================ [SKIPPED] xe_dma_buf_kunit ================
[23:30:58] =================== [SKIPPED] xe_dma_buf ===================
[23:30:58] ================= xe_bo_shrink (1 subtest) =================
[23:30:58] =================== xe_bo_shrink_kunit ====================
[23:30:58] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[23:30:58] ================== [SKIPPED] xe_bo_shrink ==================
[23:30:58] ==================== xe_bo (2 subtests) ====================
[23:30:58] ================== xe_ccs_migrate_kunit ===================
[23:30:58] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[23:30:58] ==================== xe_bo_evict_kunit ====================
[23:30:58] =============== [SKIPPED] xe_bo_evict_kunit ================
[23:30:58] ===================== [SKIPPED] xe_bo ======================
[23:30:58] ==================== args (11 subtests) ====================
[23:30:58] [PASSED] count_args_test
[23:30:58] [PASSED] call_args_example
[23:30:58] [PASSED] call_args_test
[23:30:58] [PASSED] drop_first_arg_example
[23:30:58] [PASSED] drop_first_arg_test
[23:30:58] [PASSED] first_arg_example
[23:30:58] [PASSED] first_arg_test
[23:30:58] [PASSED] last_arg_example
[23:30:58] [PASSED] last_arg_test
[23:30:58] [PASSED] pick_arg_example
[23:30:58] [PASSED] sep_comma_example
[23:30:58] ====================== [PASSED] args =======================
[23:30:58] =================== xe_pci (3 subtests) ====================
[23:30:58] ==================== check_graphics_ip ====================
[23:30:58] [PASSED] 12.00 Xe_LP
[23:30:58] [PASSED] 12.10 Xe_LP+
[23:30:58] [PASSED] 12.55 Xe_HPG
[23:30:58] [PASSED] 12.60 Xe_HPC
[23:30:58] [PASSED] 12.70 Xe_LPG
[23:30:58] [PASSED] 12.71 Xe_LPG
[23:30:58] [PASSED] 12.74 Xe_LPG+
[23:30:58] [PASSED] 20.01 Xe2_HPG
[23:30:58] [PASSED] 20.02 Xe2_HPG
[23:30:58] [PASSED] 20.04 Xe2_LPG
[23:30:58] [PASSED] 30.00 Xe3_LPG
[23:30:58] [PASSED] 30.01 Xe3_LPG
[23:30:58] [PASSED] 30.03 Xe3_LPG
[23:30:58] ================ [PASSED] check_graphics_ip ================
[23:30:58] ===================== check_media_ip ======================
[23:30:58] [PASSED] 12.00 Xe_M
[23:30:58] [PASSED] 12.55 Xe_HPM
[23:30:58] [PASSED] 13.00 Xe_LPM+
[23:30:58] [PASSED] 13.01 Xe2_HPM
[23:30:58] [PASSED] 20.00 Xe2_LPM
[23:30:58] [PASSED] 30.00 Xe3_LPM
[23:30:58] [PASSED] 30.02 Xe3_LPM
[23:30:58] ================= [PASSED] check_media_ip ==================
[23:30:58] ================= check_platform_gt_count =================
[23:30:58] [PASSED] 0x9A60 (TIGERLAKE)
[23:30:58] [PASSED] 0x9A68 (TIGERLAKE)
[23:30:58] [PASSED] 0x9A70 (TIGERLAKE)
[23:30:58] [PASSED] 0x9A40 (TIGERLAKE)
[23:30:58] [PASSED] 0x9A49 (TIGERLAKE)
[23:30:58] [PASSED] 0x9A59 (TIGERLAKE)
[23:30:58] [PASSED] 0x9A78 (TIGERLAKE)
[23:30:58] [PASSED] 0x9AC0 (TIGERLAKE)
[23:30:58] [PASSED] 0x9AC9 (TIGERLAKE)
[23:30:58] [PASSED] 0x9AD9 (TIGERLAKE)
[23:30:58] [PASSED] 0x9AF8 (TIGERLAKE)
[23:30:58] [PASSED] 0x4C80 (ROCKETLAKE)
[23:30:58] [PASSED] 0x4C8A (ROCKETLAKE)
[23:30:58] [PASSED] 0x4C8B (ROCKETLAKE)
[23:30:58] [PASSED] 0x4C8C (ROCKETLAKE)
[23:30:58] [PASSED] 0x4C90 (ROCKETLAKE)
[23:30:58] [PASSED] 0x4C9A (ROCKETLAKE)
[23:30:58] [PASSED] 0x4680 (ALDERLAKE_S)
[23:30:58] [PASSED] 0x4682 (ALDERLAKE_S)
[23:30:58] [PASSED] 0x4688 (ALDERLAKE_S)
[23:30:58] [PASSED] 0x468A (ALDERLAKE_S)
[23:30:58] [PASSED] 0x468B (ALDERLAKE_S)
[23:30:58] [PASSED] 0x4690 (ALDERLAKE_S)
[23:30:58] [PASSED] 0x4692 (ALDERLAKE_S)
[23:30:58] [PASSED] 0x4693 (ALDERLAKE_S)
[23:30:58] [PASSED] 0x46A0 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46A1 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46A2 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46A3 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46A6 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46A8 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46AA (ALDERLAKE_P)
[23:30:58] [PASSED] 0x462A (ALDERLAKE_P)
[23:30:58] [PASSED] 0x4626 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x4628 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46B0 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46B1 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46B2 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46B3 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46C0 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46C1 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46C2 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46C3 (ALDERLAKE_P)
[23:30:58] [PASSED] 0x46D0 (ALDERLAKE_N)
[23:30:58] [PASSED] 0x46D1 (ALDERLAKE_N)
[23:30:58] [PASSED] 0x46D2 (ALDERLAKE_N)
[23:30:58] [PASSED] 0x46D3 (ALDERLAKE_N)
[23:30:58] [PASSED] 0x46D4 (ALDERLAKE_N)
[23:30:58] [PASSED] 0xA721 (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7A1 (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7A9 (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7AC (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7AD (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA720 (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7A0 (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7A8 (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7AA (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA7AB (ALDERLAKE_P)
[23:30:58] [PASSED] 0xA780 (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA781 (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA782 (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA783 (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA788 (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA789 (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA78A (ALDERLAKE_S)
[23:30:58] [PASSED] 0xA78B (ALDERLAKE_S)
[23:30:58] [PASSED] 0x4905 (DG1)
[23:30:58] [PASSED] 0x4906 (DG1)
[23:30:58] [PASSED] 0x4907 (DG1)
[23:30:58] [PASSED] 0x4908 (DG1)
[23:30:58] [PASSED] 0x4909 (DG1)
[23:30:58] [PASSED] 0x56C0 (DG2)
[23:30:58] [PASSED] 0x56C2 (DG2)
[23:30:58] [PASSED] 0x56C1 (DG2)
[23:30:58] [PASSED] 0x7D51 (METEORLAKE)
[23:30:58] [PASSED] 0x7DD1 (METEORLAKE)
[23:30:58] [PASSED] 0x7D41 (METEORLAKE)
[23:30:58] [PASSED] 0x7D67 (METEORLAKE)
[23:30:58] [PASSED] 0xB640 (METEORLAKE)
[23:30:58] [PASSED] 0x56A0 (DG2)
[23:30:58] [PASSED] 0x56A1 (DG2)
[23:30:58] [PASSED] 0x56A2 (DG2)
[23:30:58] [PASSED] 0x56BE (DG2)
[23:30:58] [PASSED] 0x56BF (DG2)
[23:30:58] [PASSED] 0x5690 (DG2)
[23:30:58] [PASSED] 0x5691 (DG2)
[23:30:58] [PASSED] 0x5692 (DG2)
[23:30:58] [PASSED] 0x56A5 (DG2)
[23:30:58] [PASSED] 0x56A6 (DG2)
[23:30:58] [PASSED] 0x56B0 (DG2)
[23:30:58] [PASSED] 0x56B1 (DG2)
[23:30:58] [PASSED] 0x56BA (DG2)
[23:30:58] [PASSED] 0x56BB (DG2)
[23:30:58] [PASSED] 0x56BC (DG2)
[23:30:58] [PASSED] 0x56BD (DG2)
[23:30:58] [PASSED] 0x5693 (DG2)
[23:30:58] [PASSED] 0x5694 (DG2)
[23:30:58] [PASSED] 0x5695 (DG2)
[23:30:58] [PASSED] 0x56A3 (DG2)
[23:30:58] [PASSED] 0x56A4 (DG2)
[23:30:58] [PASSED] 0x56B2 (DG2)
[23:30:58] [PASSED] 0x56B3 (DG2)
[23:30:58] [PASSED] 0x5696 (DG2)
[23:30:58] [PASSED] 0x5697 (DG2)
[23:30:58] [PASSED] 0xB69 (PVC)
[23:30:58] [PASSED] 0xB6E (PVC)
[23:30:58] [PASSED] 0xBD4 (PVC)
[23:30:58] [PASSED] 0xBD5 (PVC)
[23:30:58] [PASSED] 0xBD6 (PVC)
[23:30:58] [PASSED] 0xBD7 (PVC)
[23:30:58] [PASSED] 0xBD8 (PVC)
[23:30:58] [PASSED] 0xBD9 (PVC)
[23:30:58] [PASSED] 0xBDA (PVC)
[23:30:58] [PASSED] 0xBDB (PVC)
[23:30:58] [PASSED] 0xBE0 (PVC)
[23:30:58] [PASSED] 0xBE1 (PVC)
[23:30:58] [PASSED] 0xBE5 (PVC)
[23:30:58] [PASSED] 0x7D40 (METEORLAKE)
[23:30:58] [PASSED] 0x7D45 (METEORLAKE)
[23:30:58] [PASSED] 0x7D55 (METEORLAKE)
[23:30:58] [PASSED] 0x7D60 (METEORLAKE)
[23:30:58] [PASSED] 0x7DD5 (METEORLAKE)
[23:30:58] [PASSED] 0x6420 (LUNARLAKE)
[23:30:58] [PASSED] 0x64A0 (LUNARLAKE)
[23:30:58] [PASSED] 0x64B0 (LUNARLAKE)
[23:30:58] [PASSED] 0xE202 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE209 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE20B (BATTLEMAGE)
[23:30:58] [PASSED] 0xE20C (BATTLEMAGE)
[23:30:58] [PASSED] 0xE20D (BATTLEMAGE)
[23:30:58] [PASSED] 0xE210 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE211 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE212 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE216 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE220 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE221 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE222 (BATTLEMAGE)
[23:30:58] [PASSED] 0xE223 (BATTLEMAGE)
[23:30:58] [PASSED] 0xB080 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB081 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB082 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB083 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB084 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB085 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB086 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB087 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB08F (PANTHERLAKE)
[23:30:58] [PASSED] 0xB090 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB0A0 (PANTHERLAKE)
[23:30:58] [PASSED] 0xB0B0 (PANTHERLAKE)
[23:30:58] [PASSED] 0xFD80 (PANTHERLAKE)
[23:30:58] [PASSED] 0xFD81 (PANTHERLAKE)
[23:30:58] ============= [PASSED] check_platform_gt_count =============
[23:30:58] ===================== [PASSED] xe_pci ======================
[23:30:58] =================== xe_rtp (2 subtests) ====================
[23:30:58] =============== xe_rtp_process_to_sr_tests ================
[23:30:58] [PASSED] coalesce-same-reg
[23:30:58] [PASSED] no-match-no-add
[23:30:58] [PASSED] match-or
[23:30:58] [PASSED] match-or-xfail
[23:30:58] [PASSED] no-match-no-add-multiple-rules
[23:30:58] [PASSED] two-regs-two-entries
[23:30:58] [PASSED] clr-one-set-other
[23:30:58] [PASSED] set-field
[23:30:58] [PASSED] conflict-duplicate
[23:30:58] [PASSED] conflict-not-disjoint
[23:30:58] [PASSED] conflict-reg-type
[23:30:58] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[23:30:58] ================== xe_rtp_process_tests ===================
[23:30:58] [PASSED] active1
[23:30:58] [PASSED] active2
[23:30:58] [PASSED] active-inactive
[23:30:58] [PASSED] inactive-active
[23:30:58] [PASSED] inactive-1st_or_active-inactive
[23:30:58] [PASSED] inactive-2nd_or_active-inactive
[23:30:58] [PASSED] inactive-last_or_active-inactive
[23:30:58] [PASSED] inactive-no_or_active-inactive
[23:30:58] ============== [PASSED] xe_rtp_process_tests ===============
[23:30:58] ===================== [PASSED] xe_rtp ======================
[23:30:58] ==================== xe_wa (1 subtest) =====================
[23:30:58] ======================== xe_wa_gt =========================
[23:30:58] [PASSED] TIGERLAKE B0
[23:30:58] [PASSED] DG1 A0
[23:30:58] [PASSED] DG1 B0
[23:30:58] [PASSED] ALDERLAKE_S A0
[23:30:58] [PASSED] ALDERLAKE_S B0
stty: 'standard input': Inappropriate ioctl for device
[23:30:58] [PASSED] ALDERLAKE_S C0
[23:30:58] [PASSED] ALDERLAKE_S D0
[23:30:58] [PASSED] ALDERLAKE_P A0
[23:30:58] [PASSED] ALDERLAKE_P B0
[23:30:58] [PASSED] ALDERLAKE_P C0
[23:30:58] [PASSED] ALDERLAKE_S RPLS D0
[23:30:58] [PASSED] ALDERLAKE_P RPLU E0
[23:30:58] [PASSED] DG2 G10 C0
[23:30:58] [PASSED] DG2 G11 B1
[23:30:58] [PASSED] DG2 G12 A1
[23:30:58] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:30:58] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:30:58] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[23:30:58] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[23:30:58] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[23:30:58] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[23:30:58] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[23:30:58] ==================== [PASSED] xe_wa_gt =====================
[23:30:58] ====================== [PASSED] xe_wa ======================
[23:30:58] ============================================================
[23:30:58] Testing complete. Ran 306 tests: passed: 288, skipped: 18
[23:30:58] Elapsed time: 34.991s total, 4.266s configuring, 30.358s building, 0.329s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[23:30:58] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:31:00] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:31:24] Starting KUnit Kernel (1/1)...
[23:31:24] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:31:25] ============ drm_test_pick_cmdline (2 subtests) ============
[23:31:25] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[23:31:25] =============== drm_test_pick_cmdline_named ===============
[23:31:25] [PASSED] NTSC
[23:31:25] [PASSED] NTSC-J
[23:31:25] [PASSED] PAL
[23:31:25] [PASSED] PAL-M
[23:31:25] =========== [PASSED] drm_test_pick_cmdline_named ===========
[23:31:25] ============== [PASSED] drm_test_pick_cmdline ==============
[23:31:25] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[23:31:25] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[23:31:25] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[23:31:25] =========== drm_validate_clone_mode (2 subtests) ===========
[23:31:25] ============== drm_test_check_in_clone_mode ===============
[23:31:25] [PASSED] in_clone_mode
[23:31:25] [PASSED] not_in_clone_mode
[23:31:25] ========== [PASSED] drm_test_check_in_clone_mode ===========
[23:31:25] =============== drm_test_check_valid_clones ===============
[23:31:25] [PASSED] not_in_clone_mode
[23:31:25] [PASSED] valid_clone
[23:31:25] [PASSED] invalid_clone
[23:31:25] =========== [PASSED] drm_test_check_valid_clones ===========
[23:31:25] ============= [PASSED] drm_validate_clone_mode =============
[23:31:25] ============= drm_validate_modeset (1 subtest) =============
[23:31:25] [PASSED] drm_test_check_connector_changed_modeset
[23:31:25] ============== [PASSED] drm_validate_modeset ===============
[23:31:25] ====== drm_test_bridge_get_current_state (2 subtests) ======
[23:31:25] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[23:31:25] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[23:31:25] ======== [PASSED] drm_test_bridge_get_current_state ========
[23:31:25] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[23:31:25] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[23:31:25] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[23:31:25] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[23:31:25] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[23:31:25] ============== drm_bridge_alloc (2 subtests) ===============
[23:31:25] [PASSED] drm_test_drm_bridge_alloc_basic
[23:31:25] [PASSED] drm_test_drm_bridge_alloc_get_put
[23:31:25] ================ [PASSED] drm_bridge_alloc =================
[23:31:25] ================== drm_buddy (8 subtests) ==================
[23:31:25] [PASSED] drm_test_buddy_alloc_limit
[23:31:25] [PASSED] drm_test_buddy_alloc_optimistic
[23:31:25] [PASSED] drm_test_buddy_alloc_pessimistic
[23:31:25] [PASSED] drm_test_buddy_alloc_pathological
[23:31:25] [PASSED] drm_test_buddy_alloc_contiguous
[23:31:25] [PASSED] drm_test_buddy_alloc_clear
[23:31:25] [PASSED] drm_test_buddy_alloc_range_bias
[23:31:25] [PASSED] drm_test_buddy_fragmentation_performance
[23:31:25] ==================== [PASSED] drm_buddy ====================
[23:31:25] ============= drm_cmdline_parser (40 subtests) =============
[23:31:25] [PASSED] drm_test_cmdline_force_d_only
[23:31:25] [PASSED] drm_test_cmdline_force_D_only_dvi
[23:31:25] [PASSED] drm_test_cmdline_force_D_only_hdmi
[23:31:25] [PASSED] drm_test_cmdline_force_D_only_not_digital
[23:31:25] [PASSED] drm_test_cmdline_force_e_only
[23:31:25] [PASSED] drm_test_cmdline_res
[23:31:25] [PASSED] drm_test_cmdline_res_vesa
[23:31:25] [PASSED] drm_test_cmdline_res_vesa_rblank
[23:31:25] [PASSED] drm_test_cmdline_res_rblank
[23:31:25] [PASSED] drm_test_cmdline_res_bpp
[23:31:25] [PASSED] drm_test_cmdline_res_refresh
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[23:31:25] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[23:31:25] [PASSED] drm_test_cmdline_res_margins_force_on
[23:31:25] [PASSED] drm_test_cmdline_res_vesa_margins
[23:31:25] [PASSED] drm_test_cmdline_name
[23:31:25] [PASSED] drm_test_cmdline_name_bpp
[23:31:25] [PASSED] drm_test_cmdline_name_option
[23:31:25] [PASSED] drm_test_cmdline_name_bpp_option
[23:31:25] [PASSED] drm_test_cmdline_rotate_0
[23:31:25] [PASSED] drm_test_cmdline_rotate_90
[23:31:25] [PASSED] drm_test_cmdline_rotate_180
[23:31:25] [PASSED] drm_test_cmdline_rotate_270
[23:31:25] [PASSED] drm_test_cmdline_hmirror
[23:31:25] [PASSED] drm_test_cmdline_vmirror
[23:31:25] [PASSED] drm_test_cmdline_margin_options
[23:31:25] [PASSED] drm_test_cmdline_multiple_options
[23:31:25] [PASSED] drm_test_cmdline_bpp_extra_and_option
[23:31:25] [PASSED] drm_test_cmdline_extra_and_option
[23:31:25] [PASSED] drm_test_cmdline_freestanding_options
[23:31:25] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[23:31:25] [PASSED] drm_test_cmdline_panel_orientation
[23:31:25] ================ drm_test_cmdline_invalid =================
[23:31:25] [PASSED] margin_only
[23:31:25] [PASSED] interlace_only
[23:31:25] [PASSED] res_missing_x
[23:31:25] [PASSED] res_missing_y
[23:31:25] [PASSED] res_bad_y
[23:31:25] [PASSED] res_missing_y_bpp
[23:31:25] [PASSED] res_bad_bpp
[23:31:25] [PASSED] res_bad_refresh
[23:31:25] [PASSED] res_bpp_refresh_force_on_off
[23:31:25] [PASSED] res_invalid_mode
[23:31:25] [PASSED] res_bpp_wrong_place_mode
[23:31:25] [PASSED] name_bpp_refresh
[23:31:25] [PASSED] name_refresh
[23:31:25] [PASSED] name_refresh_wrong_mode
[23:31:25] [PASSED] name_refresh_invalid_mode
[23:31:25] [PASSED] rotate_multiple
[23:31:25] [PASSED] rotate_invalid_val
[23:31:25] [PASSED] rotate_truncated
[23:31:25] [PASSED] invalid_option
[23:31:25] [PASSED] invalid_tv_option
[23:31:25] [PASSED] truncated_tv_option
[23:31:25] ============ [PASSED] drm_test_cmdline_invalid =============
[23:31:25] =============== drm_test_cmdline_tv_options ===============
[23:31:25] [PASSED] NTSC
[23:31:25] [PASSED] NTSC_443
[23:31:25] [PASSED] NTSC_J
[23:31:25] [PASSED] PAL
[23:31:25] [PASSED] PAL_M
[23:31:25] [PASSED] PAL_N
[23:31:25] [PASSED] SECAM
[23:31:25] [PASSED] MONO_525
[23:31:25] [PASSED] MONO_625
[23:31:25] =========== [PASSED] drm_test_cmdline_tv_options ===========
[23:31:25] =============== [PASSED] drm_cmdline_parser ================
[23:31:25] ========== drmm_connector_hdmi_init (20 subtests) ==========
[23:31:25] [PASSED] drm_test_connector_hdmi_init_valid
[23:31:25] [PASSED] drm_test_connector_hdmi_init_bpc_8
[23:31:25] [PASSED] drm_test_connector_hdmi_init_bpc_10
[23:31:25] [PASSED] drm_test_connector_hdmi_init_bpc_12
[23:31:25] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[23:31:25] [PASSED] drm_test_connector_hdmi_init_bpc_null
[23:31:25] [PASSED] drm_test_connector_hdmi_init_formats_empty
[23:31:25] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[23:31:25] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:31:25] [PASSED] supported_formats=0x9 yuv420_allowed=1
[23:31:25] [PASSED] supported_formats=0x9 yuv420_allowed=0
[23:31:25] [PASSED] supported_formats=0x3 yuv420_allowed=1
[23:31:25] [PASSED] supported_formats=0x3 yuv420_allowed=0
[23:31:25] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:31:25] [PASSED] drm_test_connector_hdmi_init_null_ddc
[23:31:25] [PASSED] drm_test_connector_hdmi_init_null_product
[23:31:25] [PASSED] drm_test_connector_hdmi_init_null_vendor
[23:31:25] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[23:31:25] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[23:31:25] [PASSED] drm_test_connector_hdmi_init_product_valid
[23:31:25] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[23:31:25] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[23:31:25] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[23:31:25] ========= drm_test_connector_hdmi_init_type_valid =========
[23:31:25] [PASSED] HDMI-A
[23:31:25] [PASSED] HDMI-B
[23:31:25] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[23:31:25] ======== drm_test_connector_hdmi_init_type_invalid ========
[23:31:25] [PASSED] Unknown
[23:31:25] [PASSED] VGA
[23:31:25] [PASSED] DVI-I
[23:31:25] [PASSED] DVI-D
[23:31:25] [PASSED] DVI-A
[23:31:25] [PASSED] Composite
[23:31:25] [PASSED] SVIDEO
[23:31:25] [PASSED] LVDS
[23:31:25] [PASSED] Component
[23:31:25] [PASSED] DIN
[23:31:25] [PASSED] DP
[23:31:25] [PASSED] TV
[23:31:25] [PASSED] eDP
[23:31:25] [PASSED] Virtual
[23:31:25] [PASSED] DSI
[23:31:25] [PASSED] DPI
[23:31:25] [PASSED] Writeback
[23:31:25] [PASSED] SPI
[23:31:25] [PASSED] USB
[23:31:25] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[23:31:25] ============ [PASSED] drmm_connector_hdmi_init =============
[23:31:25] ============= drmm_connector_init (3 subtests) =============
[23:31:25] [PASSED] drm_test_drmm_connector_init
[23:31:25] [PASSED] drm_test_drmm_connector_init_null_ddc
[23:31:25] ========= drm_test_drmm_connector_init_type_valid =========
[23:31:25] [PASSED] Unknown
[23:31:25] [PASSED] VGA
[23:31:25] [PASSED] DVI-I
[23:31:25] [PASSED] DVI-D
[23:31:25] [PASSED] DVI-A
[23:31:25] [PASSED] Composite
[23:31:25] [PASSED] SVIDEO
[23:31:25] [PASSED] LVDS
[23:31:25] [PASSED] Component
[23:31:25] [PASSED] DIN
[23:31:25] [PASSED] DP
[23:31:25] [PASSED] HDMI-A
[23:31:25] [PASSED] HDMI-B
[23:31:25] [PASSED] TV
[23:31:25] [PASSED] eDP
[23:31:25] [PASSED] Virtual
[23:31:25] [PASSED] DSI
[23:31:25] [PASSED] DPI
[23:31:25] [PASSED] Writeback
[23:31:25] [PASSED] SPI
[23:31:25] [PASSED] USB
[23:31:25] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[23:31:25] =============== [PASSED] drmm_connector_init ===============
[23:31:25] ========= drm_connector_dynamic_init (6 subtests) ==========
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_init
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_init_properties
[23:31:25] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[23:31:25] [PASSED] Unknown
[23:31:25] [PASSED] VGA
[23:31:25] [PASSED] DVI-I
[23:31:25] [PASSED] DVI-D
[23:31:25] [PASSED] DVI-A
[23:31:25] [PASSED] Composite
[23:31:25] [PASSED] SVIDEO
[23:31:25] [PASSED] LVDS
[23:31:25] [PASSED] Component
[23:31:25] [PASSED] DIN
[23:31:25] [PASSED] DP
[23:31:25] [PASSED] HDMI-A
[23:31:25] [PASSED] HDMI-B
[23:31:25] [PASSED] TV
[23:31:25] [PASSED] eDP
[23:31:25] [PASSED] Virtual
[23:31:25] [PASSED] DSI
[23:31:25] [PASSED] DPI
[23:31:25] [PASSED] Writeback
[23:31:25] [PASSED] SPI
[23:31:25] [PASSED] USB
[23:31:25] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[23:31:25] ======== drm_test_drm_connector_dynamic_init_name =========
[23:31:25] [PASSED] Unknown
[23:31:25] [PASSED] VGA
[23:31:25] [PASSED] DVI-I
[23:31:25] [PASSED] DVI-D
[23:31:25] [PASSED] DVI-A
[23:31:25] [PASSED] Composite
[23:31:25] [PASSED] SVIDEO
[23:31:25] [PASSED] LVDS
[23:31:25] [PASSED] Component
[23:31:25] [PASSED] DIN
[23:31:25] [PASSED] DP
[23:31:25] [PASSED] HDMI-A
[23:31:25] [PASSED] HDMI-B
[23:31:25] [PASSED] TV
[23:31:25] [PASSED] eDP
[23:31:25] [PASSED] Virtual
[23:31:25] [PASSED] DSI
[23:31:25] [PASSED] DPI
[23:31:25] [PASSED] Writeback
[23:31:25] [PASSED] SPI
[23:31:25] [PASSED] USB
[23:31:25] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[23:31:25] =========== [PASSED] drm_connector_dynamic_init ============
[23:31:25] ==== drm_connector_dynamic_register_early (4 subtests) =====
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[23:31:25] ====== [PASSED] drm_connector_dynamic_register_early =======
[23:31:25] ======= drm_connector_dynamic_register (7 subtests) ========
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[23:31:25] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[23:31:25] ========= [PASSED] drm_connector_dynamic_register ==========
[23:31:25] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[23:31:25] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[23:31:25] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[23:31:25] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[23:31:25] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[23:31:25] ========== drm_test_get_tv_mode_from_name_valid ===========
[23:31:25] [PASSED] NTSC
[23:31:25] [PASSED] NTSC-443
[23:31:25] [PASSED] NTSC-J
[23:31:25] [PASSED] PAL
[23:31:25] [PASSED] PAL-M
[23:31:25] [PASSED] PAL-N
[23:31:25] [PASSED] SECAM
[23:31:25] [PASSED] Mono
[23:31:25] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[23:31:25] [PASSED] drm_test_get_tv_mode_from_name_truncated
[23:31:25] ============ [PASSED] drm_get_tv_mode_from_name ============
[23:31:25] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[23:31:25] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[23:31:25] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[23:31:25] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[23:31:25] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[23:31:25] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[23:31:25] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[23:31:25] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[23:31:25] [PASSED] VIC 96
[23:31:25] [PASSED] VIC 97
[23:31:25] [PASSED] VIC 101
[23:31:25] [PASSED] VIC 102
[23:31:25] [PASSED] VIC 106
[23:31:25] [PASSED] VIC 107
[23:31:25] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[23:31:25] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[23:31:25] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[23:31:25] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[23:31:25] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[23:31:25] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[23:31:25] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[23:31:25] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[23:31:25] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[23:31:25] [PASSED] Automatic
[23:31:25] [PASSED] Full
[23:31:25] [PASSED] Limited 16:235
[23:31:25] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[23:31:25] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[23:31:25] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[23:31:25] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[23:31:25] === drm_test_drm_hdmi_connector_get_output_format_name ====
[23:31:25] [PASSED] RGB
[23:31:25] [PASSED] YUV 4:2:0
[23:31:25] [PASSED] YUV 4:2:2
[23:31:25] [PASSED] YUV 4:4:4
[23:31:25] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[23:31:25] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[23:31:25] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[23:31:25] ============= drm_damage_helper (21 subtests) ==============
[23:31:25] [PASSED] drm_test_damage_iter_no_damage
[23:31:25] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[23:31:25] [PASSED] drm_test_damage_iter_no_damage_src_moved
[23:31:25] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[23:31:25] [PASSED] drm_test_damage_iter_no_damage_not_visible
[23:31:25] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[23:31:25] [PASSED] drm_test_damage_iter_no_damage_no_fb
[23:31:25] [PASSED] drm_test_damage_iter_simple_damage
[23:31:25] [PASSED] drm_test_damage_iter_single_damage
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_outside_src
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_src_moved
[23:31:25] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[23:31:25] [PASSED] drm_test_damage_iter_damage
[23:31:25] [PASSED] drm_test_damage_iter_damage_one_intersect
[23:31:25] [PASSED] drm_test_damage_iter_damage_one_outside
[23:31:25] [PASSED] drm_test_damage_iter_damage_src_moved
[23:31:25] [PASSED] drm_test_damage_iter_damage_not_visible
[23:31:25] ================ [PASSED] drm_damage_helper ================
[23:31:25] ============== drm_dp_mst_helper (3 subtests) ==============
[23:31:25] ============== drm_test_dp_mst_calc_pbn_mode ==============
[23:31:25] [PASSED] Clock 154000 BPP 30 DSC disabled
[23:31:25] [PASSED] Clock 234000 BPP 30 DSC disabled
[23:31:25] [PASSED] Clock 297000 BPP 24 DSC disabled
[23:31:25] [PASSED] Clock 332880 BPP 24 DSC enabled
[23:31:25] [PASSED] Clock 324540 BPP 24 DSC enabled
[23:31:25] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[23:31:25] ============== drm_test_dp_mst_calc_pbn_div ===============
[23:31:25] [PASSED] Link rate 2000000 lane count 4
[23:31:25] [PASSED] Link rate 2000000 lane count 2
[23:31:25] [PASSED] Link rate 2000000 lane count 1
[23:31:25] [PASSED] Link rate 1350000 lane count 4
[23:31:25] [PASSED] Link rate 1350000 lane count 2
[23:31:25] [PASSED] Link rate 1350000 lane count 1
[23:31:25] [PASSED] Link rate 1000000 lane count 4
[23:31:25] [PASSED] Link rate 1000000 lane count 2
[23:31:25] [PASSED] Link rate 1000000 lane count 1
[23:31:25] [PASSED] Link rate 810000 lane count 4
[23:31:25] [PASSED] Link rate 810000 lane count 2
[23:31:25] [PASSED] Link rate 810000 lane count 1
[23:31:25] [PASSED] Link rate 540000 lane count 4
[23:31:25] [PASSED] Link rate 540000 lane count 2
[23:31:25] [PASSED] Link rate 540000 lane count 1
[23:31:25] [PASSED] Link rate 270000 lane count 4
[23:31:25] [PASSED] Link rate 270000 lane count 2
[23:31:25] [PASSED] Link rate 270000 lane count 1
[23:31:25] [PASSED] Link rate 162000 lane count 4
[23:31:25] [PASSED] Link rate 162000 lane count 2
[23:31:25] [PASSED] Link rate 162000 lane count 1
[23:31:25] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[23:31:25] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[23:31:25] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[23:31:25] [PASSED] DP_POWER_UP_PHY with port number
[23:31:25] [PASSED] DP_POWER_DOWN_PHY with port number
[23:31:25] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[23:31:25] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[23:31:25] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[23:31:25] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[23:31:25] [PASSED] DP_QUERY_PAYLOAD with port number
[23:31:25] [PASSED] DP_QUERY_PAYLOAD with VCPI
[23:31:25] [PASSED] DP_REMOTE_DPCD_READ with port number
[23:31:25] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[23:31:25] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[23:31:25] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[23:31:25] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[23:31:25] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[23:31:25] [PASSED] DP_REMOTE_I2C_READ with port number
[23:31:25] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[23:31:25] [PASSED] DP_REMOTE_I2C_READ with transactions array
[23:31:25] [PASSED] DP_REMOTE_I2C_WRITE with port number
[23:31:25] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[23:31:25] [PASSED] DP_REMOTE_I2C_WRITE with data array
[23:31:25] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[23:31:25] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[23:31:25] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[23:31:25] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[23:31:25] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[23:31:25] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[23:31:25] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[23:31:25] ================ [PASSED] drm_dp_mst_helper ================
[23:31:25] ================== drm_exec (7 subtests) ===================
[23:31:25] [PASSED] sanitycheck
[23:31:25] [PASSED] test_lock
[23:31:25] [PASSED] test_lock_unlock
[23:31:25] [PASSED] test_duplicates
[23:31:25] [PASSED] test_prepare
[23:31:25] [PASSED] test_prepare_array
[23:31:25] [PASSED] test_multiple_loops
[23:31:25] ==================== [PASSED] drm_exec =====================
[23:31:25] =========== drm_format_helper_test (17 subtests) ===========
[23:31:25] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[23:31:25] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[23:31:25] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[23:31:25] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[23:31:25] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[23:31:25] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[23:31:25] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[23:31:25] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[23:31:25] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[23:31:25] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[23:31:25] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[23:31:25] ============== drm_test_fb_xrgb8888_to_mono ===============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[23:31:25] ==================== drm_test_fb_swab =====================
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ================ [PASSED] drm_test_fb_swab =================
[23:31:25] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[23:31:25] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[23:31:25] [PASSED] single_pixel_source_buffer
[23:31:25] [PASSED] single_pixel_clip_rectangle
[23:31:25] [PASSED] well_known_colors
[23:31:25] [PASSED] destination_pitch
[23:31:25] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[23:31:25] ================= drm_test_fb_clip_offset =================
[23:31:25] [PASSED] pass through
[23:31:25] [PASSED] horizontal offset
[23:31:25] [PASSED] vertical offset
[23:31:25] [PASSED] horizontal and vertical offset
[23:31:25] [PASSED] horizontal offset (custom pitch)
[23:31:25] [PASSED] vertical offset (custom pitch)
[23:31:25] [PASSED] horizontal and vertical offset (custom pitch)
[23:31:25] ============= [PASSED] drm_test_fb_clip_offset =============
[23:31:25] =================== drm_test_fb_memcpy ====================
[23:31:25] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[23:31:25] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[23:31:25] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[23:31:25] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[23:31:25] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[23:31:25] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[23:31:25] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[23:31:25] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[23:31:25] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[23:31:25] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[23:31:25] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[23:31:25] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[23:31:25] =============== [PASSED] drm_test_fb_memcpy ================
[23:31:25] ============= [PASSED] drm_format_helper_test ==============
[23:31:25] ================= drm_format (18 subtests) =================
[23:31:25] [PASSED] drm_test_format_block_width_invalid
[23:31:25] [PASSED] drm_test_format_block_width_one_plane
[23:31:25] [PASSED] drm_test_format_block_width_two_plane
[23:31:25] [PASSED] drm_test_format_block_width_three_plane
[23:31:25] [PASSED] drm_test_format_block_width_tiled
[23:31:25] [PASSED] drm_test_format_block_height_invalid
[23:31:25] [PASSED] drm_test_format_block_height_one_plane
[23:31:25] [PASSED] drm_test_format_block_height_two_plane
[23:31:25] [PASSED] drm_test_format_block_height_three_plane
[23:31:25] [PASSED] drm_test_format_block_height_tiled
[23:31:25] [PASSED] drm_test_format_min_pitch_invalid
[23:31:25] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[23:31:25] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[23:31:25] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[23:31:25] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[23:31:25] [PASSED] drm_test_format_min_pitch_two_plane
[23:31:25] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[23:31:25] [PASSED] drm_test_format_min_pitch_tiled
[23:31:25] =================== [PASSED] drm_format ====================
[23:31:25] ============== drm_framebuffer (10 subtests) ===============
[23:31:25] ========== drm_test_framebuffer_check_src_coords ==========
[23:31:25] [PASSED] Success: source fits into fb
[23:31:25] [PASSED] Fail: overflowing fb with x-axis coordinate
[23:31:25] [PASSED] Fail: overflowing fb with y-axis coordinate
[23:31:25] [PASSED] Fail: overflowing fb with source width
[23:31:25] [PASSED] Fail: overflowing fb with source height
[23:31:25] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[23:31:25] [PASSED] drm_test_framebuffer_cleanup
[23:31:25] =============== drm_test_framebuffer_create ===============
[23:31:25] [PASSED] ABGR8888 normal sizes
[23:31:25] [PASSED] ABGR8888 max sizes
[23:31:25] [PASSED] ABGR8888 pitch greater than min required
[23:31:25] [PASSED] ABGR8888 pitch less than min required
[23:31:25] [PASSED] ABGR8888 Invalid width
[23:31:25] [PASSED] ABGR8888 Invalid buffer handle
[23:31:25] [PASSED] No pixel format
[23:31:25] [PASSED] ABGR8888 Width 0
[23:31:25] [PASSED] ABGR8888 Height 0
[23:31:25] [PASSED] ABGR8888 Out of bound height * pitch combination
[23:31:25] [PASSED] ABGR8888 Large buffer offset
[23:31:25] [PASSED] ABGR8888 Buffer offset for inexistent plane
[23:31:25] [PASSED] ABGR8888 Invalid flag
[23:31:25] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[23:31:25] [PASSED] ABGR8888 Valid buffer modifier
[23:31:25] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[23:31:25] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] NV12 Normal sizes
[23:31:25] [PASSED] NV12 Max sizes
[23:31:25] [PASSED] NV12 Invalid pitch
[23:31:25] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[23:31:25] [PASSED] NV12 different modifier per-plane
[23:31:25] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[23:31:25] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] NV12 Modifier for inexistent plane
[23:31:25] [PASSED] NV12 Handle for inexistent plane
[23:31:25] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[23:31:25] [PASSED] YVU420 Normal sizes
[23:31:25] [PASSED] YVU420 Max sizes
[23:31:25] [PASSED] YVU420 Invalid pitch
[23:31:25] [PASSED] YVU420 Different pitches
[23:31:25] [PASSED] YVU420 Different buffer offsets/pitches
[23:31:25] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[23:31:25] [PASSED] YVU420 Valid modifier
[23:31:25] [PASSED] YVU420 Different modifiers per plane
[23:31:25] [PASSED] YVU420 Modifier for inexistent plane
[23:31:25] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[23:31:25] [PASSED] X0L2 Normal sizes
[23:31:25] [PASSED] X0L2 Max sizes
[23:31:25] [PASSED] X0L2 Invalid pitch
[23:31:25] [PASSED] X0L2 Pitch greater than minimum required
[23:31:25] [PASSED] X0L2 Handle for inexistent plane
[23:31:25] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[23:31:25] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[23:31:25] [PASSED] X0L2 Valid modifier
[23:31:25] [PASSED] X0L2 Modifier for inexistent plane
[23:31:25] =========== [PASSED] drm_test_framebuffer_create ===========
[23:31:25] [PASSED] drm_test_framebuffer_free
[23:31:25] [PASSED] drm_test_framebuffer_init
[23:31:25] [PASSED] drm_test_framebuffer_init_bad_format
[23:31:25] [PASSED] drm_test_framebuffer_init_dev_mismatch
[23:31:25] [PASSED] drm_test_framebuffer_lookup
[23:31:25] [PASSED] drm_test_framebuffer_lookup_inexistent
[23:31:25] [PASSED] drm_test_framebuffer_modifiers_not_supported
[23:31:25] ================= [PASSED] drm_framebuffer =================
[23:31:25] ================ drm_gem_shmem (8 subtests) ================
[23:31:25] [PASSED] drm_gem_shmem_test_obj_create
[23:31:25] [PASSED] drm_gem_shmem_test_obj_create_private
[23:31:25] [PASSED] drm_gem_shmem_test_pin_pages
[23:31:25] [PASSED] drm_gem_shmem_test_vmap
[23:31:25] [PASSED] drm_gem_shmem_test_get_pages_sgt
[23:31:25] [PASSED] drm_gem_shmem_test_get_sg_table
[23:31:25] [PASSED] drm_gem_shmem_test_madvise
[23:31:25] [PASSED] drm_gem_shmem_test_purge
[23:31:25] ================== [PASSED] drm_gem_shmem ==================
[23:31:25] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[23:31:25] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[23:31:25] [PASSED] Automatic
[23:31:25] [PASSED] Full
[23:31:25] [PASSED] Limited 16:235
[23:31:25] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[23:31:25] [PASSED] drm_test_check_disable_connector
[23:31:25] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[23:31:25] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[23:31:25] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[23:31:25] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[23:31:25] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[23:31:25] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[23:31:25] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[23:31:25] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[23:31:25] [PASSED] drm_test_check_output_bpc_dvi
[23:31:25] [PASSED] drm_test_check_output_bpc_format_vic_1
[23:31:25] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[23:31:25] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[23:31:25] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[23:31:25] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[23:31:25] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[23:31:25] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[23:31:25] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[23:31:25] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[23:31:25] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[23:31:25] [PASSED] drm_test_check_broadcast_rgb_value
[23:31:25] [PASSED] drm_test_check_bpc_8_value
[23:31:25] [PASSED] drm_test_check_bpc_10_value
[23:31:25] [PASSED] drm_test_check_bpc_12_value
[23:31:25] [PASSED] drm_test_check_format_value
[23:31:25] [PASSED] drm_test_check_tmds_char_value
[23:31:25] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[23:31:25] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[23:31:25] [PASSED] drm_test_check_mode_valid
[23:31:25] [PASSED] drm_test_check_mode_valid_reject
[23:31:25] [PASSED] drm_test_check_mode_valid_reject_rate
[23:31:25] [PASSED] drm_test_check_mode_valid_reject_max_clock
[23:31:25] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[23:31:25] ================= drm_managed (2 subtests) =================
[23:31:25] [PASSED] drm_test_managed_release_action
[23:31:25] [PASSED] drm_test_managed_run_action
[23:31:25] =================== [PASSED] drm_managed ===================
[23:31:25] =================== drm_mm (6 subtests) ====================
[23:31:25] [PASSED] drm_test_mm_init
[23:31:25] [PASSED] drm_test_mm_debug
[23:31:25] [PASSED] drm_test_mm_align32
[23:31:25] [PASSED] drm_test_mm_align64
[23:31:25] [PASSED] drm_test_mm_lowest
[23:31:25] [PASSED] drm_test_mm_highest
[23:31:25] ===================== [PASSED] drm_mm ======================
[23:31:25] ============= drm_modes_analog_tv (5 subtests) =============
[23:31:25] [PASSED] drm_test_modes_analog_tv_mono_576i
[23:31:25] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[23:31:25] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[23:31:25] [PASSED] drm_test_modes_analog_tv_pal_576i
[23:31:25] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[23:31:25] =============== [PASSED] drm_modes_analog_tv ===============
[23:31:25] ============== drm_plane_helper (2 subtests) ===============
[23:31:25] =============== drm_test_check_plane_state ================
[23:31:25] [PASSED] clipping_simple
[23:31:25] [PASSED] clipping_rotate_reflect
[23:31:25] [PASSED] positioning_simple
[23:31:25] [PASSED] upscaling
[23:31:25] [PASSED] downscaling
[23:31:25] [PASSED] rounding1
[23:31:25] [PASSED] rounding2
[23:31:25] [PASSED] rounding3
[23:31:25] [PASSED] rounding4
[23:31:25] =========== [PASSED] drm_test_check_plane_state ============
[23:31:25] =========== drm_test_check_invalid_plane_state ============
[23:31:25] [PASSED] positioning_invalid
[23:31:25] [PASSED] upscaling_invalid
[23:31:25] [PASSED] downscaling_invalid
[23:31:25] ======= [PASSED] drm_test_check_invalid_plane_state ========
[23:31:25] ================ [PASSED] drm_plane_helper =================
[23:31:25] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[23:31:25] ====== drm_test_connector_helper_tv_get_modes_check =======
[23:31:25] [PASSED] None
[23:31:25] [PASSED] PAL
[23:31:25] [PASSED] NTSC
[23:31:25] [PASSED] Both, NTSC Default
[23:31:25] [PASSED] Both, PAL Default
[23:31:25] [PASSED] Both, NTSC Default, with PAL on command-line
[23:31:25] [PASSED] Both, PAL Default, with NTSC on command-line
[23:31:25] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[23:31:25] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[23:31:25] ================== drm_rect (9 subtests) ===================
[23:31:25] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[23:31:25] [PASSED] drm_test_rect_clip_scaled_not_clipped
[23:31:25] [PASSED] drm_test_rect_clip_scaled_clipped
[23:31:25] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[23:31:25] ================= drm_test_rect_intersect =================
[23:31:25] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[23:31:25] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[23:31:25] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[23:31:25] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[23:31:25] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[23:31:25] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[23:31:25] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[23:31:25] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[23:31:25] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[23:31:25] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[23:31:25] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[23:31:25] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[23:31:25] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[23:31:25] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[23:31:25] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[23:31:25] ============= [PASSED] drm_test_rect_intersect =============
[23:31:25] ================ drm_test_rect_calc_hscale ================
[23:31:25] [PASSED] normal use
[23:31:25] [PASSED] out of max range
[23:31:25] [PASSED] out of min range
[23:31:25] [PASSED] zero dst
[23:31:25] [PASSED] negative src
[23:31:25] [PASSED] negative dst
[23:31:25] ============ [PASSED] drm_test_rect_calc_hscale ============
[23:31:25] ================ drm_test_rect_calc_vscale ================
[23:31:25] [PASSED] normal use
stty: 'standard input': Inappropriate ioctl for device
[23:31:25] [PASSED] out of max range
[23:31:25] [PASSED] out of min range
[23:31:25] [PASSED] zero dst
[23:31:25] [PASSED] negative src
[23:31:25] [PASSED] negative dst
[23:31:25] ============ [PASSED] drm_test_rect_calc_vscale ============
[23:31:25] ================== drm_test_rect_rotate ===================
[23:31:25] [PASSED] reflect-x
[23:31:25] [PASSED] reflect-y
[23:31:25] [PASSED] rotate-0
[23:31:25] [PASSED] rotate-90
[23:31:25] [PASSED] rotate-180
[23:31:25] [PASSED] rotate-270
[23:31:25] ============== [PASSED] drm_test_rect_rotate ===============
[23:31:25] ================ drm_test_rect_rotate_inv =================
[23:31:25] [PASSED] reflect-x
[23:31:25] [PASSED] reflect-y
[23:31:25] [PASSED] rotate-0
[23:31:25] [PASSED] rotate-90
[23:31:25] [PASSED] rotate-180
[23:31:25] [PASSED] rotate-270
[23:31:25] ============ [PASSED] drm_test_rect_rotate_inv =============
[23:31:25] ==================== [PASSED] drm_rect =====================
[23:31:25] ============ drm_sysfb_modeset_test (1 subtest) ============
[23:31:25] ============ drm_test_sysfb_build_fourcc_list =============
[23:31:25] [PASSED] no native formats
[23:31:25] [PASSED] XRGB8888 as native format
[23:31:25] [PASSED] remove duplicates
[23:31:25] [PASSED] convert alpha formats
[23:31:25] [PASSED] random formats
[23:31:25] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[23:31:25] ============= [PASSED] drm_sysfb_modeset_test ==============
[23:31:25] ============================================================
[23:31:25] Testing complete. Ran 622 tests: passed: 622
[23:31:25] Elapsed time: 26.722s total, 1.676s configuring, 24.627s building, 0.393s running
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[23:31:25] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:31:27] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:31:36] Starting KUnit Kernel (1/1)...
[23:31:36] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:31:36] ================= ttm_device (5 subtests) ==================
[23:31:36] [PASSED] ttm_device_init_basic
[23:31:36] [PASSED] ttm_device_init_multiple
[23:31:36] [PASSED] ttm_device_fini_basic
[23:31:36] [PASSED] ttm_device_init_no_vma_man
[23:31:36] ================== ttm_device_init_pools ==================
[23:31:36] [PASSED] No DMA allocations, no DMA32 required
[23:31:36] [PASSED] DMA allocations, DMA32 required
[23:31:36] [PASSED] No DMA allocations, DMA32 required
[23:31:36] [PASSED] DMA allocations, no DMA32 required
[23:31:36] ============== [PASSED] ttm_device_init_pools ==============
[23:31:36] =================== [PASSED] ttm_device ====================
[23:31:36] ================== ttm_pool (8 subtests) ===================
[23:31:36] ================== ttm_pool_alloc_basic ===================
[23:31:36] [PASSED] One page
[23:31:36] [PASSED] More than one page
[23:31:36] [PASSED] Above the allocation limit
[23:31:36] [PASSED] One page, with coherent DMA mappings enabled
[23:31:36] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:31:36] ============== [PASSED] ttm_pool_alloc_basic ===============
[23:31:36] ============== ttm_pool_alloc_basic_dma_addr ==============
[23:31:36] [PASSED] One page
[23:31:36] [PASSED] More than one page
[23:31:36] [PASSED] Above the allocation limit
[23:31:36] [PASSED] One page, with coherent DMA mappings enabled
[23:31:36] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:31:36] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[23:31:36] [PASSED] ttm_pool_alloc_order_caching_match
[23:31:36] [PASSED] ttm_pool_alloc_caching_mismatch
[23:31:36] [PASSED] ttm_pool_alloc_order_mismatch
[23:31:36] [PASSED] ttm_pool_free_dma_alloc
[23:31:36] [PASSED] ttm_pool_free_no_dma_alloc
[23:31:36] [PASSED] ttm_pool_fini_basic
[23:31:36] ==================== [PASSED] ttm_pool =====================
[23:31:36] ================ ttm_resource (8 subtests) =================
[23:31:36] ================= ttm_resource_init_basic =================
[23:31:36] [PASSED] Init resource in TTM_PL_SYSTEM
[23:31:36] [PASSED] Init resource in TTM_PL_VRAM
[23:31:36] [PASSED] Init resource in a private placement
[23:31:36] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[23:31:36] ============= [PASSED] ttm_resource_init_basic =============
[23:31:36] [PASSED] ttm_resource_init_pinned
[23:31:36] [PASSED] ttm_resource_fini_basic
[23:31:36] [PASSED] ttm_resource_manager_init_basic
[23:31:36] [PASSED] ttm_resource_manager_usage_basic
[23:31:36] [PASSED] ttm_resource_manager_set_used_basic
[23:31:36] [PASSED] ttm_sys_man_alloc_basic
[23:31:36] [PASSED] ttm_sys_man_free_basic
[23:31:36] ================== [PASSED] ttm_resource ===================
[23:31:36] =================== ttm_tt (15 subtests) ===================
[23:31:36] ==================== ttm_tt_init_basic ====================
[23:31:36] [PASSED] Page-aligned size
[23:31:36] [PASSED] Extra pages requested
[23:31:36] ================ [PASSED] ttm_tt_init_basic ================
[23:31:36] [PASSED] ttm_tt_init_misaligned
[23:31:36] [PASSED] ttm_tt_fini_basic
[23:31:36] [PASSED] ttm_tt_fini_sg
[23:31:36] [PASSED] ttm_tt_fini_shmem
[23:31:36] [PASSED] ttm_tt_create_basic
[23:31:36] [PASSED] ttm_tt_create_invalid_bo_type
[23:31:36] [PASSED] ttm_tt_create_ttm_exists
[23:31:36] [PASSED] ttm_tt_create_failed
[23:31:36] [PASSED] ttm_tt_destroy_basic
[23:31:36] [PASSED] ttm_tt_populate_null_ttm
[23:31:36] [PASSED] ttm_tt_populate_populated_ttm
[23:31:36] [PASSED] ttm_tt_unpopulate_basic
[23:31:36] [PASSED] ttm_tt_unpopulate_empty_ttm
[23:31:36] [PASSED] ttm_tt_swapin_basic
[23:31:36] ===================== [PASSED] ttm_tt ======================
[23:31:36] =================== ttm_bo (14 subtests) ===================
[23:31:36] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[23:31:36] [PASSED] Cannot be interrupted and sleeps
[23:31:36] [PASSED] Cannot be interrupted, locks straight away
[23:31:36] [PASSED] Can be interrupted, sleeps
[23:31:36] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[23:31:36] [PASSED] ttm_bo_reserve_locked_no_sleep
[23:31:36] [PASSED] ttm_bo_reserve_no_wait_ticket
[23:31:36] [PASSED] ttm_bo_reserve_double_resv
[23:31:36] [PASSED] ttm_bo_reserve_interrupted
[23:31:36] [PASSED] ttm_bo_reserve_deadlock
[23:31:36] [PASSED] ttm_bo_unreserve_basic
[23:31:36] [PASSED] ttm_bo_unreserve_pinned
[23:31:36] [PASSED] ttm_bo_unreserve_bulk
[23:31:36] [PASSED] ttm_bo_fini_basic
[23:31:36] [PASSED] ttm_bo_fini_shared_resv
[23:31:36] [PASSED] ttm_bo_pin_basic
[23:31:36] [PASSED] ttm_bo_pin_unpin_resource
[23:31:36] [PASSED] ttm_bo_multiple_pin_one_unpin
[23:31:36] ===================== [PASSED] ttm_bo ======================
[23:31:36] ============== ttm_bo_validate (21 subtests) ===============
[23:31:36] ============== ttm_bo_init_reserved_sys_man ===============
[23:31:36] [PASSED] Buffer object for userspace
[23:31:36] [PASSED] Kernel buffer object
[23:31:36] [PASSED] Shared buffer object
[23:31:36] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[23:31:36] ============== ttm_bo_init_reserved_mock_man ==============
[23:31:36] [PASSED] Buffer object for userspace
[23:31:36] [PASSED] Kernel buffer object
[23:31:36] [PASSED] Shared buffer object
[23:31:36] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[23:31:36] [PASSED] ttm_bo_init_reserved_resv
[23:31:36] ================== ttm_bo_validate_basic ==================
[23:31:36] [PASSED] Buffer object for userspace
[23:31:36] [PASSED] Kernel buffer object
[23:31:36] [PASSED] Shared buffer object
[23:31:36] ============== [PASSED] ttm_bo_validate_basic ==============
[23:31:36] [PASSED] ttm_bo_validate_invalid_placement
[23:31:36] ============= ttm_bo_validate_same_placement ==============
[23:31:36] [PASSED] System manager
[23:31:36] [PASSED] VRAM manager
[23:31:36] ========= [PASSED] ttm_bo_validate_same_placement ==========
[23:31:36] [PASSED] ttm_bo_validate_failed_alloc
[23:31:36] [PASSED] ttm_bo_validate_pinned
[23:31:36] [PASSED] ttm_bo_validate_busy_placement
[23:31:36] ================ ttm_bo_validate_multihop =================
[23:31:36] [PASSED] Buffer object for userspace
[23:31:36] [PASSED] Kernel buffer object
[23:31:36] [PASSED] Shared buffer object
[23:31:36] ============ [PASSED] ttm_bo_validate_multihop =============
[23:31:36] ========== ttm_bo_validate_no_placement_signaled ==========
[23:31:36] [PASSED] Buffer object in system domain, no page vector
[23:31:36] [PASSED] Buffer object in system domain with an existing page vector
[23:31:36] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[23:31:36] ======== ttm_bo_validate_no_placement_not_signaled ========
[23:31:36] [PASSED] Buffer object for userspace
[23:31:36] [PASSED] Kernel buffer object
[23:31:36] [PASSED] Shared buffer object
[23:31:36] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[23:31:36] [PASSED] ttm_bo_validate_move_fence_signaled
[23:31:36] ========= ttm_bo_validate_move_fence_not_signaled =========
[23:31:36] [PASSED] Waits for GPU
[23:31:36] [PASSED] Tries to lock straight away
[23:31:36] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[23:31:36] [PASSED] ttm_bo_validate_happy_evict
[23:31:36] [PASSED] ttm_bo_validate_all_pinned_evict
[23:31:36] [PASSED] ttm_bo_validate_allowed_only_evict
[23:31:36] [PASSED] ttm_bo_validate_deleted_evict
[23:31:36] [PASSED] ttm_bo_validate_busy_domain_evict
[23:31:36] [PASSED] ttm_bo_validate_evict_gutting
[23:31:36] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[23:31:36] ================= [PASSED] ttm_bo_validate =================
[23:31:36] ============================================================
[23:31:36] Testing complete. Ran 101 tests: passed: 101
[23:31:36] Elapsed time: 11.477s total, 1.736s configuring, 9.525s building, 0.187s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 30+ messages in thread* ✓ Xe.CI.BAT: success for Allow configfs to disable specific GT type(s) (rev5)
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (24 preceding siblings ...)
2025-10-13 23:31 ` ✓ CI.KUnit: success " Patchwork
@ 2025-10-14 0:11 ` Patchwork
2025-10-14 8:08 ` ✓ Xe.CI.Full: " Patchwork
26 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-10-14 0:11 UTC (permalink / raw)
To: Matt Roper; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 2407 bytes --]
== Series Details ==
Series: Allow configfs to disable specific GT type(s) (rev5)
URL : https://patchwork.freedesktop.org/series/154739/
State : success
== Summary ==
CI Bug Log - changes from xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada_BAT -> xe-pw-154739v5_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (11 -> 11)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in xe-pw-154739v5_BAT:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@sriov_basic@enable-vfs-autoprobe-on:
- {bat-ptl-1}: [PASS][1] -> [ABORT][2] +1 other test abort
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/bat-ptl-1/igt@sriov_basic@enable-vfs-autoprobe-on.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/bat-ptl-1/igt@sriov_basic@enable-vfs-autoprobe-on.html
* igt@sriov_basic@enable-vfs-autoprobe-on@numvfs-1:
- {bat-ptl-2}: [PASS][3] -> [ABORT][4] +1 other test abort
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/bat-ptl-2/igt@sriov_basic@enable-vfs-autoprobe-on@numvfs-1.html
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/bat-ptl-2/igt@sriov_basic@enable-vfs-autoprobe-on@numvfs-1.html
* igt@xe_module_load@load:
- {bat-ptl-vm}: [PASS][5] -> [ABORT][6]
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/bat-ptl-vm/igt@xe_module_load@load.html
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/bat-ptl-vm/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).
Build changes
-------------
* Linux: xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada -> xe-pw-154739v5
IGT_8582: 8582
xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada: c917f7d11493984be9f381ca0a7667bd3e587ada
xe-pw-154739v5: 154739v5
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/index.html
[-- Attachment #2: Type: text/html, Size: 3065 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread* ✓ Xe.CI.Full: success for Allow configfs to disable specific GT type(s) (rev5)
2025-10-13 20:09 [PATCH v5 00/23] Allow configfs to disable specific GT type(s) Matt Roper
` (25 preceding siblings ...)
2025-10-14 0:11 ` ✓ Xe.CI.BAT: " Patchwork
@ 2025-10-14 8:08 ` Patchwork
2025-10-14 15:10 ` Matt Roper
26 siblings, 1 reply; 30+ messages in thread
From: Patchwork @ 2025-10-14 8:08 UTC (permalink / raw)
To: Matt Roper; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 59844 bytes --]
== Series Details ==
Series: Allow configfs to disable specific GT type(s) (rev5)
URL : https://patchwork.freedesktop.org/series/154739/
State : success
== Summary ==
CI Bug Log - changes from xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada_FULL -> xe-pw-154739v5_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (4 -> 4)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-154739v5_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1:
- shard-adlp: NOTRUN -> [FAIL][1] ([Intel XE#3884]) +1 other test fail
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_async_flips@crc-atomic@pipe-d-hdmi-a-1.html
* igt@kms_big_fb@linear-16bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][2] ([Intel XE#1407]) +2 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_big_fb@linear-16bpp-rotate-270.html
* igt@kms_big_fb@linear-32bpp-rotate-270:
- shard-adlp: NOTRUN -> [SKIP][3] ([Intel XE#316]) +5 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_big_fb@linear-32bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
- shard-lnl: NOTRUN -> [SKIP][4] ([Intel XE#1477])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
- shard-adlp: NOTRUN -> [DMESG-FAIL][5] ([Intel XE#4543]) +7 other tests dmesg-fail
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html
* igt@kms_big_fb@yf-tiled-8bpp-rotate-270:
- shard-lnl: NOTRUN -> [SKIP][6] ([Intel XE#1124]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-adlp: NOTRUN -> [SKIP][7] ([Intel XE#610])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180:
- shard-adlp: NOTRUN -> [SKIP][9] ([Intel XE#1124]) +8 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p:
- shard-bmg: [PASS][10] -> [SKIP][11] ([Intel XE#2314] / [Intel XE#2894])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-7/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_bw@connected-linear-tiling-2-displays-2160x1440p.html
* igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p:
- shard-adlp: NOTRUN -> [SKIP][12] ([Intel XE#2191]) +2 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@kms_bw@connected-linear-tiling-2-displays-3840x2160p.html
* igt@kms_bw@linear-tiling-3-displays-2160x1440p:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#367])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_bw@linear-tiling-3-displays-2160x1440p.html
- shard-adlp: NOTRUN -> [SKIP][14] ([Intel XE#367])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_bw@linear-tiling-3-displays-2160x1440p.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
- shard-dg2-set2: NOTRUN -> [SKIP][15] ([Intel XE#455] / [Intel XE#787]) +1 other test skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc@pipe-c-dp-4:
- shard-dg2-set2: NOTRUN -> [SKIP][16] ([Intel XE#787]) +6 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc@pipe-c-dp-4.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1:
- shard-adlp: NOTRUN -> [SKIP][17] ([Intel XE#787]) +53 other tests skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-rc-ccs-cc@pipe-a-hdmi-a-1.html
* igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#2652] / [Intel XE#787]) +3 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-5/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs-cc:
- shard-lnl: NOTRUN -> [SKIP][19] ([Intel XE#2887]) +2 other tests skip
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs:
- shard-adlp: NOTRUN -> [SKIP][20] ([Intel XE#2907])
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][21] ([Intel XE#2669]) +3 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][22] ([Intel XE#2907])
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs:
- shard-adlp: NOTRUN -> [SKIP][23] ([Intel XE#455] / [Intel XE#787]) +35 other tests skip
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-dp-4:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][24] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-dp-4.html
* igt@kms_chamelium_color@ctm-negative:
- shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#306]) +1 other test skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_chamelium_color@ctm-negative.html
- shard-adlp: NOTRUN -> [SKIP][26] ([Intel XE#306]) +1 other test skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_chamelium_color@ctm-negative.html
* igt@kms_chamelium_hpd@hdmi-hpd:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#373])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_chamelium_hpd@hdmi-hpd.html
* igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate:
- shard-dg2-set2: NOTRUN -> [SKIP][28] ([Intel XE#373])
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html
* igt@kms_chamelium_hpd@hdmi-hpd-storm-disable:
- shard-adlp: NOTRUN -> [SKIP][29] ([Intel XE#373]) +8 other tests skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_chamelium_hpd@hdmi-hpd-storm-disable.html
* igt@kms_content_protection@atomic-dpms@pipe-a-dp-2:
- shard-bmg: NOTRUN -> [FAIL][30] ([Intel XE#1178])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-5/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-adlp: NOTRUN -> [SKIP][31] ([Intel XE#307]) +1 other test skip
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_content_protection@mei-interface:
- shard-lnl: NOTRUN -> [SKIP][32] ([Intel XE#1468])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_content_protection@mei-interface.html
* igt@kms_cursor_crc@cursor-offscreen-128x42:
- shard-adlp: [PASS][33] -> [DMESG-WARN][34] ([Intel XE#2953] / [Intel XE#4173]) +1 other test dmesg-warn
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-1/igt@kms_cursor_crc@cursor-offscreen-128x42.html
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@kms_cursor_crc@cursor-offscreen-128x42.html
* igt@kms_cursor_crc@cursor-random-32x32:
- shard-lnl: NOTRUN -> [SKIP][35] ([Intel XE#1424]) +1 other test skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_cursor_crc@cursor-random-32x32.html
* igt@kms_cursor_crc@cursor-rapid-movement-128x42:
- shard-adlp: NOTRUN -> [DMESG-WARN][36] ([Intel XE#2953] / [Intel XE#4173])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-adlp: NOTRUN -> [SKIP][37] ([Intel XE#309]) +6 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
- shard-lnl: NOTRUN -> [SKIP][38] ([Intel XE#309])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [PASS][39] -> [SKIP][40] ([Intel XE#2291]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-3/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-dg2-set2: NOTRUN -> [SKIP][41] ([Intel XE#323])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_display_modes@extended-mode-basic:
- shard-bmg: [PASS][42] -> [SKIP][43] ([Intel XE#4302])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-1/igt@kms_display_modes@extended-mode-basic.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-bmg: [PASS][44] -> [SKIP][45] ([Intel XE#1340])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-2/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dp_aux_dev:
- shard-adlp: NOTRUN -> [SKIP][46] ([Intel XE#3009])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_dp_aux_dev.html
* igt@kms_dp_link_training@uhbr-mst:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#4354])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_dp_link_training@uhbr-mst.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-adlp: NOTRUN -> [SKIP][48] ([Intel XE#4356]) +1 other test skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_feature_discovery@psr1:
- shard-adlp: NOTRUN -> [SKIP][49] ([Intel XE#1135])
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_feature_discovery@psr1.html
* igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
- shard-adlp: NOTRUN -> [SKIP][50] ([Intel XE#310]) +4 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#1421]) +1 other test skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][52] -> [SKIP][53] ([Intel XE#2316]) +6 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-1/igt@kms_flip@2x-nonexisting-fb.html
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@basic-plain-flip@b-hdmi-a1:
- shard-adlp: [PASS][54] -> [DMESG-WARN][55] ([Intel XE#4543]) +3 other tests dmesg-warn
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-1/igt@kms_flip@basic-plain-flip@b-hdmi-a1.html
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@kms_flip@basic-plain-flip@b-hdmi-a1.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-dg2-set2: [PASS][56] -> [FAIL][57] ([Intel XE#301]) +1 other test fail
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-dg2-434/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-464/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1:
- shard-adlp: NOTRUN -> [DMESG-WARN][58] ([Intel XE#4543]) +5 other tests dmesg-warn
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_flip@flip-vs-expired-vblank-interruptible@d-hdmi-a1.html
* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-dg2-set2: [PASS][59] -> [INCOMPLETE][60] ([Intel XE#2049] / [Intel XE#2597]) +1 other test incomplete
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-dg2-434/igt@kms_flip@flip-vs-suspend-interruptible.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-435/igt@kms_flip@flip-vs-suspend-interruptible.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
- shard-adlp: NOTRUN -> [SKIP][61] ([Intel XE#455]) +25 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
- shard-lnl: NOTRUN -> [SKIP][62] ([Intel XE#1401] / [Intel XE#1745]) +1 other test skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#1401]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode:
- shard-adlp: NOTRUN -> [DMESG-FAIL][64] ([Intel XE#4543] / [Intel XE#4921]) +3 other tests dmesg-fail
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-b-hdmi-a-1-x-to-x:
- shard-adlp: [PASS][65] -> [DMESG-FAIL][66] ([Intel XE#4543])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-8/igt@kms_flip_tiling@flip-change-tiling@pipe-b-hdmi-a-1-x-to-x.html
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-b-hdmi-a-1-x-to-x.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt:
- shard-dg2-set2: NOTRUN -> [SKIP][67] ([Intel XE#651]) +1 other test skip
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt:
- shard-adlp: NOTRUN -> [SKIP][68] ([Intel XE#651]) +11 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render:
- shard-adlp: NOTRUN -> [SKIP][69] ([Intel XE#656]) +33 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@drrs-suspend:
- shard-lnl: NOTRUN -> [SKIP][70] ([Intel XE#651]) +3 other tests skip
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_frontbuffer_tracking@drrs-suspend.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff:
- shard-adlp: NOTRUN -> [SKIP][71] ([Intel XE#653]) +14 other tests skip
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move:
- shard-dg2-set2: NOTRUN -> [SKIP][72] ([Intel XE#653])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-cur-indfb-move.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][73] ([Intel XE#656]) +6 other tests skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_hdr@brightness-with-hdr:
- shard-lnl: NOTRUN -> [SKIP][74] ([Intel XE#3374] / [Intel XE#3544])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@static-toggle-suspend:
- shard-bmg: [PASS][75] -> [SKIP][76] ([Intel XE#1503])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-1/igt@kms_hdr@static-toggle-suspend.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_hdr@static-toggle-suspend.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-adlp: NOTRUN -> [SKIP][77] ([Intel XE#3012])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_pipe_stress@stress-xrgb8888-ytiled:
- shard-lnl: NOTRUN -> [SKIP][78] ([Intel XE#4329])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_pipe_stress@stress-xrgb8888-ytiled.html
* igt@kms_plane_multiple@2x-tiling-none:
- shard-adlp: NOTRUN -> [SKIP][79] ([Intel XE#4596])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_plane_multiple@2x-tiling-none.html
* igt@kms_plane_multiple@2x-tiling-x:
- shard-bmg: [PASS][80] -> [SKIP][81] ([Intel XE#4596])
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-x.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-x.html
* igt@kms_pm_backlight@fade-with-suspend:
- shard-adlp: NOTRUN -> [SKIP][82] ([Intel XE#870])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_pm_backlight@fade-with-suspend.html
* igt@kms_pm_dc@dc5-psr:
- shard-adlp: NOTRUN -> [SKIP][83] ([Intel XE#1129])
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_pm_dc@dc5-psr.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf:
- shard-adlp: NOTRUN -> [SKIP][84] ([Intel XE#1406] / [Intel XE#1489]) +6 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
- shard-lnl: NOTRUN -> [SKIP][85] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608])
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#1406] / [Intel XE#4608]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-exceed-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area:
- shard-dg2-set2: NOTRUN -> [SKIP][87] ([Intel XE#1406] / [Intel XE#1489]) +1 other test skip
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
- shard-lnl: NOTRUN -> [SKIP][88] ([Intel XE#1406] / [Intel XE#2893])
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-adlp: NOTRUN -> [SKIP][89] ([Intel XE#1122] / [Intel XE#1406] / [Intel XE#5580]) +1 other test skip
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@fbc-pr-cursor-plane-move:
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#1406]) +1 other test skip
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_psr@fbc-pr-cursor-plane-move.html
* igt@kms_psr@fbc-pr-sprite-render:
- shard-adlp: NOTRUN -> [SKIP][91] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +10 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_psr@fbc-pr-sprite-render.html
* igt@kms_psr@pr-dpms:
- shard-dg2-set2: NOTRUN -> [SKIP][92] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_psr@pr-dpms.html
* igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
- shard-dg2-set2: NOTRUN -> [SKIP][93] ([Intel XE#1127])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
* igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
- shard-adlp: NOTRUN -> [SKIP][94] ([Intel XE#3414]) +3 other tests skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
* igt@kms_tv_load_detect@load-detect:
- shard-lnl: NOTRUN -> [SKIP][95] ([Intel XE#330])
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@kms_tv_load_detect@load-detect.html
- shard-adlp: NOTRUN -> [SKIP][96] ([Intel XE#330])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@kms_tv_load_detect@load-detect.html
* igt@xe_ccs@suspend-resume:
- shard-adlp: NOTRUN -> [SKIP][97] ([Intel XE#455] / [Intel XE#488] / [Intel XE#5607])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@xe_ccs@suspend-resume.html
* igt@xe_compute_preempt@compute-preempt:
- shard-adlp: NOTRUN -> [SKIP][98] ([Intel XE#455] / [Intel XE#5632])
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_compute_preempt@compute-preempt.html
* igt@xe_copy_basic@mem-copy-linear-0xfd:
- shard-adlp: NOTRUN -> [SKIP][99] ([Intel XE#1123])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_copy_basic@mem-copy-linear-0xfd.html
* igt@xe_create@create-big-vram:
- shard-adlp: NOTRUN -> [SKIP][100] ([Intel XE#1062])
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@xe_create@create-big-vram.html
* igt@xe_eu_stall@blocking-re-enable:
- shard-dg2-set2: NOTRUN -> [SKIP][101] ([Intel XE#5626])
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_eu_stall@blocking-re-enable.html
* igt@xe_eudebug@basic-read-event:
- shard-adlp: NOTRUN -> [SKIP][102] ([Intel XE#4837] / [Intel XE#5565]) +14 other tests skip
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_eudebug@basic-read-event.html
* igt@xe_eudebug@sysfs-toggle:
- shard-lnl: NOTRUN -> [SKIP][103] ([Intel XE#4837]) +3 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_eudebug@sysfs-toggle.html
* igt@xe_evict@evict-beng-large-multi-vm:
- shard-adlp: NOTRUN -> [SKIP][104] ([Intel XE#261] / [Intel XE#5564]) +1 other test skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_evict@evict-beng-large-multi-vm.html
* igt@xe_evict@evict-beng-small-multi-vm:
- shard-adlp: NOTRUN -> [SKIP][105] ([Intel XE#261] / [Intel XE#5564] / [Intel XE#688])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@xe_evict@evict-beng-small-multi-vm.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-adlp: NOTRUN -> [SKIP][106] ([Intel XE#261]) +5 other tests skip
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_evict@evict-mixed-many-threads-small.html
- shard-bmg: [PASS][107] -> [INCOMPLETE][108] ([Intel XE#6321])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@xe_evict@evict-mixed-many-threads-small.html
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-7/igt@xe_evict@evict-mixed-many-threads-small.html
- shard-lnl: NOTRUN -> [SKIP][109] ([Intel XE#688]) +1 other test skip
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd:
- shard-adlp: NOTRUN -> [SKIP][110] ([Intel XE#688])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate:
- shard-adlp: NOTRUN -> [SKIP][111] ([Intel XE#1392] / [Intel XE#5575]) +8 other tests skip
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind:
- shard-lnl: NOTRUN -> [SKIP][112] ([Intel XE#1392]) +1 other test skip
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_exec_basic@multigpu-no-exec-basic-defer-bind.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-imm:
- shard-adlp: NOTRUN -> [SKIP][113] ([Intel XE#288] / [Intel XE#5561]) +25 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-imm.html
* igt@xe_exec_fault_mode@many-execqueues-basic:
- shard-dg2-set2: NOTRUN -> [SKIP][114] ([Intel XE#288])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_exec_fault_mode@many-execqueues-basic.html
* igt@xe_exec_system_allocator@process-many-execqueues-malloc-busy-nomemset:
- shard-dg2-set2: NOTRUN -> [SKIP][115] ([Intel XE#4915]) +13 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_exec_system_allocator@process-many-execqueues-malloc-busy-nomemset.html
* igt@xe_exec_system_allocator@process-many-large-mmap-file-mlock:
- shard-adlp: NOTRUN -> [SKIP][116] ([Intel XE#4915]) +238 other tests skip
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@xe_exec_system_allocator@process-many-large-mmap-file-mlock.html
* igt@xe_exec_system_allocator@threads-many-large-mmap-huge:
- shard-lnl: NOTRUN -> [SKIP][117] ([Intel XE#4943]) +5 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_exec_system_allocator@threads-many-large-mmap-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-huge-nomemset:
- shard-bmg: NOTRUN -> [SKIP][118] ([Intel XE#4943])
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-1/igt@xe_exec_system_allocator@threads-shared-vm-many-execqueues-mmap-huge-nomemset.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-dg2-set2: NOTRUN -> [ABORT][119] ([Intel XE#5466])
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_live_ktest@xe_bo:
- shard-adlp: NOTRUN -> [SKIP][120] ([Intel XE#2229] / [Intel XE#455]) +1 other test skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_live_ktest@xe_bo.html
* igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
- shard-adlp: NOTRUN -> [SKIP][121] ([Intel XE#2229])
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html
* igt@xe_mmap@pci-membarrier:
- shard-lnl: NOTRUN -> [SKIP][122] ([Intel XE#5100])
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_mmap@pci-membarrier.html
- shard-adlp: NOTRUN -> [SKIP][123] ([Intel XE#5100])
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_mmap@pci-membarrier.html
* igt@xe_module_load@force-load:
- shard-adlp: NOTRUN -> [SKIP][124] ([Intel XE#378] / [Intel XE#5612])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_module_load@force-load.html
* igt@xe_oa@mmio-triggered-reports-read:
- shard-adlp: NOTRUN -> [SKIP][125] ([Intel XE#6032])
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@xe_oa@mmio-triggered-reports-read.html
* igt@xe_oa@syncs-syncobj-cfg:
- shard-adlp: NOTRUN -> [SKIP][126] ([Intel XE#3573]) +5 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@xe_oa@syncs-syncobj-cfg.html
* igt@xe_pat@display-vs-wb-transient:
- shard-dg2-set2: NOTRUN -> [SKIP][127] ([Intel XE#1337])
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_pat@display-vs-wb-transient.html
* igt@xe_pat@pat-index-xe2:
- shard-adlp: NOTRUN -> [SKIP][128] ([Intel XE#977])
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_pat@pat-index-xe2.html
* igt@xe_pm@d3cold-i2c:
- shard-adlp: NOTRUN -> [SKIP][129] ([Intel XE#5694])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_pm@d3cold-i2c.html
* igt@xe_pm@d3cold-mmap-vram:
- shard-lnl: NOTRUN -> [SKIP][130] ([Intel XE#2284] / [Intel XE#366]) +1 other test skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_pm@d3cold-mmap-vram.html
* igt@xe_pm@d3hot-mmap-vram:
- shard-adlp: NOTRUN -> [SKIP][131] ([Intel XE#1948])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@xe_pm@d3hot-mmap-vram.html
* igt@xe_pm@s3-d3cold-basic-exec:
- shard-adlp: NOTRUN -> [SKIP][132] ([Intel XE#2284] / [Intel XE#366]) +1 other test skip
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_pm@s3-d3cold-basic-exec.html
* igt@xe_pm@vram-d3cold-threshold:
- shard-adlp: NOTRUN -> [SKIP][133] ([Intel XE#5611] / [Intel XE#579])
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_pm@vram-d3cold-threshold.html
* igt@xe_pmu@fn-engine-activity-load:
- shard-dg2-set2: NOTRUN -> [SKIP][134] ([Intel XE#4650])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_pmu@fn-engine-activity-load.html
* igt@xe_pmu@gt-frequency:
- shard-dg2-set2: [PASS][135] -> [FAIL][136] ([Intel XE#5166]) +1 other test fail
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-dg2-464/igt@xe_pmu@gt-frequency.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@xe_pmu@gt-frequency.html
* igt@xe_pxp@display-black-pxp-fb:
- shard-adlp: NOTRUN -> [SKIP][137] ([Intel XE#4733])
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@xe_pxp@display-black-pxp-fb.html
* igt@xe_pxp@display-pxp-fb:
- shard-bmg: NOTRUN -> [SKIP][138] ([Intel XE#4733])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-1/igt@xe_pxp@display-pxp-fb.html
* igt@xe_pxp@pxp-stale-queue-post-suspend:
- shard-adlp: NOTRUN -> [SKIP][139] ([Intel XE#4733] / [Intel XE#5594])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_pxp@pxp-stale-queue-post-suspend.html
* igt@xe_query@multigpu-query-config:
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#944])
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_query@multigpu-query-config.html
* igt@xe_query@multigpu-query-uc-fw-version-huc:
- shard-adlp: NOTRUN -> [SKIP][141] ([Intel XE#944]) +2 other tests skip
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-6/igt@xe_query@multigpu-query-uc-fw-version-huc.html
* igt@xe_render_copy@render-stress-2-copies:
- shard-adlp: NOTRUN -> [SKIP][142] ([Intel XE#4814] / [Intel XE#5614]) +1 other test skip
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-9/igt@xe_render_copy@render-stress-2-copies.html
* igt@xe_sriov_scheduling@equal-throughput:
- shard-adlp: NOTRUN -> [DMESG-FAIL][143] ([Intel XE#3868] / [Intel XE#5213] / [Intel XE#5545]) +1 other test dmesg-fail
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-2/igt@xe_sriov_scheduling@equal-throughput.html
- shard-lnl: NOTRUN -> [SKIP][144] ([Intel XE#4351])
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-2/igt@xe_sriov_scheduling@equal-throughput.html
* igt@xe_sriov_scheduling@nonpreempt-engine-resets@numvfs-random:
- shard-adlp: [PASS][145] -> [DMESG-FAIL][146] ([Intel XE#3868] / [Intel XE#5213] / [Intel XE#5545]) +1 other test dmesg-fail
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-8/igt@xe_sriov_scheduling@nonpreempt-engine-resets@numvfs-random.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-8/igt@xe_sriov_scheduling@nonpreempt-engine-resets@numvfs-random.html
#### Possible fixes ####
* igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1:
- shard-lnl: [FAIL][147] ([Intel XE#5993]) -> [PASS][148] +3 other tests pass
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-lnl-5/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6:
- shard-dg2-set2: [INCOMPLETE][149] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#6168]) -> [PASS][150] +1 other test pass
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-d-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [INCOMPLETE][151] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) -> [PASS][152]
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-436/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
- shard-bmg: [SKIP][153] ([Intel XE#2291]) -> [PASS][154] +6 other tests pass
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-7/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-bmg: [SKIP][155] ([Intel XE#4354]) -> [PASS][156]
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-6/igt@kms_dp_link_training@non-uhbr-sst.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-8/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
- shard-bmg: [SKIP][157] ([Intel XE#2316]) -> [PASS][158] +11 other tests pass
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-6/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-8/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][159] ([Intel XE#301]) -> [PASS][160] +1 other test pass
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_flip@flip-vs-rmfb:
- shard-adlp: [DMESG-WARN][161] ([Intel XE#4543] / [Intel XE#5208]) -> [PASS][162]
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-8/igt@kms_flip@flip-vs-rmfb.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-1/igt@kms_flip@flip-vs-rmfb.html
* igt@kms_flip@flip-vs-rmfb@b-hdmi-a1:
- shard-adlp: [DMESG-WARN][163] ([Intel XE#4543]) -> [PASS][164] +4 other tests pass
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-8/igt@kms_flip@flip-vs-rmfb@b-hdmi-a1.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-1/igt@kms_flip@flip-vs-rmfb@b-hdmi-a1.html
* igt@kms_hdr@invalid-metadata-sizes:
- shard-bmg: [SKIP][165] ([Intel XE#1503]) -> [PASS][166]
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-6/igt@kms_hdr@invalid-metadata-sizes.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-1/igt@kms_hdr@invalid-metadata-sizes.html
* igt@kms_joiner@invalid-modeset-force-big-joiner:
- shard-bmg: [SKIP][167] ([Intel XE#3012]) -> [PASS][168]
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@kms_joiner@invalid-modeset-force-big-joiner.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-2/igt@kms_joiner@invalid-modeset-force-big-joiner.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-bmg: [SKIP][169] ([Intel XE#4596]) -> [PASS][170] +1 other test pass
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-4.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-1/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_setmode@invalid-clone-single-crtc-stealing:
- shard-bmg: [SKIP][171] ([Intel XE#1435]) -> [PASS][172]
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-6/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-8/igt@kms_setmode@invalid-clone-single-crtc-stealing.html
* {igt@xe_pmu@fn-engine-activity-sched-if-idle@engine-drm_xe_engine_class_video_enhance1}:
- shard-bmg: [DMESG-WARN][173] ([Intel XE#3876]) -> [PASS][174] +1 other test pass
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-6/igt@xe_pmu@fn-engine-activity-sched-if-idle@engine-drm_xe_engine_class_video_enhance1.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-1/igt@xe_pmu@fn-engine-activity-sched-if-idle@engine-drm_xe_engine_class_video_enhance1.html
#### Warnings ####
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [INCOMPLETE][175] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168]) -> [INCOMPLETE][176] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345])
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-dg2-432/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_content_protection@atomic-dpms:
- shard-bmg: [SKIP][177] ([Intel XE#2341]) -> [FAIL][178] ([Intel XE#1178])
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@kms_content_protection@atomic-dpms.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-5/igt@kms_content_protection@atomic-dpms.html
* igt@kms_content_protection@legacy:
- shard-bmg: [FAIL][179] ([Intel XE#1178]) -> [SKIP][180] ([Intel XE#2341])
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-2/igt@kms_content_protection@legacy.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-4/igt@kms_content_protection@legacy.html
* igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y:
- shard-adlp: [DMESG-FAIL][181] ([Intel XE#4543]) -> [FAIL][182] ([Intel XE#1874])
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-adlp-8/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-adlp-1/igt@kms_flip_tiling@flip-change-tiling@pipe-d-hdmi-a-1-y-to-y.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][183] ([Intel XE#2311]) -> [SKIP][184] ([Intel XE#2312]) +18 other tests skip
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-7/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen:
- shard-bmg: [SKIP][185] ([Intel XE#2312]) -> [SKIP][186] ([Intel XE#5390]) +10 other tests skip
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-fullscreen.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: [SKIP][187] ([Intel XE#5390]) -> [SKIP][188] ([Intel XE#2312]) +3 other tests skip
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][189] ([Intel XE#2312]) -> [SKIP][190] ([Intel XE#2311]) +21 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][191] ([Intel XE#2312]) -> [SKIP][192] ([Intel XE#2313]) +20 other tests skip
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
- shard-bmg: [SKIP][193] ([Intel XE#2313]) -> [SKIP][194] ([Intel XE#2312]) +14 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-4/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-bmg: [SKIP][195] ([Intel XE#5021]) -> [SKIP][196] ([Intel XE#4596])
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-7/igt@kms_plane_multiple@2x-tiling-y.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][197] ([Intel XE#2426]) -> [FAIL][198] ([Intel XE#1729])
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1062]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1062
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1123]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1123
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1129]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1129
[Intel XE#1135]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1135
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1337]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1337
[Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
[Intel XE#1468]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1468
[Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#1874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1874
[Intel XE#1948]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1948
[Intel XE#2049]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2049
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2597]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2597
[Intel XE#261]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/261
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2907
[Intel XE#2953]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2953
[Intel XE#3009]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3009
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3012]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3012
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#310]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/310
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/330
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
[Intel XE#3868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3868
[Intel XE#3876]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3876
[Intel XE#3884]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3884
[Intel XE#4173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4173
[Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
[Intel XE#4329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4329
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4351
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4356
[Intel XE#4543]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4543
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4814]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4814
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#488]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/488
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4921]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4921
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
[Intel XE#5166]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5166
[Intel XE#5208]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5208
[Intel XE#5213]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5213
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
[Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
[Intel XE#5561]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5561
[Intel XE#5564]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5564
[Intel XE#5565]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5565
[Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
[Intel XE#5580]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5580
[Intel XE#5594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5594
[Intel XE#5607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5607
[Intel XE#5611]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5611
[Intel XE#5612]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5612
[Intel XE#5614]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5614
[Intel XE#5626]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5626
[Intel XE#5632]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5632
[Intel XE#5694]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5694
[Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
[Intel XE#5993]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5993
[Intel XE#6011]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6011
[Intel XE#6032]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6032
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#6168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6168
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6320
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6326]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6326
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#977]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/977
Build changes
-------------
* Linux: xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada -> xe-pw-154739v5
IGT_8582: 8582
xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada: c917f7d11493984be9f381ca0a7667bd3e587ada
xe-pw-154739v5: 154739v5
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-154739v5/index.html
[-- Attachment #2: Type: text/html, Size: 70058 bytes --]
^ permalink raw reply [flat|nested] 30+ messages in thread