Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs
@ 2026-08-07 14:56 Anoop, Vijay
  2026-08-07 14:56 ` [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Anoop, Vijay @ 2026-08-07 14:56 UTC (permalink / raw)
  To: intel-xe
  Cc: umesh.nerlige.ramappa, badal.nilawar, rodrigo.vivi,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim,
	anoop.c.vijay

From: Anoop Vijay <anoop.c.vijay@intel.com>

This series adds debugfs-based test interfaces for the System
Controller (sysctrl) mailbox, to aid validation of firmware
communication and RAS error handling without requiring userspace
tooling.

Key features introduced:
- Debugfs infrastructure for sysctrl (types, registration hook)
- Loopback test entry exercising the mailbox send/receive path via
  the Core group's inverted loopback command (0xFF/0x03)
- RAS error injection entry exercising the Diag group's
  RAS_ERR_INJECT command (0x02/0x7E), gated on the diag application
  having completed firmware boot/init

v3:
- Fix RAS error injection command ID to 0x7E
- Add xe_pm_runtime guard for mailbox commands
- Rename error injection command to avoid fwctl command ID collision
- Reject writes until the diag firmware is ready

Anoop Vijay (4):
  drm/xe/sysctrl: Add System Controller get application status
  drm/xe/sysctrl: Add sysctrl debugfs infrastructure
  drm/xe/sysctrl: Add loopback test debugfs interface
  drm/xe/sysctrl: Add RAS error injection debugfs interface

 drivers/gpu/drm/xe/Makefile                   |   1 +
 drivers/gpu/drm/xe/xe_debugfs.c               |   5 +
 drivers/gpu/drm/xe/xe_sysctrl.c               |  82 +++++
 drivers/gpu/drm/xe/xe_sysctrl.h               |   2 +
 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c       | 280 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl_debugfs.h       |  14 +
 drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h |  98 ++++++
 drivers/gpu/drm/xe/xe_sysctrl_types.h         |  38 +++
 8 files changed, 520 insertions(+)
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_debugfs.h

-- 
2.43.0


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

* [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
@ 2026-08-07 14:56 ` Anoop, Vijay
  2026-08-07 18:51   ` Rodrigo Vivi
  2026-08-07 14:56 ` [PATCH v3 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure Anoop, Vijay
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Anoop, Vijay @ 2026-08-07 14:56 UTC (permalink / raw)
  To: intel-xe
  Cc: umesh.nerlige.ramappa, badal.nilawar, rodrigo.vivi,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim,
	anoop.c.vijay

From: Anoop Vijay <anoop.c.vijay@intel.com>

Do not review, CI only.

Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
 drivers/gpu/drm/xe/xe_sysctrl.c               | 82 +++++++++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl.h               |  2 +
 drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 65 +++++++++++++++
 3 files changed, 149 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_sysctrl.c b/drivers/gpu/drm/xe/xe_sysctrl.c
index 1db20be8158b..8eac58647265 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl.c
+++ b/drivers/gpu/drm/xe/xe_sysctrl.c
@@ -13,9 +13,11 @@
 #include "xe_device.h"
 #include "xe_mmio.h"
 #include "xe_pm.h"
+#include "xe_printk.h"
 #include "xe_soc_remapper.h"
 #include "xe_sysctrl.h"
 #include "xe_sysctrl_mailbox.h"
+#include "xe_sysctrl_mailbox_types.h"
 #include "xe_sysctrl_types.h"
 
 /**
@@ -130,3 +132,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
 
 	xe_sysctrl_mailbox_init(sc);
 }
+
+static enum xe_sysctrl_fw_status
+xe_sysctrl_check_app_status(struct xe_device *xe, enum xe_sysctrl_app_id app_id)
+{
+	struct xe_sysctrl_app_status_req req = {};
+	struct xe_sysctrl_app_status_resp resp = {};
+	struct xe_sysctrl_mailbox_command cmd = {};
+	size_t out_len = 0;
+	u32 flags;
+	int ret;
+
+	if (!xe->info.has_sysctrl)
+		return XE_SYSCTRL_FIRMWARE_APP_NOTSUPP;
+
+	req.app_id = (u8)app_id;
+
+	xe_sysctrl_create_command(&cmd, XE_SYSCTRL_GROUP_CORE, XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID,
+				  &req, sizeof(req), &resp, sizeof(resp));
+
+	ret = xe_sysctrl_send_command(&xe->sc, &cmd, &out_len);
+	if (ret)
+		return XE_SYSCTRL_FIRMWARE_COMM_FAILURE;
+
+	if (out_len != sizeof(resp)) {
+		xe_err(xe, "sysctrl: unexpected get app status response length %zu (expected %zu)\n",
+		       out_len, sizeof(resp));
+		return XE_SYSCTRL_FIRMWARE_COMM_FAILURE;
+	}
+
+	flags = resp.flags;
+
+	if (!(flags & XE_SYSCTRL_APP_RESP_VALID))
+		return XE_SYSCTRL_FIRMWARE_APP_INVALID;
+
+	if (!(flags & XE_SYSCTRL_APP_RESP_BOOTED))
+		return XE_SYSCTRL_FIRMWARE_APP_NOT_LOADED;
+
+	if (!(flags & XE_SYSCTRL_APP_RESP_INITIALIZED))
+		return XE_SYSCTRL_FIRMWARE_APP_BOOTED;
+
+	return XE_SYSCTRL_FIRMWARE_APP_INITIALIZED;
+}
+
+/**
+ * xe_sysctrl_is_oobmsm_fw_ready() - Check if oCode firmware is fully initialized
+ * @xe: xe device instance
+ *
+ * Returns true if oCode firmware has reached the initialized state, indicating
+ * it is ready to handle requests. Returns true also on platforms without System
+ * Controller support, as there is no firmware gate to wait on.
+ *
+ * Return: true if oCode is initialized or sysctrl is not present, false otherwise
+ */
+bool xe_sysctrl_is_oobmsm_fw_ready(struct xe_device *xe)
+{
+	enum xe_sysctrl_fw_status status =
+		xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_OCODE);
+
+	return status == XE_SYSCTRL_FIRMWARE_APP_INITIALIZED ||
+	       status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP;
+}
+
+/**
+ * xe_sysctrl_is_diag_fw_ready() - Check if diag firmware is fully initialized
+ * @xe: xe device instance
+ *
+ * Returns true if diag firmware has reached the initialized state, indicating
+ * it is ready to handle requests. Returns true also on platforms without System
+ * Controller support, as there is no firmware gate to wait on.
+ *
+ * Return: true if diag firmware is initialized or sysctrl is not present, false otherwise
+ */
+bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe)
+{
+	enum xe_sysctrl_fw_status status =
+		xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_DIAG);
+
+	return status == XE_SYSCTRL_FIRMWARE_APP_INITIALIZED ||
+	       status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP;
+}
diff --git a/drivers/gpu/drm/xe/xe_sysctrl.h b/drivers/gpu/drm/xe/xe_sysctrl.h
index 090dffb6d55f..b69a3f474236 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl.h
@@ -20,5 +20,7 @@ void xe_sysctrl_event(struct xe_sysctrl *sc);
 int xe_sysctrl_init(struct xe_device *xe);
 void xe_sysctrl_irq_handler(struct xe_device *xe, u32 master_ctl);
 void xe_sysctrl_pm_resume(struct xe_device *xe);
+bool xe_sysctrl_is_oobmsm_fw_ready(struct xe_device *xe);
+bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe);
 
 #endif
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index d0341538ad05..b507e1553cbb 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -14,9 +14,11 @@
  * enum xe_sysctrl_group - System Controller command groups
  *
  * @XE_SYSCTRL_GROUP_GFSP: GFSP group
+ * @XE_SYSCTRL_GROUP_CORE: Core group
  */
 enum xe_sysctrl_group {
 	XE_SYSCTRL_GROUP_GFSP			= 0x01,
+	XE_SYSCTRL_GROUP_CORE			= 0xFF,
 };
 
 /**
@@ -38,6 +40,69 @@ enum xe_sysctrl_gfsp_cmd {
 	XE_SYSCTRL_CMD_SET_HEALTH		= 0x0C,
 };
 
+/**
+ * enum xe_sysctrl_core_cmd - Commands supported by Core group
+ *
+ * @XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID: Retrieve application status by ID
+ */
+enum xe_sysctrl_core_cmd {
+	XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID		= 0x05,
+};
+
+/**
+ * struct xe_sysctrl_app_status_req - Get application status request
+ *
+ * @app_id: Application ID for which to retrieve status
+ */
+struct xe_sysctrl_app_status_req {
+	u8 app_id;
+} __packed;
+
+/**
+ * struct xe_sysctrl_app_status_resp - Get application status response
+ * @flags: Application status flags (see XE_SYSCTRL_APP_RESP_* definitions)
+ */
+struct xe_sysctrl_app_status_resp {
+	u32 flags;
+} __packed;
+
+/** XE_SYSCTRL_APP_RESP_VALID - app_id is recognized by System Controller firmware */
+#define XE_SYSCTRL_APP_RESP_VALID		BIT(0)
+/** XE_SYSCTRL_APP_RESP_BOOTED - application has completed its boot sequence */
+#define XE_SYSCTRL_APP_RESP_BOOTED		BIT(1)
+/** XE_SYSCTRL_APP_RESP_INITIALIZED - application has completed all post-boot initialization */
+#define XE_SYSCTRL_APP_RESP_INITIALIZED		BIT(2)
+
+/**
+ * enum xe_sysctrl_fw_status - System Controller firmware application lifecycle states
+ *
+ * @XE_SYSCTRL_FIRMWARE_APP_INVALID: app_id is not recognized by firmware
+ * @XE_SYSCTRL_FIRMWARE_APP_NOT_LOADED: application is known but has not yet booted
+ * @XE_SYSCTRL_FIRMWARE_APP_BOOTED: boot sequence completed, post-boot init pending
+ * @XE_SYSCTRL_FIRMWARE_APP_INITIALIZED: application fully operational
+ * @XE_SYSCTRL_FIRMWARE_APP_NOTSUPP: System Controller not available on this device
+ * @XE_SYSCTRL_FIRMWARE_COMM_FAILURE: communication with System Controller firmware failed
+ */
+enum xe_sysctrl_fw_status {
+	XE_SYSCTRL_FIRMWARE_APP_INVALID,
+	XE_SYSCTRL_FIRMWARE_APP_NOT_LOADED,
+	XE_SYSCTRL_FIRMWARE_APP_BOOTED,
+	XE_SYSCTRL_FIRMWARE_APP_INITIALIZED,
+	XE_SYSCTRL_FIRMWARE_APP_NOTSUPP,
+	XE_SYSCTRL_FIRMWARE_COMM_FAILURE,
+};
+
+/**
+ * enum xe_sysctrl_app_id - Known System Controller application identifiers
+ *
+ * @XE_SYSCTRL_APP_OCODE: oCode application (firmware ID 12)
+ * @XE_SYSCTRL_APP_DIAG: diag application (firmware ID 13)
+ */
+enum xe_sysctrl_app_id {
+	XE_SYSCTRL_APP_OCODE	= 0x0C,
+	XE_SYSCTRL_APP_DIAG	= 0x0D,
+};
+
 /**
  * struct xe_sysctrl_mailbox_command - System Controller mailbox command
  */
-- 
2.43.0


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

* [PATCH v3 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
  2026-08-07 14:56 ` [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
@ 2026-08-07 14:56 ` Anoop, Vijay
  2026-08-07 18:53   ` Rodrigo Vivi
  2026-08-07 14:56 ` [PATCH v3 3/4] drm/xe/sysctrl: Add loopback test debugfs interface Anoop, Vijay
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Anoop, Vijay @ 2026-08-07 14:56 UTC (permalink / raw)
  To: intel-xe
  Cc: umesh.nerlige.ramappa, badal.nilawar, rodrigo.vivi,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim,
	anoop.c.vijay

From: Anoop Vijay <anoop.c.vijay@intel.com>

Add basic debugfs support for sysctrl. This patch adds necessary
types and registration hooks.

Changes:
- Add debugfs structure to xe_sysctrl_types.h
- Add xe_sysctrl_debugfs.h header
- Add xe_sysctrl_debugfs_register() stub
- Wire up sysctrl debugfs registration

No functional changes, debugfs directory created but empty.

Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
 drivers/gpu/drm/xe/Makefile             |  1 +
 drivers/gpu/drm/xe/xe_debugfs.c         |  5 +++++
 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c | 27 +++++++++++++++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl_debugfs.h | 14 +++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl_types.h   |  7 +++++++
 5 files changed, 54 insertions(+)
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
 create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_debugfs.h

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index 44ed055439d4..f083451608ff 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -127,6 +127,7 @@ xe-y += xe_bb.o \
 	xe_survivability_mode.o \
 	xe_sync.o \
 	xe_sysctrl.o \
+	xe_sysctrl_debugfs.o \
 	xe_sysctrl_event.o \
 	xe_sysctrl_mailbox.o \
 	xe_tile.o \
diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 8de78cd0aa03..666290d83bfe 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -30,6 +30,8 @@
 #include "xe_sriov_pf_debugfs.h"
 #include "xe_sriov_vf.h"
 #include "xe_step.h"
+#include "xe_sysctrl.h"
+#include "xe_sysctrl_debugfs.h"
 #include "xe_tile_debugfs.h"
 #include "xe_vsec.h"
 #include "xe_wa.h"
@@ -770,6 +772,9 @@ void xe_debugfs_register(struct xe_device *xe)
 
 	xe_fault_inject_debugfs_register(xe, root);
 
+	if (xe->info.has_sysctrl)
+		xe_sysctrl_debugfs_register(&xe->sc, root);
+
 	if (IS_SRIOV_PF(xe))
 		xe_sriov_pf_debugfs_register(xe, root);
 	else if (IS_SRIOV_VF(xe))
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
new file mode 100644
index 000000000000..0238ff093831
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#include <linux/debugfs.h>
+
+#include "xe_device.h"
+#include "xe_sysctrl.h"
+#include "xe_sysctrl_debugfs.h"
+#include "xe_sysctrl_types.h"
+
+/**
+ * xe_sysctrl_debugfs_register - Register debugfs entries for System Controller
+ * @sc: xe_sysctrl instance
+ * @parent: parent debugfs directory
+ */
+void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent)
+{
+	struct dentry *root;
+
+	root = debugfs_create_dir("sc", parent);
+	if (IS_ERR(root))
+		return;
+
+	sc->debugfs.root = root;
+}
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.h b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.h
new file mode 100644
index 000000000000..d1414ac3562e
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2026 Intel Corporation
+ */
+
+#ifndef _XE_SYSCTRL_DEBUGFS_H_
+#define _XE_SYSCTRL_DEBUGFS_H_
+
+struct dentry;
+struct xe_sysctrl;
+
+void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent);
+
+#endif
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h b/drivers/gpu/drm/xe/xe_sysctrl_types.h
index 66ba24f43017..d50a35fefb7a 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
@@ -11,6 +11,7 @@
 #include <linux/workqueue_types.h>
 
 struct xe_mmio;
+struct dentry;
 
 /**
  * struct xe_sysctrl - System Controller driver context
@@ -34,6 +35,12 @@ struct xe_sysctrl {
 
 	/** @event_lock: Mutex protecting pending events */
 	struct mutex event_lock;
+
+	/** @debugfs: Debugfs entries */
+	struct {
+		/** @debugfs.root: Root debugfs directory */
+		struct dentry *root;
+	} debugfs;
 };
 
 #endif
-- 
2.43.0


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

* [PATCH v3 3/4] drm/xe/sysctrl: Add loopback test debugfs interface
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
  2026-08-07 14:56 ` [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
  2026-08-07 14:56 ` [PATCH v3 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure Anoop, Vijay
@ 2026-08-07 14:56 ` Anoop, Vijay
  2026-08-07 14:56 ` [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection " Anoop, Vijay
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Anoop, Vijay @ 2026-08-07 14:56 UTC (permalink / raw)
  To: intel-xe
  Cc: umesh.nerlige.ramappa, badal.nilawar, rodrigo.vivi,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim,
	anoop.c.vijay

From: Anoop Vijay <anoop.c.vijay@intel.com>

Add debugfs interface for testing sysctrl mailbox loopback
functionality. This allows userspace to send test payloads
and verify firmware communication.

Command details:
- Group ID: 0xFF (core group)
- Command ID: 0x03 (Inverted loopback)
- Usage: echo "0x11 0x22 0x33 0x44" > /sys/kernel/debug/dri/0/sc/loopback
         cat /sys/kernel/debug/dri/0/sc/loopback

Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c       | 130 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h |   2 +
 drivers/gpu/drm/xe/xe_sysctrl_types.h         |  28 ++++
 3 files changed, 160 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
index 0238ff093831..2144d9d43fba 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
@@ -3,13 +3,139 @@
  * Copyright © 2026 Intel Corporation
  */
 
+#include <linux/cleanup.h>
 #include <linux/debugfs.h>
+#include <linux/err.h>
+#include <linux/kstrtox.h>
+#include <linux/seq_file.h>
+#include <linux/slab.h>
+#include <linux/string.h>
+#include <linux/uaccess.h>
 
 #include "xe_device.h"
+#include "xe_pm.h"
+#include "xe_printk.h"
 #include "xe_sysctrl.h"
 #include "xe_sysctrl_debugfs.h"
+#include "xe_sysctrl_mailbox.h"
+#include "xe_sysctrl_mailbox_types.h"
 #include "xe_sysctrl_types.h"
 
+static ssize_t xe_sysctrl_loopback_write(struct file *file, const char __user *ubuf,
+					 size_t len, loff_t *offp)
+{
+	char *kbuf __free(kfree) = NULL;
+	u8 *input __free(kfree) = NULL;
+	struct seq_file *m = file->private_data;
+	struct xe_sysctrl_debugfs_entry *entry = m->private;
+	struct xe_device *xe = sc_to_xe(entry->sc);
+	struct xe_sysctrl_mailbox_command cmd = {};
+	char *token, *tmp;
+	unsigned long val;
+	size_t input_len = 0;
+	size_t max_input;
+	size_t out_len = 0;
+
+	if (len == 0 || len >= PAGE_SIZE)
+		return -EINVAL;
+
+	kbuf = kmalloc(len + 1, GFP_KERNEL);
+	if (!kbuf)
+		return -ENOMEM;
+
+	max_input = min_t(size_t, len, XE_SYSCTRL_MB_MAX_MESSAGE_SIZE);
+	input = kmalloc(max_input, GFP_KERNEL);
+	if (!input)
+		return -ENOMEM;
+
+	if (copy_from_user(kbuf, ubuf, len))
+		return -EFAULT;
+	kbuf[len] = '\0';
+
+	tmp = kbuf;
+	while ((token = strsep(&tmp, " \t\n")) != NULL) {
+		if (*token == '\0')
+			continue;
+
+		if (input_len >= max_input) {
+			xe_err(xe, "sysctrl: loopback payload too large (max %d bytes)\n",
+			       XE_SYSCTRL_MB_MAX_MESSAGE_SIZE);
+			return -EINVAL;
+		}
+
+		if (kstrtoul(token, 0, &val) || val > 0xFF) {
+			xe_err(xe, "sysctrl: invalid loopback token '%s'\n", token);
+			return -EINVAL;
+		}
+
+		input[input_len++] = (u8)val;
+	}
+
+	if (input_len == 0) {
+		xe_err(xe, "sysctrl: no loopback payload given\n");
+		return -EINVAL;
+	}
+
+	xe_sysctrl_create_command(&cmd, entry->group, entry->command,
+				  input, input_len, entry->response_buf, input_len);
+
+	guard(xe_pm_runtime)(xe);
+	entry->status = xe_sysctrl_send_command(entry->sc, &cmd, &out_len);
+	entry->response_len = entry->status ? 0 : out_len;
+
+	return entry->status ? entry->status : len;
+}
+
+static int xe_sysctrl_loopback_show(struct seq_file *m, void *data)
+{
+	struct xe_sysctrl_debugfs_entry *entry = m->private;
+	size_t i;
+
+	seq_printf(m, "Command: group=0x%02x cmd=0x%02x\n", entry->group, entry->command);
+	seq_printf(m, "Status: %d (%s)\n", entry->status, entry->status ? "FAILED" : "SUCCESS");
+	seq_printf(m, "Response: %zu bytes\n", entry->response_len);
+
+	if (entry->response_len) {
+		seq_puts(m, "Response data:\n");
+		for (i = 0; i < entry->response_len; i++) {
+			if (i && (i % 16) == 0)
+				seq_putc(m, '\n');
+			seq_printf(m, "%02x ", entry->response_buf[i]);
+		}
+		seq_putc(m, '\n');
+	}
+
+	return 0;
+}
+
+static int xe_sysctrl_loopback_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, xe_sysctrl_loopback_show, inode->i_private);
+}
+
+static const struct file_operations xe_sysctrl_loopback_fops = {
+	.owner = THIS_MODULE,
+	.open = xe_sysctrl_loopback_open,
+	.read = seq_read,
+	.write = xe_sysctrl_loopback_write,
+	.llseek = seq_lseek,
+	.release = single_release,
+};
+
+static void xe_sysctrl_register_entry(struct dentry *root, struct xe_sysctrl_debugfs_entry *entry,
+				      struct xe_sysctrl *sc, const char *name,
+				      u8 group, u8 command,
+				      const struct file_operations *fops)
+{
+	entry->sc = sc;
+	entry->group = group;
+	entry->command = command;
+	entry->response_len = 0;
+	entry->status = 0;
+
+	debugfs_create_file(name, 0644, root, entry, fops);
+}
+
 /**
  * xe_sysctrl_debugfs_register - Register debugfs entries for System Controller
  * @sc: xe_sysctrl instance
@@ -24,4 +150,8 @@ void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent)
 		return;
 
 	sc->debugfs.root = root;
+
+	xe_sysctrl_register_entry(root, &sc->debugfs.loopback, sc, "loopback",
+				  XE_SYSCTRL_GROUP_CORE, XE_SYSCTRL_CMD_LOOPBACK,
+				  &xe_sysctrl_loopback_fops);
 }
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index b507e1553cbb..ed80fe63e1c4 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -43,9 +43,11 @@ enum xe_sysctrl_gfsp_cmd {
 /**
  * enum xe_sysctrl_core_cmd - Commands supported by Core group
  *
+ * @XE_SYSCTRL_CMD_LOOPBACK: Loopback test command
  * @XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID: Retrieve application status by ID
  */
 enum xe_sysctrl_core_cmd {
+	XE_SYSCTRL_CMD_LOOPBACK				= 0x03,
 	XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID		= 0x05,
 };
 
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h b/drivers/gpu/drm/xe/xe_sysctrl_types.h
index d50a35fefb7a..53d82e61383a 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
@@ -10,9 +10,34 @@
 #include <linux/types.h>
 #include <linux/workqueue_types.h>
 
+#include "xe_sysctrl_mailbox_types.h"
+
 struct xe_mmio;
 struct dentry;
 
+/**
+ * struct xe_sysctrl_debugfs_entry - Debugfs entry for a raw mailbox test command
+ */
+struct xe_sysctrl_debugfs_entry {
+	/** @sc: Back pointer to parent sysctrl instance */
+	struct xe_sysctrl *sc;
+
+	/** @group: Command group ID */
+	u8 group;
+
+	/** @command: Command ID within group */
+	u8 command;
+
+	/** @response_buf: Response data buffer, sized to the maximum mailbox message */
+	u8 response_buf[XE_SYSCTRL_MB_MAX_MESSAGE_SIZE];
+
+	/** @response_len: Actual response length from firmware */
+	size_t response_len;
+
+	/** @status: Last command result */
+	int status;
+};
+
 /**
  * struct xe_sysctrl - System Controller driver context
  *
@@ -40,6 +65,9 @@ struct xe_sysctrl {
 	struct {
 		/** @debugfs.root: Root debugfs directory */
 		struct dentry *root;
+
+		/** @debugfs.loopback: Loopback test entry */
+		struct xe_sysctrl_debugfs_entry loopback;
 	} debugfs;
 };
 
-- 
2.43.0


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

* [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection debugfs interface
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
                   ` (2 preceding siblings ...)
  2026-08-07 14:56 ` [PATCH v3 3/4] drm/xe/sysctrl: Add loopback test debugfs interface Anoop, Vijay
@ 2026-08-07 14:56 ` Anoop, Vijay
  2026-08-07 15:15   ` Gupta, Anshuman
  2026-08-07 15:02 ` ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev3) Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Anoop, Vijay @ 2026-08-07 14:56 UTC (permalink / raw)
  To: intel-xe
  Cc: umesh.nerlige.ramappa, badal.nilawar, rodrigo.vivi,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim,
	anoop.c.vijay

From: Anoop Vijay <anoop.c.vijay@intel.com>

Add debugfs interface for exercising System Controller's RAS error
injection command, used to validate RAS error detection and recovery
paths.

Command details:
- Group ID: 0x02 (diag group)
- Command ID: 0x7E (XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT)
- Usage: echo "<ras_block_id> <ras_sub_block_id> <err_type> [params]" \
             > /sys/kernel/debug/dri/0/sc/ras_error_inject
         cat /sys/kernel/debug/dri/0/sc/ras_error_inject

This command requires the diag application to have completed firmware
boot and initialization (late-bind loaded); writes are rejected with
-ENODEV until xe_sysctrl_is_diag_fw_ready() reports the diag firmware
as ready.

Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c       | 123 ++++++++++++++++++
 drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h |  31 +++++
 drivers/gpu/drm/xe/xe_sysctrl_types.h         |   3 +
 3 files changed, 157 insertions(+)

diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
index 2144d9d43fba..7b8846d739cb 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
@@ -10,6 +10,7 @@
 #include <linux/seq_file.h>
 #include <linux/slab.h>
 #include <linux/string.h>
+#include <linux/string_choices.h>
 #include <linux/uaccess.h>
 
 #include "xe_device.h"
@@ -122,6 +123,124 @@ static const struct file_operations xe_sysctrl_loopback_fops = {
 	.release = single_release,
 };
 
+static ssize_t xe_sysctrl_ras_error_inject_write(struct file *file, const char __user *ubuf,
+						 size_t len, loff_t *offp)
+{
+	char *kbuf __free(kfree) = NULL;
+	struct seq_file *m = file->private_data;
+	struct xe_sysctrl_debugfs_entry *entry = m->private;
+	struct xe_device *xe = sc_to_xe(entry->sc);
+	struct xe_sysctrl_diag_ras_err_inj_req req = {};
+	struct xe_sysctrl_mailbox_command cmd = {};
+	u8 resp_hdr_only[sizeof(u32)];
+	unsigned int nfields = 0;
+	char *token, *tmp;
+	unsigned long val;
+	size_t out_len = 0;
+
+	if (!xe_sysctrl_is_diag_fw_ready(xe)) {
+		xe_err(xe, "sysctrl: diag firmware not ready, cannot inject RAS error\n");
+		return -ENODEV;
+	}
+
+	if (len == 0 || len >= PAGE_SIZE)
+		return -EINVAL;
+
+	kbuf = kmalloc(len + 1, GFP_KERNEL);
+	if (!kbuf)
+		return -ENOMEM;
+
+	if (copy_from_user(kbuf, ubuf, len))
+		return -EFAULT;
+	kbuf[len] = '\0';
+
+	tmp = kbuf;
+	while ((token = strsep(&tmp, " \t\n")) != NULL) {
+		if (*token == '\0')
+			continue;
+
+		if (kstrtoul(token, 0, &val))
+			goto inval;
+
+		switch (nfields) {
+		case 0:
+			if (val > U16_MAX)
+				goto inval;
+			req.ras_block_id = val;
+			break;
+		case 1:
+			if (val > U16_MAX)
+				goto inval;
+			req.ras_sub_block_id = val;
+			break;
+		case 2:
+			if (val > U16_MAX)
+				goto inval;
+			req.err_type = val;
+			break;
+		case 3:
+			if (val > U32_MAX)
+				goto inval;
+			req.params = val;
+			break;
+		default:
+			xe_err(xe, "sysctrl: too many ras_error_inject arguments\n");
+			return -EINVAL;
+		}
+		nfields++;
+	}
+
+	if (nfields < 3) {
+		xe_err(xe,
+		       "sysctrl: usage: <ras_block_id> <ras_sub_block_id> <err_type> [params]\n");
+		return -EINVAL;
+	}
+
+	xe_sysctrl_create_command(&cmd, entry->group, entry->command,
+				  &req, sizeof(req), resp_hdr_only,
+				  sizeof(resp_hdr_only));
+
+	guard(xe_pm_runtime)(xe);
+	entry->status = xe_sysctrl_send_command(entry->sc, &cmd, &out_len);
+
+	return entry->status ? entry->status : len;
+
+inval:
+	xe_err(xe, "sysctrl: invalid ras_error_inject token '%s'\n", token);
+	return -EINVAL;
+}
+
+static int xe_sysctrl_ras_error_inject_show(struct seq_file *m, void *data)
+{
+	struct xe_sysctrl_debugfs_entry *entry = m->private;
+	struct xe_device *xe = sc_to_xe(entry->sc);
+
+	seq_printf(m, "Command: group=0x%02x cmd=0x%02x\n", entry->group, entry->command);
+	seq_printf(m, "Diag firmware ready: %s\n",
+		   str_yes_no(xe_sysctrl_is_diag_fw_ready(xe)));
+	seq_printf(m, "Status: %d (%s)\n", entry->status, entry->status ? "FAILED" : "SUCCESS");
+
+	seq_puts(m, "\nUsage:\n");
+	seq_puts(m, "  echo \"<ras_block_id> <ras_sub_block_id> <err_type> [params]\" > ras_error_inject\n");
+	seq_puts(m, "  cat ras_error_inject\n");
+
+	return 0;
+}
+
+static int xe_sysctrl_ras_error_inject_open(struct inode *inode, struct file *file)
+{
+	return single_open(file, xe_sysctrl_ras_error_inject_show, inode->i_private);
+}
+
+static const struct file_operations xe_sysctrl_ras_error_inject_fops = {
+	.owner = THIS_MODULE,
+	.open = xe_sysctrl_ras_error_inject_open,
+	.read = seq_read,
+	.write = xe_sysctrl_ras_error_inject_write,
+	.llseek = seq_lseek,
+	.release = single_release,
+};
+
 static void xe_sysctrl_register_entry(struct dentry *root, struct xe_sysctrl_debugfs_entry *entry,
 				      struct xe_sysctrl *sc, const char *name,
 				      u8 group, u8 command,
@@ -154,4 +273,8 @@ void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent)
 	xe_sysctrl_register_entry(root, &sc->debugfs.loopback, sc, "loopback",
 				  XE_SYSCTRL_GROUP_CORE, XE_SYSCTRL_CMD_LOOPBACK,
 				  &xe_sysctrl_loopback_fops);
+
+	xe_sysctrl_register_entry(root, &sc->debugfs.ras_error_inject, sc, "ras_error_inject",
+				  XE_SYSCTRL_GROUP_DIAG, XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT,
+				  &xe_sysctrl_ras_error_inject_fops);
 }
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index ed80fe63e1c4..43ae0049b316 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -14,10 +14,12 @@
  * enum xe_sysctrl_group - System Controller command groups
  *
  * @XE_SYSCTRL_GROUP_GFSP: GFSP group
+ * @XE_SYSCTRL_GROUP_DIAG: Diag group
  * @XE_SYSCTRL_GROUP_CORE: Core group
  */
 enum xe_sysctrl_group {
 	XE_SYSCTRL_GROUP_GFSP			= 0x01,
+	XE_SYSCTRL_GROUP_DIAG			= 0x02,
 	XE_SYSCTRL_GROUP_CORE			= 0xFF,
 };
 
@@ -51,6 +53,35 @@ enum xe_sysctrl_core_cmd {
 	XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID		= 0x05,
 };
 
+/**
+ * enum xe_sysctrl_diag_cmd - Commands supported by Diag group
+ *
+ * @XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT: RAS error injection
+ */
+enum xe_sysctrl_diag_cmd {
+	XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT		= 0x7E,
+};
+
+/**
+ * struct xe_sysctrl_diag_ras_err_inj_req - DIAG_RAS_ERR_INJECT request payload
+ *
+ * Request payload for XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT. The mailbox layer
+ * prepends the application message header before sending.
+ *
+ * @ras_block_id: RAS block (subsystem) to inject the error into
+ * @ras_sub_block_id: RAS sub-block (IP) within @ras_block_id
+ * @err_type: Type of test error to inject
+ * @reserved: Must be zero
+ * @params: Optional injection parameters (default 0)
+ */
+struct xe_sysctrl_diag_ras_err_inj_req {
+	u16 ras_block_id;
+	u16 ras_sub_block_id;
+	u16 err_type;
+	u16 reserved;
+	u32 params;
+} __packed;
+
 /**
  * struct xe_sysctrl_app_status_req - Get application status request
  *
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h b/drivers/gpu/drm/xe/xe_sysctrl_types.h
index 53d82e61383a..3a97a10d1b7d 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
@@ -68,6 +68,9 @@ struct xe_sysctrl {
 
 		/** @debugfs.loopback: Loopback test entry */
 		struct xe_sysctrl_debugfs_entry loopback;
+
+		/** @debugfs.ras_error_inject: RAS error injection test entry */
+		struct xe_sysctrl_debugfs_entry ras_error_inject;
 	} debugfs;
 };
 
-- 
2.43.0


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

* ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev3)
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
                   ` (3 preceding siblings ...)
  2026-08-07 14:56 ` [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection " Anoop, Vijay
@ 2026-08-07 15:02 ` Patchwork
  2026-08-07 15:03 ` ✓ CI.KUnit: success " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-08-07 15:02 UTC (permalink / raw)
  To: Anoop, Vijay; +Cc: intel-xe

== Series Details ==

Series: drm/xe/sysctrl: Add System Controller debugfs (rev3)
URL   : https://patchwork.freedesktop.org/series/161655/
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
061140b9bc586ae7f40abc1249c97e1cc72d1b9d
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit cb44d410f96f4bfb2bae35dcbf54566cd80a64f8
Author: Anoop Vijay <anoop.c.vijay@intel.com>
Date:   Fri Aug 7 07:56:25 2026 -0700

    drm/xe/sysctrl: Add RAS error injection debugfs interface
    
    Add debugfs interface for exercising System Controller's RAS error
    injection command, used to validate RAS error detection and recovery
    paths.
    
    Command details:
    - Group ID: 0x02 (diag group)
    - Command ID: 0x7E (XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT)
    - Usage: echo "<ras_block_id> <ras_sub_block_id> <err_type> [params]" \
                 > /sys/kernel/debug/dri/0/sc/ras_error_inject
             cat /sys/kernel/debug/dri/0/sc/ras_error_inject
    
    This command requires the diag application to have completed firmware
    boot and initialization (late-bind loaded); writes are rejected with
    -ENODEV until xe_sysctrl_is_diag_fw_ready() reports the diag firmware
    as ready.
    
    Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
+ /mt/dim checkpatch 01d30c194951b8794c33f0d7f559bc4a1c9b7630 drm-intel
ceb6566b21b3 drm/xe/sysctrl: Add System Controller get application status
2bc4aa43d021 drm/xe/sysctrl: Add sysctrl debugfs infrastructure
-:55: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#55: 
new file mode 100644

total: 0 errors, 1 warnings, 0 checks, 84 lines checked
e83b5479b7c8 drm/xe/sysctrl: Add loopback test debugfs interface
cb44d410f96f drm/xe/sysctrl: Add RAS error injection debugfs interface



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

* ✓ CI.KUnit: success for drm/xe/sysctrl: Add System Controller debugfs (rev3)
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
                   ` (4 preceding siblings ...)
  2026-08-07 15:02 ` ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev3) Patchwork
@ 2026-08-07 15:03 ` Patchwork
  2026-08-07 16:05 ` ✓ Xe.CI.BAT: " Patchwork
  2026-08-08  0:43 ` ✗ Xe.CI.FULL: failure " Patchwork
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-08-07 15:03 UTC (permalink / raw)
  To: Anoop, Vijay; +Cc: intel-xe

== Series Details ==

Series: drm/xe/sysctrl: Add System Controller debugfs (rev3)
URL   : https://patchwork.freedesktop.org/series/161655/
State : success

== Summary ==

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

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

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

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



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

* RE: [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection debugfs interface
  2026-08-07 14:56 ` [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection " Anoop, Vijay
@ 2026-08-07 15:15   ` Gupta, Anshuman
  2026-08-07 18:49     ` Rodrigo Vivi
  0 siblings, 1 reply; 13+ messages in thread
From: Gupta, Anshuman @ 2026-08-07 15:15 UTC (permalink / raw)
  To: Vijay, Anoop C, intel-xe@lists.freedesktop.org
  Cc: Nerlige Ramappa, Umesh, Nilawar, Badal, Vivi, Rodrigo,
	Iddamsetty, Aravind, Tauro, Riana, Roper, Matthew D,
	Ruhl, Michael J, Luse, Paul E, V, Mohamed Mansoor, Nasim, Kam



> -----Original Message-----
> From: Vijay, Anoop C <anoop.c.vijay@intel.com>
> Sent: Friday, August 7, 2026 8:26 PM
> To: intel-xe@lists.freedesktop.org
> Cc: Nerlige Ramappa, Umesh <umesh.nerlige.ramappa@intel.com>; Nilawar,
> Badal <badal.nilawar@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Tauro, Riana
> <riana.tauro@intel.com>; Gupta, Anshuman <anshuman.gupta@intel.com>;
> Roper, Matthew D <matthew.d.roper@intel.com>; Ruhl, Michael J
> <michael.j.ruhl@intel.com>; Luse, Paul E <paul.e.luse@intel.com>; V,
> Mohamed Mansoor <mohamed.mansoor.v@intel.com>; Nasim, Kam
> <kam.nasim@intel.com>; Vijay, Anoop C <anoop.c.vijay@intel.com>
> Subject: [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection debugfs
> interface
> 
> From: Anoop Vijay <anoop.c.vijay@intel.com>
> 
> Add debugfs interface for exercising System Controller's RAS error injection
> command, used to validate RAS error detection and recovery paths.
> 
> Command details:
> - Group ID: 0x02 (diag group)
> - Command ID: 0x7E (XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT)
> - Usage: echo "<ras_block_id> <ras_sub_block_id> <err_type> [params]" \
>              > /sys/kernel/debug/dri/0/sc/ras_error_inject
>          cat /sys/kernel/debug/dri/0/sc/ras_error_inject
> 
> This command requires the diag application to have completed firmware
> boot and initialization (late-bind loaded); writes are rejected with -ENODEV
> until xe_sysctrl_is_diag_fw_ready() reports the diag firmware as ready.
> 
> Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_sysctrl_debugfs.c       | 123 ++++++++++++++++++
>  drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h |  31 +++++
>  drivers/gpu/drm/xe/xe_sysctrl_types.h         |   3 +
>  3 files changed, 157 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> index 2144d9d43fba..7b8846d739cb 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> @@ -10,6 +10,7 @@
>  #include <linux/seq_file.h>
>  #include <linux/slab.h>
>  #include <linux/string.h>
> +#include <linux/string_choices.h>
>  #include <linux/uaccess.h>
> 
>  #include "xe_device.h"
> @@ -122,6 +123,124 @@ static const struct file_operations
> xe_sysctrl_loopback_fops = {
>  	.release = single_release,
>  };
> 
> +static ssize_t xe_sysctrl_ras_error_inject_write(struct file *file, const char
> __user *ubuf,
> +						 size_t len, loff_t *offp)
> +{
> +	char *kbuf __free(kfree) = NULL;
> +	struct seq_file *m = file->private_data;
> +	struct xe_sysctrl_debugfs_entry *entry = m->private;
> +	struct xe_device *xe = sc_to_xe(entry->sc);
> +	struct xe_sysctrl_diag_ras_err_inj_req req = {};
> +	struct xe_sysctrl_mailbox_command cmd = {};
> +	u8 resp_hdr_only[sizeof(u32)];
> +	unsigned int nfields = 0;
> +	char *token, *tmp;
> +	unsigned long val;
> +	size_t out_len = 0;
> +
> +	if (!xe_sysctrl_is_diag_fw_ready(xe)) {
> +		xe_err(xe, "sysctrl: diag firmware not ready, cannot inject RAS
> error\n");
Wild thought, 
How it would be register the debugfs only if  diag firmware is loaded ?
That way nobody will be having access to these debugfs ? 

Thanks,
Anshuman.

> +		return -ENODEV;
> +	}
> +
> +	if (len == 0 || len >= PAGE_SIZE)
> +		return -EINVAL;
> +
> +	kbuf = kmalloc(len + 1, GFP_KERNEL);
> +	if (!kbuf)
> +		return -ENOMEM;
> +
> +	if (copy_from_user(kbuf, ubuf, len))
> +		return -EFAULT;
> +	kbuf[len] = '\0';
> +
> +	tmp = kbuf;
> +	while ((token = strsep(&tmp, " \t\n")) != NULL) {
> +		if (*token == '\0')
> +			continue;
> +
> +		if (kstrtoul(token, 0, &val))
> +			goto inval;
> +
> +		switch (nfields) {
> +		case 0:
> +			if (val > U16_MAX)
> +				goto inval;
> +			req.ras_block_id = val;
> +			break;
> +		case 1:
> +			if (val > U16_MAX)
> +				goto inval;
> +			req.ras_sub_block_id = val;
> +			break;
> +		case 2:
> +			if (val > U16_MAX)
> +				goto inval;
> +			req.err_type = val;
> +			break;
> +		case 3:
> +			if (val > U32_MAX)
> +				goto inval;
> +			req.params = val;
> +			break;
> +		default:
> +			xe_err(xe, "sysctrl: too many ras_error_inject
> arguments\n");
> +			return -EINVAL;
> +		}
> +		nfields++;
> +	}
> +
> +	if (nfields < 3) {
> +		xe_err(xe,
> +		       "sysctrl: usage: <ras_block_id> <ras_sub_block_id>
> <err_type> [params]\n");
> +		return -EINVAL;
> +	}
> +
> +	xe_sysctrl_create_command(&cmd, entry->group, entry->command,
> +				  &req, sizeof(req), resp_hdr_only,
> +				  sizeof(resp_hdr_only));
> +
> +	guard(xe_pm_runtime)(xe);
> +	entry->status = xe_sysctrl_send_command(entry->sc, &cmd,
> &out_len);
> +
> +	return entry->status ? entry->status : len;
> +
> +inval:
> +	xe_err(xe, "sysctrl: invalid ras_error_inject token '%s'\n", token);
> +	return -EINVAL;
> +}
> +
> +static int xe_sysctrl_ras_error_inject_show(struct seq_file *m, void
> +*data) {
> +	struct xe_sysctrl_debugfs_entry *entry = m->private;
> +	struct xe_device *xe = sc_to_xe(entry->sc);
> +
> +	seq_printf(m, "Command: group=0x%02x cmd=0x%02x\n", entry-
> >group, entry->command);
> +	seq_printf(m, "Diag firmware ready: %s\n",
> +		   str_yes_no(xe_sysctrl_is_diag_fw_ready(xe)));
> +	seq_printf(m, "Status: %d (%s)\n", entry->status, entry->status ?
> +"FAILED" : "SUCCESS");
> +
> +	seq_puts(m, "\nUsage:\n");
> +	seq_puts(m, "  echo \"<ras_block_id> <ras_sub_block_id>
> <err_type> [params]\" > ras_error_inject\n");
> +	seq_puts(m, "  cat ras_error_inject\n");
> +
> +	return 0;
> +}
> +
> +static int xe_sysctrl_ras_error_inject_open(struct inode *inode, struct
> +file *file) {
> +	return single_open(file, xe_sysctrl_ras_error_inject_show,
> +inode->i_private); }
> +
> +static const struct file_operations xe_sysctrl_ras_error_inject_fops = {
> +	.owner = THIS_MODULE,
> +	.open = xe_sysctrl_ras_error_inject_open,
> +	.read = seq_read,
> +	.write = xe_sysctrl_ras_error_inject_write,
> +	.llseek = seq_lseek,
> +	.release = single_release,
> +};
> +
>  static void xe_sysctrl_register_entry(struct dentry *root, struct
> xe_sysctrl_debugfs_entry *entry,
>  				      struct xe_sysctrl *sc, const char *name,
>  				      u8 group, u8 command,
> @@ -154,4 +273,8 @@ void xe_sysctrl_debugfs_register(struct xe_sysctrl
> *sc, struct dentry *parent)
>  	xe_sysctrl_register_entry(root, &sc->debugfs.loopback, sc,
> "loopback",
>  				  XE_SYSCTRL_GROUP_CORE,
> XE_SYSCTRL_CMD_LOOPBACK,
>  				  &xe_sysctrl_loopback_fops);
> +
> +	xe_sysctrl_register_entry(root, &sc->debugfs.ras_error_inject, sc,
> "ras_error_inject",
> +				  XE_SYSCTRL_GROUP_DIAG,
> XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT,
> +				  &xe_sysctrl_ras_error_inject_fops);
>  }
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> index ed80fe63e1c4..43ae0049b316 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> @@ -14,10 +14,12 @@
>   * enum xe_sysctrl_group - System Controller command groups
>   *
>   * @XE_SYSCTRL_GROUP_GFSP: GFSP group
> + * @XE_SYSCTRL_GROUP_DIAG: Diag group
>   * @XE_SYSCTRL_GROUP_CORE: Core group
>   */
>  enum xe_sysctrl_group {
>  	XE_SYSCTRL_GROUP_GFSP			= 0x01,
> +	XE_SYSCTRL_GROUP_DIAG			= 0x02,
>  	XE_SYSCTRL_GROUP_CORE			= 0xFF,
>  };
> 
> @@ -51,6 +53,35 @@ enum xe_sysctrl_core_cmd {
>  	XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID		= 0x05,
>  };
> 
> +/**
> + * enum xe_sysctrl_diag_cmd - Commands supported by Diag group
> + *
> + * @XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT: RAS error injection  */
> enum
> +xe_sysctrl_diag_cmd {
> +	XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT		= 0x7E,
> +};
> +
> +/**
> + * struct xe_sysctrl_diag_ras_err_inj_req - DIAG_RAS_ERR_INJECT request
> +payload
> + *
> + * Request payload for XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT. The
> mailbox
> +layer
> + * prepends the application message header before sending.
> + *
> + * @ras_block_id: RAS block (subsystem) to inject the error into
> + * @ras_sub_block_id: RAS sub-block (IP) within @ras_block_id
> + * @err_type: Type of test error to inject
> + * @reserved: Must be zero
> + * @params: Optional injection parameters (default 0)  */ struct
> +xe_sysctrl_diag_ras_err_inj_req {
> +	u16 ras_block_id;
> +	u16 ras_sub_block_id;
> +	u16 err_type;
> +	u16 reserved;
> +	u32 params;
> +} __packed;
> +
>  /**
>   * struct xe_sysctrl_app_status_req - Get application status request
>   *
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h
> b/drivers/gpu/drm/xe/xe_sysctrl_types.h
> index 53d82e61383a..3a97a10d1b7d 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
> @@ -68,6 +68,9 @@ struct xe_sysctrl {
> 
>  		/** @debugfs.loopback: Loopback test entry */
>  		struct xe_sysctrl_debugfs_entry loopback;
> +
> +		/** @debugfs.ras_error_inject: RAS error injection test entry
> */
> +		struct xe_sysctrl_debugfs_entry ras_error_inject;
>  	} debugfs;
>  };
> 
> --
> 2.43.0


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

* ✓ Xe.CI.BAT: success for drm/xe/sysctrl: Add System Controller debugfs (rev3)
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
                   ` (5 preceding siblings ...)
  2026-08-07 15:03 ` ✓ CI.KUnit: success " Patchwork
@ 2026-08-07 16:05 ` Patchwork
  2026-08-08  0:43 ` ✗ Xe.CI.FULL: failure " Patchwork
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-08-07 16:05 UTC (permalink / raw)
  To: Anoop, Vijay; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/sysctrl: Add System Controller debugfs (rev3)
URL   : https://patchwork.freedesktop.org/series/161655/
State : success

== Summary ==

CI Bug Log - changes from xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630_BAT -> xe-pw-161655v3_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

  Additional (2): bat-nvls-2 bat-wcl-2 

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

  Here are the changes found in xe-pw-161655v3_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@eof:
    - bat-wcl-2:          NOTRUN -> [SKIP][1] ([Intel XE#7241]) +4 other tests skip
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@fbdev@eof.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-wcl-2:          NOTRUN -> [SKIP][2] ([Intel XE#7245])
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-wcl-2:          NOTRUN -> [SKIP][3] ([Intel XE#7240]) +3 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@kms_flip@basic-flip-vs-wf_vblank.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-wcl-2:          NOTRUN -> [SKIP][4] ([Intel XE#7246])
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@hang-read-crc:
    - bat-wcl-2:          NOTRUN -> [SKIP][5] ([Intel XE#7237]) +13 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@kms_pipe_crc_basic@hang-read-crc.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - bat-wcl-2:          NOTRUN -> [SKIP][6] ([Intel XE#2850]) +2 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@kms_psr@psr-sprite-plane-onoff.html

  * igt@xe_evict@evict-small-multi-vm:
    - bat-wcl-2:          NOTRUN -> [SKIP][7] ([Intel XE#7238]) +11 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_evict@evict-small-multi-vm.html

  * igt@xe_exec_balancer@twice-virtual-userptr-rebind:
    - bat-wcl-2:          NOTRUN -> [SKIP][8] ([Intel XE#7482]) +17 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_exec_balancer@twice-virtual-userptr-rebind.html

  * igt@xe_exec_multi_queue@many-queues-userptr-invalidate:
    - bat-wcl-2:          NOTRUN -> [SKIP][9] ([Intel XE#8364]) +13 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_exec_multi_queue@many-queues-userptr-invalidate.html

  * igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
    - bat-wcl-2:          NOTRUN -> [SKIP][10] ([Intel XE#7239]) +2 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html

  * igt@xe_mmap@vram:
    - bat-wcl-2:          NOTRUN -> [SKIP][11] ([Intel XE#7243])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_mmap@vram.html

  * igt@xe_pat@pat-index-xehpc:
    - bat-wcl-2:          NOTRUN -> [SKIP][12] ([Intel XE#7247] / [Intel XE#7590])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_pat@pat-index-xehpc.html

  * igt@xe_pat@pat-index-xelp:
    - bat-wcl-2:          NOTRUN -> [SKIP][13] ([Intel XE#7242] / [Intel XE#7590])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pat@pat-index-xelpg:
    - bat-wcl-2:          NOTRUN -> [SKIP][14] ([Intel XE#7248] / [Intel XE#7590])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-wcl-2/igt@xe_pat@pat-index-xelpg.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - {bat-nvls-1}:       [DMESG-WARN][15] ([Intel XE#8762]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/bat-nvls-1/igt@core_hotunplug@unbind-rebind.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/bat-nvls-1/igt@core_hotunplug@unbind-rebind.html

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

  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#7237]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7237
  [Intel XE#7238]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7238
  [Intel XE#7239]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7239
  [Intel XE#7240]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7240
  [Intel XE#7241]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7241
  [Intel XE#7242]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7242
  [Intel XE#7243]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7243
  [Intel XE#7245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7245
  [Intel XE#7246]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7246
  [Intel XE#7247]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7247
  [Intel XE#7248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7248
  [Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [Intel XE#8377]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8377
  [Intel XE#8741]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8741
  [Intel XE#8742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8742
  [Intel XE#8743]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8743
  [Intel XE#8744]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8744
  [Intel XE#8745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8745
  [Intel XE#8746]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8746
  [Intel XE#8747]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8747
  [Intel XE#8748]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8748
  [Intel XE#8755]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8755
  [Intel XE#8756]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8756
  [Intel XE#8757]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8757
  [Intel XE#8758]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8758
  [Intel XE#8761]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8761
  [Intel XE#8762]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8762
  [Intel XE#8773]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8773
  [Intel XE#8783]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8783
  [Intel XE#8784]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8784


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

  * IGT: IGT_9043 -> IGT_9046
  * Linux: xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630 -> xe-pw-161655v3

  IGT_9043: 9043
  IGT_9046: 9046
  xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630: 01d30c194951b8794c33f0d7f559bc4a1c9b7630
  xe-pw-161655v3: 161655v3

== Logs ==

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

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

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

* Re: [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection debugfs interface
  2026-08-07 15:15   ` Gupta, Anshuman
@ 2026-08-07 18:49     ` Rodrigo Vivi
  0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2026-08-07 18:49 UTC (permalink / raw)
  To: Gupta, Anshuman
  Cc: Vijay, Anoop C, intel-xe@lists.freedesktop.org,
	Nerlige Ramappa, Umesh, Nilawar, Badal, Iddamsetty, Aravind,
	Tauro, Riana, Roper, Matthew D, Ruhl, Michael J, Luse, Paul E,
	V, Mohamed Mansoor, Nasim, Kam

On Fri, Aug 07, 2026 at 11:15:59AM -0400, Gupta, Anshuman wrote:
> 
> 
> > -----Original Message-----
> > From: Vijay, Anoop C <anoop.c.vijay@intel.com>
> > Sent: Friday, August 7, 2026 8:26 PM
> > To: intel-xe@lists.freedesktop.org
> > Cc: Nerlige Ramappa, Umesh <umesh.nerlige.ramappa@intel.com>; Nilawar,
> > Badal <badal.nilawar@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>;
> > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Tauro, Riana
> > <riana.tauro@intel.com>; Gupta, Anshuman <anshuman.gupta@intel.com>;
> > Roper, Matthew D <matthew.d.roper@intel.com>; Ruhl, Michael J
> > <michael.j.ruhl@intel.com>; Luse, Paul E <paul.e.luse@intel.com>; V,
> > Mohamed Mansoor <mohamed.mansoor.v@intel.com>; Nasim, Kam
> > <kam.nasim@intel.com>; Vijay, Anoop C <anoop.c.vijay@intel.com>
> > Subject: [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection debugfs
> > interface
> > 
> > From: Anoop Vijay <anoop.c.vijay@intel.com>
> > 
> > Add debugfs interface for exercising System Controller's RAS error injection
> > command, used to validate RAS error detection and recovery paths.
> > 
> > Command details:
> > - Group ID: 0x02 (diag group)
> > - Command ID: 0x7E (XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT)
> > - Usage: echo "<ras_block_id> <ras_sub_block_id> <err_type> [params]" \
> >              > /sys/kernel/debug/dri/0/sc/ras_error_inject
> >          cat /sys/kernel/debug/dri/0/sc/ras_error_inject
> > 
> > This command requires the diag application to have completed firmware
> > boot and initialization (late-bind loaded); writes are rejected with -ENODEV
> > until xe_sysctrl_is_diag_fw_ready() reports the diag firmware as ready.
> > 
> > Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
> > ---
> >  drivers/gpu/drm/xe/xe_sysctrl_debugfs.c       | 123 ++++++++++++++++++
> >  drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h |  31 +++++
> >  drivers/gpu/drm/xe/xe_sysctrl_types.h         |   3 +
> >  3 files changed, 157 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> > b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> > index 2144d9d43fba..7b8846d739cb 100644
> > --- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> > +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> > @@ -10,6 +10,7 @@
> >  #include <linux/seq_file.h>
> >  #include <linux/slab.h>
> >  #include <linux/string.h>
> > +#include <linux/string_choices.h>
> >  #include <linux/uaccess.h>
> > 
> >  #include "xe_device.h"
> > @@ -122,6 +123,124 @@ static const struct file_operations
> > xe_sysctrl_loopback_fops = {
> >  	.release = single_release,
> >  };
> > 
> > +static ssize_t xe_sysctrl_ras_error_inject_write(struct file *file, const char
> > __user *ubuf,
> > +						 size_t len, loff_t *offp)
> > +{
> > +	char *kbuf __free(kfree) = NULL;
> > +	struct seq_file *m = file->private_data;
> > +	struct xe_sysctrl_debugfs_entry *entry = m->private;
> > +	struct xe_device *xe = sc_to_xe(entry->sc);
> > +	struct xe_sysctrl_diag_ras_err_inj_req req = {};
> > +	struct xe_sysctrl_mailbox_command cmd = {};
> > +	u8 resp_hdr_only[sizeof(u32)];
> > +	unsigned int nfields = 0;
> > +	char *token, *tmp;
> > +	unsigned long val;
> > +	size_t out_len = 0;
> > +
> > +	if (!xe_sysctrl_is_diag_fw_ready(xe)) {
> > +		xe_err(xe, "sysctrl: diag firmware not ready, cannot inject RAS
> > error\n");
> Wild thought, 
> How it would be register the debugfs only if  diag firmware is loaded ?
> That way nobody will be having access to these debugfs ? 

I agree with this. It is better not even register the file if the
firmware is not loaded. So it doesn't even appear in the filesystem.

> 
> Thanks,
> Anshuman.
> 
> > +		return -ENODEV;
> > +	}
> > +
> > +	if (len == 0 || len >= PAGE_SIZE)
> > +		return -EINVAL;
> > +
> > +	kbuf = kmalloc(len + 1, GFP_KERNEL);
> > +	if (!kbuf)
> > +		return -ENOMEM;
> > +
> > +	if (copy_from_user(kbuf, ubuf, len))
> > +		return -EFAULT;
> > +	kbuf[len] = '\0';
> > +
> > +	tmp = kbuf;
> > +	while ((token = strsep(&tmp, " \t\n")) != NULL) {
> > +		if (*token == '\0')
> > +			continue;
> > +
> > +		if (kstrtoul(token, 0, &val))
> > +			goto inval;
> > +
> > +		switch (nfields) {
> > +		case 0:
> > +			if (val > U16_MAX)
> > +				goto inval;
> > +			req.ras_block_id = val;
> > +			break;
> > +		case 1:
> > +			if (val > U16_MAX)
> > +				goto inval;
> > +			req.ras_sub_block_id = val;
> > +			break;
> > +		case 2:
> > +			if (val > U16_MAX)
> > +				goto inval;
> > +			req.err_type = val;
> > +			break;
> > +		case 3:
> > +			if (val > U32_MAX)
> > +				goto inval;
> > +			req.params = val;
> > +			break;
> > +		default:
> > +			xe_err(xe, "sysctrl: too many ras_error_inject
> > arguments\n");
> > +			return -EINVAL;
> > +		}
> > +		nfields++;
> > +	}
> > +
> > +	if (nfields < 3) {
> > +		xe_err(xe,
> > +		       "sysctrl: usage: <ras_block_id> <ras_sub_block_id>
> > <err_type> [params]\n");
> > +		return -EINVAL;
> > +	}
> > +
> > +	xe_sysctrl_create_command(&cmd, entry->group, entry->command,
> > +				  &req, sizeof(req), resp_hdr_only,
> > +				  sizeof(resp_hdr_only));
> > +
> > +	guard(xe_pm_runtime)(xe);
> > +	entry->status = xe_sysctrl_send_command(entry->sc, &cmd,
> > &out_len);
> > +
> > +	return entry->status ? entry->status : len;
> > +
> > +inval:
> > +	xe_err(xe, "sysctrl: invalid ras_error_inject token '%s'\n", token);
> > +	return -EINVAL;
> > +}
> > +
> > +static int xe_sysctrl_ras_error_inject_show(struct seq_file *m, void
> > +*data) {
> > +	struct xe_sysctrl_debugfs_entry *entry = m->private;
> > +	struct xe_device *xe = sc_to_xe(entry->sc);
> > +
> > +	seq_printf(m, "Command: group=0x%02x cmd=0x%02x\n", entry-
> > >group, entry->command);
> > +	seq_printf(m, "Diag firmware ready: %s\n",
> > +		   str_yes_no(xe_sysctrl_is_diag_fw_ready(xe)));
> > +	seq_printf(m, "Status: %d (%s)\n", entry->status, entry->status ?
> > +"FAILED" : "SUCCESS");
> > +
> > +	seq_puts(m, "\nUsage:\n");
> > +	seq_puts(m, "  echo \"<ras_block_id> <ras_sub_block_id>
> > <err_type> [params]\" > ras_error_inject\n");
> > +	seq_puts(m, "  cat ras_error_inject\n");
> > +
> > +	return 0;
> > +}
> > +
> > +static int xe_sysctrl_ras_error_inject_open(struct inode *inode, struct
> > +file *file) {
> > +	return single_open(file, xe_sysctrl_ras_error_inject_show,
> > +inode->i_private); }
> > +
> > +static const struct file_operations xe_sysctrl_ras_error_inject_fops = {
> > +	.owner = THIS_MODULE,
> > +	.open = xe_sysctrl_ras_error_inject_open,
> > +	.read = seq_read,
> > +	.write = xe_sysctrl_ras_error_inject_write,
> > +	.llseek = seq_lseek,
> > +	.release = single_release,
> > +};
> > +
> >  static void xe_sysctrl_register_entry(struct dentry *root, struct
> > xe_sysctrl_debugfs_entry *entry,
> >  				      struct xe_sysctrl *sc, const char *name,
> >  				      u8 group, u8 command,
> > @@ -154,4 +273,8 @@ void xe_sysctrl_debugfs_register(struct xe_sysctrl
> > *sc, struct dentry *parent)
> >  	xe_sysctrl_register_entry(root, &sc->debugfs.loopback, sc,
> > "loopback",
> >  				  XE_SYSCTRL_GROUP_CORE,
> > XE_SYSCTRL_CMD_LOOPBACK,
> >  				  &xe_sysctrl_loopback_fops);
> > +
> > +	xe_sysctrl_register_entry(root, &sc->debugfs.ras_error_inject, sc,
> > "ras_error_inject",
> > +				  XE_SYSCTRL_GROUP_DIAG,
> > XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT,
> > +				  &xe_sysctrl_ras_error_inject_fops);
> >  }
> > diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> > b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> > index ed80fe63e1c4..43ae0049b316 100644
> > --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> > +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> > @@ -14,10 +14,12 @@
> >   * enum xe_sysctrl_group - System Controller command groups
> >   *
> >   * @XE_SYSCTRL_GROUP_GFSP: GFSP group
> > + * @XE_SYSCTRL_GROUP_DIAG: Diag group
> >   * @XE_SYSCTRL_GROUP_CORE: Core group
> >   */
> >  enum xe_sysctrl_group {
> >  	XE_SYSCTRL_GROUP_GFSP			= 0x01,
> > +	XE_SYSCTRL_GROUP_DIAG			= 0x02,
> >  	XE_SYSCTRL_GROUP_CORE			= 0xFF,
> >  };
> > 
> > @@ -51,6 +53,35 @@ enum xe_sysctrl_core_cmd {
> >  	XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID		= 0x05,
> >  };
> > 
> > +/**
> > + * enum xe_sysctrl_diag_cmd - Commands supported by Diag group
> > + *
> > + * @XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT: RAS error injection  */
> > enum
> > +xe_sysctrl_diag_cmd {
> > +	XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT		= 0x7E,
> > +};
> > +
> > +/**
> > + * struct xe_sysctrl_diag_ras_err_inj_req - DIAG_RAS_ERR_INJECT request
> > +payload
> > + *
> > + * Request payload for XE_SYSCTRL_CMD_DIAG_RAS_ERR_INJECT. The
> > mailbox
> > +layer
> > + * prepends the application message header before sending.
> > + *
> > + * @ras_block_id: RAS block (subsystem) to inject the error into
> > + * @ras_sub_block_id: RAS sub-block (IP) within @ras_block_id
> > + * @err_type: Type of test error to inject
> > + * @reserved: Must be zero
> > + * @params: Optional injection parameters (default 0)  */ struct
> > +xe_sysctrl_diag_ras_err_inj_req {
> > +	u16 ras_block_id;
> > +	u16 ras_sub_block_id;
> > +	u16 err_type;
> > +	u16 reserved;
> > +	u32 params;
> > +} __packed;
> > +
> >  /**
> >   * struct xe_sysctrl_app_status_req - Get application status request
> >   *
> > diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h
> > b/drivers/gpu/drm/xe/xe_sysctrl_types.h
> > index 53d82e61383a..3a97a10d1b7d 100644
> > --- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
> > +++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
> > @@ -68,6 +68,9 @@ struct xe_sysctrl {
> > 
> >  		/** @debugfs.loopback: Loopback test entry */
> >  		struct xe_sysctrl_debugfs_entry loopback;
> > +
> > +		/** @debugfs.ras_error_inject: RAS error injection test entry
> > */
> > +		struct xe_sysctrl_debugfs_entry ras_error_inject;
> >  	} debugfs;
> >  };
> > 
> > --
> > 2.43.0
> 

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

* Re: [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status
  2026-08-07 14:56 ` [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
@ 2026-08-07 18:51   ` Rodrigo Vivi
  0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2026-08-07 18:51 UTC (permalink / raw)
  To: Anoop, Vijay
  Cc: intel-xe, umesh.nerlige.ramappa, badal.nilawar,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim

On Fri, Aug 07, 2026 at 07:56:22AM -0700, Anoop, Vijay wrote:
> From: Anoop Vijay <anoop.c.vijay@intel.com>
> 
> Do not review, CI only.

Why is this the case?

Is it part of another series that is under review?
It would be good to put the lore link here if this is the case.

> 
> Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_sysctrl.c               | 82 +++++++++++++++++++
>  drivers/gpu/drm/xe/xe_sysctrl.h               |  2 +
>  drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 65 +++++++++++++++
>  3 files changed, 149 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl.c b/drivers/gpu/drm/xe/xe_sysctrl.c
> index 1db20be8158b..8eac58647265 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl.c
> +++ b/drivers/gpu/drm/xe/xe_sysctrl.c
> @@ -13,9 +13,11 @@
>  #include "xe_device.h"
>  #include "xe_mmio.h"
>  #include "xe_pm.h"
> +#include "xe_printk.h"
>  #include "xe_soc_remapper.h"
>  #include "xe_sysctrl.h"
>  #include "xe_sysctrl_mailbox.h"
> +#include "xe_sysctrl_mailbox_types.h"
>  #include "xe_sysctrl_types.h"
>  
>  /**
> @@ -130,3 +132,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
>  
>  	xe_sysctrl_mailbox_init(sc);
>  }
> +
> +static enum xe_sysctrl_fw_status
> +xe_sysctrl_check_app_status(struct xe_device *xe, enum xe_sysctrl_app_id app_id)
> +{
> +	struct xe_sysctrl_app_status_req req = {};
> +	struct xe_sysctrl_app_status_resp resp = {};
> +	struct xe_sysctrl_mailbox_command cmd = {};
> +	size_t out_len = 0;
> +	u32 flags;
> +	int ret;
> +
> +	if (!xe->info.has_sysctrl)
> +		return XE_SYSCTRL_FIRMWARE_APP_NOTSUPP;
> +
> +	req.app_id = (u8)app_id;
> +
> +	xe_sysctrl_create_command(&cmd, XE_SYSCTRL_GROUP_CORE, XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID,
> +				  &req, sizeof(req), &resp, sizeof(resp));
> +
> +	ret = xe_sysctrl_send_command(&xe->sc, &cmd, &out_len);
> +	if (ret)
> +		return XE_SYSCTRL_FIRMWARE_COMM_FAILURE;
> +
> +	if (out_len != sizeof(resp)) {
> +		xe_err(xe, "sysctrl: unexpected get app status response length %zu (expected %zu)\n",
> +		       out_len, sizeof(resp));
> +		return XE_SYSCTRL_FIRMWARE_COMM_FAILURE;
> +	}
> +
> +	flags = resp.flags;
> +
> +	if (!(flags & XE_SYSCTRL_APP_RESP_VALID))
> +		return XE_SYSCTRL_FIRMWARE_APP_INVALID;
> +
> +	if (!(flags & XE_SYSCTRL_APP_RESP_BOOTED))
> +		return XE_SYSCTRL_FIRMWARE_APP_NOT_LOADED;
> +
> +	if (!(flags & XE_SYSCTRL_APP_RESP_INITIALIZED))
> +		return XE_SYSCTRL_FIRMWARE_APP_BOOTED;
> +
> +	return XE_SYSCTRL_FIRMWARE_APP_INITIALIZED;
> +}
> +
> +/**
> + * xe_sysctrl_is_oobmsm_fw_ready() - Check if oCode firmware is fully initialized
> + * @xe: xe device instance
> + *
> + * Returns true if oCode firmware has reached the initialized state, indicating
> + * it is ready to handle requests. Returns true also on platforms without System
> + * Controller support, as there is no firmware gate to wait on.
> + *
> + * Return: true if oCode is initialized or sysctrl is not present, false otherwise
> + */
> +bool xe_sysctrl_is_oobmsm_fw_ready(struct xe_device *xe)
> +{
> +	enum xe_sysctrl_fw_status status =
> +		xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_OCODE);
> +
> +	return status == XE_SYSCTRL_FIRMWARE_APP_INITIALIZED ||
> +	       status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP;
> +}
> +
> +/**
> + * xe_sysctrl_is_diag_fw_ready() - Check if diag firmware is fully initialized
> + * @xe: xe device instance
> + *
> + * Returns true if diag firmware has reached the initialized state, indicating
> + * it is ready to handle requests. Returns true also on platforms without System
> + * Controller support, as there is no firmware gate to wait on.
> + *
> + * Return: true if diag firmware is initialized or sysctrl is not present, false otherwise
> + */
> +bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe)
> +{
> +	enum xe_sysctrl_fw_status status =
> +		xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_DIAG);
> +
> +	return status == XE_SYSCTRL_FIRMWARE_APP_INITIALIZED ||
> +	       status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl.h b/drivers/gpu/drm/xe/xe_sysctrl.h
> index 090dffb6d55f..b69a3f474236 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl.h
> @@ -20,5 +20,7 @@ void xe_sysctrl_event(struct xe_sysctrl *sc);
>  int xe_sysctrl_init(struct xe_device *xe);
>  void xe_sysctrl_irq_handler(struct xe_device *xe, u32 master_ctl);
>  void xe_sysctrl_pm_resume(struct xe_device *xe);
> +bool xe_sysctrl_is_oobmsm_fw_ready(struct xe_device *xe);
> +bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe);
>  
>  #endif
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> index d0341538ad05..b507e1553cbb 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> @@ -14,9 +14,11 @@
>   * enum xe_sysctrl_group - System Controller command groups
>   *
>   * @XE_SYSCTRL_GROUP_GFSP: GFSP group
> + * @XE_SYSCTRL_GROUP_CORE: Core group
>   */
>  enum xe_sysctrl_group {
>  	XE_SYSCTRL_GROUP_GFSP			= 0x01,
> +	XE_SYSCTRL_GROUP_CORE			= 0xFF,
>  };
>  
>  /**
> @@ -38,6 +40,69 @@ enum xe_sysctrl_gfsp_cmd {
>  	XE_SYSCTRL_CMD_SET_HEALTH		= 0x0C,
>  };
>  
> +/**
> + * enum xe_sysctrl_core_cmd - Commands supported by Core group
> + *
> + * @XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID: Retrieve application status by ID
> + */
> +enum xe_sysctrl_core_cmd {
> +	XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID		= 0x05,
> +};
> +
> +/**
> + * struct xe_sysctrl_app_status_req - Get application status request
> + *
> + * @app_id: Application ID for which to retrieve status
> + */
> +struct xe_sysctrl_app_status_req {
> +	u8 app_id;
> +} __packed;
> +
> +/**
> + * struct xe_sysctrl_app_status_resp - Get application status response
> + * @flags: Application status flags (see XE_SYSCTRL_APP_RESP_* definitions)
> + */
> +struct xe_sysctrl_app_status_resp {
> +	u32 flags;
> +} __packed;
> +
> +/** XE_SYSCTRL_APP_RESP_VALID - app_id is recognized by System Controller firmware */
> +#define XE_SYSCTRL_APP_RESP_VALID		BIT(0)
> +/** XE_SYSCTRL_APP_RESP_BOOTED - application has completed its boot sequence */
> +#define XE_SYSCTRL_APP_RESP_BOOTED		BIT(1)
> +/** XE_SYSCTRL_APP_RESP_INITIALIZED - application has completed all post-boot initialization */
> +#define XE_SYSCTRL_APP_RESP_INITIALIZED		BIT(2)
> +
> +/**
> + * enum xe_sysctrl_fw_status - System Controller firmware application lifecycle states
> + *
> + * @XE_SYSCTRL_FIRMWARE_APP_INVALID: app_id is not recognized by firmware
> + * @XE_SYSCTRL_FIRMWARE_APP_NOT_LOADED: application is known but has not yet booted
> + * @XE_SYSCTRL_FIRMWARE_APP_BOOTED: boot sequence completed, post-boot init pending
> + * @XE_SYSCTRL_FIRMWARE_APP_INITIALIZED: application fully operational
> + * @XE_SYSCTRL_FIRMWARE_APP_NOTSUPP: System Controller not available on this device
> + * @XE_SYSCTRL_FIRMWARE_COMM_FAILURE: communication with System Controller firmware failed
> + */
> +enum xe_sysctrl_fw_status {
> +	XE_SYSCTRL_FIRMWARE_APP_INVALID,
> +	XE_SYSCTRL_FIRMWARE_APP_NOT_LOADED,
> +	XE_SYSCTRL_FIRMWARE_APP_BOOTED,
> +	XE_SYSCTRL_FIRMWARE_APP_INITIALIZED,
> +	XE_SYSCTRL_FIRMWARE_APP_NOTSUPP,
> +	XE_SYSCTRL_FIRMWARE_COMM_FAILURE,
> +};
> +
> +/**
> + * enum xe_sysctrl_app_id - Known System Controller application identifiers
> + *
> + * @XE_SYSCTRL_APP_OCODE: oCode application (firmware ID 12)
> + * @XE_SYSCTRL_APP_DIAG: diag application (firmware ID 13)
> + */
> +enum xe_sysctrl_app_id {
> +	XE_SYSCTRL_APP_OCODE	= 0x0C,
> +	XE_SYSCTRL_APP_DIAG	= 0x0D,
> +};
> +
>  /**
>   * struct xe_sysctrl_mailbox_command - System Controller mailbox command
>   */
> -- 
> 2.43.0
> 

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

* Re: [PATCH v3 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure
  2026-08-07 14:56 ` [PATCH v3 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure Anoop, Vijay
@ 2026-08-07 18:53   ` Rodrigo Vivi
  0 siblings, 0 replies; 13+ messages in thread
From: Rodrigo Vivi @ 2026-08-07 18:53 UTC (permalink / raw)
  To: Anoop, Vijay
  Cc: intel-xe, umesh.nerlige.ramappa, badal.nilawar,
	aravind.iddamsetty, riana.tauro, anshuman.gupta, matthew.d.roper,
	michael.j.ruhl, paul.e.luse, mohamed.mansoor.v, kam.nasim

On Fri, Aug 07, 2026 at 07:56:23AM -0700, Anoop, Vijay wrote:
> From: Anoop Vijay <anoop.c.vijay@intel.com>
> 
> Add basic debugfs support for sysctrl. This patch adds necessary
> types and registration hooks.
> 
> Changes:
> - Add debugfs structure to xe_sysctrl_types.h
> - Add xe_sysctrl_debugfs.h header
> - Add xe_sysctrl_debugfs_register() stub
> - Wire up sysctrl debugfs registration
> 
> No functional changes, debugfs directory created but empty.

I know that we all keep asking smaller patches that are easier
to review. But as everything in life, we need to find the good
balance. In this case I believe it would be good if this was
squashed with the patch 3...

(more below)

> 
> Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
> ---
>  drivers/gpu/drm/xe/Makefile             |  1 +
>  drivers/gpu/drm/xe/xe_debugfs.c         |  5 +++++
>  drivers/gpu/drm/xe/xe_sysctrl_debugfs.c | 27 +++++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_sysctrl_debugfs.h | 14 +++++++++++++
>  drivers/gpu/drm/xe/xe_sysctrl_types.h   |  7 +++++++
>  5 files changed, 54 insertions(+)
>  create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
>  create mode 100644 drivers/gpu/drm/xe/xe_sysctrl_debugfs.h
> 
> diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
> index 44ed055439d4..f083451608ff 100644
> --- a/drivers/gpu/drm/xe/Makefile
> +++ b/drivers/gpu/drm/xe/Makefile
> @@ -127,6 +127,7 @@ xe-y += xe_bb.o \
>  	xe_survivability_mode.o \
>  	xe_sync.o \
>  	xe_sysctrl.o \
> +	xe_sysctrl_debugfs.o \
>  	xe_sysctrl_event.o \
>  	xe_sysctrl_mailbox.o \
>  	xe_tile.o \
> diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
> index 8de78cd0aa03..666290d83bfe 100644
> --- a/drivers/gpu/drm/xe/xe_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_debugfs.c
> @@ -30,6 +30,8 @@
>  #include "xe_sriov_pf_debugfs.h"
>  #include "xe_sriov_vf.h"
>  #include "xe_step.h"
> +#include "xe_sysctrl.h"
> +#include "xe_sysctrl_debugfs.h"
>  #include "xe_tile_debugfs.h"
>  #include "xe_vsec.h"
>  #include "xe_wa.h"
> @@ -770,6 +772,9 @@ void xe_debugfs_register(struct xe_device *xe)
>  
>  	xe_fault_inject_debugfs_register(xe, root);
>  
> +	if (xe->info.has_sysctrl)
> +		xe_sysctrl_debugfs_register(&xe->sc, root);

Here is where you put the check if the fw is loaded... ideally...

> +
>  	if (IS_SRIOV_PF(xe))
>  		xe_sriov_pf_debugfs_register(xe, root);
>  	else if (IS_SRIOV_VF(xe))
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> new file mode 100644
> index 000000000000..0238ff093831
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> @@ -0,0 +1,27 @@
> +// SPDX-License-Identifier: MIT
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +
> +#include <linux/debugfs.h>
> +
> +#include "xe_device.h"
> +#include "xe_sysctrl.h"
> +#include "xe_sysctrl_debugfs.h"
> +#include "xe_sysctrl_types.h"
> +
> +/**
> + * xe_sysctrl_debugfs_register - Register debugfs entries for System Controller
> + * @sc: xe_sysctrl instance
> + * @parent: parent debugfs directory
> + */
> +void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent)
> +{
> +	struct dentry *root;
> +
> +	root = debugfs_create_dir("sc", parent);
> +	if (IS_ERR(root))
> +		return;
> +
> +	sc->debugfs.root = root;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.h b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.h
> new file mode 100644
> index 000000000000..d1414ac3562e
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2026 Intel Corporation
> + */
> +
> +#ifndef _XE_SYSCTRL_DEBUGFS_H_
> +#define _XE_SYSCTRL_DEBUGFS_H_
> +
> +struct dentry;
> +struct xe_sysctrl;
> +
> +void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent);
> +
> +#endif
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h b/drivers/gpu/drm/xe/xe_sysctrl_types.h
> index 66ba24f43017..d50a35fefb7a 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
> @@ -11,6 +11,7 @@
>  #include <linux/workqueue_types.h>
>  
>  struct xe_mmio;
> +struct dentry;
>  
>  /**
>   * struct xe_sysctrl - System Controller driver context
> @@ -34,6 +35,12 @@ struct xe_sysctrl {
>  
>  	/** @event_lock: Mutex protecting pending events */
>  	struct mutex event_lock;
> +
> +	/** @debugfs: Debugfs entries */
> +	struct {
> +		/** @debugfs.root: Root debugfs directory */
> +		struct dentry *root;
> +	} debugfs;
>  };
>  
>  #endif
> -- 
> 2.43.0
> 

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

* ✗ Xe.CI.FULL: failure for drm/xe/sysctrl: Add System Controller debugfs (rev3)
  2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
                   ` (6 preceding siblings ...)
  2026-08-07 16:05 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-08-08  0:43 ` Patchwork
  7 siblings, 0 replies; 13+ messages in thread
From: Patchwork @ 2026-08-08  0:43 UTC (permalink / raw)
  To: Anoop, Vijay; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/sysctrl: Add System Controller debugfs (rev3)
URL   : https://patchwork.freedesktop.org/series/161655/
State : failure

== Summary ==

CI Bug Log - changes from xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630_FULL -> xe-pw-161655v3_FULL
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with xe-pw-161655v3_FULL need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-161655v3_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 (2 -> 2)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-161655v3_FULL:

### IGT changes ###

#### Warnings ####

  * igt@sriov_basic@pf-unbind-with-vf-probed:
    - shard-bmg:          [ABORT][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-6/igt@sriov_basic@pf-unbind-with-vf-probed.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@sriov_basic@pf-unbind-with-vf-probed.html

  
New tests
---------

  New tests have been introduced between xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630_FULL and xe-pw-161655v3_FULL:

### New IGT tests (3) ###

  * igt@xe_pmu@all-fn-engine-activity-load@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [2.16] s

  * igt@xe_pmu@fn-engine-activity-load@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [6.10] s

  * igt@xe_pmu@fn-engine-activity-sched-if-idle@engine-drm_xe_engine_class_video_enhance1:
    - Statuses : 1 pass(s)
    - Exec time: [6.31] s

  

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

  Here are the changes found in xe-pw-161655v3_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][3] ([Intel XE#2327])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][4] ([Intel XE#1124]) +1 other test skip
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#7679])
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@kms_bw@connected-linear-tiling-3-displays-target-3840x2160p.html

  * igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#2887]) +6 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#3432])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-mc-ccs.html

  * igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#2252]) +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@kms_chamelium_hpd@hdmi-hpd-after-hibernate.html

  * igt@kms_cursor_crc@cursor-offscreen-32x32:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#2320])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@kms_cursor_crc@cursor-offscreen-32x32.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-bmg:          [PASS][10] -> [FAIL][11] ([Intel XE#7571])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-1/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#4422] / [Intel XE#7442])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-6/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#7061]) +1 other test skip
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-5/igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#4141]) +3 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2311]) +11 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-move:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#2313]) +17 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#7399]) +1 other test skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-tiling-y.html

  * igt@kms_pipe_stress@stress-xrgb8888-yftiled:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#6912] / [Intel XE#7375])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-4/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#8303]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#7283])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@kms_plane@pixel-format-yf-tiled-ccs-modifier-source-clamping.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][23] ([Intel XE#5020] / [Intel XE#7348])
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-6/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-bmg:          [PASS][24] -> [SKIP][25] ([Intel XE#2685] / [Intel XE#3307])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-4/igt@kms_plane_scaling@intel-max-src-size.html
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-bmg:          NOTRUN -> [SKIP][26] ([Intel XE#2499])
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#1489]) +3 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-5/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr@psr-basic:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#2234] / [Intel XE#2850]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@kms_psr@psr-basic.html

  * igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2330] / [Intel XE#5813])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#1499])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@kms_vrr@flip-basic-fastset.html

  * igt@xe_evict@evict-mixed-threads-small-multi-queue:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#8370])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@xe_evict@evict-mixed-threads-small-multi-queue.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#2322] / [Intel XE#7372])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-invalidate-race.html

  * igt@xe_exec_fault_mode@twice-multi-queue-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][33] ([Intel XE#8374]) +1 other test skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@xe_exec_fault_mode@twice-multi-queue-rebind.html

  * igt@xe_exec_multi_queue@two-queues-priority-smem:
    - shard-bmg:          NOTRUN -> [SKIP][34] ([Intel XE#8364]) +7 other tests skip
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@xe_exec_multi_queue@two-queues-priority-smem.html

  * igt@xe_exec_threads@threads-multi-queue-fd-basic:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#8378]) +3 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_exec_threads@threads-multi-queue-fd-basic.html

  * igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ads_init:
    - shard-bmg:          [PASS][36] -> [ABORT][37] ([Intel XE#8007])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-4/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ads_init.html
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-10/igt@xe_fault_injection@inject-fault-probe-function-xe_guc_ads_init.html

  * igt@xe_page_reclaim@invalid-1g:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#7793]) +1 other test skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@xe_page_reclaim@invalid-1g.html

  * igt@xe_pat@pat-sw-hw-compare:
    - shard-bmg:          NOTRUN -> [FAIL][39] ([Intel XE#7695])
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_pat@pat-sw-hw-compare.html

  * igt@xe_pm@d3cold-multiple-execs:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#2284] / [Intel XE#7370])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_pm@d3cold-multiple-execs.html

  * igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#4733] / [Intel XE#7417])
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@xe_pxp@pxp-stale-bo-exec-post-termination-irq.html

  * igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#944])
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@xe_query@multigpu-query-invalid-uc-fw-version-mbz.html

  * igt@xe_sriov_flr@flr-each-isolation:
    - shard-bmg:          [PASS][43] -> [FAIL][44] ([Intel XE#6569])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@xe_sriov_flr@flr-each-isolation.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_sriov_flr@flr-each-isolation.html

  
#### Possible fixes ####

  * igt@kms_hdmi_inject@inject-audio:
    - shard-bmg:          [SKIP][45] ([Intel XE#7308]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-5/igt@kms_hdmi_inject@inject-audio.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-5/igt@kms_hdmi_inject@inject-audio.html

  * igt@xe_exec_reset@long-spin-reuse-many-preempt-media:
    - shard-bmg:          [FAIL][47] ([Intel XE#7850]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@xe_exec_reset@long-spin-reuse-many-preempt-media.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@xe_exec_reset@long-spin-reuse-many-preempt-media.html

  * igt@xe_module_load@load:
    - shard-lnl:          ([SKIP][49], [PASS][50], [PASS][51], [PASS][52], [PASS][53], [PASS][54], [PASS][55], [PASS][56], [PASS][57], [PASS][58], [PASS][59], [PASS][60], [PASS][61], [PASS][62], [PASS][63], [PASS][64], [PASS][65], [PASS][66], [PASS][67], [PASS][68], [PASS][69], [PASS][70], [PASS][71], [PASS][72], [PASS][73], [PASS][74]) ([Intel XE#378] / [Intel XE#7405]) -> ([PASS][75], [PASS][76], [PASS][77], [PASS][78], [PASS][79], [PASS][80], [PASS][81], [PASS][82], [PASS][83], [PASS][84], [PASS][85], [PASS][86], [PASS][87], [PASS][88], [PASS][89], [PASS][90], [PASS][91], [PASS][92], [PASS][93], [PASS][94], [PASS][95], [PASS][96], [PASS][97], [PASS][98], [PASS][99])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-3/igt@xe_module_load@load.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-8/igt@xe_module_load@load.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-8/igt@xe_module_load@load.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-8/igt@xe_module_load@load.html
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-8/igt@xe_module_load@load.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-1/igt@xe_module_load@load.html
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-1/igt@xe_module_load@load.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-1/igt@xe_module_load@load.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-7/igt@xe_module_load@load.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-5/igt@xe_module_load@load.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-4/igt@xe_module_load@load.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-4/igt@xe_module_load@load.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-3/igt@xe_module_load@load.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-4/igt@xe_module_load@load.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-7/igt@xe_module_load@load.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-7/igt@xe_module_load@load.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-2/igt@xe_module_load@load.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-6/igt@xe_module_load@load.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-6/igt@xe_module_load@load.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-6/igt@xe_module_load@load.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-5/igt@xe_module_load@load.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-5/igt@xe_module_load@load.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-3/igt@xe_module_load@load.html
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-3/igt@xe_module_load@load.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-2/igt@xe_module_load@load.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-2/igt@xe_module_load@load.html
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-6/igt@xe_module_load@load.html
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-7/igt@xe_module_load@load.html
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-8/igt@xe_module_load@load.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-8/igt@xe_module_load@load.html
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-4/igt@xe_module_load@load.html
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-4/igt@xe_module_load@load.html
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-4/igt@xe_module_load@load.html
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-1/igt@xe_module_load@load.html
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-1/igt@xe_module_load@load.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-7/igt@xe_module_load@load.html
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-5/igt@xe_module_load@load.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-5/igt@xe_module_load@load.html
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-7/igt@xe_module_load@load.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-4/igt@xe_module_load@load.html
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-3/igt@xe_module_load@load.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-3/igt@xe_module_load@load.html
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-3/igt@xe_module_load@load.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-1/igt@xe_module_load@load.html
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-2/igt@xe_module_load@load.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-2/igt@xe_module_load@load.html
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-2/igt@xe_module_load@load.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-6/igt@xe_module_load@load.html
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-8/igt@xe_module_load@load.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-5/igt@xe_module_load@load.html
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-6/igt@xe_module_load@load.html
    - shard-bmg:          ([PASS][100], [PASS][101], [PASS][102], [PASS][103], [PASS][104], [PASS][105], [PASS][106], [PASS][107], [PASS][108], [PASS][109], [PASS][110], [PASS][111], [PASS][112], [PASS][113], [PASS][114], [PASS][115], [PASS][116], [PASS][117], [PASS][118], [PASS][119], [PASS][120], [PASS][121], [SKIP][122], [PASS][123], [PASS][124], [PASS][125]) ([Intel XE#2457] / [Intel XE#7405]) -> ([PASS][126], [PASS][127], [PASS][128], [PASS][129], [PASS][130], [PASS][131], [PASS][132], [PASS][133], [PASS][134], [PASS][135], [PASS][136], [PASS][137], [PASS][138], [PASS][139], [PASS][140], [PASS][141], [PASS][142], [PASS][143], [PASS][144], [PASS][145], [PASS][146], [PASS][147], [PASS][148], [PASS][149], [PASS][150])
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-4/igt@xe_module_load@load.html
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-4/igt@xe_module_load@load.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-8/igt@xe_module_load@load.html
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-8/igt@xe_module_load@load.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@xe_module_load@load.html
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-1/igt@xe_module_load@load.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-1/igt@xe_module_load@load.html
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-1/igt@xe_module_load@load.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@xe_module_load@load.html
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@xe_module_load@load.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-5/igt@xe_module_load@load.html
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-2/igt@xe_module_load@load.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-3/igt@xe_module_load@load.html
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-3/igt@xe_module_load@load.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-3/igt@xe_module_load@load.html
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-5/igt@xe_module_load@load.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-5/igt@xe_module_load@load.html
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-6/igt@xe_module_load@load.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-7/igt@xe_module_load@load.html
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-7/igt@xe_module_load@load.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-7/igt@xe_module_load@load.html
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-6/igt@xe_module_load@load.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-7/igt@xe_module_load@load.html
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-9/igt@xe_module_load@load.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-9/igt@xe_module_load@load.html
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-2/igt@xe_module_load@load.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@xe_module_load@load.html
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@xe_module_load@load.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-1/igt@xe_module_load@load.html
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_module_load@load.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_module_load@load.html
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@xe_module_load@load.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@xe_module_load@load.html
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@xe_module_load@load.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-4/igt@xe_module_load@load.html
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-4/igt@xe_module_load@load.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-5/igt@xe_module_load@load.html
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-5/igt@xe_module_load@load.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-7/igt@xe_module_load@load.html
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@xe_module_load@load.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@xe_module_load@load.html
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@xe_module_load@load.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@xe_module_load@load.html
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-6/igt@xe_module_load@load.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@xe_module_load@load.html
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@xe_module_load@load.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-8/igt@xe_module_load@load.html
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-6/igt@xe_module_load@load.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@xe_module_load@load.html
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-10/igt@xe_module_load@load.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-10/igt@xe_module_load@load.html

  * igt@xe_oa@non-zero-reason-all:
    - shard-lnl:          [FAIL][151] ([Intel XE#7334]) -> [PASS][152] +1 other test pass
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-6/igt@xe_oa@non-zero-reason-all.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-6/igt@xe_oa@non-zero-reason-all.html

  * igt@xe_sriov_vram@vf-access-after-resize-down:
    - shard-bmg:          [FAIL][153] ([Intel XE#7992]) -> [PASS][154]
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-5/igt@xe_sriov_vram@vf-access-after-resize-down.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-3/igt@xe_sriov_vram@vf-access-after-resize-down.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-lnl:          [SKIP][155] ([Intel XE#1407]) -> [ABORT][156] ([Intel XE#4760])
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-lnl-4/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-lnl-4/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-bmg:          [ABORT][157] -> [FAIL][158] ([Intel XE#1178] / [Intel XE#3304] / [Intel XE#7374]) +1 other test fail
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@kms_content_protection@atomic-hdcp14.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-4/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][159] ([Intel XE#3544]) -> [SKIP][160] ([Intel XE#3374] / [Intel XE#3544])
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          [FAIL][161] ([Intel XE#1729] / [Intel XE#7424]) -> [SKIP][162] ([Intel XE#2426] / [Intel XE#5848])
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630/shard-bmg-10/igt@kms_tiled_display@basic-test-pattern.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v3/shard-bmg-9/igt@kms_tiled_display@basic-test-pattern.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#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
  [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#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
  [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499
  [Intel XE#2685]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2685
  [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#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#378]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/378
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [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#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5813
  [Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
  [Intel XE#7334]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7334
  [Intel XE#7348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7348
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
  [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#7375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7375
  [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
  [Intel XE#7405]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7405
  [Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
  [Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
  [Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
  [Intel XE#7571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7571
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
  [Intel XE#7695]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7695
  [Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
  [Intel XE#7850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7850
  [Intel XE#7992]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7992
  [Intel XE#8007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8007
  [Intel XE#8303]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8303
  [Intel XE#8364]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8364
  [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#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * IGT: IGT_9043 -> IGT_9046
  * Linux: xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630 -> xe-pw-161655v3

  IGT_9043: 9043
  IGT_9046: 9046
  xe-5560-01d30c194951b8794c33f0d7f559bc4a1c9b7630: 01d30c194951b8794c33f0d7f559bc4a1c9b7630
  xe-pw-161655v3: 161655v3

== Logs ==

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

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

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

end of thread, other threads:[~2026-08-08  0:43 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-07 14:56 [PATCH v3 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
2026-08-07 14:56 ` [PATCH v3 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
2026-08-07 18:51   ` Rodrigo Vivi
2026-08-07 14:56 ` [PATCH v3 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure Anoop, Vijay
2026-08-07 18:53   ` Rodrigo Vivi
2026-08-07 14:56 ` [PATCH v3 3/4] drm/xe/sysctrl: Add loopback test debugfs interface Anoop, Vijay
2026-08-07 14:56 ` [PATCH v3 4/4] drm/xe/sysctrl: Add RAS error injection " Anoop, Vijay
2026-08-07 15:15   ` Gupta, Anshuman
2026-08-07 18:49     ` Rodrigo Vivi
2026-08-07 15:02 ` ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev3) Patchwork
2026-08-07 15:03 ` ✓ CI.KUnit: success " Patchwork
2026-08-07 16:05 ` ✓ Xe.CI.BAT: " Patchwork
2026-08-08  0:43 ` ✗ 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