Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v14 00/17] Crescent Island PMT support
@ 2026-11-10 18:35 Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper Michael J. Ruhl
                   ` (20 more replies)
  0 siblings, 21 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

The Crescent Island (CRI) GPU supports PMT via Xe driver
registration.

The CRI PMT MMIO mapping is shared for each PMT feature and it is
necessary to set an index register value to access the correct memory
space.

The PMT driver has a callback infrastructure to access data areas with
driver specific access. It is does not support the PMT control access.

CRI discovery/control spaces are part of the access window so a driver
callback is necessary to allow for the correct window to be exposed.

Add control path callback support to the PMT driver.

Add CRI PMT discovery information.

Update the Xe driver to support the CRI PMT access.

The crashlog access needs to be done with power enabled (telem is only
available when the device is powered).

Determine which access is requested, and do the appropriate power
request.

CRI FW is loaded at device power.  Support the late-binding API to
wait for FW readiness. (pending sysctl patch set implements the API).

v2:
  Address AI feedback:
  - add missing entry->cb check
  - address SRIOV VF concerns
  - use xe_pm_runtime_put instead of _get in error path

  Address review comments:
  - redo power/lock sequencing
  - support device hotplug events

v3:
  - cleanup power manangement flow
  - fixed an out of order power management locking issue
  - add a GUID caching mechanism, for GUID read
  - removed unused parameter (mmio)

v4:
 - address various review comments
 - refactor crashlog to allow for return values
 - for callback usage, decouple PMT remap of data areas
 - use IS_SRIOV_VF() rather than expose soc-remapper internals
 - separate locking fixes intos distinct steps
 - refactor define update patches to seperate BMG and CRI updates
 - separate internal GUID into separate steps

v5:
 - removed callback helpers
 - do not return error message with sysfs
 - fix missed return code check in trigger_store
 - return error value not false
 - use DEFINE_RES_MEM
 - document when base is unused
 - return error on invalid GUID request

v6:
 - fix enabled/disabled inversion
 - fix missing DOC reference
 - change memcpy_to/fromio to readl/writel for register read
 - guid cache comment and update on valid guid

v7:
 - reordered to have BMG updates followed by CRI support
 - separate base_offset usage for clarity
 - added EAGAIN usage to block uninitialized use of the API

v8:
 - fix punit crashlog offset (should be 0xE60 not 0xE78)
 - remove EAGAIN support and re-order probe steps to initialize
   VSEC before other features use it

v9:
 - added appropriate reviewed-bys
 - use dev_err instead of pr_err
 - enforce defined base usage when callbacks are in plcace
 - move SRIOV check to get_platform_info
 - assert SRIOV for API check
 - use scoped_guard() where possible
 - update to use correct sysctrl helper

v10:
 - fix incorrect return type (broken in refactor, int -> bool)
 - fix incorrectly documented error return values
 - doc text cleanup

v11:
 - add reviewed-by
 - fix minor checkpatch issue
 - use xe_assert() for a consistent API check

v12:
 - add survivability mode support
 - add reviewed-by

v13:
 - PMT patches (original commits 1 - 5) are merged upstream
 - resubmitting XeKMD patches

v14:
 - address AI review comments
 - init soc-remapper in survivability path
 - reset soc-remapper index to the discovery index after access
 - re-order read/write to eliminate need for goto
 - check for signals in wait_for_fw
 - add appropriate doc updates
 - use system_freezable_wq vs system_wq
 - cache survivability mode to avoid error path issues

Michael J. Ruhl (17):
  drm/xe/vsec: VSEC requires soc-remapper
  drm/xe/vsec: Do not register BMG PMT for VF
  drm/xe/vsec: Correct locking order
  drm/xe/vsec: Use correct pm state get
  drm/xe/vsec: Add DOC text for VSEC
  drm/xe/vsec: Support possible hotplug exit
  drm/xe/vsec: Refactor BattleMage PMT defines
  drm/xe/vsec: Update VSEC probe order
  drm/xe/vsec: Add base_offset to allow for more flexibilty
  drm/xe/vsec: Support Crescent Island PMT
  drm/xe/vsec: Crescent Island PMT decode
  drm/xe/vsec: Crescent Island PMT callbacks
  drm/xe/vsec: Support late bind fw information
  drm/xe/vsec: Add PMT GUID internal access
  drm/xe/vsec: Update PMT internal access
  drm/xe/vsec: Refactor platform check
  drm/xe/vsec: Support survivability mode for CRI

 Documentation/gpu/xe/index.rst             |   1 +
 Documentation/gpu/xe/xe_vsec.rst           |  14 +
 drivers/gpu/drm/xe/regs/xe_pmt.h           |  12 +-
 drivers/gpu/drm/xe/xe_debugfs.c            |  45 +-
 drivers/gpu/drm/xe/xe_device.c             |   6 +-
 drivers/gpu/drm/xe/xe_device_types.h       |  11 +
 drivers/gpu/drm/xe/xe_hwmon.c              |  10 +-
 drivers/gpu/drm/xe/xe_pcode.c              |  10 +-
 drivers/gpu/drm/xe/xe_survivability_mode.c |   2 +
 drivers/gpu/drm/xe/xe_vsec.c               | 602 +++++++++++++++++++--
 drivers/gpu/drm/xe/xe_vsec.h               |   3 +-
 11 files changed, 639 insertions(+), 77 deletions(-)
 create mode 100644 Documentation/gpu/xe/xe_vsec.rst

-- 
2.43.0


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

* [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:46   ` sashiko-bot
  2026-11-10 18:35 ` [PATCH v14 02/17] drm/xe/vsec: Do not register BMG PMT for VF Michael J. Ruhl
                   ` (19 subsequent siblings)
  20 siblings, 1 reply; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Survivability mode includes xe_vsec_init().  VSEC requires
the soc remapper to be initialized.

Add the correct init to allow correct VSEC behavior.

Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_survivability_mode.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c
index d73cdad0b3a9..4ce84bafcbf5 100644
--- a/drivers/gpu/drm/xe/xe_survivability_mode.c
+++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
@@ -19,6 +19,7 @@
 #include "xe_nvm.h"
 #include "xe_pcode_api.h"
 #include "xe_printk.h"
+#include "xe_soc_remapper.h"
 #include "xe_vsec.h"
 #include "xe_wedge.h"
 
@@ -352,6 +353,7 @@ static int enable_boot_survivability_mode(struct pci_dev *pdev)
 
 	xe_heci_gsc_init(xe);
 
+	xe_soc_remapper_init(xe);
 	xe_vsec_init(xe);
 
 	if (survivability->fdo_mode) {
-- 
2.43.0


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

* [PATCH v14 02/17] drm/xe/vsec: Do not register BMG PMT for VF
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 03/17] drm/xe/vsec: Correct locking order Michael J. Ruhl
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

BMG PMT is not supported for VF nodes.

If IS_SRIOV_VF() is true, do NOT register with PMT.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index a9baf0bfe572..178f22db4046 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -149,6 +149,8 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 	u32 offset;
 	int ret;
 
+	xe_assert(xe, !IS_SRIOV_VF(xe));
+
 	ret = xe_guid_decode(guid, &mem_region, &offset);
 	if (ret)
 		return ret;
@@ -157,9 +159,6 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 
 	guard(mutex)(&xe->pmt.lock);
 
-	if (!xe->soc_remapper.set_telem_region)
-		return -ENODEV;
-
 	/* indicate that we are not at an appropriate power level */
 	if (!xe_pm_runtime_get_if_active(xe))
 		return -ENODATA;
@@ -186,6 +185,9 @@ static enum xe_vsec get_platform_info(struct xe_device *xe)
 	if (xe->info.platform > XE_BATTLEMAGE)
 		return XE_VSEC_UNKNOWN;
 
+	if (IS_SRIOV_VF(xe) && xe->info.platform == XE_BATTLEMAGE)
+		return XE_VSEC_UNKNOWN;
+
 	return vsec_platforms[xe->info.platform];
 }
 
-- 
2.43.0


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

* [PATCH v14 03/17] drm/xe/vsec: Correct locking order
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 02/17] drm/xe/vsec: Do not register BMG PMT for VF Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 04/17] drm/xe/vsec: Use correct pm state get Michael J. Ruhl
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Xe locking order is power state first, and then local locks.

Reorder locking for correct usage.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index 178f22db4046..d93c042cf25b 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -157,16 +157,17 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 
 	telem_addr += offset + user_offset;
 
-	guard(mutex)(&xe->pmt.lock);
-
 	/* indicate that we are not at an appropriate power level */
 	if (!xe_pm_runtime_get_if_active(xe))
 		return -ENODATA;
 
-	/* set SoC re-mapper index register based on GUID memory region */
-	xe->soc_remapper.set_telem_region(xe, mem_region);
+	scoped_guard(mutex, &xe->pmt.lock) {
+		/* set SoC re-mapper index register based on GUID memory region */
+		xe->soc_remapper.set_telem_region(xe, mem_region);
+
+		memcpy_fromio(data, telem_addr, count);
+	}
 
-	memcpy_fromio(data, telem_addr, count);
 	xe_pm_runtime_put(xe);
 
 	return count;
-- 
2.43.0


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

* [PATCH v14 04/17] drm/xe/vsec: Use correct pm state get
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (2 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 03/17] drm/xe/vsec: Correct locking order Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:49   ` sashiko-bot
  2026-11-10 18:35 ` [PATCH v14 05/17] drm/xe/vsec: Add DOC text for VSEC Michael J. Ruhl
                   ` (16 subsequent siblings)
  20 siblings, 1 reply; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Crashlog needs to be collected at all times.  The current pm check
assumes telemetry only.

Update read path to enable device for crashlog instances.

Include check of the WATCHER CAP_TYPE for completeness.
WATCHER is a possible type and needs to be accounted for, but is not
supported.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Fixes: 2c402a801c19 ("platform/x86/intel/pmt: support BMG crashlog")
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index d93c042cf25b..38081dacd307 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -145,6 +145,7 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 {
 	struct xe_device *xe = kdev_to_xe_device(dev);
 	void __iomem *telem_addr = xe->mmio.regs + BMG_TELEMETRY_OFFSET;
+	u32 cap_type = FIELD_GET(GUID_CAP_TYPE, guid);
 	u32 mem_region;
 	u32 offset;
 	int ret;
@@ -157,9 +158,18 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 
 	telem_addr += offset + user_offset;
 
-	/* indicate that we are not at an appropriate power level */
-	if (!xe_pm_runtime_get_if_active(xe))
-		return -ENODATA;
+	/* Always allow crashlog. Telemetry, only when powered */
+	switch (cap_type) {
+	case CRASHLOG:
+		xe_pm_runtime_get(xe);
+		break;
+	case TELEMETRY:
+		if (!xe_pm_runtime_get_if_active(xe))
+			return -ENODATA;
+		break;
+	case WATCHER:
+		return -EINVAL;
+	}
 
 	scoped_guard(mutex, &xe->pmt.lock) {
 		/* set SoC re-mapper index register based on GUID memory region */
-- 
2.43.0


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

* [PATCH v14 05/17] drm/xe/vsec: Add DOC text for VSEC
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (3 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 04/17] drm/xe/vsec: Use correct pm state get Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 06/17] drm/xe/vsec: Support possible hotplug exit Michael J. Ruhl
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Add the necessary files and text to use the DOC system.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 Documentation/gpu/xe/index.rst   |  1 +
 Documentation/gpu/xe/xe_vsec.rst | 14 ++++++++++++++
 drivers/gpu/drm/xe/xe_vsec.c     | 24 ++++++++++++++++++++++++
 3 files changed, 39 insertions(+)
 create mode 100644 Documentation/gpu/xe/xe_vsec.rst

diff --git a/Documentation/gpu/xe/index.rst b/Documentation/gpu/xe/index.rst
index 0247a255f7e6..89f013418cf5 100644
--- a/Documentation/gpu/xe/index.rst
+++ b/Documentation/gpu/xe/index.rst
@@ -36,3 +36,4 @@ The display, or :ref:`drm-kms`, support for drm/xe is provided by
    xe_configfs
    xe_gt_stats
    xe_sigid
+   xe_vsec
diff --git a/Documentation/gpu/xe/xe_vsec.rst b/Documentation/gpu/xe/xe_vsec.rst
new file mode 100644
index 000000000000..1a87548489ea
--- /dev/null
+++ b/Documentation/gpu/xe/xe_vsec.rst
@@ -0,0 +1,14 @@
+.. SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+=====
+VSEC
+=====
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_vsec.c
+   :doc: VSEC
+
+Internal API
+============
+
+.. kernel-doc:: drivers/gpu/drm/xe/xe_vsec.c
+   :internal:
diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index 38081dacd307..082b25b017db 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -19,6 +19,17 @@
 
 #include "regs/xe_pmt.h"
 
+/**
+ * DOC: VSEC
+ *
+ * Some GPUs support the PMT feature.  For those that do, this API provides
+ * probe, discovery and usage (control and access) for GPUs that have PMT.
+ *
+ * PMT is usually accessed through a PCI function.  However, that is not always
+ * available, so the PMT intel_vsec_register() function can be used to set up
+ * PMT usage.
+ */
+
 /* PMT GUID value for BMG devices.  NOTE: this is NOT a PCI id */
 #define BMG_DEVICE_ID 0xE2F8
 
@@ -140,6 +151,19 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset)
 	return 0;
 }
 
+/**
+ * xe_pmt_telem_read - Given a device and a PMT GUID, read data into a buffer
+ * @dev: valid Xe device
+ * @guid: PMT GUID (from the PMT discovery struct)
+ * @data: buffer to place data in
+ * @user_offset: a user offset relative to the beginning of the data to read
+ * @count: bytes to read
+ *
+ * Return:
+ * * -ENODATA for incorrect power state
+ * * -EINVAL for unsupported PMT feature
+ * * count   number of bytes read on success
+ */
 int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offset,
 		      u32 count)
 {
-- 
2.43.0


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

* [PATCH v14 06/17] drm/xe/vsec: Support possible hotplug exit
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (4 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 05/17] drm/xe/vsec: Add DOC text for VSEC Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 07/17] drm/xe/vsec: Refactor BattleMage PMT defines Michael J. Ruhl
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

DRM has an API that will verify that a device is valid in the hotplug
context.

Verify device is valid before access in the VSEC callback API.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index 082b25b017db..c0e06b2aeca6 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -10,6 +10,8 @@
 #include <linux/pci.h>
 #include <linux/types.h>
 
+#include <drm/drm_drv.h>
+
 #include "xe_device.h"
 #include "xe_device_types.h"
 #include "xe_mmio.h"
@@ -159,7 +161,12 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset)
  * @user_offset: a user offset relative to the beginning of the data to read
  * @count: bytes to read
  *
+ * This is a callback API.  I.e this can be accessed external to the XE driver
+ * (PMT driver scope).  Because of this, DRM hotplug needs to be verified
+ * (drm_dev_enter()).
+ *
  * Return:
+ * * -ENODEV device is not available (hotplug)
  * * -ENODATA for incorrect power state
  * * -EINVAL for unsupported PMT feature
  * * count   number of bytes read on success
@@ -172,13 +179,17 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 	u32 cap_type = FIELD_GET(GUID_CAP_TYPE, guid);
 	u32 mem_region;
 	u32 offset;
-	int ret;
+	int ret = 0;
+	int idx;
 
 	xe_assert(xe, !IS_SRIOV_VF(xe));
 
+	if (!drm_dev_enter(&xe->drm, &idx))
+		return -ENODEV;
+
 	ret = xe_guid_decode(guid, &mem_region, &offset);
 	if (ret)
-		return ret;
+		goto dev_exit;
 
 	telem_addr += offset + user_offset;
 
@@ -188,11 +199,14 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 		xe_pm_runtime_get(xe);
 		break;
 	case TELEMETRY:
-		if (!xe_pm_runtime_get_if_active(xe))
-			return -ENODATA;
+		if (!xe_pm_runtime_get_if_active(xe)) {
+			ret = -ENODATA;
+			goto dev_exit;
+		}
 		break;
 	case WATCHER:
-		return -EINVAL;
+		ret = -EINVAL;
+		goto dev_exit;
 	}
 
 	scoped_guard(mutex, &xe->pmt.lock) {
@@ -204,7 +218,10 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 
 	xe_pm_runtime_put(xe);
 
-	return count;
+dev_exit:
+	drm_dev_exit(idx);
+
+	return ret == 0 ? count : ret;
 }
 
 static struct pmt_callbacks xe_pmt_cb = {
-- 
2.43.0


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

* [PATCH v14 07/17] drm/xe/vsec: Refactor BattleMage PMT defines
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (5 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 06/17] drm/xe/vsec: Support possible hotplug exit Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 08/17] drm/xe/vsec: Update VSEC probe order Michael J. Ruhl
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Rename generic defines to be BMG specific.
Define several magic numbers.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index c0e06b2aeca6..ebe56c85bc05 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -90,10 +90,15 @@ static struct intel_vsec_platform_info xe_vsec_info[] = {
 #define GUID_CAP_TYPE		GENMASK(29, 28)
 #define GUID_RECORD_ID		GENMASK(31, 30)
 
-#define PUNIT_TELEMETRY_OFFSET		0x0200
-#define PUNIT_WATCHER_OFFSET		0x14A0
-#define OOBMSM_0_WATCHER_OFFSET		0x18D8
-#define OOBMSM_1_TELEMETRY_OFFSET	0x1000
+#define BMG_IDX_TELEM_PUNIT		0x00
+#define BMG_IDX_TELEM_OOBMSM		0x01
+#define BMG_IDX_CRASHLOG_PUNIT		0x02
+#define BMG_IDX_CRASHLOG_OOBMSM		0x04
+
+#define BMG_PUNIT_TELEMETRY_OFFSET	0x0200
+#define BMG_PUNIT_WATCHER_OFFSET	0x14A0
+#define BMG_OOBMSM_0_WATCHER_OFFSET	0x18D8
+#define BMG_OOBMSM_1_TELEMETRY_OFFSET	0x1000
 
 enum record_id {
 	PUNIT,
@@ -122,29 +127,29 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset)
 	*offset = 0;
 
 	if (cap_type == CRASHLOG) {
-		*index = record_id == PUNIT ? 2 : 4;
+		*index = record_id == PUNIT ? BMG_IDX_CRASHLOG_PUNIT : BMG_IDX_CRASHLOG_OOBMSM;
 		return 0;
 	}
 
 	switch (record_id) {
 	case PUNIT:
-		*index = 0;
+		*index = BMG_IDX_TELEM_PUNIT;
 		if (cap_type == TELEMETRY)
-			*offset = PUNIT_TELEMETRY_OFFSET;
+			*offset = BMG_PUNIT_TELEMETRY_OFFSET;
 		else
-			*offset = PUNIT_WATCHER_OFFSET;
+			*offset = BMG_PUNIT_WATCHER_OFFSET;
 		break;
 
 	case OOBMSM_0:
-		*index = 1;
+		*index = BMG_IDX_TELEM_OOBMSM;
 		if (cap_type == WATCHER)
-			*offset = OOBMSM_0_WATCHER_OFFSET;
+			*offset = BMG_OOBMSM_0_WATCHER_OFFSET;
 		break;
 
 	case OOBMSM_1:
-		*index = 1;
+		*index = BMG_IDX_TELEM_OOBMSM;
 		if (cap_type == TELEMETRY)
-			*offset = OOBMSM_1_TELEMETRY_OFFSET;
+			*offset = BMG_OOBMSM_1_TELEMETRY_OFFSET;
 		break;
 	default:
 		return -EINVAL;
-- 
2.43.0


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

* [PATCH v14 08/17] drm/xe/vsec: Update VSEC probe order
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (6 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 07/17] drm/xe/vsec: Refactor BattleMage PMT defines Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 09/17] drm/xe/vsec: Add base_offset to allow for more flexibilty Michael J. Ruhl
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Both debugfs and hwmon access the PMT data area before PMT is
initialized.

Hardwired offset usage allows this to work by accident.
Upcoming changes will break this usage.

Re-order the probe steps to initialize VSEC before the other
features are initialized.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index 273e2c45fea9..af369a77843d 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1082,6 +1082,8 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		goto err_unregister_display;
 
+	xe_vsec_init(xe);
+
 	xe_debugfs_register(xe);
 
 	err = xe_hwmon_register(xe);
@@ -1095,8 +1097,6 @@ int xe_device_probe(struct xe_device *xe)
 	for_each_gt(gt, xe, id)
 		xe_gt_sanitize_freq(gt);
 
-	xe_vsec_init(xe);
-
 	err = xe_sriov_init_late(xe);
 	if (err)
 		goto err_unregister_display;
-- 
2.43.0


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

* [PATCH v14 09/17] drm/xe/vsec: Add base_offset to allow for more flexibilty
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (7 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 08/17] drm/xe/vsec: Update VSEC probe order Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 10/17] drm/xe/vsec: Support Crescent Island PMT Michael J. Ruhl
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Current pmt_telem_read() usage is a fixed (for BMG) offset.
In order to support other devices this must be settable.

Add a base offset for more flexibility.
Add a check to verify that it has been set before allowing
device access.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_device_types.h | 2 ++
 drivers/gpu/drm/xe/xe_vsec.c         | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index d99881c6e1d5..e572c6bc31f1 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -483,6 +483,8 @@ struct xe_device {
 	struct {
 		/** @pmt.lock: protect access for telemetry data */
 		struct mutex lock;
+		/** @pmt.base_offset: device specific base offset */
+		u64 base_offset;
 	} pmt;
 
 	/** @soc_remapper: SoC remapper object */
diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index ebe56c85bc05..04aec1e5c15c 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -172,6 +172,7 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset)
  *
  * Return:
  * * -ENODEV device is not available (hotplug)
+ * * -EAGAIN base_offset has not been set, so init path has not yet been done.
  * * -ENODATA for incorrect power state
  * * -EINVAL for unsupported PMT feature
  * * count   number of bytes read on success
@@ -180,8 +181,8 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 		      u32 count)
 {
 	struct xe_device *xe = kdev_to_xe_device(dev);
-	void __iomem *telem_addr = xe->mmio.regs + BMG_TELEMETRY_OFFSET;
 	u32 cap_type = FIELD_GET(GUID_CAP_TYPE, guid);
+	void __iomem *telem_addr = xe->mmio.regs + xe->pmt.base_offset;
 	u32 mem_region;
 	u32 offset;
 	int ret = 0;
@@ -192,6 +193,11 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 	if (!drm_dev_enter(&xe->drm, &idx))
 		return -ENODEV;
 
+	if (!xe->pmt.base_offset) {
+		ret = -EAGAIN;
+		goto dev_exit;
+	}
+
 	ret = xe_guid_decode(guid, &mem_region, &offset);
 	if (ret)
 		goto dev_exit;
@@ -269,6 +275,7 @@ void xe_vsec_init(struct xe_device *xe)
 
 	switch (platform) {
 	case XE_VSEC_BMG:
+		xe->pmt.base_offset = BMG_TELEMETRY_OFFSET;
 		info->priv_data = &xe_pmt_cb;
 		break;
 	default:
-- 
2.43.0


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

* [PATCH v14 10/17] drm/xe/vsec: Support Crescent Island PMT
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (8 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 09/17] drm/xe/vsec: Add base_offset to allow for more flexibilty Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 11/17] drm/xe/vsec: Crescent Island PMT decode Michael J. Ruhl
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Crescent Island (CRI) supports PMT telemetry and crashlog.

Add Crescent Island (CRI) discovery structure (DVSEC) information to
allow for Xe registration.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/regs/xe_pmt.h |  8 +++--
 drivers/gpu/drm/xe/xe_vsec.c     | 51 +++++++++++++++++++++++++++++---
 2 files changed, 53 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/regs/xe_pmt.h b/drivers/gpu/drm/xe/regs/xe_pmt.h
index a62ab05c6b4c..2f6658395587 100644
--- a/drivers/gpu/drm/xe/regs/xe_pmt.h
+++ b/drivers/gpu/drm/xe/regs/xe_pmt.h
@@ -17,8 +17,12 @@
 
 #define PUNIT_VERSION_OFFSET		0xA0
 
-#define BMG_TELEMETRY_BASE_OFFSET	0xE0000
-#define BMG_TELEMETRY_OFFSET		(SOC_BASE + BMG_TELEMETRY_BASE_OFFSET)
+#define XE_PMT_BASE_OFFSET		0xE0000
+
+#define BMG_TELEMETRY_OFFSET		(SOC_BASE + XE_PMT_BASE_OFFSET)
+
+/* for CRI discovery and telemetry are in an indexed window */
+#define CRI_PMT_OFFSET			(SOC_BASE + XE_PMT_BASE_OFFSET)
 
 #define BMG_MODS_RESIDENCY_OFFSET		(0x4D0)
 #define BMG_G2_RESIDENCY_OFFSET		(0x530)
diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index 04aec1e5c15c..4ecc2d9f3f38 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -8,6 +8,7 @@
 #include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/pci.h>
+#include <linux/sizes.h>
 #include <linux/types.h>
 
 #include <drm/drm_drv.h>
@@ -32,12 +33,23 @@
  * PMT usage.
  */
 
-/* PMT GUID value for BMG devices.  NOTE: this is NOT a PCI id */
+/* PMT GUID value for BMG and CRI devices.  NOTE: this is NOT a PCI id */
 #define BMG_DEVICE_ID 0xE2F8
+#define CRI_DEVICE_ID 0xE2FA
+
+/*
+ * sizeof(Crashlog Type1 Version2) = 0x18 (24) bytes
+ * For BMG and CRI PUNIT and OOBMSMS crashlogs are consecutive.
+ */
+#define BMG_CRASHLOG_PUNIT_DISC_OFFSET (0x60)
+#define BMG_CRASHLOG_OOBMSM_DISC_OFFSET (BMG_CRASHLOG_PUNIT_DISC_OFFSET + 0x18)
+
+#define CRI_CRASHLOG_PUNIT_DISC_OFFSET (0x80)
+#define CRI_CRASHLOG_OOBMSM_DISC_OFFSET (CRI_CRASHLOG_PUNIT_DISC_OFFSET + 0x18)
 
 static struct intel_vsec_header bmg_telemetry = {
 	.rev = 1,
-	.length = 0x10,
+	.length = SZ_16,
 	.id = VSEC_ID_TELEMETRY,
 	.num_entries = 2,
 	.entry_size = 4,
@@ -47,12 +59,12 @@ static struct intel_vsec_header bmg_telemetry = {
 
 static struct intel_vsec_header bmg_crashlog = {
 	.rev = 1,
-	.length = 0x10,
+	.length = SZ_16,
 	.id = VSEC_ID_CRASHLOG,
 	.num_entries = 2,
 	.entry_size = 6,
 	.tbir = 0,
-	.offset = BMG_DISCOVERY_OFFSET + 0x60,
+	.offset = BMG_DISCOVERY_OFFSET + BMG_CRASHLOG_PUNIT_DISC_OFFSET,
 };
 
 static struct intel_vsec_header *bmg_capabilities[] = {
@@ -61,9 +73,36 @@ static struct intel_vsec_header *bmg_capabilities[] = {
 	NULL
 };
 
+static struct intel_vsec_header cri_telemetry = {
+	.rev = 1,
+	.length = SZ_16,
+	.id = VSEC_ID_TELEMETRY,
+	.num_entries = 3,
+	.entry_size = 4,
+	.tbir = 0,
+	.offset = CRI_PMT_OFFSET,
+};
+
+static struct intel_vsec_header cri_crashlog = {
+	.rev = 1,
+	.length = SZ_16,
+	.id = VSEC_ID_CRASHLOG,
+	.num_entries = 2,
+	.entry_size = 6,
+	.tbir = 0,
+	.offset = CRI_PMT_OFFSET + CRI_CRASHLOG_PUNIT_DISC_OFFSET,
+};
+
+static struct intel_vsec_header *cri_capabilities[] = {
+	&cri_telemetry,
+	&cri_crashlog,
+	NULL
+};
+
 enum xe_vsec {
 	XE_VSEC_UNKNOWN = 0,
 	XE_VSEC_BMG,
+	XE_VSEC_CRI,
 };
 
 static struct intel_vsec_platform_info xe_vsec_info[] = {
@@ -71,6 +110,10 @@ static struct intel_vsec_platform_info xe_vsec_info[] = {
 		.caps = VSEC_CAP_TELEMETRY | VSEC_CAP_CRASHLOG,
 		.headers = bmg_capabilities,
 	},
+	[XE_VSEC_CRI] = {
+		.caps = VSEC_CAP_TELEMETRY | VSEC_CAP_CRASHLOG,
+		.headers = cri_capabilities,
+	},
 	{ }
 };
 
-- 
2.43.0


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

* [PATCH v14 11/17] drm/xe/vsec: Crescent Island PMT decode
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (9 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 10/17] drm/xe/vsec: Support Crescent Island PMT Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 12/17] drm/xe/vsec: Crescent Island PMT callbacks Michael J. Ruhl
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Crescent Island (CRI) has different index and offset values for
accessing the PMT data area.

Update the decode path to support the CRI device.

Update the data read callback so to support the CRI usage.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 100 +++++++++++++++++++++++++++++++----
 1 file changed, 90 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index 4ecc2d9f3f38..a814d7151eea 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -120,19 +120,25 @@ static struct intel_vsec_platform_info xe_vsec_info[] = {
 /*
  * The GUID will have the following bits to decode:
  *   [0:3]   - {Telemetry space iteration number (0,1,..)}
- *   [4:7]   - Segment (SEGMENT_INDEPENDENT-0, Client-1, Server-2)
+ *   [4:7]   - BMG Segment (SEGMENT_INDEPENDENT-0, Client-1, Server-2)
+ *   [4:5]   - CRI Segment (SEGMENT_INDEPENDENT-0, Client-1, Server-2)
+ *   [6:7]   - CRI Instance
  *   [8:11]  - SOC_SKU
  *   [12:27] – Device ID – changes for each down bin SKU’s
  *   [28:29] - Capability Type (Crashlog-0, Telemetry Aggregator-1, Watcher-2)
  *   [30:31] - Record-ID (0-PUNIT, 1-OOBMSM_0, 2-OOBMSM_1)
  */
 #define GUID_TELEM_ITERATION	GENMASK(3, 0)
-#define GUID_SEGMENT		GENMASK(7, 4)
 #define GUID_SOC_SKU		GENMASK(11, 8)
 #define GUID_DEVICE_ID		GENMASK(27, 12)
 #define GUID_CAP_TYPE		GENMASK(29, 28)
 #define GUID_RECORD_ID		GENMASK(31, 30)
 
+#define BMG_GUID_SEGMENT	GENMASK(7, 4)
+
+#define CRI_GUID_SEGMENT	GENMASK(5, 4)
+#define CRI_GUID_INSTANCE	GENMASK(7, 6)
+
 #define BMG_IDX_TELEM_PUNIT		0x00
 #define BMG_IDX_TELEM_OOBMSM		0x01
 #define BMG_IDX_CRASHLOG_PUNIT		0x02
@@ -143,6 +149,18 @@ static struct intel_vsec_platform_info xe_vsec_info[] = {
 #define BMG_OOBMSM_0_WATCHER_OFFSET	0x18D8
 #define BMG_OOBMSM_1_TELEMETRY_OFFSET	0x1000
 
+#define CRI_IDX_TELEM_DISCOVERY		0x00
+#define CRI_IDX_TELEM_PUNIT		0x01
+#define CRI_IDX_TELEM_OOBMSM		0x02
+#define CRI_IDX_CRASHLOG_PUNIT		0x03
+#define CRI_IDX_WATCHER_OOBMSM		0x03  /* PUNIT and OOBMSM share this index */
+#define CRI_IDX_CRASHLOG_OOBMSM		0x04
+
+#define CRI_PUNIT_WATCHER_OFFSET		0x08A0
+#define CRI_OOBMSM_WATCHER_OFFSET		0x0CF8
+#define CRI_OOBMSM_GFSP_TELEMETRY_OFFSET	0x1600
+#define CRI_PUNIT_CRASHLOG_OFFSET		0x0E60
+
 enum record_id {
 	PUNIT,
 	OOBMSM_0,
@@ -155,17 +173,10 @@ enum capability {
 	WATCHER,
 };
 
-static int xe_guid_decode(u32 guid, int *index, u32 *offset)
+static int bmg_guid_decode(u32 guid, int *index, u32 *offset)
 {
 	u32 record_id = FIELD_GET(GUID_RECORD_ID, guid);
 	u32 cap_type  = FIELD_GET(GUID_CAP_TYPE, guid);
-	u32 device_id = FIELD_GET(GUID_DEVICE_ID, guid);
-
-	if (device_id != BMG_DEVICE_ID)
-		return -ENODEV;
-
-	if (cap_type > WATCHER)
-		return -EINVAL;
 
 	*offset = 0;
 
@@ -201,6 +212,75 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset)
 	return 0;
 }
 
+static int cri_guid_decode(u32 guid, int *index, u32 *offset)
+{
+	u32 record_id = FIELD_GET(GUID_RECORD_ID, guid);
+	u32 cap_type  = FIELD_GET(GUID_CAP_TYPE, guid);
+	u32 instance  = FIELD_GET(CRI_GUID_INSTANCE, guid);
+
+	*offset = 0;
+
+	if (cap_type == CRASHLOG) {
+		if (record_id == PUNIT) {
+			*index = CRI_IDX_CRASHLOG_PUNIT;
+			*offset = CRI_PUNIT_CRASHLOG_OFFSET;
+		} else {
+			*index = CRI_IDX_CRASHLOG_OOBMSM;
+		}
+		return 0;
+	}
+
+	switch (record_id) {
+	case PUNIT:
+		*index = CRI_IDX_TELEM_PUNIT;
+		if (cap_type == WATCHER)
+			*offset = CRI_PUNIT_WATCHER_OFFSET;
+		break;
+
+	case OOBMSM_0:
+		*index = CRI_IDX_TELEM_OOBMSM;
+		switch (instance) {
+		case 0:
+			if (cap_type == WATCHER) {
+				*index = CRI_IDX_WATCHER_OOBMSM;
+				*offset = CRI_OOBMSM_WATCHER_OFFSET;
+			}
+			break;
+
+		case 1:
+			if (cap_type == TELEMETRY)
+				*offset = CRI_OOBMSM_GFSP_TELEMETRY_OFFSET;
+			break;
+
+		default:
+			return -EINVAL;
+		}
+		break;
+
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static int xe_guid_decode(u32 guid, int *index, u32 *offset)
+{
+	u32 cap_type  = FIELD_GET(GUID_CAP_TYPE, guid);
+	u32 device_id = FIELD_GET(GUID_DEVICE_ID, guid);
+
+	if (cap_type > WATCHER)
+		return -EINVAL;
+
+	if (device_id == BMG_DEVICE_ID)
+		return bmg_guid_decode(guid, index, offset);
+
+	if (device_id == CRI_DEVICE_ID)
+		return cri_guid_decode(guid, index, offset);
+
+	return -ENODEV;
+}
+
 /**
  * xe_pmt_telem_read - Given a device and a PMT GUID, read data into a buffer
  * @dev: valid Xe device
-- 
2.43.0


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

* [PATCH v14 12/17] drm/xe/vsec: Crescent Island PMT callbacks
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (10 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 11/17] drm/xe/vsec: Crescent Island PMT decode Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 13/17] drm/xe/vsec: Support late bind fw information Michael J. Ruhl
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

CRI PMT support requires callbacks to access the discovery status and
control areas. Access is a common MMIO area that requires an index to
be set before access is allowed.

Introduce the necessary callbacks to get the status and control
information for CRI PMT usage.

Add the glue logic to register the CRI PMT functionality.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_vsec.c | 114 +++++++++++++++++++++++++++++++++--
 1 file changed, 110 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index a814d7151eea..4ca41a5ef502 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -344,10 +344,15 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 	}
 
 	scoped_guard(mutex, &xe->pmt.lock) {
+		u32 device_id = FIELD_GET(GUID_DEVICE_ID, guid);
+
 		/* set SoC re-mapper index register based on GUID memory region */
 		xe->soc_remapper.set_telem_region(xe, mem_region);
 
 		memcpy_fromio(data, telem_addr, count);
+
+		if (device_id == CRI_DEVICE_ID)
+			xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
 	}
 
 	xe_pm_runtime_put(xe);
@@ -358,20 +363,114 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 	return ret == 0 ? count : ret;
 }
 
-static struct pmt_callbacks xe_pmt_cb = {
+/**
+ * xe_pmt_read_reg() - read a crashlog register
+ * @dev: the xe device that registered the callback
+ * @guid: PMT guid of the crashlog instance
+ * @reg: data read from the PMT data structure
+ * @offset: which data to read from the PMT data structure
+ *
+ * Read the requested PMT register based on the pcie device and guid.  The
+ * supported struct is the Crashlog Type1 Version2.
+ *
+ * Currently this is for CRI only.
+ *
+ * Return:
+ * * -ENODEV device is not available (hotplug)
+ * * -EINVAL invalid guid
+ * * 0       success
+ */
+static int xe_pmt_read_reg(struct device *dev, u32 guid, u32 *reg, u32 offset)
+{
+	struct xe_device *xe = kdev_to_xe_device(dev);
+	void __iomem *disc_addr = xe->mmio.regs + xe->pmt.base_offset;
+	int ret = 0;
+	u32 inst;
+	int idx;
+
+	if (FIELD_GET(GUID_DEVICE_ID, guid) != CRI_DEVICE_ID ||
+	    FIELD_GET(GUID_CAP_TYPE, guid) != CRASHLOG)
+		return -EINVAL;
+
+	if (!drm_dev_enter(&xe->drm, &idx))
+		return -ENODEV;
+
+	inst = FIELD_GET(GUID_RECORD_ID, guid) == PUNIT ?
+		CRI_CRASHLOG_PUNIT_DISC_OFFSET : CRI_CRASHLOG_OOBMSM_DISC_OFFSET;
+	disc_addr += inst + offset;
+
+	xe_pm_runtime_get(xe);
+
+	scoped_guard(mutex, &xe->pmt.lock) {
+		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
+
+		*reg = readl(disc_addr);
+	}
+
+	xe_pm_runtime_put(xe);
+
+	drm_dev_exit(idx);
+
+	return ret;
+}
+
+static int xe_pmt_write_reg(struct device *dev, u32 guid, u32 reg, u32 offset)
+{
+	struct xe_device *xe = kdev_to_xe_device(dev);
+	void __iomem *disc_addr = xe->mmio.regs + xe->pmt.base_offset;
+	int ret = 0;
+	u32 inst;
+	int idx;
+
+	if (FIELD_GET(GUID_DEVICE_ID, guid) != CRI_DEVICE_ID ||
+	    FIELD_GET(GUID_CAP_TYPE, guid) != CRASHLOG)
+		return -EINVAL;
+
+	if (!drm_dev_enter(&xe->drm, &idx))
+		return -ENODEV;
+
+	inst = FIELD_GET(GUID_RECORD_ID, guid) == PUNIT ?
+		CRI_CRASHLOG_PUNIT_DISC_OFFSET : CRI_CRASHLOG_OOBMSM_DISC_OFFSET;
+	disc_addr += inst + offset;
+
+	xe_pm_runtime_get(xe);
+
+	scoped_guard(mutex, &xe->pmt.lock) {
+		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
+
+		writel(reg, disc_addr);
+	}
+
+	xe_pm_runtime_put(xe);
+
+	drm_dev_exit(idx);
+
+	return ret;
+}
+
+static struct pmt_callbacks xe_bmg_pmt_cb = {
+	.read_telem = xe_pmt_telem_read,
+};
+
+static struct pmt_callbacks xe_cri_pmt_cb = {
 	.read_telem = xe_pmt_telem_read,
+	.read_reg = xe_pmt_read_reg,
+	.write_reg = xe_pmt_write_reg,
 };
 
 static const int vsec_platforms[] = {
 	[XE_BATTLEMAGE] = XE_VSEC_BMG,
+	[XE_CRESCENTISLAND] = XE_VSEC_CRI,
 };
 
 static enum xe_vsec get_platform_info(struct xe_device *xe)
 {
-	if (xe->info.platform > XE_BATTLEMAGE)
+	if (xe->info.platform > XE_CRESCENTISLAND)
 		return XE_VSEC_UNKNOWN;
 
-	if (IS_SRIOV_VF(xe) && xe->info.platform == XE_BATTLEMAGE)
+	if (IS_SRIOV_VF(xe) &&
+	    (xe->info.platform == XE_BATTLEMAGE ||
+	     xe->info.platform == XE_CRESCENTISLAND))
 		return XE_VSEC_UNKNOWN;
 
 	return vsec_platforms[xe->info.platform];
@@ -399,8 +498,15 @@ void xe_vsec_init(struct xe_device *xe)
 	switch (platform) {
 	case XE_VSEC_BMG:
 		xe->pmt.base_offset = BMG_TELEMETRY_OFFSET;
-		info->priv_data = &xe_pmt_cb;
+		info->priv_data = &xe_bmg_pmt_cb;
 		break;
+
+	case XE_VSEC_CRI:
+		xe->pmt.base_offset = CRI_PMT_OFFSET;
+		info->priv_data = &xe_cri_pmt_cb;
+		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
+		break;
+
 	default:
 		break;
 	}
-- 
2.43.0


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

* [PATCH v14 13/17] drm/xe/vsec: Support late bind fw information
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (11 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 12/17] drm/xe/vsec: Crescent Island PMT callbacks Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 19:08   ` sashiko-bot
  2026-11-10 18:35 ` [PATCH v14 14/17] drm/xe/vsec: Add PMT GUID internal access Michael J. Ruhl
                   ` (7 subsequent siblings)
  20 siblings, 1 reply; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

CRI FW is loaded on power on.  Because of this, access to the FW cannot
be done until it is running.

Update the XE PMT probe and access to check for late bind devices,
verify, and wait for the appropriate FW state before probe or access.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_device.c       |   4 +-
 drivers/gpu/drm/xe/xe_device_types.h |   5 +
 drivers/gpu/drm/xe/xe_vsec.c         | 138 ++++++++++++++++++++++++++-
 drivers/gpu/drm/xe/xe_vsec.h         |   2 +-
 4 files changed, 143 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index af369a77843d..33454965308b 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -1082,7 +1082,9 @@ int xe_device_probe(struct xe_device *xe)
 	if (err)
 		goto err_unregister_display;
 
-	xe_vsec_init(xe);
+	err = xe_vsec_init(xe);
+	if (err)
+		goto err_unregister_display;
 
 	xe_debugfs_register(xe);
 
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index e572c6bc31f1..0fc9ab556146 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -7,6 +7,7 @@
 #define _XE_DEVICE_TYPES_H_
 
 #include <linux/pci.h>
+#include <linux/workqueue.h>
 
 #include <drm/drm_device.h>
 #include <drm/drm_file.h>
@@ -485,6 +486,10 @@ struct xe_device {
 		struct mutex lock;
 		/** @pmt.base_offset: device specific base offset */
 		u64 base_offset;
+		/** @pmt.work: support late-bind probe */
+		struct delayed_work work;
+		/** @pmt.retry_count: late-bind probe retry */
+		u32 retry_count;
 	} pmt;
 
 	/** @soc_remapper: SoC remapper object */
diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index 4ca41a5ef502..f400a6d6ec8d 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -3,6 +3,7 @@
 #include <linux/bitfield.h>
 #include <linux/bits.h>
 #include <linux/cleanup.h>
+#include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/intel_vsec.h>
 #include <linux/module.h>
@@ -18,6 +19,7 @@
 #include "xe_mmio.h"
 #include "xe_platform_types.h"
 #include "xe_pm.h"
+#include "xe_sysctrl.h"
 #include "xe_vsec.h"
 
 #include "regs/xe_pmt.h"
@@ -173,6 +175,14 @@ enum capability {
 	WATCHER,
 };
 
+/*
+ * Late bind will delay 100msec for up to 20 seconds
+ */
+#define VSEC_LATE_BIND_DELAY_MSEC	100
+#define VSEC_LATE_BIND_RETRY		200
+
+static void cri_late_bind_probe(struct xe_device *xe);
+
 static int bmg_guid_decode(u32 guid, int *index, u32 *offset)
 {
 	u32 record_id = FIELD_GET(GUID_RECORD_ID, guid);
@@ -281,6 +291,53 @@ static int xe_guid_decode(u32 guid, int *index, u32 *offset)
 	return -ENODEV;
 }
 
+static void cri_late_bind_probe_work(struct work_struct *work)
+{
+	struct xe_device *xe = container_of(work, struct xe_device, pmt.work.work);
+
+	if (xe_sysctrl_is_oobmsm_fw_ready(xe)) {
+		cri_late_bind_probe(xe);
+		xe_pm_runtime_put(xe);
+		return;
+	}
+
+	xe->pmt.retry_count++;
+
+	/* wait up to 20 seconds */
+	if (xe->pmt.retry_count == VSEC_LATE_BIND_RETRY) {
+		drm_warn(&xe->drm, "PMT probe: Late Binding failed to complete\n");
+		xe_pm_runtime_put(xe);
+		return;
+	}
+
+	if (!queue_delayed_work(system_freezable_wq, &xe->pmt.work,
+				msecs_to_jiffies(VSEC_LATE_BIND_DELAY_MSEC)))
+		xe_pm_runtime_put(xe);
+}
+
+static bool wait_for_fw(struct xe_device *xe)
+{
+	int retries = VSEC_LATE_BIND_RETRY;  /* wait up to 20 secs */
+
+	if (xe->info.platform != XE_CRESCENTISLAND)
+		return true;
+
+	while (retries--) {
+		if (xe_sysctrl_is_oobmsm_fw_ready(xe))
+			return true;
+
+		msleep(VSEC_LATE_BIND_DELAY_MSEC);
+		if (signal_pending(current)) {
+			drm_warn(&xe->drm, "Late Binding interrupted\n");
+			return false;
+		}
+	}
+
+	drm_warn(&xe->drm, "Late Binding failed to complete\n");
+
+	return false;
+}
+
 /**
  * xe_pmt_telem_read - Given a device and a PMT GUID, read data into a buffer
  * @dev: valid Xe device
@@ -343,6 +400,11 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 		goto dev_exit;
 	}
 
+	if (!wait_for_fw(xe)) {
+		ret = -ENODATA;
+		goto runtime_exit;
+	}
+
 	scoped_guard(mutex, &xe->pmt.lock) {
 		u32 device_id = FIELD_GET(GUID_DEVICE_ID, guid);
 
@@ -355,6 +417,7 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse
 			xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
 	}
 
+runtime_exit:
 	xe_pm_runtime_put(xe);
 
 dev_exit:
@@ -400,6 +463,10 @@ static int xe_pmt_read_reg(struct device *dev, u32 guid, u32 *reg, u32 offset)
 	disc_addr += inst + offset;
 
 	xe_pm_runtime_get(xe);
+	if (!wait_for_fw(xe)) {
+		ret = -ENODATA;
+		goto runtime_exit;
+	}
 
 	scoped_guard(mutex, &xe->pmt.lock) {
 		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
@@ -407,6 +474,7 @@ static int xe_pmt_read_reg(struct device *dev, u32 guid, u32 *reg, u32 offset)
 		*reg = readl(disc_addr);
 	}
 
+runtime_exit:
 	xe_pm_runtime_put(xe);
 
 	drm_dev_exit(idx);
@@ -434,6 +502,10 @@ static int xe_pmt_write_reg(struct device *dev, u32 guid, u32 reg, u32 offset)
 	disc_addr += inst + offset;
 
 	xe_pm_runtime_get(xe);
+	if (!wait_for_fw(xe)) {
+		ret = -ENODATA;
+		goto runtime_exit;
+	}
 
 	scoped_guard(mutex, &xe->pmt.lock) {
 		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
@@ -441,6 +513,7 @@ static int xe_pmt_write_reg(struct device *dev, u32 guid, u32 reg, u32 offset)
 		writel(reg, disc_addr);
 	}
 
+runtime_exit:
 	xe_pm_runtime_put(xe);
 
 	drm_dev_exit(idx);
@@ -476,12 +549,50 @@ static enum xe_vsec get_platform_info(struct xe_device *xe)
 	return vsec_platforms[xe->info.platform];
 }
 
+static void cri_late_bind_probe(struct xe_device *xe)
+{
+	struct intel_vsec_platform_info *info;
+	struct device *dev = xe->drm.dev;
+	enum xe_vsec platform;
+
+	platform = get_platform_info(xe);
+	if (platform != XE_VSEC_CRI)
+		return;
+
+	info = &xe_vsec_info[platform];
+	if (!info->headers)
+		return;
+
+	guard(mutex)(&xe->pmt.lock);
+
+	info->priv_data = &xe_cri_pmt_cb;
+	xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
+
+	intel_vsec_register(dev, info);
+}
+
+static void vsec_disable_late_bind_work(void *arg)
+{
+	struct xe_device *xe = arg;
+
+	/*
+	 * If the queued work is canceled, the runtime reference needs to be
+	 * released here.
+	 */
+	if (disable_delayed_work_sync(&xe->pmt.work))
+		xe_pm_runtime_put(xe);
+}
+
 /**
  * xe_vsec_init - Initialize resources and add intel_vsec auxiliary
  * interface
  * @xe: valid xe instance
+ *
+ * Return:
+ * * -ENOMEM devm acction failed
+ * * 0 vsec is a best effort.  Only devm failure is tracked
  */
-void xe_vsec_init(struct xe_device *xe)
+int xe_vsec_init(struct xe_device *xe)
 {
 	struct intel_vsec_platform_info *info;
 	struct device *dev = xe->drm.dev;
@@ -489,11 +600,11 @@ void xe_vsec_init(struct xe_device *xe)
 
 	platform = get_platform_info(xe);
 	if (platform == XE_VSEC_UNKNOWN)
-		return;
+		return 0;
 
 	info = &xe_vsec_info[platform];
 	if (!info->headers)
-		return;
+		return 0;
 
 	switch (platform) {
 	case XE_VSEC_BMG:
@@ -503,12 +614,26 @@ void xe_vsec_init(struct xe_device *xe)
 
 	case XE_VSEC_CRI:
 		xe->pmt.base_offset = CRI_PMT_OFFSET;
+
+		xe->pmt.retry_count = 0;
+		INIT_DELAYED_WORK(&xe->pmt.work, cri_late_bind_probe_work);
+
+		xe_pm_runtime_get_noresume(xe);
+		if (!xe_sysctrl_is_oobmsm_fw_ready(xe)) {
+			queue_delayed_work(system_freezable_wq, &xe->pmt.work,
+					      msecs_to_jiffies(VSEC_LATE_BIND_DELAY_MSEC));
+			return devm_add_action_or_reset(xe->drm.dev,
+							vsec_disable_late_bind_work,
+							xe);
+		}
+
 		info->priv_data = &xe_cri_pmt_cb;
 		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
 		break;
 
 	default:
-		break;
+		drm_err(&xe->drm, "Unsupported platform: %u\n", platform);
+		return 0;
 	}
 
 	/*
@@ -516,5 +641,10 @@ void xe_vsec_init(struct xe_device *xe)
 	 * resources.
 	 */
 	intel_vsec_register(dev, info);
+
+	if (platform == XE_VSEC_CRI)
+		xe_pm_runtime_put(xe);
+
+	return 0;
 }
 MODULE_IMPORT_NS("INTEL_VSEC");
diff --git a/drivers/gpu/drm/xe/xe_vsec.h b/drivers/gpu/drm/xe/xe_vsec.h
index a25b4e6e681b..c4a1e2fc67d8 100644
--- a/drivers/gpu/drm/xe/xe_vsec.h
+++ b/drivers/gpu/drm/xe/xe_vsec.h
@@ -9,7 +9,7 @@
 struct device;
 struct xe_device;
 
-void xe_vsec_init(struct xe_device *xe);
+int xe_vsec_init(struct xe_device *xe);
 int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offset, u32 count);
 
 #endif
-- 
2.43.0


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

* [PATCH v14 14/17] drm/xe/vsec: Add PMT GUID internal access
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (12 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 13/17] drm/xe/vsec: Support late bind fw information Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 15/17] drm/xe/vsec: Update PMT " Michael J. Ruhl
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Xe accesses the PMT infrastructure directly. The current usage is
supported ONLY by BMG devices.

CRI has further requirements for access.

Add the platform id to the GUID register define and use that for the
register access.

Add an API to allow access the GUID based on the platform.

Reviewed-by: Karthik Poosa <karthik.poosa@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/regs/xe_pmt.h     |  4 +-
 drivers/gpu/drm/xe/xe_debugfs.c      |  2 +-
 drivers/gpu/drm/xe/xe_device_types.h |  2 +
 drivers/gpu/drm/xe/xe_hwmon.c        |  2 +-
 drivers/gpu/drm/xe/xe_pcode.c        |  2 +-
 drivers/gpu/drm/xe/xe_vsec.c         | 55 ++++++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_vsec.h         |  1 +
 7 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/xe/regs/xe_pmt.h b/drivers/gpu/drm/xe/regs/xe_pmt.h
index 2f6658395587..fb5b5a8648ba 100644
--- a/drivers/gpu/drm/xe/regs/xe_pmt.h
+++ b/drivers/gpu/drm/xe/regs/xe_pmt.h
@@ -10,7 +10,7 @@
 #define BMG_PMT_BASE_OFFSET		0xDB000
 #define BMG_DISCOVERY_OFFSET		(SOC_BASE + BMG_PMT_BASE_OFFSET)
 
-#define PUNIT_TELEMETRY_GUID		XE_REG(BMG_DISCOVERY_OFFSET + 0x4)
+#define BMG_PUNIT_TELEMETRY_GUID	XE_REG(BMG_DISCOVERY_OFFSET + 0x4)
 #define BMG_ENERGY_STATUS_PMT_OFFSET	(0x30)
 #define	ENERGY_PKG			REG_GENMASK64(31, 0)
 #define	ENERGY_CARD			REG_GENMASK64(63, 32)
@@ -24,6 +24,8 @@
 /* for CRI discovery and telemetry are in an indexed window */
 #define CRI_PMT_OFFSET			(SOC_BASE + XE_PMT_BASE_OFFSET)
 
+#define CRI_PUNIT_TELEMETRY_GUID	XE_REG(CRI_PMT_OFFSET + 0x4)
+
 #define BMG_MODS_RESIDENCY_OFFSET		(0x4D0)
 #define BMG_G2_RESIDENCY_OFFSET		(0x530)
 #define BMG_G6_RESIDENCY_OFFSET		(0x538)
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index e59d4964d811..8a470fe967d5 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -154,7 +154,7 @@ static void read_residency_counter(struct xe_device *xe, struct xe_mmio *mmio,
 	int ret;
 
 	ret = xe_pmt_telem_read(xe->drm.dev,
-				xe_mmio_read32(mmio, PUNIT_TELEMETRY_GUID),
+				xe_mmio_read32(mmio, BMG_PUNIT_TELEMETRY_GUID),
 				&residency, offset, sizeof(residency));
 	if (ret != sizeof(residency)) {
 		drm_warn(&xe->drm, "%s counter failed to read, ret %d\n", name, ret);
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 0fc9ab556146..a35a8b6e733e 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -490,6 +490,8 @@ struct xe_device {
 		struct delayed_work work;
 		/** @pmt.retry_count: late-bind probe retry */
 		u32 retry_count;
+		/** @pmt.punit_guid_cache: cache of the PUNIT GUID */
+		u32 punit_guid_cache;
 	} pmt;
 
 	/** @soc_remapper: SoC remapper object */
diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index defe8aaca7c1..d9636eca0133 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -605,7 +605,7 @@ xe_hwmon_energy_get(struct xe_hwmon *hwmon, int channel, long *energy)
 		u64 pmt_val;
 
 		ret = xe_pmt_telem_read(hwmon->xe->drm.dev,
-					xe_mmio_read32(mmio, PUNIT_TELEMETRY_GUID),
+					xe_mmio_read32(mmio, BMG_PUNIT_TELEMETRY_GUID),
 					&pmt_val, BMG_ENERGY_STATUS_PMT_OFFSET,	sizeof(pmt_val));
 		if (ret != sizeof(pmt_val)) {
 			drm_warn(&hwmon->xe->drm, "energy read from pmt failed, ret %d\n", ret);
diff --git a/drivers/gpu/drm/xe/xe_pcode.c b/drivers/gpu/drm/xe/xe_pcode.c
index 266deecbb100..8c901e54f384 100644
--- a/drivers/gpu/drm/xe/xe_pcode.c
+++ b/drivers/gpu/drm/xe/xe_pcode.c
@@ -369,7 +369,7 @@ int xe_get_pcode_version(struct xe_device *xe, struct xe_pcode_version *version)
 	guard(xe_pm_runtime)(xe);
 
 	ret = xe_pmt_telem_read(xe->drm.dev,
-				xe_mmio_read32(xe_root_tile_mmio(xe), PUNIT_TELEMETRY_GUID),
+				xe_mmio_read32(xe_root_tile_mmio(xe), BMG_PUNIT_TELEMETRY_GUID),
 				(u64 *)version, PUNIT_VERSION_OFFSET, sizeof(*version));
 	if (ret != sizeof(*version)) {
 		xe_warn(xe, "pcode version read from PMT failed, ret %pe\n", ERR_PTR(ret));
diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index f400a6d6ec8d..f27bfe8218d7 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -583,6 +583,61 @@ static void vsec_disable_late_bind_work(void *arg)
 		xe_pm_runtime_put(xe);
 }
 
+/**
+ * xe_vsec_get_guid - Get and cache the PUNIT guid value
+ * @xe: valid xe device
+ * @guid: returned guid
+ *
+ * Return:
+ * * -ENODATA device is not active
+ * * -EINVAL unsupported platform
+ * * 0 success
+ */
+int xe_vsec_get_guid(struct xe_device *xe, u32 *guid)
+{
+	struct xe_mmio *mmio = xe_root_tile_mmio(xe);
+	int ret = 0;
+
+	xe_assert(xe, !IS_SRIOV_VF(xe));
+
+	if (!xe_pm_runtime_get_if_active(xe))
+		return -ENODATA;
+
+	mutex_lock(&xe->pmt.lock);
+
+	if (xe->pmt.punit_guid_cache) {
+		*guid = xe->pmt.punit_guid_cache;
+		goto unlock;
+	}
+
+	switch (xe->info.platform) {
+	case XE_BATTLEMAGE:
+		*guid = xe_mmio_read32(mmio, BMG_PUNIT_TELEMETRY_GUID);
+		break;
+
+	case XE_CRESCENTISLAND:
+		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
+		*guid = xe_mmio_read32(mmio, CRI_PUNIT_TELEMETRY_GUID);
+		break;
+
+	default:
+		*guid = 0;
+		drm_err(&xe->drm, "Unsupported platform: %u\n", xe->info.platform);
+		ret = -EINVAL;
+		break;
+	}
+
+	/* the GUID is static, read once and cache for all requests */
+	if (*guid)
+		xe->pmt.punit_guid_cache = *guid;
+
+unlock:
+	mutex_unlock(&xe->pmt.lock);
+	xe_pm_runtime_put(xe);
+
+	return ret;
+}
+
 /**
  * xe_vsec_init - Initialize resources and add intel_vsec auxiliary
  * interface
diff --git a/drivers/gpu/drm/xe/xe_vsec.h b/drivers/gpu/drm/xe/xe_vsec.h
index c4a1e2fc67d8..50187fdc1207 100644
--- a/drivers/gpu/drm/xe/xe_vsec.h
+++ b/drivers/gpu/drm/xe/xe_vsec.h
@@ -10,6 +10,7 @@ struct device;
 struct xe_device;
 
 int xe_vsec_init(struct xe_device *xe);
+int xe_vsec_get_guid(struct xe_device *xe, u32 *guid);
 int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offset, u32 count);
 
 #endif
-- 
2.43.0


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

* [PATCH v14 15/17] drm/xe/vsec: Update PMT internal access
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (13 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 14/17] drm/xe/vsec: Add PMT GUID internal access Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 16/17] drm/xe/vsec: Refactor platform check Michael J. Ruhl
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

Current PMT internal access assumes BMG devices.

Use the new PMT GUID API to read the device specific guid.

Minor cleanup for a newly unused parameter (mmio).

Reviewed-by: Karthik Poosa <karthik.poosa@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_debugfs.c | 26 ++++++++++++++------------
 drivers/gpu/drm/xe/xe_hwmon.c   | 10 ++++++++--
 drivers/gpu/drm/xe/xe_pcode.c   | 10 ++++++++--
 3 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 8a470fe967d5..b56e4aad4069 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -5,6 +5,7 @@
 
 #include "xe_debugfs.h"
 
+#include <linux/array_size.h>
 #include <linux/bits.h>
 #include <linux/debugfs.h>
 #include <linux/fault-inject.h>
@@ -19,7 +20,6 @@
 #include "xe_gt.h"
 #include "xe_gt_debugfs.h"
 #include "xe_hw_engine.h"
-#include "xe_mmio.h"
 #include "xe_pagefault.h"
 #include "xe_pcode.h"
 #include "xe_pm.h"
@@ -147,15 +147,20 @@ static void xe_fault_inject_debugfs_register(struct xe_device *xe,
 	}
 }
 
-static void read_residency_counter(struct xe_device *xe, struct xe_mmio *mmio,
-				   u32 offset, const char *name, struct drm_printer *p)
+static void read_residency_counter(struct xe_device *xe, u32 offset, const char *name,
+				   struct drm_printer *p)
 {
 	u64 residency = 0;
+	u32 guid;
 	int ret;
 
-	ret = xe_pmt_telem_read(xe->drm.dev,
-				xe_mmio_read32(mmio, BMG_PUNIT_TELEMETRY_GUID),
-				&residency, offset, sizeof(residency));
+	ret = xe_vsec_get_guid(xe, &guid);
+	if (ret) {
+		drm_warn(&xe->drm, "PMT device is not available: %d\n", ret);
+		return;
+	}
+
+	ret = xe_pmt_telem_read(xe->drm.dev, guid, &residency, offset, sizeof(residency));
 	if (ret != sizeof(residency)) {
 		drm_warn(&xe->drm, "%s counter failed to read, ret %d\n", name, ret);
 		return;
@@ -294,13 +299,12 @@ static int pcode_info(struct seq_file *m, void *data)
 static int dgfx_pkg_residencies_show(struct seq_file *m, void *data)
 {
 	struct xe_device *xe;
-	struct xe_mmio *mmio;
 	struct drm_printer p;
 
 	xe = node_to_xe(m->private);
 	p = drm_seq_file_printer(m);
 	guard(xe_pm_runtime)(xe);
-	mmio = xe_root_tile_mmio(xe);
+
 	static const struct {
 		u32 offset;
 		const char *name;
@@ -314,7 +318,7 @@ static int dgfx_pkg_residencies_show(struct seq_file *m, void *data)
 	};
 
 	for (int i = 0; i < ARRAY_SIZE(residencies); i++)
-		read_residency_counter(xe, mmio, residencies[i].offset, residencies[i].name, &p);
+		read_residency_counter(xe, residencies[i].offset, residencies[i].name, &p);
 
 	return 0;
 }
@@ -322,13 +326,11 @@ static int dgfx_pkg_residencies_show(struct seq_file *m, void *data)
 static int dgfx_pcie_link_residencies_show(struct seq_file *m, void *data)
 {
 	struct xe_device *xe;
-	struct xe_mmio *mmio;
 	struct drm_printer p;
 
 	xe = node_to_xe(m->private);
 	p = drm_seq_file_printer(m);
 	guard(xe_pm_runtime)(xe);
-	mmio = xe_root_tile_mmio(xe);
 
 	static const struct {
 		u32 offset;
@@ -340,7 +342,7 @@ static int dgfx_pcie_link_residencies_show(struct seq_file *m, void *data)
 	};
 
 	for (int i = 0; i < ARRAY_SIZE(residencies); i++)
-		read_residency_counter(xe, mmio, residencies[i].offset, residencies[i].name, &p);
+		read_residency_counter(xe, residencies[i].offset, residencies[i].name, &p);
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/xe/xe_hwmon.c b/drivers/gpu/drm/xe/xe_hwmon.c
index d9636eca0133..55e0f961df4c 100644
--- a/drivers/gpu/drm/xe/xe_hwmon.c
+++ b/drivers/gpu/drm/xe/xe_hwmon.c
@@ -603,9 +603,15 @@ xe_hwmon_energy_get(struct xe_hwmon *hwmon, int channel, long *energy)
 
 	if (hwmon->xe->info.platform == XE_BATTLEMAGE) {
 		u64 pmt_val;
+		u32 guid;
 
-		ret = xe_pmt_telem_read(hwmon->xe->drm.dev,
-					xe_mmio_read32(mmio, BMG_PUNIT_TELEMETRY_GUID),
+		ret = xe_vsec_get_guid(hwmon->xe, &guid);
+		if (ret) {
+			drm_warn(&hwmon->xe->drm, "PMT device is not available: %d\n", ret);
+			*energy = 0;
+			return ret;
+		}
+		ret = xe_pmt_telem_read(hwmon->xe->drm.dev, guid,
 					&pmt_val, BMG_ENERGY_STATUS_PMT_OFFSET,	sizeof(pmt_val));
 		if (ret != sizeof(pmt_val)) {
 			drm_warn(&hwmon->xe->drm, "energy read from pmt failed, ret %d\n", ret);
diff --git a/drivers/gpu/drm/xe/xe_pcode.c b/drivers/gpu/drm/xe/xe_pcode.c
index 8c901e54f384..fa9f45d565cb 100644
--- a/drivers/gpu/drm/xe/xe_pcode.c
+++ b/drivers/gpu/drm/xe/xe_pcode.c
@@ -365,11 +365,17 @@ ALLOW_ERROR_INJECTION(xe_pcode_probe_early, ERRNO); /* See xe_pci_probe */
 int xe_get_pcode_version(struct xe_device *xe, struct xe_pcode_version *version)
 {
 	int ret = 0;
+	u32 guid;
 
 	guard(xe_pm_runtime)(xe);
 
-	ret = xe_pmt_telem_read(xe->drm.dev,
-				xe_mmio_read32(xe_root_tile_mmio(xe), BMG_PUNIT_TELEMETRY_GUID),
+	ret = xe_vsec_get_guid(xe, &guid);
+	if (ret) {
+		xe_warn(xe, "PMT device is not available: %d\n", ret);
+		return ret;
+	}
+
+	ret = xe_pmt_telem_read(xe->drm.dev, guid,
 				(u64 *)version, PUNIT_VERSION_OFFSET, sizeof(*version));
 	if (ret != sizeof(*version)) {
 		xe_warn(xe, "pcode version read from PMT failed, ret %pe\n", ERR_PTR(ret));
-- 
2.43.0


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

* [PATCH v14 16/17] drm/xe/vsec: Refactor platform check
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (14 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 15/17] drm/xe/vsec: Update PMT " Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:35 ` [PATCH v14 17/17] drm/xe/vsec: Support survivability mode for CRI Michael J. Ruhl
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

For debugfs, residencies and pcode_info are available on the BMG and
CRI (!SRIOV_VF) platforms.

Refactor to have one code path for adding the debugfs entries.

Reviewed-by: Karthik Poosa <karthik.poosa@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_debugfs.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index b56e4aad4069..5a82f8eab2c6 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -702,23 +702,22 @@ void xe_debugfs_register(struct xe_device *xe)
 				 ARRAY_SIZE(debugfs_list),
 				 root, minor);
 
-	if (xe->info.platform == XE_BATTLEMAGE && !IS_SRIOV_VF(xe)) {
-		drm_debugfs_create_files(debugfs_residencies,
-					 ARRAY_SIZE(debugfs_residencies),
-					 root, minor);
-	}
-
 	/*
-	 * Pcode version read from PMT is currently only supported on CRI and BMG platforms in PF
-	 * mode, as both platforms support the necessary telemetry read mechanism and have a fixed
-	 * PUNIT_VERSION_OFFSET.
+	 * Residencies and Pcode version read from PMT is currently only supported on CRI and BMG
+	 * platforms in PF mode.  Both platforms support the necessary telemetry read mechanism
+	 * and have a fixed offsets for the required data.
 	 * Attempting this access on other platforms must be verified before enabling support.
 	 */
 	if (!IS_SRIOV_VF(xe) &&
-	    (xe->info.platform == XE_CRESCENTISLAND || xe->info.platform == XE_BATTLEMAGE))
+	    (xe->info.platform == XE_CRESCENTISLAND || xe->info.platform == XE_BATTLEMAGE)) {
+		drm_debugfs_create_files(debugfs_residencies,
+					 ARRAY_SIZE(debugfs_residencies),
+					 root, minor);
+
 		drm_debugfs_create_files(pcode_info_debugfs,
 					 ARRAY_SIZE(pcode_info_debugfs),
 					 root, minor);
+	}
 
 	debugfs_create_file("forcewake_all", 0400, root, xe,
 			    &forcewake_all_fops);
-- 
2.43.0


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

* [PATCH v14 17/17] drm/xe/vsec: Support survivability mode for CRI
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (15 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 16/17] drm/xe/vsec: Refactor platform check Michael J. Ruhl
@ 2026-11-10 18:35 ` Michael J. Ruhl
  2026-11-10 18:53   ` sashiko-bot
  2026-11-10 18:42 ` ✗ CI.checkpatch: warning for Crescent Island PMT support (rev16) Patchwork
                   ` (3 subsequent siblings)
  20 siblings, 1 reply; 26+ messages in thread
From: Michael J. Ruhl @ 2026-11-10 18:35 UTC (permalink / raw)
  To: intel-xe, matthew.brost, rodrigo.vivi, thomas.hellstrom, airlied,
	simona, david.e.box, anoop.c.vijay, badal.nilawar,
	matthew.d.roper, james.ausmus

For survivability mode, CRI can only support access to the
PUNIT CRASHLOG PMT function.

Create a special config to support survivability mode.

Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
---
 drivers/gpu/drm/xe/xe_device_types.h |  2 ++
 drivers/gpu/drm/xe/xe_vsec.c         | 34 +++++++++++++++++++++++++++-
 2 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index a35a8b6e733e..5d4548d86376 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -492,6 +492,8 @@ struct xe_device {
 		u32 retry_count;
 		/** @pmt.punit_guid_cache: cache of the PUNIT GUID */
 		u32 punit_guid_cache;
+		/** @pmt.survivability_mode: cache of survivability mode state */
+		bool survivability_mode;
 	} pmt;
 
 	/** @soc_remapper: SoC remapper object */
diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
index f27bfe8218d7..ffaed9ef43b2 100644
--- a/drivers/gpu/drm/xe/xe_vsec.c
+++ b/drivers/gpu/drm/xe/xe_vsec.c
@@ -101,10 +101,26 @@ static struct intel_vsec_header *cri_capabilities[] = {
 	NULL
 };
 
+static struct intel_vsec_header cri_survivability_crashlog = {
+	.rev = 1,
+	.length = SZ_16,
+	.id = VSEC_ID_CRASHLOG,
+	.num_entries = 1,
+	.entry_size = 6,
+	.tbir = 0,
+	.offset = CRI_PMT_OFFSET + CRI_CRASHLOG_PUNIT_DISC_OFFSET,
+};
+
+static struct intel_vsec_header *cri_survivability_capabilities[] = {
+	&cri_survivability_crashlog,
+	NULL
+};
+
 enum xe_vsec {
 	XE_VSEC_UNKNOWN = 0,
 	XE_VSEC_BMG,
 	XE_VSEC_CRI,
+	XE_VSEC_CRI_SURVIVABILITY,
 };
 
 static struct intel_vsec_platform_info xe_vsec_info[] = {
@@ -116,6 +132,10 @@ static struct intel_vsec_platform_info xe_vsec_info[] = {
 		.caps = VSEC_CAP_TELEMETRY | VSEC_CAP_CRASHLOG,
 		.headers = cri_capabilities,
 	},
+	[XE_VSEC_CRI_SURVIVABILITY] = {
+		.caps = VSEC_CAP_CRASHLOG,
+		.headers = cri_survivability_capabilities,
+	},
 	{ }
 };
 
@@ -319,7 +339,7 @@ static bool wait_for_fw(struct xe_device *xe)
 {
 	int retries = VSEC_LATE_BIND_RETRY;  /* wait up to 20 secs */
 
-	if (xe->info.platform != XE_CRESCENTISLAND)
+	if (xe->info.platform != XE_CRESCENTISLAND || xe->pmt.survivability_mode)
 		return true;
 
 	while (retries--) {
@@ -538,6 +558,8 @@ static const int vsec_platforms[] = {
 
 static enum xe_vsec get_platform_info(struct xe_device *xe)
 {
+	struct xe_survivability *survivability = &xe->survivability;
+
 	if (xe->info.platform > XE_CRESCENTISLAND)
 		return XE_VSEC_UNKNOWN;
 
@@ -546,6 +568,9 @@ static enum xe_vsec get_platform_info(struct xe_device *xe)
 	     xe->info.platform == XE_CRESCENTISLAND))
 		return XE_VSEC_UNKNOWN;
 
+	if (survivability->mode && xe->info.platform == XE_CRESCENTISLAND)
+		return XE_VSEC_CRI_SURVIVABILITY;
+
 	return vsec_platforms[xe->info.platform];
 }
 
@@ -686,6 +711,13 @@ int xe_vsec_init(struct xe_device *xe)
 		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
 		break;
 
+	case XE_VSEC_CRI_SURVIVABILITY:
+		xe->pmt.base_offset = CRI_PMT_OFFSET;
+		xe->pmt.survivability_mode = true;
+		info->priv_data = &xe_cri_pmt_cb;
+		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
+		break;
+
 	default:
 		drm_err(&xe->drm, "Unsupported platform: %u\n", platform);
 		return 0;
-- 
2.43.0


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

* ✗ CI.checkpatch: warning for Crescent Island PMT support (rev16)
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (16 preceding siblings ...)
  2026-11-10 18:35 ` [PATCH v14 17/17] drm/xe/vsec: Support survivability mode for CRI Michael J. Ruhl
@ 2026-11-10 18:42 ` Patchwork
  2026-11-10 18:44 ` ✓ CI.KUnit: success " Patchwork
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-11-10 18:42 UTC (permalink / raw)
  To: Michael J. Ruhl; +Cc: intel-xe

== Series Details ==

Series: Crescent Island PMT support (rev16)
URL   : https://patchwork.freedesktop.org/series/160717/
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
3009867cd31863246e4afc138520a7a8bd37bb11
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 213cba3f46b62cfd67208a03aa00db9ee52273b4
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>
Date:   Tue Nov 10 10:35:22 2026 -0800

    drm/xe/vsec: Support survivability mode for CRI
    
    For survivability mode, CRI can only support access to the
    PUNIT CRASHLOG PMT function.
    
    Create a special config to support survivability mode.
    
    Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
+ /mt/dim checkpatch c8d0fb6110b86aa64eb59502df08b529e221f232 drm-intel
4df1ca654981 drm/xe/vsec: VSEC requires soc-remapper
c269ceaeceaf drm/xe/vsec: Do not register BMG PMT for VF
3ab77a9b4a4a drm/xe/vsec: Correct locking order
b2c810a9f9b5 drm/xe/vsec: Use correct pm state get
120740bc10d7 drm/xe/vsec: Add DOC text for VSEC
-:21: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#21: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 54 lines checked
6092bc0a6475 drm/xe/vsec: Support possible hotplug exit
e0790beba2ff drm/xe/vsec: Refactor BattleMage PMT defines
ffb3846803bc drm/xe/vsec: Update VSEC probe order
412af1e7c621 drm/xe/vsec: Add base_offset to allow for more flexibilty
55beb172b1aa drm/xe/vsec: Support Crescent Island PMT
1a2da489816a drm/xe/vsec: Crescent Island PMT decode
5d18868be5f9 drm/xe/vsec: Crescent Island PMT callbacks
868c5e7a8498 drm/xe/vsec: Support late bind fw information
-:277: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#277: FILE: drivers/gpu/drm/xe/xe_vsec.c:624:
+			queue_delayed_work(system_freezable_wq, &xe->pmt.work,
+					      msecs_to_jiffies(VSEC_LATE_BIND_DELAY_MSEC));

total: 0 errors, 0 warnings, 1 checks, 269 lines checked
d6c2e5a8ec71 drm/xe/vsec: Add PMT GUID internal access
106f7d7665c7 drm/xe/vsec: Update PMT internal access
519881245800 drm/xe/vsec: Refactor platform check
213cba3f46b6 drm/xe/vsec: Support survivability mode for CRI



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

* ✓ CI.KUnit: success for Crescent Island PMT support (rev16)
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (17 preceding siblings ...)
  2026-11-10 18:42 ` ✗ CI.checkpatch: warning for Crescent Island PMT support (rev16) Patchwork
@ 2026-11-10 18:44 ` Patchwork
  2026-11-10 19:20 ` ✓ Xe.CI.BAT: " Patchwork
  2026-11-10 21:19 ` ✗ Xe.CI.FULL: failure " Patchwork
  20 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-11-10 18:44 UTC (permalink / raw)
  To: Michael J. Ruhl; +Cc: intel-xe

== Series Details ==

Series: Crescent Island PMT support (rev16)
URL   : https://patchwork.freedesktop.org/series/160717/
State : success

== Summary ==

+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[18:42:32] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:42:37] 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
[18:42:58] Starting KUnit Kernel (1/1)...
[18:42:58] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:42:58] ================= gpu_buddy (14 subtests) ==================
[18:42:58] [PASSED] gpu_test_buddy_alloc_limit
[18:42:58] [PASSED] gpu_test_buddy_alloc_optimistic
[18:42:58] [PASSED] gpu_test_buddy_alloc_pessimistic
[18:42:58] [PASSED] gpu_test_buddy_alloc_pathological
[18:42:58] [PASSED] gpu_test_buddy_alloc_contiguous
[18:42:58] [PASSED] gpu_test_buddy_alloc_clear
[18:42:58] [PASSED] gpu_test_buddy_alloc_range
[18:42:58] [PASSED] gpu_test_buddy_alloc_range_bias
[18:42:59] [PASSED] gpu_test_buddy_fragmentation_performance
[18:43:00] [PASSED] gpu_test_buddy_dirty_tracker_performance
[18:43:00] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[18:43:00] [PASSED] gpu_test_buddy_offset_aligned_allocation
[18:43:00] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[18:43:00] [PASSED] gpu_test_buddy_addr_to_block
[18:43:00] ==================== [PASSED] gpu_buddy ====================
[18:43:00] ============================================================
[18:43:00] Testing complete. Ran 14 tests: passed: 14
[18:43:00] Elapsed time: 27.716s total, 5.127s configuring, 20.671s building, 1.874s running

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[18:43:00] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:43:02] 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
[18:43:41] Starting KUnit Kernel (1/1)...
[18:43:41] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:43:41] ================== guc_buf (11 subtests) ===================
[18:43:41] [PASSED] test_smallest
[18:43:41] [PASSED] test_largest
[18:43:41] [PASSED] test_granular
[18:43:41] [PASSED] test_unique
[18:43:41] [PASSED] test_overlap
[18:43:41] [PASSED] test_reusable
[18:43:41] [PASSED] test_too_big
[18:43:41] [PASSED] test_flush
[18:43:41] [PASSED] test_lookup
[18:43:41] [PASSED] test_data
[18:43:41] [PASSED] test_class
[18:43:41] ===================== [PASSED] guc_buf =====================
[18:43:41] =================== guc_dbm (7 subtests) ===================
[18:43:41] [PASSED] test_empty
[18:43:41] [PASSED] test_default
[18:43:41] ======================== test_size  ========================
[18:43:41] [PASSED] 4
[18:43:41] [PASSED] 8
[18:43:41] [PASSED] 32
[18:43:41] [PASSED] 256
[18:43:41] ==================== [PASSED] test_size ====================
[18:43:41] ======================= test_reuse  ========================
[18:43:41] [PASSED] 4
[18:43:41] [PASSED] 8
[18:43:41] [PASSED] 32
[18:43:41] [PASSED] 256
[18:43:41] =================== [PASSED] test_reuse ====================
[18:43:41] =================== test_range_overlap  ====================
[18:43:41] [PASSED] 4
[18:43:41] [PASSED] 8
[18:43:41] [PASSED] 32
[18:43:41] [PASSED] 256
[18:43:41] =============== [PASSED] test_range_overlap ================
[18:43:41] =================== test_range_compact  ====================
[18:43:41] [PASSED] 4
[18:43:41] [PASSED] 8
[18:43:41] [PASSED] 32
[18:43:41] [PASSED] 256
[18:43:41] =============== [PASSED] test_range_compact ================
[18:43:41] ==================== test_range_spare  =====================
[18:43:41] [PASSED] 4
[18:43:41] [PASSED] 8
[18:43:41] [PASSED] 32
[18:43:41] [PASSED] 256
[18:43:41] ================ [PASSED] test_range_spare =================
[18:43:41] ===================== [PASSED] guc_dbm =====================
[18:43:41] ================== guc_idm (22 subtests) ===================
[18:43:41] [PASSED] bad_init
[18:43:41] [PASSED] no_init
[18:43:41] [PASSED] init_fini
[18:43:41] [PASSED] check_init_small
[18:43:41] [PASSED] check_init_shared
[18:43:41] [PASSED] check_used
[18:43:41] [PASSED] check_quota
[18:43:41] [PASSED] check_all
[18:43:41] [PASSED] check_limits
[18:43:41] [PASSED] check_overlap
[18:43:41] [PASSED] check_overlap_alloc
[18:43:41] [PASSED] check_overlap_release
[18:43:41] [PASSED] check_overlap_partial_init
[18:43:41] [PASSED] check_overlap_partial_shared_range_blocking
[18:43:41] [PASSED] check_used_usable
[18:43:41] [PASSED] check_used_shareable
[18:43:41] [PASSED] check_used_mixed
[18:43:41] [PASSED] check_release_usable_range
[18:43:41] [PASSED] check_release_shareable_range
[18:43:41] [PASSED] check_split_boundaries
[18:43:41] [PASSED] check_shareable_spare
[18:43:41] [PASSED] check_shareable_spare_fragmented_tail
[18:43:41] ===================== [PASSED] guc_idm =====================
[18:43:41] ============== guc_klv_helpers (13 subtests) ===============
[18:43:41] [PASSED] test_count
[18:43:41] [PASSED] test_encode_u32
[18:43:41] [PASSED] test_encode_u64
[18:43:41] [PASSED] test_encode_string
[18:43:41] [PASSED] test_encode_object_raw
[18:43:41] [PASSED] test_encode_object_klv
[18:43:41] [PASSED] test_encode_object_nested
[18:43:41] [PASSED] test_encode_object_basic
[18:43:41] ===================== test_decode_u16  =====================
[18:43:41] [PASSED] empty
[18:43:41] [PASSED] valid
[18:43:41] [PASSED] max
[18:43:41] [PASSED] big
[18:43:41] [PASSED] long
[18:43:41] ================= [PASSED] test_decode_u16 =================
[18:43:41] ===================== test_decode_u32  =====================
[18:43:41] [PASSED] empty
[18:43:41] [PASSED] valid
[18:43:41] [PASSED] max
[18:43:41] [PASSED] long
[18:43:41] ================= [PASSED] test_decode_u32 =================
[18:43:41] ===================== test_decode_u64  =====================
[18:43:41] [PASSED] empty
[18:43:41] [PASSED] short
[18:43:41] [PASSED] valid
[18:43:41] [PASSED] max
[18:43:41] [PASSED] long
[18:43:41] ================= [PASSED] test_decode_u64 =================
[18:43:41] ===================== test_decode_str  =====================
[18:43:41] [PASSED] empty
[18:43:41] [PASSED] one
[18:43:41] [PASSED] one_trash
[18:43:41] [PASSED] two
[18:43:41] [PASSED] two_trash
[18:43:41] [PASSED] three
[18:43:41] [PASSED] dword
[18:43:41] [PASSED] four
[18:43:41] [PASSED] five
[18:43:41] [PASSED] six
[18:43:41] [PASSED] seven
[18:43:41] [PASSED] qword
[18:43:41] ================= [PASSED] test_decode_str =================
[18:43:41] [PASSED] test_print
[18:43:41] ================= [PASSED] guc_klv_helpers =================
[18:43:41] =================== xe_log (4 subtests) ====================
[18:43:41] [PASSED] demo_cper
[18:43:41] [PASSED] demo_dmesg
[18:43:41] ======================= test_dmesg  ========================
[18:43:41] [PASSED] test_fatal
[18:43:41] [PASSED] test_fatal_tile
[18:43:41] [PASSED] test_fatal_gt
[18:43:41] [PASSED] test_fatal_comp
[18:43:41] [PASSED] test_fatal_comp_tile
[18:43:41] [PASSED] test_fatal_comp_gt
[18:43:41] [PASSED] test_fatal_all
[18:43:41] [PASSED] test_recoverable
[18:43:41] [PASSED] test_recoverable_tile
[18:43:41] [PASSED] test_recoverable_gt
[18:43:41] [PASSED] test_recoverable_comp
[18:43:41] [PASSED] test_recoverable_comp_tile
[18:43:41] [PASSED] test_recoverable_comp_gt
[18:43:41] [PASSED] test_recoverable_all
[18:43:41] [PASSED] test_info
[18:43:41] [PASSED] test_info_tile
[18:43:41] [PASSED] test_info_gt
[18:43:41] [PASSED] test_info_err
[18:43:41] [PASSED] test_info_comp
[18:43:41] [PASSED] test_info_comp_tile
[18:43:41] [PASSED] test_info_comp_gt
[18:43:41] [PASSED] test_info_all
[18:43:41] [PASSED] test_hw_fatal
[18:43:41] [PASSED] test_hw_recoverable
[18:43:41] [PASSED] test_hw_corrected
[18:43:41] [PASSED] test_hw_informational
[18:43:41] =================== [PASSED] test_dmesg ====================
[18:43:41] ====================== test_invalid  =======================
[18:43:41] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[18:43:41] ================== [SKIPPED] test_invalid ==================
[18:43:41] ===================== [PASSED] xe_log ======================
[18:43:41] ================== no_relay (3 subtests) ===================
[18:43:41] [PASSED] xe_drops_guc2pf_if_not_ready
[18:43:41] [PASSED] xe_drops_guc2vf_if_not_ready
[18:43:41] [PASSED] xe_rejects_send_if_not_ready
[18:43:41] ==================== [PASSED] no_relay =====================
[18:43:41] ================== pf_relay (14 subtests) ==================
[18:43:41] [PASSED] pf_rejects_guc2pf_too_short
[18:43:41] [PASSED] pf_rejects_guc2pf_too_long
[18:43:41] [PASSED] pf_rejects_guc2pf_no_payload
[18:43:41] [PASSED] pf_fails_no_payload
[18:43:41] [PASSED] pf_fails_bad_origin
[18:43:41] [PASSED] pf_fails_bad_type
[18:43:41] [PASSED] pf_txn_reports_error
[18:43:41] [PASSED] pf_txn_sends_pf2guc
[18:43:41] [PASSED] pf_sends_pf2guc
[18:43:41] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:43:41] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:43:41] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:43:41] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:43:41] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:43:41] ==================== [PASSED] pf_relay =====================
[18:43:41] ================== vf_relay (3 subtests) ===================
[18:43:41] [PASSED] vf_rejects_guc2vf_too_short
[18:43:41] [PASSED] vf_rejects_guc2vf_too_long
[18:43:41] [PASSED] vf_rejects_guc2vf_no_payload
[18:43:41] ==================== [PASSED] vf_relay =====================
[18:43:41] ================ pf_gt_config (9 subtests) =================
[18:43:41] [PASSED] fair_contexts_1vf
[18:43:41] [PASSED] fair_doorbells_1vf
[18:43:41] [PASSED] fair_ggtt_1vf
[18:43:41] ====================== fair_vram_1vf  ======================
[18:43:41] [PASSED] 3.50 GiB
[18:43:41] [PASSED] 11.5 GiB
[18:43:41] [PASSED] 15.5 GiB
[18:43:41] [PASSED] 31.5 GiB
[18:43:41] [PASSED] 63.5 GiB
[18:43:41] [PASSED] 1.91 GiB
[18:43:41] ================== [PASSED] fair_vram_1vf ==================
[18:43:41] ================ fair_vram_1vf_admin_only  =================
[18:43:41] [PASSED] 3.50 GiB
[18:43:41] [PASSED] 11.5 GiB
[18:43:41] [PASSED] 15.5 GiB
[18:43:41] [PASSED] 31.5 GiB
[18:43:41] [PASSED] 63.5 GiB
[18:43:41] [PASSED] 1.91 GiB
[18:43:41] ============ [PASSED] fair_vram_1vf_admin_only =============
[18:43:41] ====================== fair_contexts  ======================
[18:43:41] [PASSED] 1 VF
[18:43:41] [PASSED] 2 VFs
[18:43:41] [PASSED] 3 VFs
[18:43:41] [PASSED] 4 VFs
[18:43:41] [PASSED] 5 VFs
[18:43:41] [PASSED] 6 VFs
[18:43:41] [PASSED] 7 VFs
[18:43:41] [PASSED] 8 VFs
[18:43:41] [PASSED] 9 VFs
[18:43:41] [PASSED] 10 VFs
[18:43:41] [PASSED] 11 VFs
[18:43:41] [PASSED] 12 VFs
[18:43:41] [PASSED] 13 VFs
[18:43:41] [PASSED] 14 VFs
[18:43:41] [PASSED] 15 VFs
[18:43:41] [PASSED] 16 VFs
[18:43:41] [PASSED] 17 VFs
[18:43:41] [PASSED] 18 VFs
[18:43:41] [PASSED] 19 VFs
[18:43:41] [PASSED] 20 VFs
[18:43:41] [PASSED] 21 VFs
[18:43:41] [PASSED] 22 VFs
[18:43:41] [PASSED] 23 VFs
[18:43:41] [PASSED] 24 VFs
[18:43:41] [PASSED] 25 VFs
[18:43:41] [PASSED] 26 VFs
[18:43:41] [PASSED] 27 VFs
[18:43:41] [PASSED] 28 VFs
[18:43:41] [PASSED] 29 VFs
[18:43:41] [PASSED] 30 VFs
[18:43:41] [PASSED] 31 VFs
[18:43:41] [PASSED] 32 VFs
[18:43:41] [PASSED] 33 VFs
[18:43:41] [PASSED] 34 VFs
[18:43:41] [PASSED] 35 VFs
[18:43:41] [PASSED] 36 VFs
[18:43:41] [PASSED] 37 VFs
[18:43:41] [PASSED] 38 VFs
[18:43:41] [PASSED] 39 VFs
[18:43:41] [PASSED] 40 VFs
[18:43:41] [PASSED] 41 VFs
[18:43:41] [PASSED] 42 VFs
[18:43:41] [PASSED] 43 VFs
[18:43:41] [PASSED] 44 VFs
[18:43:41] [PASSED] 45 VFs
[18:43:41] [PASSED] 46 VFs
[18:43:41] [PASSED] 47 VFs
[18:43:41] [PASSED] 48 VFs
[18:43:41] [PASSED] 49 VFs
[18:43:41] [PASSED] 50 VFs
[18:43:41] [PASSED] 51 VFs
[18:43:41] [PASSED] 52 VFs
[18:43:41] [PASSED] 53 VFs
[18:43:41] [PASSED] 54 VFs
[18:43:41] [PASSED] 55 VFs
[18:43:41] [PASSED] 56 VFs
[18:43:41] [PASSED] 57 VFs
[18:43:41] [PASSED] 58 VFs
[18:43:41] [PASSED] 59 VFs
[18:43:41] [PASSED] 60 VFs
[18:43:41] [PASSED] 61 VFs
[18:43:41] [PASSED] 62 VFs
[18:43:41] [PASSED] 63 VFs
[18:43:41] ================== [PASSED] fair_contexts ==================
[18:43:41] ===================== fair_doorbells  ======================
[18:43:41] [PASSED] 1 VF
[18:43:41] [PASSED] 2 VFs
[18:43:41] [PASSED] 3 VFs
[18:43:41] [PASSED] 4 VFs
[18:43:41] [PASSED] 5 VFs
[18:43:41] [PASSED] 6 VFs
[18:43:41] [PASSED] 7 VFs
[18:43:41] [PASSED] 8 VFs
[18:43:41] [PASSED] 9 VFs
[18:43:41] [PASSED] 10 VFs
[18:43:41] [PASSED] 11 VFs
[18:43:41] [PASSED] 12 VFs
[18:43:41] [PASSED] 13 VFs
[18:43:41] [PASSED] 14 VFs
[18:43:41] [PASSED] 15 VFs
[18:43:41] [PASSED] 16 VFs
[18:43:41] [PASSED] 17 VFs
[18:43:41] [PASSED] 18 VFs
[18:43:41] [PASSED] 19 VFs
[18:43:41] [PASSED] 20 VFs
[18:43:41] [PASSED] 21 VFs
[18:43:41] [PASSED] 22 VFs
[18:43:41] [PASSED] 23 VFs
[18:43:41] [PASSED] 24 VFs
[18:43:41] [PASSED] 25 VFs
[18:43:41] [PASSED] 26 VFs
[18:43:41] [PASSED] 27 VFs
[18:43:41] [PASSED] 28 VFs
[18:43:41] [PASSED] 29 VFs
[18:43:41] [PASSED] 30 VFs
[18:43:41] [PASSED] 31 VFs
[18:43:41] [PASSED] 32 VFs
[18:43:41] [PASSED] 33 VFs
[18:43:41] [PASSED] 34 VFs
[18:43:41] [PASSED] 35 VFs
[18:43:41] [PASSED] 36 VFs
[18:43:41] [PASSED] 37 VFs
[18:43:41] [PASSED] 38 VFs
[18:43:41] [PASSED] 39 VFs
[18:43:41] [PASSED] 40 VFs
[18:43:41] [PASSED] 41 VFs
[18:43:41] [PASSED] 42 VFs
[18:43:41] [PASSED] 43 VFs
[18:43:41] [PASSED] 44 VFs
[18:43:41] [PASSED] 45 VFs
[18:43:41] [PASSED] 46 VFs
[18:43:41] [PASSED] 47 VFs
[18:43:41] [PASSED] 48 VFs
[18:43:41] [PASSED] 49 VFs
[18:43:41] [PASSED] 50 VFs
[18:43:41] [PASSED] 51 VFs
[18:43:41] [PASSED] 52 VFs
[18:43:41] [PASSED] 53 VFs
[18:43:41] [PASSED] 54 VFs
[18:43:41] [PASSED] 55 VFs
[18:43:41] [PASSED] 56 VFs
[18:43:41] [PASSED] 57 VFs
[18:43:41] [PASSED] 58 VFs
[18:43:41] [PASSED] 59 VFs
[18:43:41] [PASSED] 60 VFs
[18:43:41] [PASSED] 61 VFs
[18:43:41] [PASSED] 62 VFs
[18:43:41] [PASSED] 63 VFs
[18:43:41] ================= [PASSED] fair_doorbells ==================
[18:43:41] ======================== fair_ggtt  ========================
[18:43:41] [PASSED] 1 VF
[18:43:41] [PASSED] 2 VFs
[18:43:41] [PASSED] 3 VFs
[18:43:41] [PASSED] 4 VFs
[18:43:41] [PASSED] 5 VFs
[18:43:41] [PASSED] 6 VFs
[18:43:41] [PASSED] 7 VFs
[18:43:41] [PASSED] 8 VFs
[18:43:41] [PASSED] 9 VFs
[18:43:41] [PASSED] 10 VFs
[18:43:41] [PASSED] 11 VFs
[18:43:41] [PASSED] 12 VFs
[18:43:41] [PASSED] 13 VFs
[18:43:41] [PASSED] 14 VFs
[18:43:41] [PASSED] 15 VFs
[18:43:41] [PASSED] 16 VFs
[18:43:41] [PASSED] 17 VFs
[18:43:41] [PASSED] 18 VFs
[18:43:41] [PASSED] 19 VFs
[18:43:41] [PASSED] 20 VFs
[18:43:41] [PASSED] 21 VFs
[18:43:41] [PASSED] 22 VFs
[18:43:41] [PASSED] 23 VFs
[18:43:41] [PASSED] 24 VFs
[18:43:41] [PASSED] 25 VFs
[18:43:41] [PASSED] 26 VFs
[18:43:41] [PASSED] 27 VFs
[18:43:41] [PASSED] 28 VFs
[18:43:41] [PASSED] 29 VFs
[18:43:41] [PASSED] 30 VFs
[18:43:41] [PASSED] 31 VFs
[18:43:41] [PASSED] 32 VFs
[18:43:41] [PASSED] 33 VFs
[18:43:41] [PASSED] 34 VFs
[18:43:41] [PASSED] 35 VFs
[18:43:41] [PASSED] 36 VFs
[18:43:41] [PASSED] 37 VFs
[18:43:41] [PASSED] 38 VFs
[18:43:41] [PASSED] 39 VFs
[18:43:41] [PASSED] 40 VFs
[18:43:41] [PASSED] 41 VFs
[18:43:41] [PASSED] 42 VFs
[18:43:41] [PASSED] 43 VFs
[18:43:41] [PASSED] 44 VFs
[18:43:41] [PASSED] 45 VFs
[18:43:41] [PASSED] 46 VFs
[18:43:41] [PASSED] 47 VFs
[18:43:41] [PASSED] 48 VFs
[18:43:41] [PASSED] 49 VFs
[18:43:41] [PASSED] 50 VFs
[18:43:41] [PASSED] 51 VFs
[18:43:41] [PASSED] 52 VFs
[18:43:41] [PASSED] 53 VFs
[18:43:41] [PASSED] 54 VFs
[18:43:41] [PASSED] 55 VFs
[18:43:41] [PASSED] 56 VFs
[18:43:41] [PASSED] 57 VFs
[18:43:41] [PASSED] 58 VFs
[18:43:41] [PASSED] 59 VFs
[18:43:41] [PASSED] 60 VFs
[18:43:41] [PASSED] 61 VFs
[18:43:41] [PASSED] 62 VFs
[18:43:41] [PASSED] 63 VFs
[18:43:41] ==================== [PASSED] fair_ggtt ====================
[18:43:41] ======================== fair_vram  ========================
[18:43:41] [PASSED] 1 VF
[18:43:41] [PASSED] 2 VFs
[18:43:41] [PASSED] 3 VFs
[18:43:41] [PASSED] 4 VFs
[18:43:41] [PASSED] 5 VFs
[18:43:41] [PASSED] 6 VFs
[18:43:41] [PASSED] 7 VFs
[18:43:41] [PASSED] 8 VFs
[18:43:41] [PASSED] 9 VFs
[18:43:41] [PASSED] 10 VFs
[18:43:41] [PASSED] 11 VFs
[18:43:41] [PASSED] 12 VFs
[18:43:41] [PASSED] 13 VFs
[18:43:41] [PASSED] 14 VFs
[18:43:41] [PASSED] 15 VFs
[18:43:41] [PASSED] 16 VFs
[18:43:41] [PASSED] 17 VFs
[18:43:41] [PASSED] 18 VFs
[18:43:41] [PASSED] 19 VFs
[18:43:41] [PASSED] 20 VFs
[18:43:41] [PASSED] 21 VFs
[18:43:41] [PASSED] 22 VFs
[18:43:41] [PASSED] 23 VFs
[18:43:41] [PASSED] 24 VFs
[18:43:41] [PASSED] 25 VFs
[18:43:41] [PASSED] 26 VFs
[18:43:41] [PASSED] 27 VFs
[18:43:41] [PASSED] 28 VFs
[18:43:41] [PASSED] 29 VFs
[18:43:41] [PASSED] 30 VFs
[18:43:41] [PASSED] 31 VFs
[18:43:41] [PASSED] 32 VFs
[18:43:41] [PASSED] 33 VFs
[18:43:41] [PASSED] 34 VFs
[18:43:41] [PASSED] 35 VFs
[18:43:41] [PASSED] 36 VFs
[18:43:41] [PASSED] 37 VFs
[18:43:41] [PASSED] 38 VFs
[18:43:41] [PASSED] 39 VFs
[18:43:41] [PASSED] 40 VFs
[18:43:41] [PASSED] 41 VFs
[18:43:41] [PASSED] 42 VFs
[18:43:41] [PASSED] 43 VFs
[18:43:41] [PASSED] 44 VFs
[18:43:41] [PASSED] 45 VFs
[18:43:41] [PASSED] 46 VFs
[18:43:41] [PASSED] 47 VFs
[18:43:41] [PASSED] 48 VFs
[18:43:41] [PASSED] 49 VFs
[18:43:41] [PASSED] 50 VFs
[18:43:41] [PASSED] 51 VFs
[18:43:41] [PASSED] 52 VFs
[18:43:41] [PASSED] 53 VFs
[18:43:41] [PASSED] 54 VFs
[18:43:41] [PASSED] 55 VFs
[18:43:41] [PASSED] 56 VFs
[18:43:41] [PASSED] 57 VFs
[18:43:41] [PASSED] 58 VFs
[18:43:41] [PASSED] 59 VFs
[18:43:41] [PASSED] 60 VFs
[18:43:41] [PASSED] 61 VFs
[18:43:41] [PASSED] 62 VFs
[18:43:41] [PASSED] 63 VFs
[18:43:41] ==================== [PASSED] fair_vram ====================
[18:43:41] ================== [PASSED] pf_gt_config ===================
[18:43:41] ===================== lmtt (1 subtest) =====================
[18:43:41] ======================== test_ops  =========================
[18:43:41] [PASSED] 2-level
[18:43:41] [PASSED] multi-level
[18:43:41] ==================== [PASSED] test_ops =====================
[18:43:41] ====================== [PASSED] lmtt =======================
[18:43:41] ================= sriov_packet (1 subtest) =================
[18:43:42] [PASSED] test_descriptor_init
[18:43:42] ================== [PASSED] sriov_packet ===================
[18:43:42] ================= pf_service (11 subtests) =================
[18:43:42] [PASSED] pf_negotiate_any
[18:43:42] [PASSED] pf_negotiate_base_match
[18:43:42] [PASSED] pf_negotiate_base_newer
[18:43:42] [PASSED] pf_negotiate_base_next
[18:43:42] [SKIPPED] pf_negotiate_base_older (no older minor)
[18:43:42] [PASSED] pf_negotiate_base_prev
[18:43:42] [PASSED] pf_negotiate_latest_match
[18:43:42] [PASSED] pf_negotiate_latest_newer
[18:43:42] [PASSED] pf_negotiate_latest_next
[18:43:42] [SKIPPED] pf_negotiate_latest_older (no older minor)
[18:43:42] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[18:43:42] =================== [PASSED] pf_service ====================
[18:43:42] ================= xe_guc_g2g (2 subtests) ==================
[18:43:42] ============== xe_live_guc_g2g_kunit_default  ==============
[18:43:42] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[18:43:42] ============== xe_live_guc_g2g_kunit_allmem  ===============
[18:43:42] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[18:43:42] =================== [SKIPPED] xe_guc_g2g ===================
[18:43:42] =================== xe_mocs (2 subtests) ===================
[18:43:42] ================ xe_live_mocs_kernel_kunit  ================
[18:43:42] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[18:43:42] ================ xe_live_mocs_reset_kunit  =================
[18:43:42] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[18:43:42] ==================== [SKIPPED] xe_mocs =====================
[18:43:42] ================= xe_migrate (3 subtests) ==================
[18:43:42] ================= xe_migrate_sanity_kunit  =================
[18:43:42] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[18:43:42] ================== xe_validate_ccs_kunit  ==================
[18:43:42] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[18:43:42] ============= xe_migrate_access_memory_kunit  ==============
[18:43:42] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[18:43:42] =================== [SKIPPED] xe_migrate ===================
[18:43:42] ================== xe_dma_buf (1 subtest) ==================
[18:43:42] ==================== xe_dma_buf_kunit  =====================
[18:43:42] ================ [SKIPPED] xe_dma_buf_kunit ================
[18:43:42] =================== [SKIPPED] xe_dma_buf ===================
[18:43:42] ================= xe_bo_shrink (1 subtest) =================
[18:43:42] =================== xe_bo_shrink_kunit  ====================
[18:43:42] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[18:43:42] ================== [SKIPPED] xe_bo_shrink ==================
[18:43:42] ==================== xe_bo (2 subtests) ====================
[18:43:42] ================== xe_ccs_migrate_kunit  ===================
[18:43:42] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[18:43:42] ==================== xe_bo_evict_kunit  ====================
[18:43:42] =============== [SKIPPED] xe_bo_evict_kunit ================
[18:43:42] ===================== [SKIPPED] xe_bo ======================
[18:43:42] =================== xe_any (9 subtests) ====================
[18:43:42] [PASSED] test_to_xe
[18:43:42] [PASSED] test_to_dev
[18:43:42] [PASSED] test_to_pdev
[18:43:42] [PASSED] test_to_drm
[18:43:42] [PASSED] test_if_pdev
[18:43:42] [PASSED] test_if_xe
[18:43:42] [PASSED] test_if_tile
[18:43:42] [PASSED] test_if_gt
[18:43:42] [PASSED] test_to_id
[18:43:42] ===================== [PASSED] xe_any ======================
[18:43:42] ==================== args (13 subtests) ====================
[18:43:42] [PASSED] count_args_test
[18:43:42] [PASSED] call_args_example
[18:43:42] [PASSED] call_args_test
[18:43:42] [PASSED] drop_first_arg_example
[18:43:42] [PASSED] drop_first_arg_test
[18:43:42] [PASSED] first_arg_example
[18:43:42] [PASSED] first_arg_test
[18:43:42] [PASSED] last_arg_example
[18:43:42] [PASSED] last_arg_test
[18:43:42] [PASSED] pick_arg_example
[18:43:42] [PASSED] if_args_example
[18:43:42] [PASSED] if_args_test
[18:43:42] [PASSED] sep_comma_example
[18:43:42] ====================== [PASSED] args =======================
[18:43:42] =================== xe_pci (3 subtests) ====================
[18:43:42] ==================== check_graphics_ip  ====================
[18:43:42] [PASSED] 12.00 Xe_LP
[18:43:42] [PASSED] 12.10 Xe_LP+
[18:43:42] [PASSED] 12.55 Xe_HPG
[18:43:42] [PASSED] 12.60 Xe_HPC
[18:43:42] [PASSED] 12.70 Xe_LPG
[18:43:42] [PASSED] 12.71 Xe_LPG
[18:43:42] [PASSED] 12.74 Xe_LPG+
[18:43:42] [PASSED] 20.01 Xe2_HPG
[18:43:42] [PASSED] 20.02 Xe2_HPG
[18:43:42] [PASSED] 20.04 Xe2_LPG
[18:43:42] [PASSED] 30.00 Xe3_LPG
[18:43:42] [PASSED] 30.01 Xe3_LPG
[18:43:42] [PASSED] 30.03 Xe3_LPG
[18:43:42] [PASSED] 30.04 Xe3_LPG
[18:43:42] [PASSED] 30.05 Xe3_LPG
[18:43:42] [PASSED] 35.10 Xe3p_LPG
[18:43:42] [PASSED] 35.11 Xe3p_XPC
[18:43:42] ================ [PASSED] check_graphics_ip ================
[18:43:42] ===================== check_media_ip  ======================
[18:43:42] [PASSED] 12.00 Xe_M
[18:43:42] [PASSED] 12.55 Xe_HPM
[18:43:42] [PASSED] 13.00 Xe_LPM+
[18:43:42] [PASSED] 13.01 Xe2_HPM
[18:43:42] [PASSED] 20.00 Xe2_LPM
[18:43:42] [PASSED] 30.00 Xe3_LPM
[18:43:42] [PASSED] 30.02 Xe3_LPM
[18:43:42] [PASSED] 35.00 Xe3p_LPM
[18:43:42] [PASSED] 35.03 Xe3p_HPM
[18:43:42] ================= [PASSED] check_media_ip ==================
[18:43:42] =================== check_platform_desc  ===================
[18:43:42] [PASSED] 0x9A60 (TIGERLAKE)
[18:43:42] [PASSED] 0x9A68 (TIGERLAKE)
[18:43:42] [PASSED] 0x9A70 (TIGERLAKE)
[18:43:42] [PASSED] 0x9A40 (TIGERLAKE)
[18:43:42] [PASSED] 0x9A49 (TIGERLAKE)
[18:43:42] [PASSED] 0x9A59 (TIGERLAKE)
[18:43:42] [PASSED] 0x9A78 (TIGERLAKE)
[18:43:42] [PASSED] 0x9AC0 (TIGERLAKE)
[18:43:42] [PASSED] 0x9AC9 (TIGERLAKE)
[18:43:42] [PASSED] 0x9AD9 (TIGERLAKE)
[18:43:42] [PASSED] 0x9AF8 (TIGERLAKE)
[18:43:42] [PASSED] 0x4C80 (ROCKETLAKE)
[18:43:42] [PASSED] 0x4C8A (ROCKETLAKE)
[18:43:42] [PASSED] 0x4C8B (ROCKETLAKE)
[18:43:42] [PASSED] 0x4C8C (ROCKETLAKE)
[18:43:42] [PASSED] 0x4C90 (ROCKETLAKE)
[18:43:42] [PASSED] 0x4C9A (ROCKETLAKE)
[18:43:42] [PASSED] 0x4680 (ALDERLAKE_S)
[18:43:42] [PASSED] 0x4682 (ALDERLAKE_S)
[18:43:42] [PASSED] 0x4688 (ALDERLAKE_S)
[18:43:42] [PASSED] 0x468A (ALDERLAKE_S)
[18:43:42] [PASSED] 0x468B (ALDERLAKE_S)
[18:43:42] [PASSED] 0x4690 (ALDERLAKE_S)
[18:43:42] [PASSED] 0x4692 (ALDERLAKE_S)
[18:43:42] [PASSED] 0x4693 (ALDERLAKE_S)
[18:43:42] [PASSED] 0x46A0 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46A1 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46A2 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46A3 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46A6 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46A8 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46AA (ALDERLAKE_P)
[18:43:42] [PASSED] 0x462A (ALDERLAKE_P)
[18:43:42] [PASSED] 0x4626 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x4628 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46B0 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46B1 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46B2 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46B3 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46C0 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46C1 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46C2 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46C3 (ALDERLAKE_P)
[18:43:42] [PASSED] 0x46D0 (ALDERLAKE_N)
[18:43:42] [PASSED] 0x46D1 (ALDERLAKE_N)
[18:43:42] [PASSED] 0x46D2 (ALDERLAKE_N)
[18:43:42] [PASSED] 0x46D3 (ALDERLAKE_N)
[18:43:42] [PASSED] 0x46D4 (ALDERLAKE_N)
[18:43:42] [PASSED] 0xA721 (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7A1 (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7A9 (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7AC (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7AD (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA720 (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7A0 (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7A8 (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7AA (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA7AB (ALDERLAKE_P)
[18:43:42] [PASSED] 0xA780 (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA781 (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA782 (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA783 (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA788 (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA789 (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA78A (ALDERLAKE_S)
[18:43:42] [PASSED] 0xA78B (ALDERLAKE_S)
[18:43:42] [PASSED] 0x4905 (DG1)
[18:43:42] [PASSED] 0x4906 (DG1)
[18:43:42] [PASSED] 0x4907 (DG1)
[18:43:42] [PASSED] 0x4908 (DG1)
[18:43:42] [PASSED] 0x4909 (DG1)
[18:43:42] [PASSED] 0x56C0 (DG2)
[18:43:42] [PASSED] 0x56C2 (DG2)
[18:43:42] [PASSED] 0x56C1 (DG2)
[18:43:42] [PASSED] 0x7D51 (METEORLAKE)
[18:43:42] [PASSED] 0x7DD1 (METEORLAKE)
[18:43:42] [PASSED] 0x7D41 (METEORLAKE)
[18:43:42] [PASSED] 0x7D67 (METEORLAKE)
[18:43:42] [PASSED] 0xB640 (METEORLAKE)
[18:43:42] [PASSED] 0x56A0 (DG2)
[18:43:42] [PASSED] 0x56A1 (DG2)
[18:43:42] [PASSED] 0x56A2 (DG2)
[18:43:42] [PASSED] 0x56BE (DG2)
[18:43:42] [PASSED] 0x56BF (DG2)
[18:43:42] [PASSED] 0x5690 (DG2)
[18:43:42] [PASSED] 0x5691 (DG2)
[18:43:42] [PASSED] 0x5692 (DG2)
[18:43:42] [PASSED] 0x56A5 (DG2)
[18:43:42] [PASSED] 0x56A6 (DG2)
[18:43:42] [PASSED] 0x56B0 (DG2)
[18:43:42] [PASSED] 0x56B1 (DG2)
[18:43:42] [PASSED] 0x56BA (DG2)
[18:43:42] [PASSED] 0x56BB (DG2)
[18:43:42] [PASSED] 0x56BC (DG2)
[18:43:42] [PASSED] 0x56BD (DG2)
[18:43:42] [PASSED] 0x5693 (DG2)
[18:43:42] [PASSED] 0x5694 (DG2)
[18:43:42] [PASSED] 0x5695 (DG2)
[18:43:42] [PASSED] 0x56A3 (DG2)
[18:43:42] [PASSED] 0x56A4 (DG2)
[18:43:42] [PASSED] 0x56B2 (DG2)
[18:43:42] [PASSED] 0x56B3 (DG2)
[18:43:42] [PASSED] 0x5696 (DG2)
[18:43:42] [PASSED] 0x5697 (DG2)
[18:43:42] [PASSED] 0xB69 (PVC)
[18:43:42] [PASSED] 0xB6E (PVC)
[18:43:42] [PASSED] 0xBD4 (PVC)
[18:43:42] [PASSED] 0xBD5 (PVC)
[18:43:42] [PASSED] 0xBD6 (PVC)
[18:43:42] [PASSED] 0xBD7 (PVC)
[18:43:42] [PASSED] 0xBD8 (PVC)
[18:43:42] [PASSED] 0xBD9 (PVC)
[18:43:42] [PASSED] 0xBDA (PVC)
[18:43:42] [PASSED] 0xBDB (PVC)
[18:43:42] [PASSED] 0xBE0 (PVC)
[18:43:42] [PASSED] 0xBE1 (PVC)
[18:43:42] [PASSED] 0xBE5 (PVC)
[18:43:42] [PASSED] 0x7D40 (METEORLAKE)
[18:43:42] [PASSED] 0x7D45 (METEORLAKE)
[18:43:42] [PASSED] 0x7D55 (METEORLAKE)
[18:43:42] [PASSED] 0x7D60 (METEORLAKE)
[18:43:42] [PASSED] 0x7DD5 (METEORLAKE)
[18:43:42] [PASSED] 0x6420 (LUNARLAKE)
[18:43:42] [PASSED] 0x64A0 (LUNARLAKE)
[18:43:42] [PASSED] 0x64B0 (LUNARLAKE)
[18:43:42] [PASSED] 0xE202 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE209 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE20B (BATTLEMAGE)
[18:43:42] [PASSED] 0xE20C (BATTLEMAGE)
[18:43:42] [PASSED] 0xE20D (BATTLEMAGE)
[18:43:42] [PASSED] 0xE210 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE211 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE212 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE216 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE220 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE221 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE222 (BATTLEMAGE)
[18:43:42] [PASSED] 0xE223 (BATTLEMAGE)
[18:43:42] [PASSED] 0xB080 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB081 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB082 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB083 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB084 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB085 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB086 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB087 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB08F (PANTHERLAKE)
[18:43:42] [PASSED] 0xB090 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB0A0 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB0A1 (PANTHERLAKE)
[18:43:42] [PASSED] 0xB0B0 (PANTHERLAKE)
[18:43:42] [PASSED] 0xFD80 (PANTHERLAKE)
[18:43:42] [PASSED] 0xFD81 (PANTHERLAKE)
[18:43:42] [PASSED] 0xD740 (NOVALAKE_S)
[18:43:42] [PASSED] 0xD741 (NOVALAKE_S)
[18:43:42] [PASSED] 0xD742 (NOVALAKE_S)
[18:43:42] [PASSED] 0xD743 (NOVALAKE_S)
[18:43:42] [PASSED] 0xD745 (NOVALAKE_S)
[18:43:42] [PASSED] 0xD74A (NOVALAKE_S)
[18:43:42] [PASSED] 0xD74B (NOVALAKE_S)
[18:43:42] [PASSED] 0x674C (CRESCENTISLAND)
[18:43:42] [PASSED] 0x674D (CRESCENTISLAND)
[18:43:42] [PASSED] 0x674E (CRESCENTISLAND)
[18:43:42] [PASSED] 0x674F (CRESCENTISLAND)
[18:43:42] [PASSED] 0x6750 (CRESCENTISLAND)
[18:43:42] [PASSED] 0x6751 (CRESCENTISLAND)
[18:43:42] [PASSED] 0x6752 (CRESCENTISLAND)
[18:43:42] [PASSED] 0xD750 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD751 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD752 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD753 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD754 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD755 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD756 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD757 (NOVALAKE_P)
[18:43:42] [PASSED] 0xD75F (NOVALAKE_P)
[18:43:42] =============== [PASSED] check_platform_desc ===============
[18:43:42] ===================== [PASSED] xe_pci ======================
[18:43:42] ============= xe_rtp_tables_test (5 subtests) ==============
[18:43:42] ================== xe_rtp_table_gt_test  ===================
[18:43:42] [PASSED] gt_was/14011060649
[18:43:42] [PASSED] gt_was/14011059788
[18:43:42] [PASSED] gt_was/14015795083
[18:43:42] [PASSED] gt_was/16021867713
[18:43:42] [PASSED] gt_was/14019449301
[18:43:42] [PASSED] gt_was/16028005424
[18:43:42] [PASSED] gt_was/14026578760
[18:43:42] [PASSED] gt_was/1409420604
[18:43:42] [PASSED] gt_was/1408615072
[18:43:42] [PASSED] gt_was/22010523718
[18:43:42] [PASSED] gt_was/14011006942
[18:43:42] [PASSED] gt_was/14014830051
[18:43:42] [PASSED] gt_was/18018781329
[18:43:42] [PASSED] gt_was/1509235366
[18:43:42] [PASSED] gt_was/18018781329
[18:43:42] [PASSED] gt_was/16016694945
[18:43:42] [PASSED] gt_was/14018575942
[18:43:42] [PASSED] gt_was/22016670082
[18:43:42] [PASSED] gt_was/22016670082
[18:43:42] [PASSED] gt_was/14017421178
[18:43:42] [PASSED] gt_was/16025250150
[18:43:42] [PASSED] gt_was/14021871409
[18:43:42] [PASSED] gt_was/16021865536
[18:43:42] [PASSED] gt_was/14021486841
[18:43:42] [PASSED] gt_was/14025160223
[18:43:42] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[18:43:42] [PASSED] gt_was/14025635424
[18:43:42] [PASSED] gt_was/16028005424
[18:43:42] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:43:42] ================== xe_rtp_table_gt_test  ===================
[18:43:42] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[18:43:42] [PASSED] gt_tunings/Tuning: 32B Access Enable
[18:43:42] [PASSED] gt_tunings/Tuning: L3 cache
[18:43:42] [PASSED] gt_tunings/Tuning: L3 cache - media
[18:43:42] [PASSED] gt_tunings/Tuning: Compression Overfetch
[18:43:42] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[18:43:42] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[18:43:42] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[18:43:42] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[18:43:42] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[18:43:42] [PASSED] gt_tunings/Tuning: Stateless compression control
[18:43:42] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[18:43:42] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[18:43:42] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[18:43:42] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[18:43:42] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[18:43:42] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:43:42] ================== xe_rtp_table_oob_test  ==================
[18:43:42] [PASSED] oob_was/1607983814
[18:43:42] [PASSED] oob_was/16010904313
[18:43:42] [PASSED] oob_was/18022495364
[18:43:42] [PASSED] oob_was/22012773006
[18:43:42] [PASSED] oob_was/14014475959
[18:43:42] [PASSED] oob_was/22011391025
[18:43:42] [PASSED] oob_was/22012727170
[18:43:42] [PASSED] oob_was/22012727685
[18:43:42] [PASSED] oob_was/22016596838
[18:43:42] [PASSED] oob_was/18020744125
[18:43:42] [PASSED] oob_was/1409600907
[18:43:42] [PASSED] oob_was/22014953428
[18:43:42] [PASSED] oob_was/16017236439
[18:43:42] [PASSED] oob_was/14019821291
[18:43:42] [PASSED] oob_was/14015076503
[18:43:42] [PASSED] oob_was/22016122933
[18:43:42] [PASSED] oob_was/14018913170
[18:43:42] [PASSED] oob_was/14018094691
[18:43:42] [PASSED] oob_was/18024947630
[18:43:42] [PASSED] oob_was/16022287689
[18:43:42] [PASSED] oob_was/13011645652
[18:43:42] [PASSED] oob_was/14022293748
[18:43:42] [PASSED] oob_was/22019794406
[18:43:42] [PASSED] oob_was/22019338487
[18:43:42] [PASSED] oob_was/16023588340
[18:43:42] [PASSED] oob_was/14019789679
[18:43:42] [PASSED] oob_was/14022866841
[18:43:42] [PASSED] oob_was/16021333562
[18:43:42] [PASSED] oob_was/14016712196
[18:43:42] [PASSED] oob_was/14015568240
[18:43:42] [PASSED] oob_was/18013179988
[18:43:42] [PASSED] oob_was/1508761755
[18:43:42] [PASSED] oob_was/16023105232
[18:43:42] [PASSED] oob_was/16026508708
[18:43:42] [PASSED] oob_was/14020001231
[18:43:42] [PASSED] oob_was/16023683509
[18:43:42] [PASSED] oob_was/14025515070
[18:43:42] [PASSED] oob_was/15015404425_disable
[18:43:42] [PASSED] oob_was/16026007364
[18:43:42] [PASSED] oob_was/14020316580
[18:43:42] [PASSED] oob_was/14025883347
[18:43:42] [PASSED] oob_was/16029380221
[18:43:42] [PASSED] oob_was/22022079272
[18:43:42] [PASSED] oob_was/16029897822
[18:43:42] [PASSED] oob_was/14026539277
[18:43:42] [PASSED] oob_was/14027054324
[18:43:42] [PASSED] oob_was/14025941587
[18:43:42] [PASSED] oob_was/16030224309
[18:43:42] [PASSED] oob_was/14028709524
[18:43:42] [PASSED] oob_was/14028250015
[18:43:42] [PASSED] oob_was/16031259911
[18:43:42] ============== [PASSED] xe_rtp_table_oob_test ==============
[18:43:42] ================ xe_rtp_table_dev_oob_test  ================
[18:43:42] [PASSED] device_oob_was/22010954014
[18:43:42] [PASSED] device_oob_was/15015404425
[18:43:42] [PASSED] device_oob_was/22019338487_display
[18:43:42] [PASSED] device_oob_was/14022085890
[18:43:42] [PASSED] device_oob_was/14026633728
[18:43:42] [PASSED] device_oob_was/14026746987
[18:43:42] [PASSED] device_oob_was/14026779378
[18:43:42] [PASSED] device_oob_was/14028586678
[18:43:42] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[18:43:42] ========== xe_rtp_table_missing_upper_bound_test  ==========
[18:43:42] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[18:43:42] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[18:43:42] [PASSED] register_whitelist/1806527549
[18:43:42] [PASSED] register_whitelist/allow_read_ctx_timestamp
[18:43:42] [PASSED] register_whitelist/allow_read_queue_timestamp
[18:43:42] [PASSED] register_whitelist/16014440446
[18:43:42] [PASSED] register_whitelist/16017236439
[18:43:42] [PASSED] register_whitelist/16020183090
[18:43:42] [PASSED] register_whitelist/14024997852
[18:43:42] [PASSED] register_whitelist/14024997852
[18:43:42] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[18:43:42] =============== [PASSED] xe_rtp_tables_test ================
[18:43:42] =================== xe_rtp (3 subtests) ====================
[18:43:42] =================== xe_rtp_rules_tests  ====================
[18:43:42] [PASSED] no
[18:43:42] [PASSED] yes
[18:43:42] [PASSED] no-and-no
[18:43:42] [PASSED] no-and-yes
[18:43:42] [PASSED] yes-and-no
[18:43:42] [PASSED] yes-and-yes
[18:43:42] [PASSED] no-or-no
[18:43:42] [PASSED] no-or-yes
[18:43:42] [PASSED] yes-or-no
[18:43:42] [PASSED] yes-or-yes
[18:43:42] [PASSED] no-yes-or-yes-no
[18:43:42] [PASSED] no-yes-or-yes-yes
[18:43:42] [PASSED] yes-yes-or-no-yes
[18:43:42] [PASSED] yes-yes-or-yes-yes
[18:43:42] [PASSED] no-no-or-yes-or-no
[18:43:42] [PASSED] or
[18:43:42] [PASSED] or-yes
[18:43:42] [PASSED] or-no
[18:43:42] [PASSED] yes-or
[18:43:42] [PASSED] no-or
[18:43:42] [PASSED] no-or-or-yes
[18:43:42] [PASSED] yes-or-or-no
[18:43:42] [PASSED] no-or-or-no
[18:43:42] [PASSED] missing-context-engine-class
[18:43:42] [PASSED] missing-context-engine-class-or-yes
[18:43:42] [PASSED] missing-context-engine-class-or-or-yes
[18:43:42] =============== [PASSED] xe_rtp_rules_tests ================
[18:43:42] =============== xe_rtp_process_to_sr_tests  ================
[18:43:42] [PASSED] coalesce-same-reg
[18:43:42] [PASSED] coalesce-same-reg-literal-and-func
[18:43:42] [PASSED] no-match-no-add
[18:43:42] [PASSED] two-regs-two-entries
[18:43:42] [PASSED] clr-one-set-other
[18:43:42] [PASSED] set-field
[18:43:42] [PASSED] conflict-duplicate
[18:43:42] [PASSED] conflict-not-disjoint
[18:43:42] [PASSED] conflict-not-disjoint-literal-and-func
[18:43:42] [PASSED] conflict-reg-type
[18:43:42] [PASSED] bad-mcr-reg-forced-to-regular
[18:43:42] [PASSED] bad-regular-reg-forced-to-mcr
[18:43:42] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[18:43:42] ================== xe_rtp_process_tests  ===================
[18:43:42] [PASSED] active1
[18:43:42] [PASSED] active2
[18:43:42] [PASSED] active-inactive
[18:43:42] [PASSED] inactive-active
[18:43:42] [PASSED] inactive-active-inactive
[18:43:42] [PASSED] inactive-inactive-inactive
[18:43:42] ============== [PASSED] xe_rtp_process_tests ===============
[18:43:42] ===================== [PASSED] xe_rtp ======================
[18:43:42] ==================== xe_wa (1 subtest) =====================
[18:43:42] ======================== xe_wa_gt  =========================
[18:43:42] [PASSED] TIGERLAKE B0
[18:43:42] [PASSED] DG1 A0
[18:43:42] [PASSED] DG1 B0
[18:43:42] [PASSED] ALDERLAKE_S A0
[18:43:42] [PASSED] ALDERLAKE_S B0
[18:43:42] [PASSED] ALDERLAKE_S C0
[18:43:42] [PASSED] ALDERLAKE_S D0
[18:43:42] [PASSED] ALDERLAKE_P A0
[18:43:42] [PASSED] ALDERLAKE_P B0
[18:43:42] [PASSED] ALDERLAKE_P C0
[18:43:42] [PASSED] ALDERLAKE_S RPLS D0
[18:43:42] [PASSED] ALDERLAKE_P RPLU E0
[18:43:42] [PASSED] DG2 G10 C0
[18:43:42] [PASSED] DG2 G11 B1
[18:43:42] [PASSED] DG2 G12 A1
[18:43:42] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:43:42] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:43:42] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[18:43:42] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[18:43:42] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[18:43:42] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[18:43:42] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[18:43:42] ==================== [PASSED] xe_wa_gt =====================
[18:43:42] ====================== [PASSED] xe_wa ======================
[18:43:42] ============================================================
[18:43:42] Testing complete. Ran 843 tests: passed: 814, skipped: 29
[18:43:42] Elapsed time: 41.723s total, 2.521s configuring, 38.436s building, 0.719s running

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

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

+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[18:44:23] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:44:25] 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
[18:44:34] Starting KUnit Kernel (1/1)...
[18:44:34] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:44:34] =============== dma-buf-fence (12 subtests) ================
[18:44:34] [PASSED] test_sanitycheck
[18:44:34] [PASSED] test_signaling
[18:44:34] [PASSED] test_add_callback
[18:44:34] [PASSED] test_late_add_callback
[18:44:34] [PASSED] test_rm_callback
[18:44:34] [PASSED] test_late_rm_callback
[18:44:34] [PASSED] test_status
[18:44:34] [PASSED] test_error
[18:44:34] [PASSED] test_wait
[18:44:34] [PASSED] test_wait_timeout
[18:44:34] [PASSED] test_stub
[18:44:34] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[18:44:34] ================== [PASSED] dma-buf-fence ==================
[18:44:34] ============ dma-buf-fence-chain (11 subtests) =============
[18:44:34] [PASSED] test_sanitycheck
[18:44:34] [PASSED] test_find_seqno
[18:44:34] [PASSED] test_find_signaled
[18:44:34] [PASSED] test_find_out_of_order
[18:44:40] [PASSED] test_find_gap
[18:44:40] [PASSED] test_find_race
[18:44:40] [PASSED] test_signal_forward
[18:44:40] [PASSED] test_signal_backward
[18:44:40] [PASSED] test_wait_forward
[18:44:40] [PASSED] test_wait_backward
[18:44:40] [PASSED] test_wait_random
[18:44:40] =============== [PASSED] dma-buf-fence-chain ===============
[18:44:40] ============ dma-buf-fence-unwrap (11 subtests) ============
[18:44:40] [PASSED] test_sanitycheck
[18:44:40] [PASSED] test_unwrap_array
[18:44:40] [PASSED] test_unwrap_chain
[18:44:40] [PASSED] test_unwrap_chain_array
[18:44:40] [PASSED] test_unwrap_merge
[18:44:40] [PASSED] test_unwrap_merge_duplicate
[18:44:40] [PASSED] test_unwrap_merge_seqno
[18:44:40] [PASSED] test_unwrap_merge_order
[18:44:40] [PASSED] test_unwrap_merge_complex
[18:44:40] [PASSED] test_unwrap_merge_complex_seqno
[18:44:40] [PASSED] test_dedup_empty
[18:44:40] ============== [PASSED] dma-buf-fence-unwrap ===============
[18:44:40] ================ dma-buf-resv (5 subtests) =================
[18:44:40] [PASSED] test_sanitycheck
[18:44:40] ===================== test_signaling  ======================
[18:44:40] [PASSED] kernel
[18:44:40] [PASSED] write
[18:44:40] [PASSED] read
[18:44:40] [PASSED] bookkeep
[18:44:40] ================= [PASSED] test_signaling ==================
[18:44:40] ====================== test_for_each  ======================
[18:44:40] [PASSED] kernel
[18:44:40] [PASSED] write
[18:44:40] [PASSED] read
[18:44:40] [PASSED] bookkeep
[18:44:40] ================== [PASSED] test_for_each ==================
[18:44:40] ================= test_for_each_unlocked  ==================
[18:44:40] [PASSED] kernel
[18:44:40] [PASSED] write
[18:44:40] [PASSED] read
[18:44:40] [PASSED] bookkeep
[18:44:40] ============= [PASSED] test_for_each_unlocked ==============
[18:44:40] ===================== test_get_fences  =====================
[18:44:40] [PASSED] kernel
[18:44:40] [PASSED] write
[18:44:40] [PASSED] read
[18:44:40] [PASSED] bookkeep
[18:44:40] ================= [PASSED] test_get_fences =================
[18:44:40] ================== [PASSED] dma-buf-resv ===================
[18:44:40] ============================================================
[18:44:40] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[18:44:40] Elapsed time: 16.669s total, 2.498s configuring, 8.900s building, 5.259s running

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



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

* Re: [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper
  2026-11-10 18:35 ` [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper Michael J. Ruhl
@ 2026-11-10 18:46   ` sashiko-bot
  0 siblings, 0 replies; 26+ messages in thread
From: sashiko-bot @ 2026-11-10 18:46 UTC (permalink / raw)
  To: Michael J. Ruhl, intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] drm/xe/vsec: missing Fixes trailer for commit 32eab46a6160
--

commit faf5d6652027b4edb9810b0e860293174d8557a8
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>

> drm/xe/vsec: VSEC requires soc-remapper
>
> Survivability mode includes xe_vsec_init().  VSEC requires
> the soc remapper to be initialized.
>
> Add the correct init to allow correct VSEC behavior.
>
> Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>

[Severity: Low]
Since 32eab46a6160 ("drm/xe/soc_remapper: Use SoC remapper helper from
VSEC code") switched xe_pmt_telem_read() to require
xe->soc_remapper.set_telem_region without initializing the SoC remapper in
enable_boot_survivability_mode(), should this include:

  Fixes: 32eab46a6160 ("drm/xe/soc_remapper: Use SoC remapper helper from VSEC code")

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110183505.694124-19-michael.j.ruhl@intel.com?part=1

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

* Re: [PATCH v14 04/17] drm/xe/vsec: Use correct pm state get
  2026-11-10 18:35 ` [PATCH v14 04/17] drm/xe/vsec: Use correct pm state get Michael J. Ruhl
@ 2026-11-10 18:49   ` sashiko-bot
  0 siblings, 0 replies; 26+ messages in thread
From: sashiko-bot @ 2026-11-10 18:49 UTC (permalink / raw)
  To: Michael J. Ruhl, intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] drm/xe/vsec: inaccurate Fixes trailer in commit message
--

commit 59b127daa577716636b93aac167c1f0b67e5c795
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>

> drm/xe/vsec: Use correct pm state get
>
> Crashlog needs to be collected at all times.  The current pm check
> assumes telemetry only.
>
> Update read path to enable device for crashlog instances.
>
> Include check of the WATCHER CAP_TYPE for completeness.
> WATCHER is a possible type and needs to be accounted for, but is not
> supported.
>
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> Fixes: 2c402a801c19 ("platform/x86/intel/pmt: support BMG crashlog")
> Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>

[Severity: Low]
2c402a801c19 ("platform/x86/intel/pmt: support BMG crashlog") only modified
drivers/platform/x86/intel/pmt/crashlog.c, while the unconditional
xe_pm_runtime_get_if_active() check and capability decoding in
xe_pmt_telem_read() were introduced in drivers/gpu/drm/xe/xe_vsec.c by
0c45e76fcc62 ("drm/xe/vsec: Support BMG devices").  Should the Fixes: tag
reference that commit instead:

  Fixes: 0c45e76fcc62 ("drm/xe/vsec: Support BMG devices")

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110183505.694124-19-michael.j.ruhl@intel.com?part=4

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

* Re: [PATCH v14 17/17] drm/xe/vsec: Support survivability mode for CRI
  2026-11-10 18:35 ` [PATCH v14 17/17] drm/xe/vsec: Support survivability mode for CRI Michael J. Ruhl
@ 2026-11-10 18:53   ` sashiko-bot
  0 siblings, 0 replies; 26+ messages in thread
From: sashiko-bot @ 2026-11-10 18:53 UTC (permalink / raw)
  To: Michael J. Ruhl, intel-xe

Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [Low] drm/xe/vsec: use xe_survivability_mode_is_boot_enabled() instead
  of pmt cache
--

commit c58d99d8bdca0b8d22ebde50d5dc7b64549279f1
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>

drm/xe/vsec: Support survivability mode for CRI

This commit adds a VSEC configuration for Crescent Island in survivability
mode that exposes only the PUNIT crashlog PMT capability.

> diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
> index a35a8b6e733e5..5d4548d863761 100644
> --- a/drivers/gpu/drm/xe/xe_device_types.h
> +++ b/drivers/gpu/drm/xe/xe_device_types.h
> @@ -492,6 +492,8 @@ struct xe_device {
>  		u32 retry_count;
>  		/** @pmt.punit_guid_cache: cache of the PUNIT GUID */
>  		u32 punit_guid_cache;
> +		/** @pmt.survivability_mode: cache of survivability mode state */
> +		bool survivability_mode;
>  	} pmt;
>  
>  	/** @soc_remapper: SoC remapper object */
> diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
> index f27bfe8218d78..ffaed9ef43b25 100644
> --- a/drivers/gpu/drm/xe/xe_vsec.c
> +++ b/drivers/gpu/drm/xe/xe_vsec.c

[ ... ]

> @@ -319,7 +339,7 @@ static bool wait_for_fw(struct xe_device *xe)
>  {
>  	int retries = VSEC_LATE_BIND_RETRY;  /* wait up to 20 secs */
>  
> -	if (xe->info.platform != XE_CRESCENTISLAND)
> +	if (xe->info.platform != XE_CRESCENTISLAND || xe->pmt.survivability_mode)
>  		return true;
>  
>  	while (retries--) {
> @@ -538,6 +558,8 @@ static const int vsec_platforms[] = {
>  
>  static enum xe_vsec get_platform_info(struct xe_device *xe)
>  {
> +	struct xe_survivability *survivability = &xe->survivability;
> +
>  	if (xe->info.platform > XE_CRESCENTISLAND)
>  		return XE_VSEC_UNKNOWN;
>  
> @@ -546,6 +568,9 @@ static enum xe_vsec get_platform_info(struct xe_device *xe)
>  	     xe->info.platform == XE_CRESCENTISLAND))
>  		return XE_VSEC_UNKNOWN;
>  
> +	if (survivability->mode && xe->info.platform == XE_CRESCENTISLAND)
> +		return XE_VSEC_CRI_SURVIVABILITY;
> +
>  	return vsec_platforms[xe->info.platform];
>  }
>  
> @@ -686,6 +711,13 @@ int xe_vsec_init(struct xe_device *xe)
>  		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
>  		break;
>  
> +	case XE_VSEC_CRI_SURVIVABILITY:
> +		xe->pmt.base_offset = CRI_PMT_OFFSET;
> +		xe->pmt.survivability_mode = true;
> +		info->priv_data = &xe_cri_pmt_cb;
> +		xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
> +		break;

[Severity: Low]
Could wait_for_fw() and get_platform_info() call
xe_survivability_mode_is_boot_enabled(xe) directly instead of reaching into
xe->survivability.mode and caching it in xe->pmt.survivability_mode?  Other
subsystems (such as xe_pci.c, xe_heci_gsc.c and xe_i2c.c) already use that
helper, which would also avoid adding the duplicate boolean to struct
xe_device.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110183505.694124-19-michael.j.ruhl@intel.com?part=17

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

* Re: [PATCH v14 13/17] drm/xe/vsec: Support late bind fw information
  2026-11-10 18:35 ` [PATCH v14 13/17] drm/xe/vsec: Support late bind fw information Michael J. Ruhl
@ 2026-11-10 19:08   ` sashiko-bot
  0 siblings, 0 replies; 26+ messages in thread
From: sashiko-bot @ 2026-11-10 19:08 UTC (permalink / raw)
  To: Michael J. Ruhl, intel-xe

Thank you for your contribution! Sashiko AI review found 2 potential
issues to consider:
- [High] drm/xe/vsec: devres race and leak in cri_late_bind_probe_work()
  on remove
- [Medium] drm/xe/vsec: lock inversion holding pmt.lock in
  cri_late_bind_probe()
--

commit 9f8d57c3f4a91f9a4ba548e3f6bead5347072fe3
Author: Michael J. Ruhl <michael.j.ruhl@intel.com>

drm/xe/vsec: Support late bind fw information

This commit adds delayed-work polling and firmware readiness checks so
Crescent Island PMT probe and register/telemetry accesses wait for OOBMSM
late-bind firmware to become ready.

> diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c
> index 4ca41a5ef5027..f400a6d6ec8de 100644
> --- a/drivers/gpu/drm/xe/xe_vsec.c
> +++ b/drivers/gpu/drm/xe/xe_vsec.c
[ ... ]
> @@ -476,12 +549,50 @@ static enum xe_vsec get_platform_info(struct xe_device *xe)
>  	return vsec_platforms[xe->info.platform];
>  }
>  
> +static void cri_late_bind_probe(struct xe_device *xe)
> +{
> +	struct intel_vsec_platform_info *info;
> +	struct device *dev = xe->drm.dev;
> +	enum xe_vsec platform;
> +
> +	platform = get_platform_info(xe);
> +	if (platform != XE_VSEC_CRI)
> +		return;
> +
> +	info = &xe_vsec_info[platform];
> +	if (!info->headers)
> +		return;
> +
> +	guard(mutex)(&xe->pmt.lock);
> +
> +	info->priv_data = &xe_cri_pmt_cb;
> +	xe->soc_remapper.set_telem_region(xe, CRI_IDX_TELEM_DISCOVERY);
> +
> +	intel_vsec_register(dev, info);
> +}

[Severity: Medium]
Can holding xe->pmt.lock across intel_vsec_register() cause a lock
inversion and ABBA deadlock with PMT sysfs attribute access and removal?

CPU0                              CPU1
----                              ----
lock(&xe->pmt.lock)
  lock(&auxdev->dev.mutex)
    lock(&ep_lock)
                                  kernfs_get_active(kn->dep_map)
                                    lock(&xe->pmt.lock)
    kernfs_drain(kn->dep_map)

 *** DEADLOCK ***

CPU0: cri_late_bind_probe() -> intel_vsec_register() ->
      auxiliary_device_add() -> pmt_telem_probe() ->
      intel_pmt_dev_register() (or pmt_telem_remove() on teardown/abort)
CPU1: intel_pmt_read() -> xe_pmt_telem_read()

intel_vsec_register() synchronously probes the PMT auxiliary devices under
device_lock(&auxdev->dev) and ep_lock, while PMT sysfs callbacks acquire
xe->pmt.lock under kernfs active protection (kn->dep_map), which PMT
removal and multi-entry probe error unwind drain under &auxdev->dev.mutex
and ep_lock.

Should xe->pmt.lock be released before calling intel_vsec_register(),
matching xe_vsec_init()?

> +
> +static void vsec_disable_late_bind_work(void *arg)
> +{
> +	struct xe_device *xe = arg;
> +
> +	/*
> +	 * If the queued work is canceled, the runtime reference needs to be
> +	 * released here.
> +	 */
> +	if (disable_delayed_work_sync(&xe->pmt.work))
> +		xe_pm_runtime_put(xe);
> +}
> +
>  /**
>   * xe_vsec_init - Initialize resources and add intel_vsec auxiliary
>   * interface
>   * @xe: valid xe instance
> + *
> + * Return:
> + * * -ENOMEM devm acction failed
> + * * 0 vsec is a best effort.  Only devm failure is tracked
>   */
> -void xe_vsec_init(struct xe_device *xe)
> +int xe_vsec_init(struct xe_device *xe)
>  {
>  	struct intel_vsec_platform_info *info;
>  	struct device *dev = xe->drm.dev;
> @@ -489,11 +600,11 @@ void xe_vsec_init(struct xe_device *xe)
>  
>  	platform = get_platform_info(xe);
>  	if (platform == XE_VSEC_UNKNOWN)
> -		return;
> +		return 0;
>  
>  	info = &xe_vsec_info[platform];
>  	if (!info->headers)
> -		return;
> +		return 0;
>  
>  	switch (platform) {
>  	case XE_VSEC_BMG:
> @@ -503,12 +614,26 @@ void xe_vsec_init(struct xe_device *xe)
>  
>  	case XE_VSEC_CRI:
>  		xe->pmt.base_offset = CRI_PMT_OFFSET;
> +
> +		xe->pmt.retry_count = 0;
> +		INIT_DELAYED_WORK(&xe->pmt.work, cri_late_bind_probe_work);
> +
> +		xe_pm_runtime_get_noresume(xe);
> +		if (!xe_sysctrl_is_oobmsm_fw_ready(xe)) {
> +			queue_delayed_work(system_freezable_wq, &xe->pmt.work,
> +					      msecs_to_jiffies(VSEC_LATE_BIND_DELAY_MSEC));
> +			return devm_add_action_or_reset(xe->drm.dev,
> +							vsec_disable_late_bind_work,
> +							xe);
> +		}

[Severity: High]
Can canceling xe->pmt.work from a devm action leak the VSEC auxiliary
devices and cause a use-after-free on struct xe_device if driver removal or
a late probe failure occurs while cri_late_bind_probe_work() is running?

CPU0                                    kworker
xe_pci_remove()
  xe_device_remove(xe)
  xe_pm_fini(xe)
  devres_release_all(dev)
    remove_nodes(dev, ..., &todo)
    release_nodes(dev, &todo)
                                        cri_late_bind_probe_work()
                                          cri_late_bind_probe(xe)
                                            intel_vsec_register(dev, info)
                                              ...
                                                devm_add_action_or_reset(
                                                  ...,
                                                  intel_vsec_remove_aux,
                                                  ...)
      vsec_disable_late_bind_work()
        disable_delayed_work_sync(...)
  drm_dev_put(&xe->drm) -> frees xe
                                        sysfs read -> xe_pmt_telem_read(xe)
                                          <-- use-after-free

When devres_release_all() runs, remove_nodes() splices dev->devres_head
onto a local todo list before release_nodes() invokes
vsec_disable_late_bind_work().  If cri_late_bind_probe_work() is already
running on another CPU and calls intel_vsec_register(), the new
intel_vsec_remove_aux devres actions are added to the already-drained
dev->devres_head and are never executed, leaving the PMT auxiliary devices
registered after xe is freed and causing subsequent re-probes to fail with
-EBUSY.  In addition, during xe_pci_remove(), cri_late_bind_probe_work()
can still touch MMIO and call xe_pm_runtime_put() after xe_device_remove()
and xe_pm_fini() have completed.

Can xe->pmt.work be stopped in xe_device_remove() (and on xe_device_probe()
error unwind) before devres teardown begins?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261110183505.694124-19-michael.j.ruhl@intel.com?part=13

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

* ✓ Xe.CI.BAT: success for Crescent Island PMT support (rev16)
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (18 preceding siblings ...)
  2026-11-10 18:44 ` ✓ CI.KUnit: success " Patchwork
@ 2026-11-10 19:20 ` Patchwork
  2026-11-10 21:19 ` ✗ Xe.CI.FULL: failure " Patchwork
  20 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-11-10 19:20 UTC (permalink / raw)
  To: Michael J. Ruhl; +Cc: intel-xe

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

== Series Details ==

Series: Crescent Island PMT support (rev16)
URL   : https://patchwork.freedesktop.org/series/160717/
State : success

== Summary ==

CI Bug Log - changes from xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6_BAT -> xe-pw-160717v16_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (15 -> 15)
------------------------------

  No changes in participating hosts


Changes
-------

  No changes found


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

  * IGT: IGT_9182 -> IGT_9184
  * Linux: xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6 -> xe-pw-160717v16

  IGT_9182: 9182
  IGT_9184: 9184
  xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6: 7b21e496056a6483b471dbc5f858059cb83becc6
  xe-pw-160717v16: 160717v16

== Logs ==

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

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

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

* ✗ Xe.CI.FULL: failure for Crescent Island PMT support (rev16)
  2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
                   ` (19 preceding siblings ...)
  2026-11-10 19:20 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-11-10 21:19 ` Patchwork
  20 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2026-11-10 21:19 UTC (permalink / raw)
  To: Michael J. Ruhl; +Cc: intel-xe

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

== Series Details ==

Series: Crescent Island PMT support (rev16)
URL   : https://patchwork.freedesktop.org/series/160717/
State : failure

== Summary ==

CI Bug Log - changes from xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6_FULL -> xe-pw-160717v16_FULL
====================================================

Summary
-------

  **FAILURE**

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

  

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

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-160717v16_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@hotunplug-rescan-with-load:
    - shard-bmg:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-1/igt@core_hotunplug@hotunplug-rescan-with-load.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@core_hotunplug@hotunplug-rescan-with-load.html

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

  Here are the changes found in xe-pw-160717v16_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-ptl:          NOTRUN -> [SKIP][3] ([Intel XE#3157])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-6/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][4] ([Intel XE#2327]) +3 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-8/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-ptl:          NOTRUN -> [SKIP][5] ([Intel XE#6925])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-6/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-ptl:          NOTRUN -> [SKIP][6] ([Intel XE#7085])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-8/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#7059] / [Intel XE#7085])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-ptl:          NOTRUN -> [SKIP][8] ([Intel XE#5808]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-8/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#1124]) +2 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-3/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#607] / [Intel XE#7361])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
    - shard-ptl:          NOTRUN -> [SKIP][11] ([Intel XE#5851])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-1/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p:
    - shard-ptl:          NOTRUN -> [SKIP][12] ([Intel XE#7679])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@kms_bw@connected-linear-tiling-4-displays-target-2560x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-target-3840x2160p:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#367]) +1 other test skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html

  * igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs:
    - shard-ptl:          NOTRUN -> [SKIP][14] ([Intel XE#5822]) +4 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-c-dp-2:
    - shard-bmg:          [PASS][15] -> [INCOMPLETE][16] ([Intel XE#7084] / [Intel XE#8150]) +1 other test incomplete
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-9/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-c-dp-2.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-c-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#3432])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-9/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#2887]) +10 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html

  * igt@kms_chamelium_color@ctm-0-50:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@kms_chamelium_color@ctm-0-50.html
    - shard-ptl:          NOTRUN -> [SKIP][20] ([Intel XE#5824])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_chamelium_color@ctm-0-50.html

  * igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt601-lim:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#7358]) +3 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-9/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt601-lim.html
    - shard-ptl:          NOTRUN -> [SKIP][22] ([Intel XE#8391])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-5/igt@kms_chamelium_color_pipeline@plane-fixed-matrix-yuv-rgb-bt601-lim.html

  * igt@kms_chamelium_edid@hdmi-edid-change-during-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#2252]) +3 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium_frames@hdmi-crc-multiple:
    - shard-ptl:          NOTRUN -> [SKIP][24] ([Intel XE#2252])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@kms_chamelium_frames@hdmi-crc-multiple.html

  * igt@kms_color_pipeline@plane-lut1d-lut1d@pipe-b-plane-4:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#6969]) +15 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-8/igt@kms_color_pipeline@plane-lut1d-lut1d@pipe-b-plane-4.html

  * igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2:
    - shard-bmg:          NOTRUN -> [FAIL][26] ([Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@kms_content_protection@atomic-dpms-hdcp14@pipe-a-dp-2.html

  * igt@kms_content_protection@legacy:
    - shard-bmg:          NOTRUN -> [FAIL][27] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +5 other tests fail
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-8/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@srm:
    - shard-ptl:          NOTRUN -> [SKIP][28] ([Intel XE#7642])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2320]) +3 other tests skip
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-random-32x10:
    - shard-ptl:          NOTRUN -> [SKIP][30] ([Intel XE#5900])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-1/igt@kms_cursor_crc@cursor-random-32x10.html

  * igt@kms_cursor_edge_walk@256x256-top-edge@pipe-a-edp-1:
    - shard-ptl:          [PASS][31] -> [FAIL][32] ([Intel XE#9673]) +1 other test fail
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-ptl-1/igt@kms_cursor_edge_walk@256x256-top-edge@pipe-a-edp-1.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@kms_cursor_edge_walk@256x256-top-edge@pipe-a-edp-1.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
    - shard-ptl:          NOTRUN -> [SKIP][33] ([Intel XE#5962])
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-5/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions:
    - shard-ptl:          NOTRUN -> [SKIP][34] ([Intel XE#5962] / [Intel XE#7343])
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#1340] / [Intel XE#7435])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-1/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-3.html

  * igt@kms_dp_link_training@uhbr-sst:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#9535])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-1/igt@kms_dp_link_training@uhbr-sst.html

  * igt@kms_dsc@dsc-basic-bigjoiner:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#8265]) +1 other test skip
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@kms_dsc@dsc-basic-bigjoiner.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-ptl:          NOTRUN -> [SKIP][38] ([Intel XE#5907]) +1 other test skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_feature_discovery@psr1:
    - shard-bmg:          NOTRUN -> [SKIP][39] ([Intel XE#2374] / [Intel XE#6127])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-3/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip@2x-absolute-wf_vblank-interruptible:
    - shard-ptl:          NOTRUN -> [SKIP][40] ([Intel XE#2316]) +1 other test skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@kms_flip@2x-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank@c-edp1:
    - shard-lnl:          [PASS][41] -> [FAIL][42] ([Intel XE#301] / [Intel XE#3149])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@c-edp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode:
    - shard-ptl:          NOTRUN -> [SKIP][43] ([Intel XE#5828]) +1 other test skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-ptl:          NOTRUN -> [SKIP][44] ([Intel XE#7178])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#7179])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-1/igt@kms_flip_scaled_crc@flip-p016-linear-to-p016-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#7061] / [Intel XE#7356]) +4 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2311]) +39 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@kms_frontbuffer_tracking@drrs-rgb565-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#4141]) +6 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-msflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][49] ([Intel XE#7061] / [Intel XE#7356])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@kms_frontbuffer_tracking@fbc-abgr161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][50] ([Intel XE#5800] / [Intel XE#6312]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_frontbuffer_tracking@fbcdrrs-rgb565-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-indfb-draw-blt:
    - shard-ptl:          NOTRUN -> [SKIP][51] ([Intel XE#5812]) +25 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@kms_frontbuffer_tracking@fbcdrrshdr-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-abgr161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][52] ([Intel XE#7061]) +4 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@kms_frontbuffer_tracking@fbcdrrshdr-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrshdr-modesetfrombusy:
    - shard-ptl:          NOTRUN -> [SKIP][53] ([Intel XE#6312]) +6 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_frontbuffer_tracking@fbcdrrshdr-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@fbchdr-argb161616f-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][54] ([Intel XE#7061])
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@kms_frontbuffer_tracking@fbchdr-argb161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-wc:
    - shard-ptl:          NOTRUN -> [SKIP][55] ([Intel XE#7865]) +5 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#2313]) +35 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-4/igt@kms_frontbuffer_tracking@psrhdr-2p-scndscrn-cur-indfb-draw-render.html

  * igt@kms_hdmi_audio_bw@audio-bw-hblank80:
    - shard-bmg:          [PASS][57] -> [FAIL][58] ([Intel XE#9313])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-7/igt@kms_hdmi_audio_bw@audio-bw-hblank80.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@kms_hdmi_audio_bw@audio-bw-hblank80.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [PASS][59] -> [SKIP][60] ([Intel XE#1503])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-2/igt@kms_hdr@invalid-hdr.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-9/igt@kms_hdr@invalid-hdr.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-ptl:          NOTRUN -> [SKIP][61] ([Intel XE#5917] / [Intel XE#6174])
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_panel_fitting@legacy:
    - shard-bmg:          NOTRUN -> [SKIP][62] ([Intel XE#2486])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-3/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#7283]) +1 other test skip
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping.html
    - shard-ptl:          NOTRUN -> [SKIP][64] ([Intel XE#7283])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-6/igt@kms_plane@pixel-format-yf-tiled-modifier-source-clamping.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][65] ([Intel XE#2393])
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_pm_dc@dc5-pageflip-negative:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#6927] / [Intel XE#8854])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-6/igt@kms_pm_dc@dc5-pageflip-negative.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-lnl:          [PASS][67] -> [FAIL][68] ([Intel XE#8399])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-2/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-ptl:          NOTRUN -> [SKIP][69] ([Intel XE#5849])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][70] ([Intel XE#1489]) +6 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-1/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area:
    - shard-ptl:          NOTRUN -> [SKIP][71] ([Intel XE#7304])
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@kms_psr2_sf@fbc-pr-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][72] ([Intel XE#5858] / [Intel XE#7304]) +3 other tests skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][73] ([Intel XE#5858]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-sf-dmg-area@pipe-a-edp-1.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-ptl:          NOTRUN -> [SKIP][74] ([Intel XE#7413])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr2_su@page_flip-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][75] ([Intel XE#2387] / [Intel XE#7429]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@kms_psr2_su@page_flip-xrgb8888.html

  * igt@kms_psr@fbc-psr2-basic:
    - shard-bmg:          NOTRUN -> [SKIP][76] ([Intel XE#2234] / [Intel XE#2850]) +4 other tests skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@kms_psr@fbc-psr2-basic.html

  * igt@kms_psr@fbc-psr2-primary-render@edp-1:
    - shard-ptl:          NOTRUN -> [SKIP][77] ([Intel XE#1406] / [Intel XE#5835]) +1 other test skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@kms_psr@fbc-psr2-primary-render@edp-1.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#7795])
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-4/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-bmg:          NOTRUN -> [SKIP][79] ([Intel XE#3904] / [Intel XE#7342])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
    - shard-ptl:          NOTRUN -> [SKIP][80] ([Intel XE#5821])
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#2426] / [Intel XE#5848])
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern.html
    - shard-ptl:          NOTRUN -> [SKIP][82] ([Intel XE#5848])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-5/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vrr@lobf-dc3co:
    - shard-bmg:          NOTRUN -> [SKIP][83] ([Intel XE#8397])
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@kms_vrr@lobf-dc3co.html

  * igt@sriov_basic@pf-unbind-with-vf-probed:
    - shard-bmg:          NOTRUN -> [ABORT][84] ([Intel XE#8868])
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-4/igt@sriov_basic@pf-unbind-with-vf-probed.html

  * igt@xe_compute_preempt@compute-preempt-many@engine-drm_xe_engine_class_compute:
    - shard-ptl:          [PASS][85] -> [ABORT][86] ([Intel XE#9481]) +1 other test abort
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-ptl-1/igt@xe_compute_preempt@compute-preempt-many@engine-drm_xe_engine_class_compute.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@xe_compute_preempt@compute-preempt-many@engine-drm_xe_engine_class_compute.html

  * igt@xe_cw_post_sync@walker-post-sync:
    - shard-bmg:          NOTRUN -> [SKIP][87] ([Intel XE#8608])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@xe_cw_post_sync@walker-post-sync.html
    - shard-ptl:          NOTRUN -> [SKIP][88] ([Intel XE#8608])
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-8/igt@xe_cw_post_sync@walker-post-sync.html

  * igt@xe_evict@evict-cm-threads-small-multi-vm:
    - shard-ptl:          NOTRUN -> [SKIP][89] ([Intel XE#5764]) +4 other tests skip
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@xe_evict@evict-cm-threads-small-multi-vm.html

  * igt@xe_evict@evict-small-multi-queue-priority:
    - shard-bmg:          NOTRUN -> [SKIP][90] ([Intel XE#8370])
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_evict@evict-small-multi-queue-priority.html

  * igt@xe_exec_balancer@once-parallel-rebind:
    - shard-ptl:          NOTRUN -> [SKIP][91] ([Intel XE#7482]) +5 other tests skip
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-6/igt@xe_exec_balancer@once-parallel-rebind.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][92] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html
    - shard-ptl:          NOTRUN -> [SKIP][93] ([Intel XE#5575] / [Intel XE#7484]) +1 other test skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-1/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate-race-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][94] ([Intel XE#8374]) +6 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate-race-prefetch.html

  * igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm:
    - shard-ptl:          NOTRUN -> [SKIP][95] ([Intel XE#8374]) +2 other tests skip
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@xe_exec_fault_mode@twice-multi-queue-userptr-invalidate-race-imm.html

  * igt@xe_exec_multi_queue@exec-sanity:
    - shard-ptl:          NOTRUN -> [SKIP][96] ([Intel XE#8364]) +10 other tests skip
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-5/igt@xe_exec_multi_queue@exec-sanity.html

  * igt@xe_exec_multi_queue@max-queues-basic:
    - shard-bmg:          NOTRUN -> [SKIP][97] ([Intel XE#8364]) +16 other tests skip
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@xe_exec_multi_queue@max-queues-basic.html

  * igt@xe_exec_reset@gt-stress-reset-destroy-vm-context:
    - shard-ptl:          [PASS][98] -> [DMESG-WARN][99] ([Intel XE#8652])
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-ptl-4/igt@xe_exec_reset@gt-stress-reset-destroy-vm-context.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@xe_exec_reset@gt-stress-reset-destroy-vm-context.html

  * igt@xe_exec_reset@multi-queue-close-execqueues:
    - shard-bmg:          NOTRUN -> [SKIP][100] ([Intel XE#8369])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@xe_exec_reset@multi-queue-close-execqueues.html

  * igt@xe_exec_system_allocator@many-stride-new-prefetch:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][101] ([Intel XE#7098] / [Intel XE#8159])
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_exec_system_allocator@many-stride-new-prefetch.html

  * igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][102] ([Intel XE#8378]) +2 other tests skip
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-1/igt@xe_exec_threads@threads-multi-queue-cm-fd-userptr-rebind.html

  * igt@xe_exec_threads@threads-multi-queue-rebind-err:
    - shard-ptl:          NOTRUN -> [SKIP][103] ([Intel XE#8378]) +2 other tests skip
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@xe_exec_threads@threads-multi-queue-rebind-err.html

  * igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add:
    - shard-bmg:          NOTRUN -> [SKIP][104] ([Intel XE#6281] / [Intel XE#7426])
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-9/igt@xe_fault_injection@exec-queue-create-fail-xe_pxp_exec_queue_add.html

  * igt@xe_mempage_offline@inject-single-page:
    - shard-ptl:          NOTRUN -> [SKIP][105] ([Intel XE#9203])
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-1/igt@xe_mempage_offline@inject-single-page.html
    - shard-bmg:          NOTRUN -> [SKIP][106] ([Intel XE#9203])
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_mempage_offline@inject-single-page.html

  * igt@xe_multigpu_svm@mgpu-pagefault-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][107] ([Intel XE#6964]) +1 other test skip
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_multigpu_svm@mgpu-pagefault-prefetch.html

  * igt@xe_page_reclaim@binds-large-split:
    - shard-ptl:          NOTRUN -> [SKIP][108] ([Intel XE#7793])
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-4/igt@xe_page_reclaim@binds-large-split.html
    - shard-bmg:          NOTRUN -> [SKIP][109] ([Intel XE#7793])
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_page_reclaim@binds-large-split.html

  * igt@xe_pm@d3cold-basic-exec:
    - shard-ptl:          NOTRUN -> [SKIP][110] ([Intel XE#5741])
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-1/igt@xe_pm@d3cold-basic-exec.html
    - shard-bmg:          NOTRUN -> [SKIP][111] ([Intel XE#2284] / [Intel XE#7370])
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-2/igt@xe_pm@d3cold-basic-exec.html

  * igt@xe_pm@s3-basic:
    - shard-ptl:          NOTRUN -> [SKIP][112] ([Intel XE#6867])
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-3/igt@xe_pm@s3-basic.html

  * igt@xe_pm@s4-basic:
    - shard-lnl:          [PASS][113] -> [DMESG-WARN][114] ([Intel XE#7727])
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-3/igt@xe_pm@s4-basic.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-7/igt@xe_pm@s4-basic.html

  * igt@xe_pm@s4-mocs:
    - shard-ptl:          [PASS][115] -> [DMESG-WARN][116] ([Intel XE#7727])
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-ptl-8/igt@xe_pm@s4-mocs.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-7/igt@xe_pm@s4-mocs.html

  * igt@xe_pxp@pxp-termination-key-update-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][117] ([Intel XE#4733] / [Intel XE#7417])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@xe_pxp@pxp-termination-key-update-post-termination-irq.html

  * igt@xe_query@multigpu-query-cs-cycles:
    - shard-bmg:          NOTRUN -> [SKIP][118] ([Intel XE#944]) +2 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-8/igt@xe_query@multigpu-query-cs-cycles.html

  * igt@xe_query@multigpu-query-uc-fw-version-guc:
    - shard-ptl:          NOTRUN -> [SKIP][119] ([Intel XE#6019]) +2 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-6/igt@xe_query@multigpu-query-uc-fw-version-guc.html

  * igt@xe_wedged@cold-reset-wedged:
    - shard-bmg:          NOTRUN -> [SKIP][120] ([Intel XE#9747])
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-9/igt@xe_wedged@cold-reset-wedged.html
    - shard-ptl:          NOTRUN -> [SKIP][121] ([Intel XE#9747])
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-ptl-2/igt@xe_wedged@cold-reset-wedged.html
    - shard-lnl:          NOTRUN -> [SKIP][122] ([Intel XE#9747])
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-2/igt@xe_wedged@cold-reset-wedged.html

  
#### Possible fixes ####

  * igt@kms_flip@flip-vs-expired-vblank@b-edp1:
    - shard-lnl:          [FAIL][123] ([Intel XE#301]) -> [PASS][124]
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html

  * igt@kms_hdmi_audio_bw@audio-bw-hblank160:
    - shard-bmg:          [FAIL][125] ([Intel XE#9313]) -> [PASS][126]
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-6/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@kms_hdmi_audio_bw@audio-bw-hblank160.html

  * igt@kms_pm_dc@dc5-psr-suspend-resume:
    - shard-lnl:          [FAIL][127] ([Intel XE#8399]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-2/igt@kms_pm_dc@dc5-psr-suspend-resume.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-3/igt@kms_pm_dc@dc5-psr-suspend-resume.html

  * igt@kms_pm_rpm@drm-resources-equal:
    - shard-lnl:          [SKIP][129] -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-3/igt@kms_pm_rpm@drm-resources-equal.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-6/igt@kms_pm_rpm@drm-resources-equal.html

  * igt@xe_exec_reset@gt-stress-reset-bo-invalidation:
    - shard-bmg:          [DMESG-WARN][131] ([Intel XE#8652]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-10/igt@xe_exec_reset@gt-stress-reset-bo-invalidation.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-5/igt@xe_exec_reset@gt-stress-reset-bo-invalidation.html

  * igt@xe_sriov_flr@flr-vfs-parallel:
    - shard-bmg:          [FAIL][133] ([Intel XE#6569]) -> [PASS][134] +2 other tests pass
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-10/igt@xe_sriov_flr@flr-vfs-parallel.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-10/igt@xe_sriov_flr@flr-vfs-parallel.html

  
#### Warnings ####

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
    - shard-lnl:          [SKIP][135] ([Intel XE#1407]) -> [ABORT][136] ([Intel XE#4760])
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-3/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-8/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-lnl:          [FAIL][137] ([Intel XE#301]) -> [FAIL][138] ([Intel XE#301] / [Intel XE#3149])
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-lnl-2/igt@kms_flip@flip-vs-expired-vblank.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][139] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][140] ([Intel XE#2426] / [Intel XE#5848])
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-160717v16/shard-bmg-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
  [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#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
  [Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3157]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3157
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4760
  [Intel XE#5575]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5575
  [Intel XE#5741]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5741
  [Intel XE#5764]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5764
  [Intel XE#5800]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5800
  [Intel XE#5808]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5808
  [Intel XE#5812]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5812
  [Intel XE#5821]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5821
  [Intel XE#5822]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5822
  [Intel XE#5824]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5824
  [Intel XE#5828]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5828
  [Intel XE#5835]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5835
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#5849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5849
  [Intel XE#5851]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5851
  [Intel XE#5858]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5858
  [Intel XE#5900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5900
  [Intel XE#5907]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5907
  [Intel XE#5917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5917
  [Intel XE#5962]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5962
  [Intel XE#6019]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6019
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#6127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6127
  [Intel XE#6174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6174
  [Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6867]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6867
  [Intel XE#6925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6925
  [Intel XE#6927]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6927
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
  [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
  [Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
  [Intel XE#7098]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7098
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
  [Intel XE#7361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7361
  [Intel XE#7370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7370
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
  [Intel XE#7413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7413
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7426
  [Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
  [Intel XE#7435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7435
  [Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
  [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
  [Intel XE#7484]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7484
  [Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7727
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7795]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7795
  [Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
  [Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
  [Intel XE#8159]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8159
  [Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8369]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8369
  [Intel XE#8370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8370
  [Intel XE#8374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8374
  [Intel XE#8378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8378
  [Intel XE#8391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8391
  [Intel XE#8397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8397
  [Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
  [Intel XE#8608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8608
  [Intel XE#8652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8652
  [Intel XE#8854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8854
  [Intel XE#8868]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8868
  [Intel XE#9203]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9203
  [Intel XE#9313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9313
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
  [Intel XE#9481]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9481
  [Intel XE#9535]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9535
  [Intel XE#9673]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9673
  [Intel XE#9747]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9747


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

  * IGT: IGT_9182 -> IGT_9184
  * Linux: xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6 -> xe-pw-160717v16

  IGT_9182: 9182
  IGT_9184: 9184
  xe-6103-7b21e496056a6483b471dbc5f858059cb83becc6: 7b21e496056a6483b471dbc5f858059cb83becc6
  xe-pw-160717v16: 160717v16

== Logs ==

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

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

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

end of thread, other threads:[~2026-11-10 21:19 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10 18:35 [PATCH v14 00/17] Crescent Island PMT support Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 01/17] drm/xe/vsec: VSEC requires soc-remapper Michael J. Ruhl
2026-11-10 18:46   ` sashiko-bot
2026-11-10 18:35 ` [PATCH v14 02/17] drm/xe/vsec: Do not register BMG PMT for VF Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 03/17] drm/xe/vsec: Correct locking order Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 04/17] drm/xe/vsec: Use correct pm state get Michael J. Ruhl
2026-11-10 18:49   ` sashiko-bot
2026-11-10 18:35 ` [PATCH v14 05/17] drm/xe/vsec: Add DOC text for VSEC Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 06/17] drm/xe/vsec: Support possible hotplug exit Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 07/17] drm/xe/vsec: Refactor BattleMage PMT defines Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 08/17] drm/xe/vsec: Update VSEC probe order Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 09/17] drm/xe/vsec: Add base_offset to allow for more flexibilty Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 10/17] drm/xe/vsec: Support Crescent Island PMT Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 11/17] drm/xe/vsec: Crescent Island PMT decode Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 12/17] drm/xe/vsec: Crescent Island PMT callbacks Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 13/17] drm/xe/vsec: Support late bind fw information Michael J. Ruhl
2026-11-10 19:08   ` sashiko-bot
2026-11-10 18:35 ` [PATCH v14 14/17] drm/xe/vsec: Add PMT GUID internal access Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 15/17] drm/xe/vsec: Update PMT " Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 16/17] drm/xe/vsec: Refactor platform check Michael J. Ruhl
2026-11-10 18:35 ` [PATCH v14 17/17] drm/xe/vsec: Support survivability mode for CRI Michael J. Ruhl
2026-11-10 18:53   ` sashiko-bot
2026-11-10 18:42 ` ✗ CI.checkpatch: warning for Crescent Island PMT support (rev16) Patchwork
2026-11-10 18:44 ` ✓ CI.KUnit: success " Patchwork
2026-11-10 19:20 ` ✓ Xe.CI.BAT: " Patchwork
2026-11-10 21:19 ` ✗ Xe.CI.FULL: failure " Patchwork

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