* [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs
@ 2026-09-03 14:03 Anoop, Vijay
2026-09-03 14:03 ` [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
` (7 more replies)
0 siblings, 8 replies; 17+ messages in thread
From: Anoop, Vijay @ 2026-09-03 14:03 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
- Generic mailbox passthrough entry for any group/command not
covered by a dedicated entry
Design question from v3 review:
The review suggested hiding the ras_error_inject debugfs file until
the diag firmware is ready. Since there is no firmware-ready event
to trigger registration, this revision keeps the file visible under
sc/ but blocks access. Both read and write operations return -ENODEV
until the diag firmware reports ready.
v4 (Rodrigo, Anshuman):
- Added lore links to the parent application-status series
- Squashed debugfs infrastructure and loopback support into a single commit
- Gated ras_error_inject on diag firmware readiness in .open()
- Added a generic mailbox debugfs entry
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 and loopback test
interface
drm/xe/sysctrl: Add RAS error injection debugfs interface
drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry
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 | 405 ++++++++++++++++++
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 | 41 ++
8 files changed, 648 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] 17+ messages in thread
* [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
@ 2026-09-03 14:03 ` Anoop, Vijay
2026-09-03 14:16 ` sashiko-bot
2026-09-03 19:17 ` Umesh Nerlige Ramappa
2026-09-03 14:03 ` [PATCH v4 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface Anoop, Vijay
` (6 subsequent siblings)
7 siblings, 2 replies; 17+ messages in thread
From: Anoop, Vijay @ 2026-09-03 14:03 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 support for querying System Controller firmware application
status. This allows callers to determine whether a given firmware
application has completed boot and post-boot initialization.
This patch is carried here only as a build dependency for this
series; it is authored and under review as part of a separate
get-app-status series and should be dropped/rebased away once that
series lands.
Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-5-anoop.c.vijay@intel.com/
Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-6-anoop.c.vijay@intel.com/
Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
v4 (Rodrigo):
- Added lore links to the parent application-status series
---
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 62ccc9be71b4..5da591ade4e4 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"
/**
@@ -125,3 +127,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
}
+
+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 66e7cbcc3f91..d756b50cde6b 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,
};
/**
@@ -42,6 +44,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] 17+ messages in thread
* [PATCH v4 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
2026-09-03 14:03 ` [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
@ 2026-09-03 14:03 ` Anoop, Vijay
2026-09-03 14:13 ` sashiko-bot
2026-09-03 14:03 ` [PATCH v4 3/4] drm/xe/sysctrl: Add RAS error injection debugfs interface Anoop, Vijay
` (5 subsequent siblings)
7 siblings, 1 reply; 17+ messages in thread
From: Anoop, Vijay @ 2026-09-03 14:03 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 support for exercising System Controller mailbox
interface from userspace. This adds the "sc/" debugfs root
directory and a "loopback" entry that sends an arbitrary byte
payload to the Core group's inverted-loopback command (group=0xFF,
cmd=0x03) and reports the response:
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>
---
v4 (Rodrigo):
- Squashed debugfs infrastructure and loopback support into a single commit
---
drivers/gpu/drm/xe/Makefile | 1 +
drivers/gpu/drm/xe/xe_debugfs.c | 5 +
drivers/gpu/drm/xe/xe_sysctrl_debugfs.c | 157 ++++++++++++++++++
drivers/gpu/drm/xe/xe_sysctrl_debugfs.h | 14 ++
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 2 +
drivers/gpu/drm/xe/xe_sysctrl_types.h | 35 ++++
6 files changed, 214 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 67b8b5477639..3484e9a523d1 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -128,6 +128,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 28135f84e286..74bf8515b49c 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -31,6 +31,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"
@@ -785,6 +787,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..2144d9d43fba
--- /dev/null
+++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: MIT
+/*
+ * 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
+ * @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;
+
+ 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_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_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index d756b50cde6b..04c9fcf5aa8a 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -47,9 +47,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 98c2f473f7c6..3c8bde2380b1 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
@@ -10,7 +10,33 @@
#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
@@ -31,6 +57,15 @@ 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.loopback: Loopback test entry */
+ struct xe_sysctrl_debugfs_entry loopback;
+ } debugfs;
};
#endif
--
2.43.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* [PATCH v4 3/4] drm/xe/sysctrl: Add RAS error injection debugfs interface
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
2026-09-03 14:03 ` [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
2026-09-03 14:03 ` [PATCH v4 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface Anoop, Vijay
@ 2026-09-03 14:03 ` Anoop, Vijay
2026-09-03 14:13 ` sashiko-bot
2026-09-03 14:03 ` [PATCH v4 4/4] drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry Anoop, Vijay
` (4 subsequent siblings)
7 siblings, 1 reply; 17+ messages in thread
From: Anoop, Vijay @ 2026-09-03 14:03 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). Both cat and echo are
rejected with -ENODEV until xe_sysctrl_is_diag_fw_ready() reports the
diag firmware as ready: the readiness check is done in .open(), so the
file stays visible under sc/ but is inaccessible for both read and
write until the diag firmware becomes ready.
Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
v4 (Rodrigo, Anshuman):
- Gated ras_error_inject on diag firmware readiness in .open()
---
drivers/gpu/drm/xe/xe_sysctrl_debugfs.c | 126 ++++++++++++++++++
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 31 +++++
drivers/gpu/drm/xe/xe_sysctrl_types.h | 3 +
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 2144d9d43fba..258479d605cb 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,127 @@ 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 (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)
+{
+ struct xe_sysctrl_debugfs_entry *entry = inode->i_private;
+ struct xe_device *xe = sc_to_xe(entry->sc);
+
+ if (!xe_sysctrl_is_diag_fw_ready(xe)) {
+ xe_err(xe, "sysctrl: diag firmware not ready, ras_error_inject unavailable\n");
+ return -ENODEV;
+ }
+
+ 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 +276,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 04c9fcf5aa8a..99fa6d86b974 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,
};
@@ -55,6 +57,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 3c8bde2380b1..595be477f750 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_types.h
@@ -65,6 +65,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] 17+ messages in thread
* [PATCH v4 4/4] drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
` (2 preceding siblings ...)
2026-09-03 14:03 ` [PATCH v4 3/4] drm/xe/sysctrl: Add RAS error injection debugfs interface Anoop, Vijay
@ 2026-09-03 14:03 ` Anoop, Vijay
2026-09-03 14:12 ` sashiko-bot
2026-09-03 14:10 ` ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev4) Patchwork
` (3 subsequent siblings)
7 siblings, 1 reply; 17+ messages in thread
From: Anoop, Vijay @ 2026-09-03 14:03 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 a "mailbox" debugfs entry that allows any System Controller
mailbox command to be issued for bring-up and debug.
group and command are supplied by the caller as the
first two tokens of every write, e.g.:
echo "<group> <command> [byte0 byte1 ...]" > mailbox
cat mailbox
Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
---
v4:
- Added a generic mailbox debugfs entry
---
drivers/gpu/drm/xe/xe_sysctrl_debugfs.c | 122 ++++++++++++++++++++++++
drivers/gpu/drm/xe/xe_sysctrl_types.h | 3 +
2 files changed, 125 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
index 258479d605cb..e5bc0a5dc31f 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
@@ -258,6 +258,125 @@ static void xe_sysctrl_register_entry(struct dentry *root, struct xe_sysctrl_deb
debugfs_create_file(name, 0644, root, entry, fops);
}
+static ssize_t xe_sysctrl_mailbox_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;
+ u8 group, command;
+
+ 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;
+
+ token = strsep(&tmp, " \t\n");
+ if (!token || kstrtoul(token, 0, &val) || val > 0xFF) {
+ xe_err(xe, "sysctrl: invalid mailbox group id\n");
+ return -EINVAL;
+ }
+ group = (u8)val;
+
+ token = strsep(&tmp, " \t\n");
+ if (!token || kstrtoul(token, 0, &val) || val > 0xFF) {
+ xe_err(xe, "sysctrl: invalid mailbox command id\n");
+ return -EINVAL;
+ }
+ command = (u8)val;
+
+ while ((token = strsep(&tmp, " \t\n")) != NULL) {
+ if (*token == '\0')
+ continue;
+
+ if (input_len >= max_input) {
+ xe_err(xe, "sysctrl: mailbox 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 mailbox payload byte '%s'\n", token);
+ return -EINVAL;
+ }
+
+ input[input_len++] = (u8)val;
+ }
+
+ entry->group = group;
+ entry->command = command;
+
+ xe_sysctrl_create_command(&cmd, group, command, input_len ? input : NULL, input_len,
+ entry->response_buf, XE_SYSCTRL_MB_MAX_MESSAGE_SIZE);
+
+ 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_mailbox_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');
+ }
+
+ seq_puts(m, "\nUsage:\n");
+ seq_puts(m, " echo \"<group> <command> [byte0 byte1 ...]\" > mailbox\n");
+ seq_puts(m, " cat mailbox\n");
+
+ return 0;
+}
+
+static int xe_sysctrl_mailbox_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, xe_sysctrl_mailbox_show, inode->i_private);
+}
+
+static const struct file_operations xe_sysctrl_mailbox_fops = {
+ .owner = THIS_MODULE,
+ .open = xe_sysctrl_mailbox_open,
+ .read = seq_read,
+ .write = xe_sysctrl_mailbox_write,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
/**
* xe_sysctrl_debugfs_register - Register debugfs entries for System Controller
* @sc: xe_sysctrl instance
@@ -280,4 +399,7 @@ void xe_sysctrl_debugfs_register(struct xe_sysctrl *sc, struct dentry *parent)
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);
+
+ xe_sysctrl_register_entry(root, &sc->debugfs.mailbox, sc, "mailbox", 0, 0,
+ &xe_sysctrl_mailbox_fops);
}
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_types.h b/drivers/gpu/drm/xe/xe_sysctrl_types.h
index 595be477f750..c47eb3ac0e98 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.ras_error_inject: RAS error injection test entry */
struct xe_sysctrl_debugfs_entry ras_error_inject;
+
+ /** @debugfs.mailbox: Generic, user-parameterized mailbox entry */
+ struct xe_sysctrl_debugfs_entry mailbox;
} debugfs;
};
--
2.43.0
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev4)
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
` (3 preceding siblings ...)
2026-09-03 14:03 ` [PATCH v4 4/4] drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry Anoop, Vijay
@ 2026-09-03 14:10 ` Patchwork
2026-09-03 14:12 ` ✓ CI.KUnit: success " Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-09-03 14:10 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
== Series Details ==
Series: drm/xe/sysctrl: Add System Controller debugfs (rev4)
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
d875049d2b299159a272bd5151994970cdcd1e31
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit fe7df74b75d39b0525b32e478064358f2e023079
Author: Anoop Vijay <anoop.c.vijay@intel.com>
Date: Thu Sep 3 07:03:44 2026 -0700
drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry
Add a "mailbox" debugfs entry that allows any System Controller
mailbox command to be issued for bring-up and debug.
group and command are supplied by the caller as the
first two tokens of every write, e.g.:
echo "<group> <command> [byte0 byte1 ...]" > mailbox
cat mailbox
Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
+ /mt/dim checkpatch 76a34199970d93cfb3ed5dbbd745c23b6f0cff34 drm-intel
78e81dd80ee7 drm/xe/sysctrl: Add System Controller get application status
f8d57d9171f7 drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface
-:54: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating?
#54:
new file mode 100644
total: 0 errors, 1 warnings, 0 checks, 254 lines checked
1159d63bd4a4 drm/xe/sysctrl: Add RAS error injection debugfs interface
fe7df74b75d3 drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 4/4] drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry
2026-09-03 14:03 ` [PATCH v4 4/4] drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry Anoop, Vijay
@ 2026-09-03 14:12 ` sashiko-bot
0 siblings, 0 replies; 17+ messages in thread
From: sashiko-bot @ 2026-09-03 14:12 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Unprotected state modifications to the shared xe_sysctrl_debugfs_entry in the mailbox debugfs read/write paths.
- [Low] The mailbox debugfs write function fails to skip empty tokens when parsing the group and command IDs, causing valid user input with leading or consecutive whitespace to be rejected.
--
commit e5d10f0b8e0daddacee17c1115009e5b3144b469
Author: Anoop Vijay <anoop.c.vijay@intel.com>
drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry
Adds a generic mailbox debugfs entry that allows any System Controller
mailbox command to be issued for bring-up and debug.
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> index 258479d605cbe..e5bc0a5dc31f8 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
[ ... ]
> +static ssize_t xe_sysctrl_mailbox_write(struct file *file, const char __user *ubuf,
> + size_t len, loff_t *offp)
> +{
[ ... ]
> + tmp = kbuf;
> +
> + token = strsep(&tmp, " \t\n");
> + if (!token || kstrtoul(token, 0, &val) || val > 0xFF) {
[Severity: Low]
Does this code reject valid user input with leading spaces? When parsing the
group ID in xe_sysctrl_mailbox_write(), if a user executes a command like
"echo ' 1 2' > mailbox", strsep() will return an empty string for the leading
space. This causes kstrtoul() to fail and reject the command.
> + xe_err(xe, "sysctrl: invalid mailbox group id\n");
> + return -EINVAL;
> + }
> + group = (u8)val;
> +
> + token = strsep(&tmp, " \t\n");
> + if (!token || kstrtoul(token, 0, &val) || val > 0xFF) {
[Severity: Low]
The same parsing issue appears here for the command ID when there are
consecutive spaces. Can these be updated to skip empty tokens, similar to how
the payload byte parsing loop handles them?
> + xe_err(xe, "sysctrl: invalid mailbox command id\n");
> + return -EINVAL;
> + }
[ ... ]
> + entry->group = group;
> + entry->command = command;
> +
> + xe_sysctrl_create_command(&cmd, group, command, input_len ? input : NULL, input_len,
> + entry->response_buf, XE_SYSCTRL_MB_MAX_MESSAGE_SIZE);
> +
> + guard(xe_pm_runtime)(xe);
> + entry->status = xe_sysctrl_send_command(entry->sc, &cmd, &out_len);
> + entry->response_len = entry->status ? 0 : out_len;
[Severity: Medium]
Are these shared state modifications protected against concurrent access? If
two processes concurrently execute xe_sysctrl_mailbox_write() on the mailbox
debugfs file, could it cause a data race? This might corrupt the shared
xe_sysctrl_debugfs_entry state and mix command arguments or response data
from different threads.
> + return entry->status ? entry->status : len;
> +}
> +
> +static int xe_sysctrl_mailbox_show(struct seq_file *m, void *data)
> +{
> + struct xe_sysctrl_debugfs_entry *entry = m->private;
> + size_t i;
[ ... ]
> + 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]);
> + }
[Severity: Medium]
Similarly, this shared state is read locklessly in xe_sysctrl_mailbox_show().
Could a concurrent write operation interleave during this loop and cause
inconsistent or mixed-up data to be displayed in the debugfs output?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260903140340.83500-6-anoop.c.vijay@intel.com?part=4
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ CI.KUnit: success for drm/xe/sysctrl: Add System Controller debugfs (rev4)
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
` (4 preceding siblings ...)
2026-09-03 14:10 ` ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev4) Patchwork
@ 2026-09-03 14:12 ` Patchwork
2026-09-03 15:02 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-04 1:27 ` ✓ Xe.CI.FULL: " Patchwork
7 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-09-03 14:12 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
== Series Details ==
Series: drm/xe/sysctrl: Add System Controller debugfs (rev4)
URL : https://patchwork.freedesktop.org/series/161655/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[14:10:45] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:10:50] 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
[14:11:10] Starting KUnit Kernel (1/1)...
[14:11:10] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:11:10] ============= refcount_interrupt (4 subtests) ==============
[14:11:10] [PASSED] test_single_irq_change
[14:11:10] [PASSED] test_nested_irq_change
[14:11:10] [PASSED] test_multiple_irq_change
[14:11:10] [PASSED] test_irq_save
[14:11:10] =============== [PASSED] refcount_interrupt ================
[14:11:10] ================= gpu_buddy (14 subtests) ==================
[14:11:10] [PASSED] gpu_test_buddy_alloc_limit
[14:11:10] [PASSED] gpu_test_buddy_alloc_optimistic
[14:11:10] [PASSED] gpu_test_buddy_alloc_pessimistic
[14:11:10] [PASSED] gpu_test_buddy_alloc_pathological
[14:11:10] [PASSED] gpu_test_buddy_alloc_contiguous
[14:11:10] [PASSED] gpu_test_buddy_alloc_clear
[14:11:10] [PASSED] gpu_test_buddy_alloc_range
[14:11:11] [PASSED] gpu_test_buddy_alloc_range_bias
[14:11:12] [PASSED] gpu_test_buddy_fragmentation_performance
[14:11:12] [PASSED] gpu_test_buddy_dirty_tracker_performance
[14:11:12] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[14:11:12] [PASSED] gpu_test_buddy_offset_aligned_allocation
[14:11:12] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[14:11:12] [PASSED] gpu_test_buddy_addr_to_block
[14:11:12] ==================== [PASSED] gpu_buddy ====================
[14:11:12] ============================================================
[14:11:12] Testing complete. Ran 18 tests: passed: 18
[14:11:12] Elapsed time: 26.939s total, 4.359s configuring, 20.662s building, 1.867s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[14:11:12] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:11:14] 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
[14:11:49] Starting KUnit Kernel (1/1)...
[14:11:49] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:11:49] ============= refcount_interrupt (4 subtests) ==============
[14:11:49] [PASSED] test_single_irq_change
[14:11:49] [PASSED] test_nested_irq_change
[14:11:49] [PASSED] test_multiple_irq_change
[14:11:49] [PASSED] test_irq_save
[14:11:49] =============== [PASSED] refcount_interrupt ================
[14:11:49] ================== guc_buf (11 subtests) ===================
[14:11:49] [PASSED] test_smallest
[14:11:49] [PASSED] test_largest
[14:11:49] [PASSED] test_granular
[14:11:49] [PASSED] test_unique
[14:11:49] [PASSED] test_overlap
[14:11:49] [PASSED] test_reusable
[14:11:49] [PASSED] test_too_big
[14:11:49] [PASSED] test_flush
[14:11:49] [PASSED] test_lookup
[14:11:49] [PASSED] test_data
[14:11:49] [PASSED] test_class
[14:11:49] ===================== [PASSED] guc_buf =====================
[14:11:49] =================== guc_dbm (7 subtests) ===================
[14:11:49] [PASSED] test_empty
[14:11:49] [PASSED] test_default
[14:11:49] ======================== test_size ========================
[14:11:49] [PASSED] 4
[14:11:49] [PASSED] 8
[14:11:49] [PASSED] 32
[14:11:49] [PASSED] 256
[14:11:49] ==================== [PASSED] test_size ====================
[14:11:49] ======================= test_reuse ========================
[14:11:49] [PASSED] 4
[14:11:49] [PASSED] 8
[14:11:49] [PASSED] 32
[14:11:49] [PASSED] 256
[14:11:49] =================== [PASSED] test_reuse ====================
[14:11:49] =================== test_range_overlap ====================
[14:11:49] [PASSED] 4
[14:11:49] [PASSED] 8
[14:11:49] [PASSED] 32
[14:11:49] [PASSED] 256
[14:11:49] =============== [PASSED] test_range_overlap ================
[14:11:49] =================== test_range_compact ====================
[14:11:49] [PASSED] 4
[14:11:49] [PASSED] 8
[14:11:49] [PASSED] 32
[14:11:49] [PASSED] 256
[14:11:49] =============== [PASSED] test_range_compact ================
[14:11:49] ==================== test_range_spare =====================
[14:11:49] [PASSED] 4
[14:11:49] [PASSED] 8
[14:11:49] [PASSED] 32
[14:11:49] [PASSED] 256
[14:11:49] ================ [PASSED] test_range_spare =================
[14:11:49] ===================== [PASSED] guc_dbm =====================
[14:11:49] =================== guc_idm (6 subtests) ===================
[14:11:49] [PASSED] bad_init
[14:11:49] [PASSED] no_init
[14:11:49] [PASSED] init_fini
[14:11:49] [PASSED] check_used
[14:11:49] [PASSED] check_quota
[14:11:49] [PASSED] check_all
[14:11:49] ===================== [PASSED] guc_idm =====================
[14:11:49] =============== guc_klv_helpers (9 subtests) ===============
[14:11:49] [PASSED] test_count
[14:11:49] [PASSED] test_encode_u32
[14:11:49] [PASSED] test_encode_u64
[14:11:49] [PASSED] test_encode_string
[14:11:49] [PASSED] test_encode_object_raw
[14:11:49] [PASSED] test_encode_object_klv
[14:11:49] [PASSED] test_encode_object_nested
[14:11:49] [PASSED] test_encode_object_basic
[14:11:49] [PASSED] test_print
[14:11:49] ================= [PASSED] guc_klv_helpers =================
[14:11:49] =================== xe_log (4 subtests) ====================
[14:11:49] [PASSED] demo_cper
[14:11:49] [PASSED] demo_dmesg
[14:11:49] ======================= test_dmesg ========================
[14:11:49] [PASSED] test_fatal
[14:11:49] [PASSED] test_fatal_tile
[14:11:49] [PASSED] test_fatal_gt
[14:11:49] [PASSED] test_fatal_comp
[14:11:49] [PASSED] test_fatal_comp_tile
[14:11:49] [PASSED] test_fatal_comp_gt
[14:11:49] [PASSED] test_fatal_all
[14:11:49] [PASSED] test_recoverable
[14:11:49] [PASSED] test_recoverable_tile
[14:11:49] [PASSED] test_recoverable_gt
[14:11:49] [PASSED] test_recoverable_comp
[14:11:49] [PASSED] test_recoverable_comp_tile
[14:11:49] [PASSED] test_recoverable_comp_gt
[14:11:49] [PASSED] test_recoverable_all
[14:11:49] [PASSED] test_info
[14:11:49] [PASSED] test_info_tile
[14:11:49] [PASSED] test_info_gt
[14:11:49] [PASSED] test_info_err
[14:11:49] [PASSED] test_info_comp
[14:11:49] [PASSED] test_info_comp_tile
[14:11:49] [PASSED] test_info_comp_gt
[14:11:49] [PASSED] test_info_all
[14:11:49] [PASSED] test_hw_fatal
[14:11:49] [PASSED] test_hw_recoverable
[14:11:49] [PASSED] test_hw_corrected
[14:11:49] [PASSED] test_hw_informational
[14:11:49] =================== [PASSED] test_dmesg ====================
[14:11:49] ====================== test_invalid =======================
[14:11:49] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[14:11:49] ================== [SKIPPED] test_invalid ==================
[14:11:49] ===================== [PASSED] xe_log ======================
[14:11:49] ================== no_relay (3 subtests) ===================
[14:11:49] [PASSED] xe_drops_guc2pf_if_not_ready
[14:11:49] [PASSED] xe_drops_guc2vf_if_not_ready
[14:11:49] [PASSED] xe_rejects_send_if_not_ready
[14:11:49] ==================== [PASSED] no_relay =====================
[14:11:49] ================== pf_relay (14 subtests) ==================
[14:11:49] [PASSED] pf_rejects_guc2pf_too_short
[14:11:49] [PASSED] pf_rejects_guc2pf_too_long
[14:11:49] [PASSED] pf_rejects_guc2pf_no_payload
[14:11:49] [PASSED] pf_fails_no_payload
[14:11:49] [PASSED] pf_fails_bad_origin
[14:11:49] [PASSED] pf_fails_bad_type
[14:11:49] [PASSED] pf_txn_reports_error
[14:11:49] [PASSED] pf_txn_sends_pf2guc
[14:11:49] [PASSED] pf_sends_pf2guc
[14:11:49] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[14:11:49] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[14:11:49] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[14:11:49] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[14:11:49] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[14:11:49] ==================== [PASSED] pf_relay =====================
[14:11:49] ================== vf_relay (3 subtests) ===================
[14:11:49] [PASSED] vf_rejects_guc2vf_too_short
[14:11:49] [PASSED] vf_rejects_guc2vf_too_long
[14:11:49] [PASSED] vf_rejects_guc2vf_no_payload
[14:11:49] ==================== [PASSED] vf_relay =====================
[14:11:49] ================ pf_gt_config (9 subtests) =================
[14:11:49] [PASSED] fair_contexts_1vf
[14:11:49] [PASSED] fair_doorbells_1vf
[14:11:49] [PASSED] fair_ggtt_1vf
[14:11:49] ====================== fair_vram_1vf ======================
[14:11:49] [PASSED] 3.50 GiB
[14:11:49] [PASSED] 11.5 GiB
[14:11:49] [PASSED] 15.5 GiB
[14:11:49] [PASSED] 31.5 GiB
[14:11:49] [PASSED] 63.5 GiB
[14:11:49] [PASSED] 1.91 GiB
[14:11:49] ================== [PASSED] fair_vram_1vf ==================
[14:11:49] ================ fair_vram_1vf_admin_only =================
[14:11:49] [PASSED] 3.50 GiB
[14:11:49] [PASSED] 11.5 GiB
[14:11:49] [PASSED] 15.5 GiB
[14:11:49] [PASSED] 31.5 GiB
[14:11:49] [PASSED] 63.5 GiB
[14:11:49] [PASSED] 1.91 GiB
[14:11:49] ============ [PASSED] fair_vram_1vf_admin_only =============
[14:11:49] ====================== fair_contexts ======================
[14:11:49] [PASSED] 1 VF
[14:11:49] [PASSED] 2 VFs
[14:11:49] [PASSED] 3 VFs
[14:11:49] [PASSED] 4 VFs
[14:11:49] [PASSED] 5 VFs
[14:11:49] [PASSED] 6 VFs
[14:11:49] [PASSED] 7 VFs
[14:11:49] [PASSED] 8 VFs
[14:11:49] [PASSED] 9 VFs
[14:11:49] [PASSED] 10 VFs
[14:11:49] [PASSED] 11 VFs
[14:11:49] [PASSED] 12 VFs
[14:11:49] [PASSED] 13 VFs
[14:11:49] [PASSED] 14 VFs
[14:11:49] [PASSED] 15 VFs
[14:11:49] [PASSED] 16 VFs
[14:11:49] [PASSED] 17 VFs
[14:11:49] [PASSED] 18 VFs
[14:11:49] [PASSED] 19 VFs
[14:11:49] [PASSED] 20 VFs
[14:11:49] [PASSED] 21 VFs
[14:11:49] [PASSED] 22 VFs
[14:11:49] [PASSED] 23 VFs
[14:11:49] [PASSED] 24 VFs
[14:11:49] [PASSED] 25 VFs
[14:11:49] [PASSED] 26 VFs
[14:11:49] [PASSED] 27 VFs
[14:11:49] [PASSED] 28 VFs
[14:11:49] [PASSED] 29 VFs
[14:11:49] [PASSED] 30 VFs
[14:11:49] [PASSED] 31 VFs
[14:11:49] [PASSED] 32 VFs
[14:11:49] [PASSED] 33 VFs
[14:11:49] [PASSED] 34 VFs
[14:11:49] [PASSED] 35 VFs
[14:11:49] [PASSED] 36 VFs
[14:11:49] [PASSED] 37 VFs
[14:11:49] [PASSED] 38 VFs
[14:11:49] [PASSED] 39 VFs
[14:11:49] [PASSED] 40 VFs
[14:11:49] [PASSED] 41 VFs
[14:11:49] [PASSED] 42 VFs
[14:11:49] [PASSED] 43 VFs
[14:11:49] [PASSED] 44 VFs
[14:11:49] [PASSED] 45 VFs
[14:11:49] [PASSED] 46 VFs
[14:11:49] [PASSED] 47 VFs
[14:11:49] [PASSED] 48 VFs
[14:11:49] [PASSED] 49 VFs
[14:11:49] [PASSED] 50 VFs
[14:11:49] [PASSED] 51 VFs
[14:11:49] [PASSED] 52 VFs
[14:11:49] [PASSED] 53 VFs
[14:11:49] [PASSED] 54 VFs
[14:11:49] [PASSED] 55 VFs
[14:11:49] [PASSED] 56 VFs
[14:11:49] [PASSED] 57 VFs
[14:11:49] [PASSED] 58 VFs
[14:11:49] [PASSED] 59 VFs
[14:11:49] [PASSED] 60 VFs
[14:11:49] [PASSED] 61 VFs
[14:11:49] [PASSED] 62 VFs
[14:11:49] [PASSED] 63 VFs
[14:11:49] ================== [PASSED] fair_contexts ==================
[14:11:49] ===================== fair_doorbells ======================
[14:11:49] [PASSED] 1 VF
[14:11:49] [PASSED] 2 VFs
[14:11:49] [PASSED] 3 VFs
[14:11:49] [PASSED] 4 VFs
[14:11:49] [PASSED] 5 VFs
[14:11:49] [PASSED] 6 VFs
[14:11:49] [PASSED] 7 VFs
[14:11:49] [PASSED] 8 VFs
[14:11:49] [PASSED] 9 VFs
[14:11:49] [PASSED] 10 VFs
[14:11:49] [PASSED] 11 VFs
[14:11:49] [PASSED] 12 VFs
[14:11:49] [PASSED] 13 VFs
[14:11:49] [PASSED] 14 VFs
[14:11:49] [PASSED] 15 VFs
[14:11:49] [PASSED] 16 VFs
[14:11:49] [PASSED] 17 VFs
[14:11:49] [PASSED] 18 VFs
[14:11:49] [PASSED] 19 VFs
[14:11:49] [PASSED] 20 VFs
[14:11:49] [PASSED] 21 VFs
[14:11:49] [PASSED] 22 VFs
[14:11:49] [PASSED] 23 VFs
[14:11:49] [PASSED] 24 VFs
[14:11:49] [PASSED] 25 VFs
[14:11:49] [PASSED] 26 VFs
[14:11:49] [PASSED] 27 VFs
[14:11:49] [PASSED] 28 VFs
[14:11:49] [PASSED] 29 VFs
[14:11:49] [PASSED] 30 VFs
[14:11:49] [PASSED] 31 VFs
[14:11:49] [PASSED] 32 VFs
[14:11:49] [PASSED] 33 VFs
[14:11:49] [PASSED] 34 VFs
[14:11:49] [PASSED] 35 VFs
[14:11:49] [PASSED] 36 VFs
[14:11:49] [PASSED] 37 VFs
[14:11:49] [PASSED] 38 VFs
[14:11:49] [PASSED] 39 VFs
[14:11:49] [PASSED] 40 VFs
[14:11:49] [PASSED] 41 VFs
[14:11:49] [PASSED] 42 VFs
[14:11:49] [PASSED] 43 VFs
[14:11:49] [PASSED] 44 VFs
[14:11:49] [PASSED] 45 VFs
[14:11:49] [PASSED] 46 VFs
[14:11:49] [PASSED] 47 VFs
[14:11:49] [PASSED] 48 VFs
[14:11:49] [PASSED] 49 VFs
[14:11:49] [PASSED] 50 VFs
[14:11:49] [PASSED] 51 VFs
[14:11:49] [PASSED] 52 VFs
[14:11:49] [PASSED] 53 VFs
[14:11:49] [PASSED] 54 VFs
[14:11:49] [PASSED] 55 VFs
[14:11:49] [PASSED] 56 VFs
[14:11:49] [PASSED] 57 VFs
[14:11:49] [PASSED] 58 VFs
[14:11:49] [PASSED] 59 VFs
[14:11:49] [PASSED] 60 VFs
[14:11:49] [PASSED] 61 VFs
[14:11:49] [PASSED] 62 VFs
[14:11:49] [PASSED] 63 VFs
[14:11:49] ================= [PASSED] fair_doorbells ==================
[14:11:49] ======================== fair_ggtt ========================
[14:11:49] [PASSED] 1 VF
[14:11:49] [PASSED] 2 VFs
[14:11:49] [PASSED] 3 VFs
[14:11:49] [PASSED] 4 VFs
[14:11:49] [PASSED] 5 VFs
[14:11:49] [PASSED] 6 VFs
[14:11:49] [PASSED] 7 VFs
[14:11:49] [PASSED] 8 VFs
[14:11:49] [PASSED] 9 VFs
[14:11:49] [PASSED] 10 VFs
[14:11:49] [PASSED] 11 VFs
[14:11:49] [PASSED] 12 VFs
[14:11:49] [PASSED] 13 VFs
[14:11:49] [PASSED] 14 VFs
[14:11:49] [PASSED] 15 VFs
[14:11:49] [PASSED] 16 VFs
[14:11:49] [PASSED] 17 VFs
[14:11:49] [PASSED] 18 VFs
[14:11:49] [PASSED] 19 VFs
[14:11:49] [PASSED] 20 VFs
[14:11:49] [PASSED] 21 VFs
[14:11:49] [PASSED] 22 VFs
[14:11:49] [PASSED] 23 VFs
[14:11:49] [PASSED] 24 VFs
[14:11:49] [PASSED] 25 VFs
[14:11:49] [PASSED] 26 VFs
[14:11:49] [PASSED] 27 VFs
[14:11:49] [PASSED] 28 VFs
[14:11:49] [PASSED] 29 VFs
[14:11:49] [PASSED] 30 VFs
[14:11:49] [PASSED] 31 VFs
[14:11:49] [PASSED] 32 VFs
[14:11:49] [PASSED] 33 VFs
[14:11:49] [PASSED] 34 VFs
[14:11:49] [PASSED] 35 VFs
[14:11:49] [PASSED] 36 VFs
[14:11:49] [PASSED] 37 VFs
[14:11:49] [PASSED] 38 VFs
[14:11:49] [PASSED] 39 VFs
[14:11:49] [PASSED] 40 VFs
[14:11:49] [PASSED] 41 VFs
[14:11:49] [PASSED] 42 VFs
[14:11:49] [PASSED] 43 VFs
[14:11:49] [PASSED] 44 VFs
[14:11:49] [PASSED] 45 VFs
[14:11:49] [PASSED] 46 VFs
[14:11:49] [PASSED] 47 VFs
[14:11:49] [PASSED] 48 VFs
[14:11:49] [PASSED] 49 VFs
[14:11:49] [PASSED] 50 VFs
[14:11:49] [PASSED] 51 VFs
[14:11:49] [PASSED] 52 VFs
[14:11:49] [PASSED] 53 VFs
[14:11:49] [PASSED] 54 VFs
[14:11:49] [PASSED] 55 VFs
[14:11:49] [PASSED] 56 VFs
[14:11:49] [PASSED] 57 VFs
[14:11:49] [PASSED] 58 VFs
[14:11:49] [PASSED] 59 VFs
[14:11:49] [PASSED] 60 VFs
[14:11:49] [PASSED] 61 VFs
[14:11:49] [PASSED] 62 VFs
[14:11:49] [PASSED] 63 VFs
[14:11:49] ==================== [PASSED] fair_ggtt ====================
[14:11:49] ======================== fair_vram ========================
[14:11:49] [PASSED] 1 VF
[14:11:49] [PASSED] 2 VFs
[14:11:49] [PASSED] 3 VFs
[14:11:49] [PASSED] 4 VFs
[14:11:49] [PASSED] 5 VFs
[14:11:49] [PASSED] 6 VFs
[14:11:49] [PASSED] 7 VFs
[14:11:49] [PASSED] 8 VFs
[14:11:49] [PASSED] 9 VFs
[14:11:49] [PASSED] 10 VFs
[14:11:49] [PASSED] 11 VFs
[14:11:49] [PASSED] 12 VFs
[14:11:49] [PASSED] 13 VFs
[14:11:49] [PASSED] 14 VFs
[14:11:49] [PASSED] 15 VFs
[14:11:49] [PASSED] 16 VFs
[14:11:49] [PASSED] 17 VFs
[14:11:49] [PASSED] 18 VFs
[14:11:49] [PASSED] 19 VFs
[14:11:49] [PASSED] 20 VFs
[14:11:49] [PASSED] 21 VFs
[14:11:49] [PASSED] 22 VFs
[14:11:49] [PASSED] 23 VFs
[14:11:49] [PASSED] 24 VFs
[14:11:49] [PASSED] 25 VFs
[14:11:49] [PASSED] 26 VFs
[14:11:49] [PASSED] 27 VFs
[14:11:49] [PASSED] 28 VFs
[14:11:49] [PASSED] 29 VFs
[14:11:49] [PASSED] 30 VFs
[14:11:49] [PASSED] 31 VFs
[14:11:49] [PASSED] 32 VFs
[14:11:49] [PASSED] 33 VFs
[14:11:49] [PASSED] 34 VFs
[14:11:49] [PASSED] 35 VFs
[14:11:49] [PASSED] 36 VFs
[14:11:49] [PASSED] 37 VFs
[14:11:49] [PASSED] 38 VFs
[14:11:49] [PASSED] 39 VFs
[14:11:49] [PASSED] 40 VFs
[14:11:49] [PASSED] 41 VFs
[14:11:49] [PASSED] 42 VFs
[14:11:49] [PASSED] 43 VFs
[14:11:49] [PASSED] 44 VFs
[14:11:49] [PASSED] 45 VFs
[14:11:49] [PASSED] 46 VFs
[14:11:49] [PASSED] 47 VFs
[14:11:49] [PASSED] 48 VFs
[14:11:49] [PASSED] 49 VFs
[14:11:49] [PASSED] 50 VFs
[14:11:49] [PASSED] 51 VFs
[14:11:49] [PASSED] 52 VFs
[14:11:49] [PASSED] 53 VFs
[14:11:49] [PASSED] 54 VFs
[14:11:49] [PASSED] 55 VFs
[14:11:49] [PASSED] 56 VFs
[14:11:49] [PASSED] 57 VFs
[14:11:49] [PASSED] 58 VFs
[14:11:49] [PASSED] 59 VFs
[14:11:49] [PASSED] 60 VFs
[14:11:49] [PASSED] 61 VFs
[14:11:49] [PASSED] 62 VFs
[14:11:49] [PASSED] 63 VFs
[14:11:49] ==================== [PASSED] fair_vram ====================
[14:11:49] ================== [PASSED] pf_gt_config ===================
[14:11:49] ===================== lmtt (1 subtest) =====================
[14:11:49] ======================== test_ops =========================
[14:11:49] [PASSED] 2-level
[14:11:49] [PASSED] multi-level
[14:11:49] ==================== [PASSED] test_ops =====================
[14:11:49] ====================== [PASSED] lmtt =======================
[14:11:49] ================= sriov_packet (1 subtest) =================
[14:11:49] [PASSED] test_descriptor_init
[14:11:49] ================== [PASSED] sriov_packet ===================
[14:11:49] ================= pf_service (11 subtests) =================
[14:11:49] [PASSED] pf_negotiate_any
[14:11:49] [PASSED] pf_negotiate_base_match
[14:11:49] [PASSED] pf_negotiate_base_newer
[14:11:49] [PASSED] pf_negotiate_base_next
[14:11:49] [SKIPPED] pf_negotiate_base_older (no older minor)
[14:11:49] [PASSED] pf_negotiate_base_prev
[14:11:49] [PASSED] pf_negotiate_latest_match
[14:11:49] [PASSED] pf_negotiate_latest_newer
[14:11:49] [PASSED] pf_negotiate_latest_next
[14:11:49] [SKIPPED] pf_negotiate_latest_older (no older minor)
[14:11:49] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[14:11:49] =================== [PASSED] pf_service ====================
[14:11:49] ================= xe_guc_g2g (2 subtests) ==================
[14:11:49] ============== xe_live_guc_g2g_kunit_default ==============
[14:11:49] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[14:11:49] ============== xe_live_guc_g2g_kunit_allmem ===============
[14:11:49] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[14:11:49] =================== [SKIPPED] xe_guc_g2g ===================
[14:11:49] =================== xe_mocs (2 subtests) ===================
[14:11:49] ================ xe_live_mocs_kernel_kunit ================
[14:11:49] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[14:11:49] ================ xe_live_mocs_reset_kunit =================
[14:11:49] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[14:11:49] ==================== [SKIPPED] xe_mocs =====================
[14:11:49] ================= xe_migrate (2 subtests) ==================
[14:11:49] ================= xe_migrate_sanity_kunit =================
[14:11:49] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[14:11:49] ================== xe_validate_ccs_kunit ==================
[14:11:49] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[14:11:49] =================== [SKIPPED] xe_migrate ===================
[14:11:49] ================== xe_dma_buf (1 subtest) ==================
[14:11:49] ==================== xe_dma_buf_kunit =====================
[14:11:49] ================ [SKIPPED] xe_dma_buf_kunit ================
[14:11:49] =================== [SKIPPED] xe_dma_buf ===================
[14:11:49] ================= xe_bo_shrink (1 subtest) =================
[14:11:49] =================== xe_bo_shrink_kunit ====================
[14:11:49] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[14:11:49] ================== [SKIPPED] xe_bo_shrink ==================
[14:11:49] ==================== xe_bo (2 subtests) ====================
[14:11:49] ================== xe_ccs_migrate_kunit ===================
[14:11:49] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[14:11:49] ==================== xe_bo_evict_kunit ====================
[14:11:49] =============== [SKIPPED] xe_bo_evict_kunit ================
[14:11:49] ===================== [SKIPPED] xe_bo ======================
[14:11:49] =================== xe_any (9 subtests) ====================
[14:11:49] [PASSED] test_to_xe
[14:11:49] [PASSED] test_to_dev
[14:11:49] [PASSED] test_to_pdev
[14:11:49] [PASSED] test_to_drm
[14:11:49] [PASSED] test_if_pdev
[14:11:49] [PASSED] test_if_xe
[14:11:49] [PASSED] test_if_tile
[14:11:49] [PASSED] test_if_gt
[14:11:49] [PASSED] test_to_id
[14:11:49] ===================== [PASSED] xe_any ======================
[14:11:49] ==================== args (13 subtests) ====================
[14:11:49] [PASSED] count_args_test
[14:11:49] [PASSED] call_args_example
[14:11:49] [PASSED] call_args_test
[14:11:49] [PASSED] drop_first_arg_example
[14:11:49] [PASSED] drop_first_arg_test
[14:11:49] [PASSED] first_arg_example
[14:11:49] [PASSED] first_arg_test
[14:11:49] [PASSED] last_arg_example
[14:11:49] [PASSED] last_arg_test
[14:11:49] [PASSED] pick_arg_example
[14:11:49] [PASSED] if_args_example
[14:11:49] [PASSED] if_args_test
[14:11:49] [PASSED] sep_comma_example
[14:11:49] ====================== [PASSED] args =======================
[14:11:49] =================== xe_pci (3 subtests) ====================
[14:11:49] ==================== check_graphics_ip ====================
[14:11:49] [PASSED] 12.00 Xe_LP
[14:11:49] [PASSED] 12.10 Xe_LP+
[14:11:49] [PASSED] 12.55 Xe_HPG
[14:11:49] [PASSED] 12.60 Xe_HPC
[14:11:49] [PASSED] 12.70 Xe_LPG
[14:11:49] [PASSED] 12.71 Xe_LPG
[14:11:49] [PASSED] 12.74 Xe_LPG+
[14:11:49] [PASSED] 20.01 Xe2_HPG
[14:11:49] [PASSED] 20.02 Xe2_HPG
[14:11:49] [PASSED] 20.04 Xe2_LPG
[14:11:49] [PASSED] 30.00 Xe3_LPG
[14:11:49] [PASSED] 30.01 Xe3_LPG
[14:11:49] [PASSED] 30.03 Xe3_LPG
[14:11:49] [PASSED] 30.04 Xe3_LPG
[14:11:49] [PASSED] 30.05 Xe3_LPG
[14:11:49] [PASSED] 35.10 Xe3p_LPG
[14:11:49] [PASSED] 35.11 Xe3p_XPC
[14:11:49] ================ [PASSED] check_graphics_ip ================
[14:11:49] ===================== check_media_ip ======================
[14:11:49] [PASSED] 12.00 Xe_M
[14:11:49] [PASSED] 12.55 Xe_HPM
[14:11:49] [PASSED] 13.00 Xe_LPM+
[14:11:49] [PASSED] 13.01 Xe2_HPM
[14:11:49] [PASSED] 20.00 Xe2_LPM
[14:11:49] [PASSED] 30.00 Xe3_LPM
[14:11:49] [PASSED] 30.02 Xe3_LPM
[14:11:49] [PASSED] 35.00 Xe3p_LPM
[14:11:49] [PASSED] 35.03 Xe3p_HPM
[14:11:49] ================= [PASSED] check_media_ip ==================
[14:11:49] =================== check_platform_desc ===================
[14:11:49] [PASSED] 0x9A60 (TIGERLAKE)
[14:11:49] [PASSED] 0x9A68 (TIGERLAKE)
[14:11:49] [PASSED] 0x9A70 (TIGERLAKE)
[14:11:49] [PASSED] 0x9A40 (TIGERLAKE)
[14:11:49] [PASSED] 0x9A49 (TIGERLAKE)
[14:11:49] [PASSED] 0x9A59 (TIGERLAKE)
[14:11:49] [PASSED] 0x9A78 (TIGERLAKE)
[14:11:49] [PASSED] 0x9AC0 (TIGERLAKE)
[14:11:49] [PASSED] 0x9AC9 (TIGERLAKE)
[14:11:49] [PASSED] 0x9AD9 (TIGERLAKE)
[14:11:49] [PASSED] 0x9AF8 (TIGERLAKE)
[14:11:49] [PASSED] 0x4C80 (ROCKETLAKE)
[14:11:49] [PASSED] 0x4C8A (ROCKETLAKE)
[14:11:49] [PASSED] 0x4C8B (ROCKETLAKE)
[14:11:49] [PASSED] 0x4C8C (ROCKETLAKE)
[14:11:49] [PASSED] 0x4C90 (ROCKETLAKE)
[14:11:49] [PASSED] 0x4C9A (ROCKETLAKE)
[14:11:49] [PASSED] 0x4680 (ALDERLAKE_S)
[14:11:49] [PASSED] 0x4682 (ALDERLAKE_S)
[14:11:49] [PASSED] 0x4688 (ALDERLAKE_S)
[14:11:49] [PASSED] 0x468A (ALDERLAKE_S)
[14:11:49] [PASSED] 0x468B (ALDERLAKE_S)
[14:11:49] [PASSED] 0x4690 (ALDERLAKE_S)
[14:11:49] [PASSED] 0x4692 (ALDERLAKE_S)
[14:11:49] [PASSED] 0x4693 (ALDERLAKE_S)
[14:11:49] [PASSED] 0x46A0 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46A1 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46A2 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46A3 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46A6 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46A8 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46AA (ALDERLAKE_P)
[14:11:49] [PASSED] 0x462A (ALDERLAKE_P)
[14:11:49] [PASSED] 0x4626 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x4628 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46B0 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46B1 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46B2 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46B3 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46C0 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46C1 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46C2 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46C3 (ALDERLAKE_P)
[14:11:49] [PASSED] 0x46D0 (ALDERLAKE_N)
[14:11:49] [PASSED] 0x46D1 (ALDERLAKE_N)
[14:11:49] [PASSED] 0x46D2 (ALDERLAKE_N)
[14:11:49] [PASSED] 0x46D3 (ALDERLAKE_N)
[14:11:49] [PASSED] 0x46D4 (ALDERLAKE_N)
[14:11:49] [PASSED] 0xA721 (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7A1 (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7A9 (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7AC (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7AD (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA720 (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7A0 (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7A8 (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7AA (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA7AB (ALDERLAKE_P)
[14:11:49] [PASSED] 0xA780 (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA781 (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA782 (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA783 (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA788 (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA789 (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA78A (ALDERLAKE_S)
[14:11:49] [PASSED] 0xA78B (ALDERLAKE_S)
[14:11:49] [PASSED] 0x4905 (DG1)
[14:11:49] [PASSED] 0x4906 (DG1)
[14:11:49] [PASSED] 0x4907 (DG1)
[14:11:49] [PASSED] 0x4908 (DG1)
[14:11:49] [PASSED] 0x4909 (DG1)
[14:11:49] [PASSED] 0x56C0 (DG2)
[14:11:49] [PASSED] 0x56C2 (DG2)
[14:11:49] [PASSED] 0x56C1 (DG2)
[14:11:49] [PASSED] 0x7D51 (METEORLAKE)
[14:11:49] [PASSED] 0x7DD1 (METEORLAKE)
[14:11:49] [PASSED] 0x7D41 (METEORLAKE)
[14:11:49] [PASSED] 0x7D67 (METEORLAKE)
[14:11:49] [PASSED] 0xB640 (METEORLAKE)
[14:11:49] [PASSED] 0x56A0 (DG2)
[14:11:49] [PASSED] 0x56A1 (DG2)
[14:11:49] [PASSED] 0x56A2 (DG2)
[14:11:49] [PASSED] 0x56BE (DG2)
[14:11:49] [PASSED] 0x56BF (DG2)
[14:11:49] [PASSED] 0x5690 (DG2)
[14:11:49] [PASSED] 0x5691 (DG2)
[14:11:49] [PASSED] 0x5692 (DG2)
[14:11:49] [PASSED] 0x56A5 (DG2)
[14:11:49] [PASSED] 0x56A6 (DG2)
[14:11:49] [PASSED] 0x56B0 (DG2)
[14:11:49] [PASSED] 0x56B1 (DG2)
[14:11:49] [PASSED] 0x56BA (DG2)
[14:11:49] [PASSED] 0x56BB (DG2)
[14:11:49] [PASSED] 0x56BC (DG2)
[14:11:49] [PASSED] 0x56BD (DG2)
[14:11:49] [PASSED] 0x5693 (DG2)
[14:11:49] [PASSED] 0x5694 (DG2)
[14:11:49] [PASSED] 0x5695 (DG2)
[14:11:49] [PASSED] 0x56A3 (DG2)
[14:11:49] [PASSED] 0x56A4 (DG2)
[14:11:49] [PASSED] 0x56B2 (DG2)
[14:11:49] [PASSED] 0x56B3 (DG2)
[14:11:49] [PASSED] 0x5696 (DG2)
[14:11:49] [PASSED] 0x5697 (DG2)
[14:11:49] [PASSED] 0xB69 (PVC)
[14:11:49] [PASSED] 0xB6E (PVC)
[14:11:49] [PASSED] 0xBD4 (PVC)
[14:11:49] [PASSED] 0xBD5 (PVC)
[14:11:49] [PASSED] 0xBD6 (PVC)
[14:11:49] [PASSED] 0xBD7 (PVC)
[14:11:49] [PASSED] 0xBD8 (PVC)
[14:11:49] [PASSED] 0xBD9 (PVC)
[14:11:49] [PASSED] 0xBDA (PVC)
[14:11:49] [PASSED] 0xBDB (PVC)
[14:11:49] [PASSED] 0xBE0 (PVC)
[14:11:49] [PASSED] 0xBE1 (PVC)
[14:11:49] [PASSED] 0xBE5 (PVC)
[14:11:49] [PASSED] 0x7D40 (METEORLAKE)
[14:11:49] [PASSED] 0x7D45 (METEORLAKE)
[14:11:49] [PASSED] 0x7D55 (METEORLAKE)
[14:11:49] [PASSED] 0x7D60 (METEORLAKE)
[14:11:49] [PASSED] 0x7DD5 (METEORLAKE)
[14:11:49] [PASSED] 0x6420 (LUNARLAKE)
[14:11:49] [PASSED] 0x64A0 (LUNARLAKE)
[14:11:49] [PASSED] 0x64B0 (LUNARLAKE)
[14:11:49] [PASSED] 0xE202 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE209 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE20B (BATTLEMAGE)
[14:11:49] [PASSED] 0xE20C (BATTLEMAGE)
[14:11:49] [PASSED] 0xE20D (BATTLEMAGE)
[14:11:49] [PASSED] 0xE210 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE211 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE212 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE216 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE220 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE221 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE222 (BATTLEMAGE)
[14:11:49] [PASSED] 0xE223 (BATTLEMAGE)
[14:11:49] [PASSED] 0xB080 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB081 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB082 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB083 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB084 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB085 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB086 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB087 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB08F (PANTHERLAKE)
[14:11:49] [PASSED] 0xB090 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB0A0 (PANTHERLAKE)
[14:11:49] [PASSED] 0xB0B0 (PANTHERLAKE)
[14:11:49] [PASSED] 0xFD80 (PANTHERLAKE)
[14:11:49] [PASSED] 0xFD81 (PANTHERLAKE)
[14:11:49] [PASSED] 0xD740 (NOVALAKE_S)
[14:11:49] [PASSED] 0xD741 (NOVALAKE_S)
[14:11:49] [PASSED] 0xD742 (NOVALAKE_S)
[14:11:49] [PASSED] 0xD743 (NOVALAKE_S)
[14:11:49] [PASSED] 0xD745 (NOVALAKE_S)
[14:11:49] [PASSED] 0xD74A (NOVALAKE_S)
[14:11:49] [PASSED] 0xD74B (NOVALAKE_S)
[14:11:49] [PASSED] 0x674C (CRESCENTISLAND)
[14:11:49] [PASSED] 0x674D (CRESCENTISLAND)
[14:11:49] [PASSED] 0x674E (CRESCENTISLAND)
[14:11:49] [PASSED] 0x674F (CRESCENTISLAND)
[14:11:49] [PASSED] 0x6750 (CRESCENTISLAND)
[14:11:49] [PASSED] 0xD750 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD751 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD752 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD753 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD754 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD755 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD756 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD757 (NOVALAKE_P)
[14:11:49] [PASSED] 0xD75F (NOVALAKE_P)
[14:11:49] =============== [PASSED] check_platform_desc ===============
[14:11:49] ===================== [PASSED] xe_pci ======================
[14:11:49] ============= xe_rtp_tables_test (5 subtests) ==============
[14:11:49] ================== xe_rtp_table_gt_test ===================
[14:11:49] [PASSED] gt_was/14011060649
[14:11:49] [PASSED] gt_was/14011059788
[14:11:49] [PASSED] gt_was/14015795083
[14:11:49] [PASSED] gt_was/16021867713
[14:11:49] [PASSED] gt_was/14019449301
[14:11:49] [PASSED] gt_was/16028005424
[14:11:49] [PASSED] gt_was/14026578760
[14:11:49] [PASSED] gt_was/1409420604
[14:11:49] [PASSED] gt_was/1408615072
[14:11:49] [PASSED] gt_was/22010523718
[14:11:49] [PASSED] gt_was/14011006942
[14:11:49] [PASSED] gt_was/14014830051
[14:11:49] [PASSED] gt_was/18018781329
[14:11:49] [PASSED] gt_was/1509235366
[14:11:49] [PASSED] gt_was/18018781329
[14:11:49] [PASSED] gt_was/16016694945
[14:11:49] [PASSED] gt_was/14018575942
[14:11:49] [PASSED] gt_was/22016670082
[14:11:49] [PASSED] gt_was/22016670082
[14:11:49] [PASSED] gt_was/14017421178
[14:11:49] [PASSED] gt_was/16025250150
[14:11:49] [PASSED] gt_was/14021871409
[14:11:49] [PASSED] gt_was/16021865536
[14:11:49] [PASSED] gt_was/14021486841
[14:11:49] [PASSED] gt_was/14025160223
[14:11:49] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[14:11:49] [PASSED] gt_was/14025635424
[14:11:49] [PASSED] gt_was/16028005424
[14:11:49] ============== [PASSED] xe_rtp_table_gt_test ===============
[14:11:49] ================== xe_rtp_table_gt_test ===================
[14:11:49] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[14:11:49] [PASSED] gt_tunings/Tuning: 32B Access Enable
[14:11:49] [PASSED] gt_tunings/Tuning: L3 cache
[14:11:49] [PASSED] gt_tunings/Tuning: L3 cache - media
[14:11:49] [PASSED] gt_tunings/Tuning: Compression Overfetch
[14:11:49] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[14:11:49] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[14:11:49] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[14:11:49] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[14:11:49] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[14:11:49] [PASSED] gt_tunings/Tuning: Stateless compression control
[14:11:49] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[14:11:49] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[14:11:49] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[14:11:49] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[14:11:49] ============== [PASSED] xe_rtp_table_gt_test ===============
[14:11:49] ================== xe_rtp_table_oob_test ==================
[14:11:49] [PASSED] oob_was/1607983814
[14:11:49] [PASSED] oob_was/16010904313
[14:11:49] [PASSED] oob_was/18022495364
[14:11:49] [PASSED] oob_was/22012773006
[14:11:49] [PASSED] oob_was/14014475959
[14:11:49] [PASSED] oob_was/22011391025
[14:11:49] [PASSED] oob_was/22012727170
[14:11:49] [PASSED] oob_was/22012727685
[14:11:49] [PASSED] oob_was/22016596838
[14:11:49] [PASSED] oob_was/18020744125
[14:11:49] [PASSED] oob_was/1409600907
[14:11:49] [PASSED] oob_was/22014953428
[14:11:49] [PASSED] oob_was/16017236439
[14:11:49] [PASSED] oob_was/14019821291
[14:11:49] [PASSED] oob_was/14015076503
[14:11:49] [PASSED] oob_was/14018913170
[14:11:49] [PASSED] oob_was/14018094691
[14:11:49] [PASSED] oob_was/18024947630
[14:11:49] [PASSED] oob_was/16022287689
[14:11:49] [PASSED] oob_was/13011645652
[14:11:49] [PASSED] oob_was/14022293748
[14:11:49] [PASSED] oob_was/22019794406
[14:11:49] [PASSED] oob_was/22019338487
[14:11:49] [PASSED] oob_was/16023588340
[14:11:49] [PASSED] oob_was/14019789679
[14:11:49] [PASSED] oob_was/14022866841
[14:11:49] [PASSED] oob_was/16021333562
[14:11:49] [PASSED] oob_was/14016712196
[14:11:49] [PASSED] oob_was/14015568240
[14:11:49] [PASSED] oob_was/18013179988
[14:11:49] [PASSED] oob_was/1508761755
[14:11:49] [PASSED] oob_was/16023105232
[14:11:49] [PASSED] oob_was/16026508708
[14:11:49] [PASSED] oob_was/14020001231
[14:11:49] [PASSED] oob_was/16023683509
[14:11:49] [PASSED] oob_was/14025515070
[14:11:49] [PASSED] oob_was/15015404425_disable
[14:11:49] [PASSED] oob_was/16026007364
[14:11:49] [PASSED] oob_was/14020316580
[14:11:49] [PASSED] oob_was/14025883347
[14:11:49] [PASSED] oob_was/16029380221
[14:11:49] [PASSED] oob_was/22022079272
[14:11:49] [PASSED] oob_was/16029897822
[14:11:49] [PASSED] oob_was/14027054324
[14:11:49] ============== [PASSED] xe_rtp_table_oob_test ==============
[14:11:49] ================ xe_rtp_table_dev_oob_test ================
[14:11:49] [PASSED] device_oob_was/22010954014
[14:11:49] [PASSED] device_oob_was/15015404425
[14:11:49] [PASSED] device_oob_was/22019338487_display
[14:11:49] [PASSED] device_oob_was/14022085890
[14:11:49] [PASSED] device_oob_was/14026539277
[14:11:49] [PASSED] device_oob_was/14026633728
[14:11:49] [PASSED] device_oob_was/14026746987
[14:11:49] [PASSED] device_oob_was/14026779378
[14:11:49] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[14:11:49] ========== xe_rtp_table_missing_upper_bound_test ==========
[14:11:49] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[14:11:49] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[14:11:49] [PASSED] register_whitelist/1806527549
[14:11:49] [PASSED] register_whitelist/allow_read_ctx_timestamp
[14:11:49] [PASSED] register_whitelist/allow_read_queue_timestamp
[14:11:49] [PASSED] register_whitelist/16014440446
[14:11:49] [PASSED] register_whitelist/16017236439
[14:11:49] [PASSED] register_whitelist/16020183090
[14:11:49] [PASSED] register_whitelist/14024997852
[14:11:49] [PASSED] register_whitelist/14024997852
[14:11:49] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[14:11:49] =============== [PASSED] xe_rtp_tables_test ================
[14:11:49] =================== xe_rtp (3 subtests) ====================
[14:11:49] =================== xe_rtp_rules_tests ====================
[14:11:49] [PASSED] no
[14:11:49] [PASSED] yes
[14:11:49] [PASSED] no-and-no
[14:11:49] [PASSED] no-and-yes
[14:11:49] [PASSED] yes-and-no
[14:11:49] [PASSED] yes-and-yes
[14:11:49] [PASSED] no-or-no
[14:11:49] [PASSED] no-or-yes
[14:11:49] [PASSED] yes-or-no
[14:11:49] [PASSED] yes-or-yes
[14:11:49] [PASSED] no-yes-or-yes-no
[14:11:49] [PASSED] no-yes-or-yes-yes
[14:11:49] [PASSED] yes-yes-or-no-yes
[14:11:49] [PASSED] yes-yes-or-yes-yes
[14:11:49] [PASSED] no-no-or-yes-or-no
[14:11:49] [PASSED] or
[14:11:49] [PASSED] or-yes
[14:11:49] [PASSED] or-no
[14:11:49] [PASSED] yes-or
[14:11:49] [PASSED] no-or
[14:11:49] [PASSED] no-or-or-yes
[14:11:49] [PASSED] yes-or-or-no
[14:11:49] [PASSED] no-or-or-no
[14:11:49] [PASSED] missing-context-engine-class
[14:11:49] [PASSED] missing-context-engine-class-or-yes
[14:11:49] [PASSED] missing-context-engine-class-or-or-yes
[14:11:49] =============== [PASSED] xe_rtp_rules_tests ================
[14:11:49] =============== xe_rtp_process_to_sr_tests ================
[14:11:49] [PASSED] coalesce-same-reg
[14:11:49] [PASSED] coalesce-same-reg-literal-and-func
[14:11:49] [PASSED] no-match-no-add
[14:11:49] [PASSED] two-regs-two-entries
[14:11:49] [PASSED] clr-one-set-other
[14:11:49] [PASSED] set-field
[14:11:49] [PASSED] conflict-duplicate
[14:11:49] [PASSED] conflict-not-disjoint
[14:11:49] [PASSED] conflict-not-disjoint-literal-and-func
[14:11:49] [PASSED] conflict-reg-type
[14:11:49] [PASSED] bad-mcr-reg-forced-to-regular
[14:11:49] [PASSED] bad-regular-reg-forced-to-mcr
[14:11:49] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[14:11:49] ================== xe_rtp_process_tests ===================
[14:11:49] [PASSED] active1
[14:11:49] [PASSED] active2
[14:11:49] [PASSED] active-inactive
[14:11:49] [PASSED] inactive-active
[14:11:49] [PASSED] inactive-active-inactive
[14:11:49] [PASSED] inactive-inactive-inactive
[14:11:49] ============== [PASSED] xe_rtp_process_tests ===============
[14:11:49] ===================== [PASSED] xe_rtp ======================
[14:11:49] ==================== xe_wa (1 subtest) =====================
[14:11:49] ======================== xe_wa_gt =========================
[14:11:49] [PASSED] TIGERLAKE B0
[14:11:49] [PASSED] DG1 A0
[14:11:49] [PASSED] DG1 B0
[14:11:49] [PASSED] ALDERLAKE_S A0
[14:11:49] [PASSED] ALDERLAKE_S B0
[14:11:49] [PASSED] ALDERLAKE_S C0
[14:11:49] [PASSED] ALDERLAKE_S D0
[14:11:49] [PASSED] ALDERLAKE_P A0
[14:11:49] [PASSED] ALDERLAKE_P B0
[14:11:49] [PASSED] ALDERLAKE_P C0
[14:11:49] [PASSED] ALDERLAKE_S RPLS D0
[14:11:49] [PASSED] ALDERLAKE_P RPLU E0
[14:11:49] [PASSED] DG2 G10 C0
[14:11:49] [PASSED] DG2 G11 B1
[14:11:49] [PASSED] DG2 G12 A1
[14:11:49] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[14:11:49] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[14:11:49] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[14:11:49] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[14:11:49] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[14:11:49] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[14:11:49] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[14:11:49] ==================== [PASSED] xe_wa_gt =====================
[14:11:49] ====================== [PASSED] xe_wa ======================
[14:11:49] ============================================================
[14:11:49] Testing complete. Ran 793 tests: passed: 765, skipped: 28
[14:11:49] Elapsed time: 36.970s total, 1.845s configuring, 34.409s building, 0.687s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[14:11:49] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:11:51] 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
[14:12:16] Starting KUnit Kernel (1/1)...
[14:12:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:12:16] ============= refcount_interrupt (4 subtests) ==============
[14:12:16] [PASSED] test_single_irq_change
[14:12:16] [PASSED] test_nested_irq_change
[14:12:16] [PASSED] test_multiple_irq_change
[14:12:16] [PASSED] test_irq_save
[14:12:16] =============== [PASSED] refcount_interrupt ================
[14:12:16] ============ drm_test_pick_cmdline (2 subtests) ============
[14:12:16] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[14:12:16] =============== drm_test_pick_cmdline_named ===============
[14:12:16] [PASSED] NTSC
[14:12:16] [PASSED] NTSC-J
[14:12:16] [PASSED] PAL
[14:12:16] [PASSED] PAL-M
[14:12:16] =========== [PASSED] drm_test_pick_cmdline_named ===========
[14:12:16] ============== [PASSED] drm_test_pick_cmdline ==============
[14:12:16] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[14:12:16] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[14:12:16] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[14:12:16] =========== drm_validate_clone_mode (2 subtests) ===========
[14:12:16] ============== drm_test_check_in_clone_mode ===============
[14:12:16] [PASSED] in_clone_mode
[14:12:16] [PASSED] not_in_clone_mode
[14:12:16] ========== [PASSED] drm_test_check_in_clone_mode ===========
[14:12:16] =============== drm_test_check_valid_clones ===============
[14:12:16] [PASSED] not_in_clone_mode
[14:12:16] [PASSED] valid_clone
[14:12:16] [PASSED] invalid_clone
[14:12:16] =========== [PASSED] drm_test_check_valid_clones ===========
[14:12:16] ============= [PASSED] drm_validate_clone_mode =============
[14:12:16] ============= drm_validate_modeset (1 subtest) =============
[14:12:16] [PASSED] drm_test_check_connector_changed_modeset
[14:12:16] ============== [PASSED] drm_validate_modeset ===============
[14:12:16] ====== drm_test_bridge_get_current_state (1 subtest) =======
[14:12:16] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[14:12:16] ======== [PASSED] drm_test_bridge_get_current_state ========
[14:12:16] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[14:12:16] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[14:12:16] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[14:12:16] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[14:12:16] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[14:12:16] ============== drm_bridge_alloc (2 subtests) ===============
[14:12:16] [PASSED] drm_test_drm_bridge_alloc_basic
[14:12:16] [PASSED] drm_test_drm_bridge_alloc_get_put
[14:12:16] ================ [PASSED] drm_bridge_alloc =================
[14:12:16] ============= drm_bridge_bus_fmt (5 subtests) ==============
[14:12:16] [PASSED] drm_test_bridge_rgb_yuv_rgb
[14:12:16] [PASSED] drm_test_bridge_must_convert_to_yuv444
[14:12:16] [PASSED] drm_test_bridge_hdmi_auto_rgb
[14:12:16] [PASSED] drm_test_bridge_auto_first
[14:12:16] [PASSED] drm_test_bridge_rgb_yuv_no_path
[14:12:16] =============== [PASSED] drm_bridge_bus_fmt ================
[14:12:16] ============= drm_cmdline_parser (40 subtests) =============
[14:12:16] [PASSED] drm_test_cmdline_force_d_only
[14:12:16] [PASSED] drm_test_cmdline_force_D_only_dvi
[14:12:16] [PASSED] drm_test_cmdline_force_D_only_hdmi
[14:12:16] [PASSED] drm_test_cmdline_force_D_only_not_digital
[14:12:16] [PASSED] drm_test_cmdline_force_e_only
[14:12:16] [PASSED] drm_test_cmdline_res
[14:12:16] [PASSED] drm_test_cmdline_res_vesa
[14:12:16] [PASSED] drm_test_cmdline_res_vesa_rblank
[14:12:16] [PASSED] drm_test_cmdline_res_rblank
[14:12:16] [PASSED] drm_test_cmdline_res_bpp
[14:12:16] [PASSED] drm_test_cmdline_res_refresh
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[14:12:16] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[14:12:16] [PASSED] drm_test_cmdline_res_margins_force_on
[14:12:16] [PASSED] drm_test_cmdline_res_vesa_margins
[14:12:16] [PASSED] drm_test_cmdline_name
[14:12:16] [PASSED] drm_test_cmdline_name_bpp
[14:12:16] [PASSED] drm_test_cmdline_name_option
[14:12:16] [PASSED] drm_test_cmdline_name_bpp_option
[14:12:16] [PASSED] drm_test_cmdline_rotate_0
[14:12:16] [PASSED] drm_test_cmdline_rotate_90
[14:12:16] [PASSED] drm_test_cmdline_rotate_180
[14:12:16] [PASSED] drm_test_cmdline_rotate_270
[14:12:16] [PASSED] drm_test_cmdline_hmirror
[14:12:16] [PASSED] drm_test_cmdline_vmirror
[14:12:16] [PASSED] drm_test_cmdline_margin_options
[14:12:16] [PASSED] drm_test_cmdline_multiple_options
[14:12:16] [PASSED] drm_test_cmdline_bpp_extra_and_option
[14:12:16] [PASSED] drm_test_cmdline_extra_and_option
[14:12:16] [PASSED] drm_test_cmdline_freestanding_options
[14:12:16] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[14:12:16] [PASSED] drm_test_cmdline_panel_orientation
[14:12:16] ================ drm_test_cmdline_invalid =================
[14:12:16] [PASSED] margin_only
[14:12:16] [PASSED] interlace_only
[14:12:16] [PASSED] res_missing_x
[14:12:16] [PASSED] res_missing_y
[14:12:16] [PASSED] res_bad_y
[14:12:16] [PASSED] res_missing_y_bpp
[14:12:16] [PASSED] res_bad_bpp
[14:12:16] [PASSED] res_bad_refresh
[14:12:16] [PASSED] res_bpp_refresh_force_on_off
[14:12:16] [PASSED] res_invalid_mode
[14:12:16] [PASSED] res_bpp_wrong_place_mode
[14:12:16] [PASSED] name_bpp_refresh
[14:12:16] [PASSED] name_refresh
[14:12:16] [PASSED] name_refresh_wrong_mode
[14:12:16] [PASSED] name_refresh_invalid_mode
[14:12:16] [PASSED] rotate_multiple
[14:12:16] [PASSED] rotate_invalid_val
[14:12:16] [PASSED] rotate_truncated
[14:12:16] [PASSED] invalid_option
[14:12:16] [PASSED] invalid_tv_option
[14:12:16] [PASSED] truncated_tv_option
[14:12:16] ============ [PASSED] drm_test_cmdline_invalid =============
[14:12:16] =============== drm_test_cmdline_tv_options ===============
[14:12:16] [PASSED] NTSC
[14:12:16] [PASSED] NTSC_443
[14:12:16] [PASSED] NTSC_J
[14:12:16] [PASSED] PAL
[14:12:16] [PASSED] PAL_M
[14:12:16] [PASSED] PAL_N
[14:12:16] [PASSED] SECAM
[14:12:16] [PASSED] MONO_525
[14:12:16] [PASSED] MONO_625
[14:12:16] =========== [PASSED] drm_test_cmdline_tv_options ===========
[14:12:16] =============== [PASSED] drm_cmdline_parser ================
[14:12:16] ========== drmm_connector_hdmi_init (20 subtests) ==========
[14:12:16] [PASSED] drm_test_connector_hdmi_init_valid
[14:12:16] [PASSED] drm_test_connector_hdmi_init_bpc_8
[14:12:16] [PASSED] drm_test_connector_hdmi_init_bpc_10
[14:12:16] [PASSED] drm_test_connector_hdmi_init_bpc_12
[14:12:16] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[14:12:16] [PASSED] drm_test_connector_hdmi_init_bpc_null
[14:12:16] [PASSED] drm_test_connector_hdmi_init_formats_empty
[14:12:16] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[14:12:16] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:12:16] [PASSED] supported_formats=0x9 yuv420_allowed=1
[14:12:16] [PASSED] supported_formats=0x9 yuv420_allowed=0
[14:12:16] [PASSED] supported_formats=0x5 yuv420_allowed=1
[14:12:16] [PASSED] supported_formats=0x5 yuv420_allowed=0
[14:12:16] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[14:12:16] [PASSED] drm_test_connector_hdmi_init_null_ddc
[14:12:16] [PASSED] drm_test_connector_hdmi_init_null_product
[14:12:16] [PASSED] drm_test_connector_hdmi_init_null_vendor
[14:12:16] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[14:12:16] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[14:12:16] [PASSED] drm_test_connector_hdmi_init_product_valid
[14:12:16] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[14:12:16] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[14:12:16] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[14:12:16] ========= drm_test_connector_hdmi_init_type_valid =========
[14:12:16] [PASSED] HDMI-A
[14:12:16] [PASSED] HDMI-B
[14:12:16] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[14:12:16] ======== drm_test_connector_hdmi_init_type_invalid ========
[14:12:16] [PASSED] Unknown
[14:12:16] [PASSED] VGA
[14:12:16] [PASSED] DVI-I
[14:12:16] [PASSED] DVI-D
[14:12:16] [PASSED] DVI-A
[14:12:16] [PASSED] Composite
[14:12:16] [PASSED] SVIDEO
[14:12:16] [PASSED] LVDS
[14:12:16] [PASSED] Component
[14:12:16] [PASSED] DIN
[14:12:16] [PASSED] DP
[14:12:16] [PASSED] TV
[14:12:16] [PASSED] eDP
[14:12:16] [PASSED] Virtual
[14:12:16] [PASSED] DSI
[14:12:16] [PASSED] DPI
[14:12:16] [PASSED] Writeback
[14:12:16] [PASSED] SPI
[14:12:16] [PASSED] USB
[14:12:16] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[14:12:16] ============ [PASSED] drmm_connector_hdmi_init =============
[14:12:16] ============= drmm_connector_init (3 subtests) =============
[14:12:16] [PASSED] drm_test_drmm_connector_init
[14:12:16] [PASSED] drm_test_drmm_connector_init_null_ddc
[14:12:16] ========= drm_test_drmm_connector_init_type_valid =========
[14:12:16] [PASSED] Unknown
[14:12:16] [PASSED] VGA
[14:12:16] [PASSED] DVI-I
[14:12:16] [PASSED] DVI-D
[14:12:16] [PASSED] DVI-A
[14:12:16] [PASSED] Composite
[14:12:16] [PASSED] SVIDEO
[14:12:16] [PASSED] LVDS
[14:12:16] [PASSED] Component
[14:12:16] [PASSED] DIN
[14:12:16] [PASSED] DP
[14:12:16] [PASSED] HDMI-A
[14:12:16] [PASSED] HDMI-B
[14:12:16] [PASSED] TV
[14:12:16] [PASSED] eDP
[14:12:16] [PASSED] Virtual
[14:12:16] [PASSED] DSI
[14:12:16] [PASSED] DPI
[14:12:16] [PASSED] Writeback
[14:12:16] [PASSED] SPI
[14:12:16] [PASSED] USB
[14:12:16] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[14:12:16] =============== [PASSED] drmm_connector_init ===============
[14:12:16] ========= drm_connector_dynamic_init (6 subtests) ==========
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_init
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_init_properties
[14:12:16] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[14:12:16] [PASSED] Unknown
[14:12:16] [PASSED] VGA
[14:12:16] [PASSED] DVI-I
[14:12:16] [PASSED] DVI-D
[14:12:16] [PASSED] DVI-A
[14:12:16] [PASSED] Composite
[14:12:16] [PASSED] SVIDEO
[14:12:16] [PASSED] LVDS
[14:12:16] [PASSED] Component
[14:12:16] [PASSED] DIN
[14:12:16] [PASSED] DP
[14:12:16] [PASSED] HDMI-A
[14:12:16] [PASSED] HDMI-B
[14:12:16] [PASSED] TV
[14:12:16] [PASSED] eDP
[14:12:16] [PASSED] Virtual
[14:12:16] [PASSED] DSI
[14:12:16] [PASSED] DPI
[14:12:16] [PASSED] Writeback
[14:12:16] [PASSED] SPI
[14:12:16] [PASSED] USB
[14:12:16] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[14:12:16] ======== drm_test_drm_connector_dynamic_init_name =========
[14:12:16] [PASSED] Unknown
[14:12:16] [PASSED] VGA
[14:12:16] [PASSED] DVI-I
[14:12:16] [PASSED] DVI-D
[14:12:16] [PASSED] DVI-A
[14:12:16] [PASSED] Composite
[14:12:16] [PASSED] SVIDEO
[14:12:16] [PASSED] LVDS
[14:12:16] [PASSED] Component
[14:12:16] [PASSED] DIN
[14:12:16] [PASSED] DP
[14:12:16] [PASSED] HDMI-A
[14:12:16] [PASSED] HDMI-B
[14:12:16] [PASSED] TV
[14:12:16] [PASSED] eDP
[14:12:16] [PASSED] Virtual
[14:12:16] [PASSED] DSI
[14:12:16] [PASSED] DPI
[14:12:16] [PASSED] Writeback
[14:12:16] [PASSED] SPI
[14:12:16] [PASSED] USB
[14:12:16] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[14:12:16] =========== [PASSED] drm_connector_dynamic_init ============
[14:12:16] ==== drm_connector_dynamic_register_early (4 subtests) =====
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[14:12:16] ====== [PASSED] drm_connector_dynamic_register_early =======
[14:12:16] ======= drm_connector_dynamic_register (7 subtests) ========
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[14:12:16] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[14:12:16] ========= [PASSED] drm_connector_dynamic_register ==========
[14:12:16] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[14:12:16] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[14:12:16] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[14:12:16] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[14:12:16] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[14:12:16] ========== drm_test_get_tv_mode_from_name_valid ===========
[14:12:16] [PASSED] NTSC
[14:12:16] [PASSED] NTSC-443
[14:12:16] [PASSED] NTSC-J
[14:12:16] [PASSED] PAL
[14:12:16] [PASSED] PAL-M
[14:12:16] [PASSED] PAL-N
[14:12:16] [PASSED] SECAM
[14:12:16] [PASSED] Mono
[14:12:16] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[14:12:16] [PASSED] drm_test_get_tv_mode_from_name_truncated
[14:12:16] ============ [PASSED] drm_get_tv_mode_from_name ============
[14:12:16] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[14:12:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[14:12:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[14:12:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[14:12:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[14:12:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[14:12:16] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[14:12:16] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[14:12:16] [PASSED] VIC 96
[14:12:16] [PASSED] VIC 97
[14:12:16] [PASSED] VIC 101
[14:12:16] [PASSED] VIC 102
[14:12:16] [PASSED] VIC 106
[14:12:16] [PASSED] VIC 107
[14:12:16] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[14:12:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[14:12:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[14:12:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[14:12:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[14:12:16] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[14:12:16] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[14:12:16] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[14:12:16] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[14:12:16] [PASSED] Automatic
[14:12:16] [PASSED] Full
[14:12:16] [PASSED] Limited 16:235
[14:12:16] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[14:12:16] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[14:12:16] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[14:12:16] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[14:12:16] === drm_test_drm_hdmi_connector_get_output_format_name ====
[14:12:16] [PASSED] RGB
[14:12:16] [PASSED] YUV 4:2:0
[14:12:16] [PASSED] YUV 4:2:2
[14:12:16] [PASSED] YUV 4:4:4
[14:12:16] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[14:12:16] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[14:12:16] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[14:12:16] ============= drm_damage_helper (21 subtests) ==============
[14:12:16] [PASSED] drm_test_damage_iter_no_damage
[14:12:16] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[14:12:16] [PASSED] drm_test_damage_iter_no_damage_src_moved
[14:12:16] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[14:12:16] [PASSED] drm_test_damage_iter_no_damage_not_visible
[14:12:16] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[14:12:16] [PASSED] drm_test_damage_iter_no_damage_no_fb
[14:12:16] [PASSED] drm_test_damage_iter_simple_damage
[14:12:16] [PASSED] drm_test_damage_iter_single_damage
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_outside_src
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_src_moved
[14:12:16] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[14:12:16] [PASSED] drm_test_damage_iter_damage
[14:12:16] [PASSED] drm_test_damage_iter_damage_one_intersect
[14:12:16] [PASSED] drm_test_damage_iter_damage_one_outside
[14:12:16] [PASSED] drm_test_damage_iter_damage_src_moved
[14:12:16] [PASSED] drm_test_damage_iter_damage_not_visible
[14:12:16] ================ [PASSED] drm_damage_helper ================
[14:12:16] ============== drm_dp_mst_helper (3 subtests) ==============
[14:12:16] ============== drm_test_dp_mst_calc_pbn_mode ==============
[14:12:16] [PASSED] Clock 154000 BPP 30 DSC disabled
[14:12:16] [PASSED] Clock 234000 BPP 30 DSC disabled
[14:12:16] [PASSED] Clock 297000 BPP 24 DSC disabled
[14:12:16] [PASSED] Clock 332880 BPP 24 DSC enabled
[14:12:16] [PASSED] Clock 324540 BPP 24 DSC enabled
[14:12:16] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[14:12:16] ============== drm_test_dp_mst_calc_pbn_div ===============
[14:12:16] [PASSED] Link rate 2000000 lane count 4
[14:12:16] [PASSED] Link rate 2000000 lane count 2
[14:12:16] [PASSED] Link rate 2000000 lane count 1
[14:12:16] [PASSED] Link rate 1350000 lane count 4
[14:12:16] [PASSED] Link rate 1350000 lane count 2
[14:12:16] [PASSED] Link rate 1350000 lane count 1
[14:12:16] [PASSED] Link rate 1000000 lane count 4
[14:12:16] [PASSED] Link rate 1000000 lane count 2
[14:12:16] [PASSED] Link rate 1000000 lane count 1
[14:12:16] [PASSED] Link rate 810000 lane count 4
[14:12:16] [PASSED] Link rate 810000 lane count 2
[14:12:16] [PASSED] Link rate 810000 lane count 1
[14:12:16] [PASSED] Link rate 540000 lane count 4
[14:12:16] [PASSED] Link rate 540000 lane count 2
[14:12:16] [PASSED] Link rate 540000 lane count 1
[14:12:16] [PASSED] Link rate 270000 lane count 4
[14:12:16] [PASSED] Link rate 270000 lane count 2
[14:12:16] [PASSED] Link rate 270000 lane count 1
[14:12:16] [PASSED] Link rate 162000 lane count 4
[14:12:16] [PASSED] Link rate 162000 lane count 2
[14:12:16] [PASSED] Link rate 162000 lane count 1
[14:12:16] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[14:12:16] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[14:12:16] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[14:12:16] [PASSED] DP_POWER_UP_PHY with port number
[14:12:16] [PASSED] DP_POWER_DOWN_PHY with port number
[14:12:16] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[14:12:16] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[14:12:16] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[14:12:16] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[14:12:16] [PASSED] DP_QUERY_PAYLOAD with port number
[14:12:16] [PASSED] DP_QUERY_PAYLOAD with VCPI
[14:12:16] [PASSED] DP_REMOTE_DPCD_READ with port number
[14:12:16] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[14:12:16] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[14:12:16] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[14:12:16] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[14:12:16] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[14:12:16] [PASSED] DP_REMOTE_I2C_READ with port number
[14:12:16] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[14:12:16] [PASSED] DP_REMOTE_I2C_READ with transactions array
[14:12:16] [PASSED] DP_REMOTE_I2C_WRITE with port number
[14:12:16] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[14:12:16] [PASSED] DP_REMOTE_I2C_WRITE with data array
[14:12:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[14:12:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[14:12:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[14:12:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[14:12:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[14:12:16] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[14:12:16] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[14:12:16] ================ [PASSED] drm_dp_mst_helper ================
[14:12:16] ================== drm_exec (7 subtests) ===================
[14:12:16] [PASSED] sanitycheck
[14:12:16] [PASSED] test_lock
[14:12:16] [PASSED] test_lock_unlock
[14:12:16] [PASSED] test_duplicates
[14:12:16] [PASSED] test_prepare
[14:12:16] [PASSED] test_prepare_array
[14:12:16] [PASSED] test_multiple_loops
[14:12:16] ==================== [PASSED] drm_exec =====================
[14:12:16] =========== drm_format_helper_test (17 subtests) ===========
[14:12:16] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[14:12:16] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[14:12:16] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[14:12:16] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[14:12:16] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[14:12:16] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[14:12:16] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[14:12:16] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[14:12:16] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[14:12:16] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[14:12:16] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[14:12:16] ============== drm_test_fb_xrgb8888_to_mono ===============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[14:12:16] ==================== drm_test_fb_swab =====================
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ================ [PASSED] drm_test_fb_swab =================
[14:12:16] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[14:12:16] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[14:12:16] [PASSED] single_pixel_source_buffer
[14:12:16] [PASSED] single_pixel_clip_rectangle
[14:12:16] [PASSED] well_known_colors
[14:12:16] [PASSED] destination_pitch
[14:12:16] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[14:12:16] ================= drm_test_fb_clip_offset =================
[14:12:16] [PASSED] pass through
[14:12:16] [PASSED] horizontal offset
[14:12:16] [PASSED] vertical offset
[14:12:16] [PASSED] horizontal and vertical offset
[14:12:16] [PASSED] horizontal offset (custom pitch)
[14:12:16] [PASSED] vertical offset (custom pitch)
[14:12:16] [PASSED] horizontal and vertical offset (custom pitch)
[14:12:16] ============= [PASSED] drm_test_fb_clip_offset =============
[14:12:16] =================== drm_test_fb_memcpy ====================
[14:12:16] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[14:12:16] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[14:12:16] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[14:12:16] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[14:12:16] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[14:12:16] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[14:12:16] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[14:12:16] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[14:12:16] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[14:12:16] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[14:12:16] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[14:12:16] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[14:12:16] =============== [PASSED] drm_test_fb_memcpy ================
[14:12:16] ============= [PASSED] drm_format_helper_test ==============
[14:12:16] ================= drm_format (18 subtests) =================
[14:12:16] [PASSED] drm_test_format_block_width_invalid
[14:12:16] [PASSED] drm_test_format_block_width_one_plane
[14:12:16] [PASSED] drm_test_format_block_width_two_plane
[14:12:16] [PASSED] drm_test_format_block_width_three_plane
[14:12:16] [PASSED] drm_test_format_block_width_tiled
[14:12:16] [PASSED] drm_test_format_block_height_invalid
[14:12:16] [PASSED] drm_test_format_block_height_one_plane
[14:12:16] [PASSED] drm_test_format_block_height_two_plane
[14:12:16] [PASSED] drm_test_format_block_height_three_plane
[14:12:16] [PASSED] drm_test_format_block_height_tiled
[14:12:16] [PASSED] drm_test_format_min_pitch_invalid
[14:12:16] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[14:12:16] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[14:12:16] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[14:12:16] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[14:12:16] [PASSED] drm_test_format_min_pitch_two_plane
[14:12:16] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[14:12:16] [PASSED] drm_test_format_min_pitch_tiled
[14:12:16] =================== [PASSED] drm_format ====================
[14:12:16] ============== drm_framebuffer (10 subtests) ===============
[14:12:16] ========== drm_test_framebuffer_check_src_coords ==========
[14:12:16] [PASSED] Success: source fits into fb
[14:12:16] [PASSED] Fail: overflowing fb with x-axis coordinate
[14:12:16] [PASSED] Fail: overflowing fb with y-axis coordinate
[14:12:16] [PASSED] Fail: overflowing fb with source width
[14:12:16] [PASSED] Fail: overflowing fb with source height
[14:12:16] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[14:12:16] [PASSED] drm_test_framebuffer_cleanup
[14:12:16] =============== drm_test_framebuffer_create ===============
[14:12:16] [PASSED] ABGR8888 normal sizes
[14:12:16] [PASSED] ABGR8888 max sizes
[14:12:16] [PASSED] ABGR8888 pitch greater than min required
[14:12:16] [PASSED] ABGR8888 pitch less than min required
[14:12:16] [PASSED] ABGR8888 Invalid width
[14:12:16] [PASSED] ABGR8888 Invalid buffer handle
[14:12:16] [PASSED] No pixel format
[14:12:16] [PASSED] ABGR8888 Width 0
[14:12:16] [PASSED] ABGR8888 Height 0
[14:12:16] [PASSED] ABGR8888 Out of bound height * pitch combination
[14:12:16] [PASSED] ABGR8888 Large buffer offset
[14:12:16] [PASSED] ABGR8888 Buffer offset for inexistent plane
[14:12:16] [PASSED] ABGR8888 Invalid flag
[14:12:16] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[14:12:16] [PASSED] ABGR8888 Valid buffer modifier
[14:12:16] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[14:12:16] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] NV12 Normal sizes
[14:12:16] [PASSED] NV12 Max sizes
[14:12:16] [PASSED] NV12 Invalid pitch
[14:12:16] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[14:12:16] [PASSED] NV12 different modifier per-plane
[14:12:16] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[14:12:16] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] NV12 Modifier for inexistent plane
[14:12:16] [PASSED] NV12 Handle for inexistent plane
[14:12:16] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[14:12:16] [PASSED] YVU420 Normal sizes
[14:12:16] [PASSED] YVU420 Max sizes
[14:12:16] [PASSED] YVU420 Invalid pitch
[14:12:16] [PASSED] YVU420 Different pitches
[14:12:16] [PASSED] YVU420 Different buffer offsets/pitches
[14:12:16] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[14:12:16] [PASSED] YVU420 Valid modifier
[14:12:16] [PASSED] YVU420 Different modifiers per plane
[14:12:16] [PASSED] YVU420 Modifier for inexistent plane
[14:12:16] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[14:12:16] [PASSED] X0L2 Normal sizes
[14:12:16] [PASSED] X0L2 Max sizes
[14:12:16] [PASSED] X0L2 Invalid pitch
[14:12:16] [PASSED] X0L2 Pitch greater than minimum required
[14:12:16] [PASSED] X0L2 Handle for inexistent plane
[14:12:16] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[14:12:16] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[14:12:16] [PASSED] X0L2 Valid modifier
[14:12:16] [PASSED] X0L2 Modifier for inexistent plane
[14:12:16] =========== [PASSED] drm_test_framebuffer_create ===========
[14:12:16] [PASSED] drm_test_framebuffer_free
[14:12:16] [PASSED] drm_test_framebuffer_init
[14:12:16] [PASSED] drm_test_framebuffer_init_bad_format
[14:12:16] [PASSED] drm_test_framebuffer_init_dev_mismatch
[14:12:16] [PASSED] drm_test_framebuffer_lookup
[14:12:16] [PASSED] drm_test_framebuffer_lookup_inexistent
[14:12:16] [PASSED] drm_test_framebuffer_modifiers_not_supported
[14:12:16] ================= [PASSED] drm_framebuffer =================
[14:12:16] ================ drm_gem_shmem (8 subtests) ================
[14:12:16] [PASSED] drm_gem_shmem_test_obj_create
[14:12:16] [PASSED] drm_gem_shmem_test_obj_create_private
[14:12:16] [PASSED] drm_gem_shmem_test_pin_pages
[14:12:16] [PASSED] drm_gem_shmem_test_vmap
[14:12:16] [PASSED] drm_gem_shmem_test_get_sg_table
[14:12:16] [PASSED] drm_gem_shmem_test_get_pages_sgt
[14:12:16] [PASSED] drm_gem_shmem_test_madvise
[14:12:16] [PASSED] drm_gem_shmem_test_purge
[14:12:16] ================== [PASSED] drm_gem_shmem ==================
[14:12:16] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[14:12:16] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[14:12:16] [PASSED] Automatic
[14:12:16] [PASSED] Full
[14:12:16] [PASSED] Limited 16:235
[14:12:16] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[14:12:16] [PASSED] drm_test_check_disable_connector
[14:12:16] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[14:12:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[14:12:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[14:12:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[14:12:16] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[14:12:16] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[14:12:16] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[14:12:16] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[14:12:16] [PASSED] drm_test_check_output_bpc_dvi
[14:12:16] [PASSED] drm_test_check_output_bpc_format_vic_1
[14:12:16] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[14:12:16] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[14:12:16] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[14:12:16] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[14:12:16] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[14:12:16] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[14:12:16] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[14:12:16] ============ drm_test_check_hdmi_color_format =============
[14:12:16] [PASSED] AUTO -> RGB
[14:12:16] [PASSED] YCBCR422 -> YUV422
[14:12:16] [PASSED] YCBCR420 -> YUV420
[14:12:16] [PASSED] YCBCR444 -> YUV444
[14:12:16] [PASSED] RGB -> RGB
[14:12:16] ======== [PASSED] drm_test_check_hdmi_color_format =========
[14:12:16] ======== drm_test_check_hdmi_color_format_420_only ========
[14:12:16] [PASSED] RGB should fail
[14:12:16] [PASSED] YUV444 should fail
[14:12:16] [PASSED] YUV422 should fail
[14:12:16] [PASSED] YUV420 should work
[14:12:16] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[14:12:16] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[14:12:16] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[14:12:16] [PASSED] drm_test_check_broadcast_rgb_value
[14:12:16] [PASSED] drm_test_check_bpc_8_value
[14:12:16] [PASSED] drm_test_check_bpc_10_value
[14:12:16] [PASSED] drm_test_check_bpc_12_value
[14:12:16] [PASSED] drm_test_check_format_value
[14:12:16] [PASSED] drm_test_check_tmds_char_value
[14:12:16] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[14:12:16] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[14:12:16] [PASSED] drm_test_check_mode_valid
[14:12:16] [PASSED] drm_test_check_mode_valid_reject
[14:12:16] [PASSED] drm_test_check_mode_valid_reject_rate
[14:12:16] [PASSED] drm_test_check_mode_valid_reject_max_clock
[14:12:16] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[14:12:16] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[14:12:16] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[14:12:16] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[14:12:16] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[14:12:16] [PASSED] drm_test_check_infoframes
[14:12:16] [PASSED] drm_test_check_reject_avi_infoframe
[14:12:16] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[14:12:16] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[14:12:16] [PASSED] drm_test_check_reject_audio_infoframe
[14:12:16] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[14:12:16] ================= drm_managed (2 subtests) =================
[14:12:16] [PASSED] drm_test_managed_release_action
[14:12:16] [PASSED] drm_test_managed_run_action
[14:12:16] =================== [PASSED] drm_managed ===================
[14:12:16] =================== drm_mm (6 subtests) ====================
[14:12:16] [PASSED] drm_test_mm_init
[14:12:16] [PASSED] drm_test_mm_debug
[14:12:16] [PASSED] drm_test_mm_align32
[14:12:16] [PASSED] drm_test_mm_align64
[14:12:16] [PASSED] drm_test_mm_lowest
[14:12:16] [PASSED] drm_test_mm_highest
[14:12:16] ===================== [PASSED] drm_mm ======================
[14:12:16] ============= drm_modes_analog_tv (5 subtests) =============
[14:12:16] [PASSED] drm_test_modes_analog_tv_mono_576i
[14:12:16] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[14:12:16] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[14:12:16] [PASSED] drm_test_modes_analog_tv_pal_576i
[14:12:16] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[14:12:16] =============== [PASSED] drm_modes_analog_tv ===============
[14:12:16] ============== drm_plane_helper (2 subtests) ===============
[14:12:16] =============== drm_test_check_plane_state ================
[14:12:16] [PASSED] clipping_simple
[14:12:16] [PASSED] clipping_rotate_reflect
[14:12:16] [PASSED] positioning_simple
[14:12:16] [PASSED] upscaling
[14:12:16] [PASSED] downscaling
[14:12:16] [PASSED] rounding1
[14:12:16] [PASSED] rounding2
[14:12:16] [PASSED] rounding3
[14:12:16] [PASSED] rounding4
[14:12:16] =========== [PASSED] drm_test_check_plane_state ============
[14:12:16] =========== drm_test_check_invalid_plane_state ============
[14:12:16] [PASSED] positioning_invalid
[14:12:16] [PASSED] upscaling_invalid
[14:12:16] [PASSED] downscaling_invalid
[14:12:16] ======= [PASSED] drm_test_check_invalid_plane_state ========
[14:12:16] ================ [PASSED] drm_plane_helper =================
[14:12:16] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[14:12:16] ====== drm_test_connector_helper_tv_get_modes_check =======
[14:12:16] [PASSED] None
[14:12:16] [PASSED] PAL
[14:12:16] [PASSED] NTSC
[14:12:16] [PASSED] Both, NTSC Default
[14:12:16] [PASSED] Both, PAL Default
[14:12:16] [PASSED] Both, NTSC Default, with PAL on command-line
[14:12:16] [PASSED] Both, PAL Default, with NTSC on command-line
[14:12:16] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[14:12:16] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[14:12:16] ================== drm_rect (9 subtests) ===================
[14:12:16] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[14:12:16] [PASSED] drm_test_rect_clip_scaled_not_clipped
[14:12:16] [PASSED] drm_test_rect_clip_scaled_clipped
[14:12:16] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[14:12:16] ================= drm_test_rect_intersect =================
[14:12:16] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[14:12:16] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[14:12:16] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[14:12:16] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[14:12:16] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[14:12:16] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[14:12:16] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[14:12:16] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[14:12:16] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[14:12:16] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[14:12:16] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[14:12:16] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[14:12:16] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[14:12:16] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[14:12:16] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[14:12:16] ============= [PASSED] drm_test_rect_intersect =============
[14:12:16] ================ drm_test_rect_calc_hscale ================
[14:12:16] [PASSED] normal use
[14:12:16] [PASSED] out of max range
[14:12:16] [PASSED] out of min range
[14:12:16] [PASSED] zero dst
[14:12:16] [PASSED] negative src
[14:12:16] [PASSED] negative dst
[14:12:16] ============ [PASSED] drm_test_rect_calc_hscale ============
[14:12:16] ================ drm_test_rect_calc_vscale ================
[14:12:16] [PASSED] normal use
[14:12:16] [PASSED] out of max range
[14:12:16] [PASSED] out of min range
[14:12:16] [PASSED] zero dst
[14:12:16] [PASSED] negative src
[14:12:16] [PASSED] negative dst
[14:12:16] ============ [PASSED] drm_test_rect_calc_vscale ============
[14:12:16] ================== drm_test_rect_rotate ===================
[14:12:16] [PASSED] reflect-x
[14:12:16] [PASSED] reflect-y
[14:12:16] [PASSED] rotate-0
[14:12:16] [PASSED] rotate-90
[14:12:16] [PASSED] rotate-180
[14:12:16] [PASSED] rotate-270
[14:12:16] ============== [PASSED] drm_test_rect_rotate ===============
[14:12:16] ================ drm_test_rect_rotate_inv =================
[14:12:16] [PASSED] reflect-x
[14:12:16] [PASSED] reflect-y
[14:12:16] [PASSED] rotate-0
[14:12:16] [PASSED] rotate-90
[14:12:16] [PASSED] rotate-180
[14:12:16] [PASSED] rotate-270
[14:12:16] ============ [PASSED] drm_test_rect_rotate_inv =============
[14:12:16] ==================== [PASSED] drm_rect =====================
[14:12:16] ============ drm_sysfb_modeset_test (1 subtest) ============
[14:12:16] ============ drm_test_sysfb_build_fourcc_list =============
[14:12:16] [PASSED] no native formats
[14:12:16] [PASSED] XRGB8888 as native format
[14:12:16] [PASSED] remove duplicates
[14:12:16] [PASSED] convert alpha formats
[14:12:16] [PASSED] random formats
[14:12:16] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[14:12:16] ============= [PASSED] drm_sysfb_modeset_test ==============
[14:12:16] ================== drm_fixp (2 subtests) ===================
[14:12:16] [PASSED] drm_test_int2fixp
[14:12:16] [PASSED] drm_test_sm2fixp
[14:12:16] ==================== [PASSED] drm_fixp =====================
[14:12:16] ============================================================
[14:12:16] Testing complete. Ran 641 tests: passed: 641
[14:12:16] Elapsed time: 26.879s total, 1.826s configuring, 24.887s building, 0.141s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[14:12:17] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:12:18] 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
[14:12:28] Starting KUnit Kernel (1/1)...
[14:12:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:12:28] ============= refcount_interrupt (4 subtests) ==============
[14:12:28] [PASSED] test_single_irq_change
[14:12:28] [PASSED] test_nested_irq_change
[14:12:28] [PASSED] test_multiple_irq_change
[14:12:28] [PASSED] test_irq_save
[14:12:28] =============== [PASSED] refcount_interrupt ================
[14:12:28] ================= ttm_device (5 subtests) ==================
[14:12:28] [PASSED] ttm_device_init_basic
[14:12:28] [PASSED] ttm_device_init_multiple
[14:12:28] [PASSED] ttm_device_fini_basic
[14:12:28] [PASSED] ttm_device_init_no_vma_man
[14:12:28] ================== ttm_device_init_pools ==================
[14:12:28] [PASSED] No DMA allocations, no DMA32 required
[14:12:28] [PASSED] DMA allocations, DMA32 required
[14:12:28] [PASSED] No DMA allocations, DMA32 required
[14:12:28] [PASSED] DMA allocations, no DMA32 required
[14:12:28] ============== [PASSED] ttm_device_init_pools ==============
[14:12:28] =================== [PASSED] ttm_device ====================
[14:12:28] ================== ttm_pool (8 subtests) ===================
[14:12:28] ================== ttm_pool_alloc_basic ===================
[14:12:28] [PASSED] One page
[14:12:28] [PASSED] More than one page
[14:12:28] [PASSED] Above the allocation limit
[14:12:28] [PASSED] One page, with coherent DMA mappings enabled
[14:12:28] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:12:28] ============== [PASSED] ttm_pool_alloc_basic ===============
[14:12:28] ============== ttm_pool_alloc_basic_dma_addr ==============
[14:12:28] [PASSED] One page
[14:12:28] [PASSED] More than one page
[14:12:28] [PASSED] Above the allocation limit
[14:12:28] [PASSED] One page, with coherent DMA mappings enabled
[14:12:28] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[14:12:28] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[14:12:28] [PASSED] ttm_pool_alloc_order_caching_match
[14:12:28] [PASSED] ttm_pool_alloc_caching_mismatch
[14:12:28] [PASSED] ttm_pool_alloc_order_mismatch
[14:12:28] [PASSED] ttm_pool_free_dma_alloc
[14:12:28] [PASSED] ttm_pool_free_no_dma_alloc
[14:12:28] [PASSED] ttm_pool_fini_basic
[14:12:28] ==================== [PASSED] ttm_pool =====================
[14:12:28] ================ ttm_resource (8 subtests) =================
[14:12:28] ================= ttm_resource_init_basic =================
[14:12:28] [PASSED] Init resource in TTM_PL_SYSTEM
[14:12:28] [PASSED] Init resource in TTM_PL_VRAM
[14:12:28] [PASSED] Init resource in a private placement
[14:12:28] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[14:12:28] ============= [PASSED] ttm_resource_init_basic =============
[14:12:28] [PASSED] ttm_resource_init_pinned
[14:12:28] [PASSED] ttm_resource_fini_basic
[14:12:28] [PASSED] ttm_resource_manager_init_basic
[14:12:28] [PASSED] ttm_resource_manager_usage_basic
[14:12:28] [PASSED] ttm_resource_manager_set_used_basic
[14:12:28] [PASSED] ttm_sys_man_alloc_basic
[14:12:28] [PASSED] ttm_sys_man_free_basic
[14:12:28] ================== [PASSED] ttm_resource ===================
[14:12:28] =================== ttm_tt (15 subtests) ===================
[14:12:28] ==================== ttm_tt_init_basic ====================
[14:12:28] [PASSED] Page-aligned size
[14:12:28] [PASSED] Extra pages requested
[14:12:28] ================ [PASSED] ttm_tt_init_basic ================
[14:12:28] [PASSED] ttm_tt_init_misaligned
[14:12:28] [PASSED] ttm_tt_fini_basic
[14:12:28] [PASSED] ttm_tt_fini_sg
[14:12:28] [PASSED] ttm_tt_fini_shmem
[14:12:28] [PASSED] ttm_tt_create_basic
[14:12:28] [PASSED] ttm_tt_create_invalid_bo_type
[14:12:28] [PASSED] ttm_tt_create_ttm_exists
[14:12:28] [PASSED] ttm_tt_create_failed
[14:12:28] [PASSED] ttm_tt_destroy_basic
[14:12:28] [PASSED] ttm_tt_populate_null_ttm
[14:12:28] [PASSED] ttm_tt_populate_populated_ttm
[14:12:28] [PASSED] ttm_tt_unpopulate_basic
[14:12:28] [PASSED] ttm_tt_unpopulate_empty_ttm
[14:12:28] [PASSED] ttm_tt_swapin_basic
[14:12:28] ===================== [PASSED] ttm_tt ======================
[14:12:28] =================== ttm_bo (14 subtests) ===================
[14:12:28] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[14:12:28] [PASSED] Cannot be interrupted and sleeps
[14:12:28] [PASSED] Cannot be interrupted, locks straight away
[14:12:28] [PASSED] Can be interrupted, sleeps
[14:12:28] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[14:12:28] [PASSED] ttm_bo_reserve_locked_no_sleep
[14:12:28] [PASSED] ttm_bo_reserve_no_wait_ticket
[14:12:28] [PASSED] ttm_bo_reserve_double_resv
[14:12:28] [PASSED] ttm_bo_reserve_interrupted
[14:12:28] [PASSED] ttm_bo_reserve_deadlock
[14:12:28] [PASSED] ttm_bo_unreserve_basic
[14:12:28] [PASSED] ttm_bo_unreserve_pinned
[14:12:28] [PASSED] ttm_bo_unreserve_bulk
[14:12:28] [PASSED] ttm_bo_fini_basic
[14:12:28] [PASSED] ttm_bo_fini_shared_resv
[14:12:28] [PASSED] ttm_bo_pin_basic
[14:12:28] [PASSED] ttm_bo_pin_unpin_resource
[14:12:28] [PASSED] ttm_bo_multiple_pin_one_unpin
[14:12:28] ===================== [PASSED] ttm_bo ======================
[14:12:28] ============== ttm_bo_validate (22 subtests) ===============
[14:12:28] ============== ttm_bo_init_reserved_sys_man ===============
[14:12:28] [PASSED] Buffer object for userspace
[14:12:28] [PASSED] Kernel buffer object
[14:12:28] [PASSED] Shared buffer object
[14:12:28] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[14:12:28] ============== ttm_bo_init_reserved_mock_man ==============
[14:12:28] [PASSED] Buffer object for userspace
[14:12:28] [PASSED] Kernel buffer object
[14:12:28] [PASSED] Shared buffer object
[14:12:28] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[14:12:28] [PASSED] ttm_bo_init_reserved_resv
[14:12:28] ================== ttm_bo_validate_basic ==================
[14:12:28] [PASSED] Buffer object for userspace
[14:12:28] [PASSED] Kernel buffer object
[14:12:28] [PASSED] Shared buffer object
[14:12:28] ============== [PASSED] ttm_bo_validate_basic ==============
[14:12:28] [PASSED] ttm_bo_validate_invalid_placement
[14:12:28] ============= ttm_bo_validate_same_placement ==============
[14:12:28] [PASSED] System manager
[14:12:28] [PASSED] VRAM manager
[14:12:28] ========= [PASSED] ttm_bo_validate_same_placement ==========
[14:12:28] [PASSED] ttm_bo_validate_failed_alloc
[14:12:28] [PASSED] ttm_bo_validate_pinned
[14:12:28] [PASSED] ttm_bo_validate_busy_placement
[14:12:28] ================ ttm_bo_validate_multihop =================
[14:12:28] [PASSED] Buffer object for userspace
[14:12:28] [PASSED] Kernel buffer object
[14:12:28] [PASSED] Shared buffer object
[14:12:28] ============ [PASSED] ttm_bo_validate_multihop =============
[14:12:28] ========== ttm_bo_validate_no_placement_signaled ==========
[14:12:28] [PASSED] Buffer object in system domain, no page vector
[14:12:28] [PASSED] Buffer object in system domain with an existing page vector
[14:12:28] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[14:12:28] ======== ttm_bo_validate_no_placement_not_signaled ========
[14:12:28] [PASSED] Buffer object for userspace
[14:12:28] [PASSED] Kernel buffer object
[14:12:28] [PASSED] Shared buffer object
[14:12:28] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[14:12:28] [PASSED] ttm_bo_validate_move_fence_signaled
[14:12:28] ========= ttm_bo_validate_move_fence_not_signaled =========
[14:12:28] [PASSED] Waits for GPU
[14:12:28] [PASSED] Tries to lock straight away
[14:12:28] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[14:12:28] [PASSED] ttm_bo_validate_swapout
[14:12:28] [PASSED] ttm_bo_validate_happy_evict
[14:12:28] [PASSED] ttm_bo_validate_all_pinned_evict
[14:12:28] [PASSED] ttm_bo_validate_allowed_only_evict
[14:12:28] [PASSED] ttm_bo_validate_deleted_evict
[14:12:28] [PASSED] ttm_bo_validate_busy_domain_evict
[14:12:28] [PASSED] ttm_bo_validate_evict_gutting
[14:12:28] [PASSED] ttm_bo_validate_recrusive_evict
[14:12:28] ================= [PASSED] ttm_bo_validate =================
[14:12:28] ============================================================
[14:12:28] Testing complete. Ran 106 tests: passed: 106
[14:12:28] Elapsed time: 11.936s total, 1.812s configuring, 9.910s building, 0.183s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[14:12:29] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[14:12: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
[14:12:39] Starting KUnit Kernel (1/1)...
[14:12:39] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[14:12:39] ============= refcount_interrupt (4 subtests) ==============
[14:12:39] [PASSED] test_single_irq_change
[14:12:39] [PASSED] test_nested_irq_change
[14:12:39] [PASSED] test_multiple_irq_change
[14:12:39] [PASSED] test_irq_save
[14:12:39] =============== [PASSED] refcount_interrupt ================
[14:12:39] =============== dma-buf-fence (12 subtests) ================
[14:12:39] [PASSED] test_sanitycheck
[14:12:39] [PASSED] test_signaling
[14:12:39] [PASSED] test_add_callback
[14:12:39] [PASSED] test_late_add_callback
[14:12:39] [PASSED] test_rm_callback
[14:12:39] [PASSED] test_late_rm_callback
[14:12:39] [PASSED] test_status
[14:12:39] [PASSED] test_error
[14:12:39] [PASSED] test_wait
[14:12:39] [PASSED] test_wait_timeout
[14:12:39] [PASSED] test_stub
[14:12:39] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[14:12:39] ================== [PASSED] dma-buf-fence ==================
[14:12:39] ============ dma-buf-fence-chain (11 subtests) =============
[14:12:39] [PASSED] test_sanitycheck
[14:12:39] [PASSED] test_find_seqno
[14:12:39] [PASSED] test_find_signaled
[14:12:39] [PASSED] test_find_out_of_order
[14:12:44] [PASSED] test_find_gap
[14:12:44] [PASSED] test_find_race
[14:12:44] [PASSED] test_signal_forward
[14:12:44] [PASSED] test_signal_backward
[14:12:44] [PASSED] test_wait_forward
[14:12:44] [PASSED] test_wait_backward
[14:12:44] [PASSED] test_wait_random
[14:12:44] =============== [PASSED] dma-buf-fence-chain ===============
[14:12:44] ============ dma-buf-fence-unwrap (10 subtests) ============
[14:12:44] [PASSED] test_sanitycheck
[14:12:44] [PASSED] test_unwrap_array
[14:12:44] [PASSED] test_unwrap_chain
[14:12:44] [PASSED] test_unwrap_chain_array
[14:12:44] [PASSED] test_unwrap_merge
[14:12:44] [PASSED] test_unwrap_merge_duplicate
[14:12:44] [PASSED] test_unwrap_merge_seqno
[14:12:44] [PASSED] test_unwrap_merge_order
[14:12:44] [PASSED] test_unwrap_merge_complex
[14:12:44] [PASSED] test_unwrap_merge_complex_seqno
[14:12:44] ============== [PASSED] dma-buf-fence-unwrap ===============
[14:12:44] ================ dma-buf-resv (5 subtests) =================
[14:12:44] [PASSED] test_sanitycheck
[14:12:44] ===================== test_signaling ======================
[14:12:44] [PASSED] kernel
[14:12:44] [PASSED] write
[14:12:44] [PASSED] read
[14:12:44] [PASSED] bookkeep
[14:12:44] ================= [PASSED] test_signaling ==================
[14:12:44] ====================== test_for_each ======================
[14:12:44] [PASSED] kernel
[14:12:44] [PASSED] write
[14:12:44] [PASSED] read
[14:12:44] [PASSED] bookkeep
[14:12:44] ================== [PASSED] test_for_each ==================
[14:12:44] ================= test_for_each_unlocked ==================
[14:12:44] [PASSED] kernel
[14:12:44] [PASSED] write
[14:12:44] [PASSED] read
[14:12:44] [PASSED] bookkeep
[14:12:44] ============= [PASSED] test_for_each_unlocked ==============
[14:12:44] ===================== test_get_fences =====================
[14:12:44] [PASSED] kernel
[14:12:44] [PASSED] write
[14:12:44] [PASSED] read
[14:12:44] [PASSED] bookkeep
[14:12:44] ================= [PASSED] test_get_fences =================
[14:12:44] ================== [PASSED] dma-buf-resv ===================
[14:12:44] ============================================================
[14:12:44] Testing complete. Ran 54 tests: passed: 53, skipped: 1
[14:12:44] Elapsed time: 15.854s total, 1.818s configuring, 8.715s building, 5.270s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 3/4] drm/xe/sysctrl: Add RAS error injection debugfs interface
2026-09-03 14:03 ` [PATCH v4 3/4] drm/xe/sysctrl: Add RAS error injection debugfs interface Anoop, Vijay
@ 2026-09-03 14:13 ` sashiko-bot
0 siblings, 0 replies; 17+ messages in thread
From: sashiko-bot @ 2026-09-03 14:13 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] Missing PM runtime resume before accessing hardware in debugfs open and show callbacks causes system hangs.
- [Low] Jumping over a `guard()` declaration using `goto` causes compilation errors and violates cleanup subsystem rules.
- [Low] Concurrent writes to the debugfs file will race on `entry->status`, causing the `write` syscall to return the result of another thread's command.
--
commit 69962a1ffd2b865557dbedee272e0256b239b328
Author: Anoop Vijay <anoop.c.vijay@intel.com>
drm/xe/sysctrl: Add RAS error injection debugfs interface
This commit adds a debugfs interface for exercising the System Controller's
RAS error injection command. The command is used to validate RAS error
detection and recovery paths, and its access is gated on the diagnostic
firmware being ready.
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> index 2144d9d43fba5..258479d605cbe 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
[ ... ]
> @@ -122,6 +123,127 @@ static const struct file_operations xe_sysctrl_loopback_fops = {
> +static ssize_t xe_sysctrl_ras_error_inject_write(struct file *file, const char __user *ubuf,
> + size_t len, loff_t *offp)
> +{
[ ... ]
> + tmp = kbuf;
> + while ((token = strsep(&tmp, " \t\n")) != NULL) {
> + if (*token == '\0')
> + continue;
> +
> + if (kstrtoul(token, 0, &val))
> + goto inval;
[ ... ]
> + 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;
[Severity: Low]
Can concurrent writes race on the shared entry->status field here?
Because multiple threads can write to the ras_error_inject debugfs file at
the same time, Thread A's status could be overwritten by Thread B before
Thread A returns. This would cause an incorrect syscall return value for one
of the threads. Could this status be stored in a local variable instead of
the shared entry struct?
> +
> +inval:
> + xe_err(xe, "sysctrl: invalid ras_error_inject token '%s'\n", token);
> + return -EINVAL;
[Severity: Low]
Does this goto inval branch jump over the guard(xe_pm_runtime)(xe)
initialization?
Jumping into the scope of a variable declared with __attribute__((cleanup))
leaves it uninitialized, causing the cleanup function to execute on garbage
memory when returning. GCC and Clang will typically reject this with a build
error. This also violates the kernel cleanup subsystem guidelines against
mixing goto and guard() in the same function.
> +}
> +
> +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)));
[Severity: High]
Does checking xe_sysctrl_is_diag_fw_ready(xe) here access hardware MMIO
without first resuming the device?
The xe_sysctrl_is_diag_fw_ready() function sends a mailbox command, which
uses guard(xe_pm_runtime_noresume). Without a prior xe_pm_runtime_get_sync()
(which is correctly used in the .write callback via guard(xe_pm_runtime)),
accessing this when the GPU is in D3cold can cause a system hang or abort.
> + 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)
> +{
> + struct xe_sysctrl_debugfs_entry *entry = inode->i_private;
> + struct xe_device *xe = sc_to_xe(entry->sc);
> +
> + if (!xe_sysctrl_is_diag_fw_ready(xe)) {
[Severity: High]
Are we also missing a PM runtime resume here in the open callback?
Similar to the .show callback above, this calls xe_sysctrl_is_diag_fw_ready()
which issues an MMIO command. A user opening this file when the device is
suspended could trigger a hang.
> + xe_err(xe, "sysctrl: diag firmware not ready, ras_error_inject unavailable\n");
> + return -ENODEV;
> + }
> +
> + return single_open(file, xe_sysctrl_ras_error_inject_show, inode->i_private);
> +}
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260903140340.83500-6-anoop.c.vijay@intel.com?part=3
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface
2026-09-03 14:03 ` [PATCH v4 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface Anoop, Vijay
@ 2026-09-03 14:13 ` sashiko-bot
0 siblings, 0 replies; 17+ messages in thread
From: sashiko-bot @ 2026-09-03 14:13 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Concurrent reads and writes to the loopback debugfs entry cause data races and expose inconsistent state.
--
commit b7da09a9e8ead758b95d7f60c29e7f7b90c922ce
Author: Anoop Vijay <anoop.c.vijay@intel.com>
Subject: drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface
This commit adds debugfs support for exercising the System Controller mailbox
interface from userspace. It introduces the sc/loopback entry which sends an
arbitrary byte payload to the Core group's inverted-loopback command.
[ ... ]
> 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 0000000000000..2144d9d43fba5
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_debugfs.c
> @@ -0,0 +1,157 @@
[ ... ]
> +static ssize_t xe_sysctrl_loopback_write(struct file *file, const char __user *ubuf,
> + size_t len, loff_t *offp)
> +{
[ ... ]
> + 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;
[Severity: Medium]
Does this code leave the shared debugfs entry fields vulnerable to data races
if multiple userspace processes write to the loopback file concurrently?
It appears that entry->status, entry->response_len, and entry->response_buf
are modified here directly without any synchronization protecting the entry
structure itself, as sc->cmd_lock inside xe_sysctrl_send_command() only
serializes the hardware mailbox sequence.
> +
> + 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]);
[Severity: Medium]
Can a concurrent write to the loopback file cause torn reads or inconsistent
state to be returned here?
Since the entry fields are read locklessly, it seems possible to observe a new
buffer's contents alongside an old buffer's length, or a mismatched status,
returning garbage diagnostic output to userspace.
> + }
> + seq_putc(m, '\n');
> + }
> +
> + return 0;
> +}
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260903140340.83500-6-anoop.c.vijay@intel.com?part=2
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
2026-09-03 14:03 ` [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
@ 2026-09-03 14:16 ` sashiko-bot
2026-09-03 19:17 ` Umesh Nerlige Ramappa
1 sibling, 0 replies; 17+ messages in thread
From: sashiko-bot @ 2026-09-03 14:16 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] If the firmware responds with more data than expected, `sysctrl_receive_frames()` exits its read loop early, permanently hanging the mailbox state machine.
--
commit b13ca50e46d24c8dd84b548f2ea15d17ffc919a8
Author: Anoop Vijay <anoop.c.vijay@intel.com>
drm/xe/sysctrl: Add System Controller get application status
Add support for querying System Controller firmware application
status. This allows callers to determine whether a given firmware
application has completed boot and post-boot initialization.
Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-5-anoop.c.vijay@intel.com/
Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-6-anoop.c.vijay@intel.com/
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl.c b/drivers/gpu/drm/xe/xe_sysctrl.c
> index 62ccc9be71b45..5da591ade4e4b 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl.c
> +++ b/drivers/gpu/drm/xe/xe_sysctrl.c
[ ... ]
> @@ -125,3 +127,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
>
> xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
> }
> +
> +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);
[Severity: High]
This isn't a bug introduced by this patch, but calling
xe_sysctrl_send_command() here exposes a pre-existing severe logic flaw in
the mailbox protocol handler.
If the firmware responds to this command with more data than expected, the
driver will permanently hang the mailbox state machine.
In drivers/gpu/drm/xe/xe_sysctrl_mailbox.c:sysctrl_receive_frames():
while (!done && remain) {
frame_size = min_t(size_t, remain, XE_SYSCTRL_MB_FRAME_SIZE);
ret = sysctrl_process_frame(sc, out, frame_size, timeout_ms,
&done);
if (ret)
return ret;
remain -= frame_size;
out += frame_size;
}
If the response payload is larger than the requested data_out_len,
sysctrl_receive_frames() strictly bounds its read loop by remain. When
remain drops to 0, the loop terminates before done is set.
This causes the host to stop reading the remaining frames and stop clearing
SYSCTRL_MB_CTRL_RUN_BUSY_OUT. The firmware is left waiting indefinitely
for the host to acknowledge the next frame, which will cause all subsequent
mailbox commands to time out or corrupt the mailbox state.
Does this need to be fixed in sysctrl_receive_frames() to properly drain
unexpected trailing data instead of abandoning the transaction?
> + 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;
> + }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260903140340.83500-6-anoop.c.vijay@intel.com?part=1
^ permalink raw reply [flat|nested] 17+ messages in thread
* ✓ Xe.CI.BAT: success for drm/xe/sysctrl: Add System Controller debugfs (rev4)
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
` (5 preceding siblings ...)
2026-09-03 14:12 ` ✓ CI.KUnit: success " Patchwork
@ 2026-09-03 15:02 ` Patchwork
2026-09-04 1:27 ` ✓ Xe.CI.FULL: " Patchwork
7 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-09-03 15:02 UTC (permalink / raw)
To: Anoop, Vijay; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 5761 bytes --]
== Series Details ==
Series: drm/xe/sysctrl: Add System Controller debugfs (rev4)
URL : https://patchwork.freedesktop.org/series/161655/
State : success
== Summary ==
CI Bug Log - changes from xe-5685-b2fada7902896bce389c2b033688d18df36855fc_BAT -> xe-pw-161655v4_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (13 -> 14)
------------------------------
Additional (1): bat-nvls-1
Known issues
------------
Here are the changes found in xe-pw-161655v4_BAT that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-nvls-1: NOTRUN -> [SKIP][1] ([Intel XE#8757])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-nvls-1: NOTRUN -> [SKIP][2] ([Intel XE#8759])
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@kms_dsc@dsc-basic.html
* igt@xe_evict@evict-small-multi-vm:
- bat-nvls-1: NOTRUN -> [SKIP][3] ([Intel XE#8777]) +9 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_evict@evict-small-multi-vm.html
* igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd:
- bat-nvls-1: NOTRUN -> [SKIP][4] ([Intel XE#8744]) +1 other test skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_evict_ccs@evict-overcommit-parallel-nofree-samefd.html
* igt@xe_exec_balancer@twice-virtual-userptr-invalidate:
- bat-nvls-1: NOTRUN -> [SKIP][5] ([Intel XE#8741]) +17 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_exec_balancer@twice-virtual-userptr-invalidate.html
* igt@xe_exec_multi_queue@many-queues-userptr-invalidate:
- bat-nvls-1: NOTRUN -> [SKIP][6] ([Intel XE#8377]) +13 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_exec_multi_queue@many-queues-userptr-invalidate.html
* igt@xe_huc_copy@huc_copy:
- bat-nvls-1: NOTRUN -> [SKIP][7] ([Intel XE#8746])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_huc_copy@huc_copy.html
* igt@xe_live_ktest@xe_bo:
- bat-nvls-1: NOTRUN -> [SKIP][8] ([Intel XE#8792])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_live_ktest@xe_bo.html
* igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit:
- bat-nvls-1: NOTRUN -> [SKIP][9] ([Intel XE#8791] / [Intel XE#8792])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_live_ktest@xe_bo@xe_bo_evict_kunit.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- bat-nvls-1: NOTRUN -> [SKIP][10] ([Intel XE#8791])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
* igt@xe_mmap@vram:
- bat-nvls-1: NOTRUN -> [SKIP][11] ([Intel XE#8747])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_mmap@vram.html
* igt@xe_pat@pat-index-xehpc:
- bat-nvls-1: NOTRUN -> [SKIP][12] ([Intel XE#8748])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pat@pat-index-xelp:
- bat-nvls-1: NOTRUN -> [SKIP][13] ([Intel XE#8743])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_pat@pat-index-xelp.html
* igt@xe_pat@pat-index-xelpg:
- bat-nvls-1: NOTRUN -> [SKIP][14] ([Intel XE#8745])
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-nvls-1/igt@xe_pat@pat-index-xelpg.html
#### Possible fixes ####
* igt@xe_waitfence@reltime:
- bat-bmg-vm: [FAIL][15] ([Intel XE#9115]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/bat-bmg-vm/igt@xe_waitfence@reltime.html
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/bat-bmg-vm/igt@xe_waitfence@reltime.html
[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#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#8757]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8757
[Intel XE#8759]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8759
[Intel XE#8777]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8777
[Intel XE#8791]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8791
[Intel XE#8792]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8792
[Intel XE#9115]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9115
Build changes
-------------
* Linux: xe-5685-b2fada7902896bce389c2b033688d18df36855fc -> xe-pw-161655v4
IGT_9082: 2d61f578d998115259b87f9fa27f597ce11a0c89 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5685-b2fada7902896bce389c2b033688d18df36855fc: b2fada7902896bce389c2b033688d18df36855fc
xe-pw-161655v4: 161655v4
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/index.html
[-- Attachment #2: Type: text/html, Size: 6799 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
2026-09-03 14:03 ` [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
2026-09-03 14:16 ` sashiko-bot
@ 2026-09-03 19:17 ` Umesh Nerlige Ramappa
2026-09-03 20:12 ` Anoop Vijay
1 sibling, 1 reply; 17+ messages in thread
From: Umesh Nerlige Ramappa @ 2026-09-03 19:17 UTC (permalink / raw)
To: Anoop, Vijay
Cc: intel-xe, badal.nilawar, rodrigo.vivi, aravind.iddamsetty,
riana.tauro, anshuman.gupta, matthew.d.roper, michael.j.ruhl,
paul.e.luse, mohamed.mansoor.v, kam.nasim
On Thu, Sep 03, 2026 at 07:03:41AM -0700, Anoop, Vijay wrote:
>From: Anoop Vijay <anoop.c.vijay@intel.com>
>
>Add support for querying System Controller firmware application
>status. This allows callers to determine whether a given firmware
>application has completed boot and post-boot initialization.
>
>This patch is carried here only as a build dependency for this
>series; it is authored and under review as part of a separate
>get-app-status series and should be dropped/rebased away once that
>series lands.
>
>Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-5-anoop.c.vijay@intel.com/
>Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-6-anoop.c.vijay@intel.com/
>
>Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
>---
>v4 (Rodrigo):
>- Added lore links to the parent application-status series
>---
> 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 62ccc9be71b4..5da591ade4e4 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"
>
> /**
>@@ -125,3 +127,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
>
> xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
> }
>+
>+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;
Reiterating previous review comment - based on the users that you had
listed earlier who query app status, we will never get to the above
condition, so it can be safely dropped. Once you do that, you can drop
the status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP checks in the below
(_ready) helpers.
Instead, if you want to retain this check here, then each of the below
helpers must be split into _ready() and _supported(). The split versions
should check for the specific case. It's the caller's responsibility to
handle the cases as needed.
>+
>+ 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;
See above comment.
>+}
>+
>+/**
>+ * 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;
See above comment.
Thanks,
Umesh
>+}
>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 66e7cbcc3f91..d756b50cde6b 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,
> };
>
> /**
>@@ -42,6 +44,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] 17+ messages in thread
* Re: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
2026-09-03 19:17 ` Umesh Nerlige Ramappa
@ 2026-09-03 20:12 ` Anoop Vijay
2026-09-03 20:42 ` Ruhl, Michael J
0 siblings, 1 reply; 17+ messages in thread
From: Anoop Vijay @ 2026-09-03 20:12 UTC (permalink / raw)
To: Umesh Nerlige Ramappa
Cc: intel-xe, badal.nilawar, rodrigo.vivi, aravind.iddamsetty,
riana.tauro, anshuman.gupta, matthew.d.roper, michael.j.ruhl,
paul.e.luse, mohamed.mansoor.v, kam.nasim
[-- Attachment #1: Type: text/plain, Size: 10123 bytes --]
On 04-09-2026 00:47, Umesh Nerlige Ramappa wrote:
> On Thu, Sep 03, 2026 at 07:03:41AM -0700, Anoop, Vijay wrote:
>> From: Anoop Vijay <anoop.c.vijay@intel.com>
>>
>> Add support for querying System Controller firmware application
>> status. This allows callers to determine whether a given firmware
>> application has completed boot and post-boot initialization.
>>
>> This patch is carried here only as a build dependency for this
>> series; it is authored and under review as part of a separate
>> get-app-status series and should be dropped/rebased away once that
>> series lands.
>>
>> Link:
>> https://lore.kernel.org/intel-xe/20260814095306.2482289-5-anoop.c.vijay@intel.com/
>> Link:
>> https://lore.kernel.org/intel-xe/20260814095306.2482289-6-anoop.c.vijay@intel.com/
>>
>> Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
>> ---
>> v4 (Rodrigo):
>> - Added lore links to the parent application-status series
>> ---
>> 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 62ccc9be71b4..5da591ade4e4 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"
>>
>> /**
>> @@ -125,3 +127,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
>>
>> xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
>> }
>> +
>> +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;
>
> Reiterating previous review comment - based on the users that you had
> listed earlier who query app status, we will never get to the above
> condition, so it can be safely dropped. Once you do that, you can drop
> the status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP checks in the below
> (_ready) helpers.
>
> Instead, if you want to retain this check here, then each of the below
> helpers must be split into _ready() and _supported(). The split
> versions should check for the specific case. It's the caller's
> responsibility to handle the cases as needed.
//
APP_NOTSUPP was added based on Mike's earlier feedback to handle
non-SysCtrl platforms.
@Ruhl, Michael J <mailto:michael.j.ruhl@intel.com>, can xe_vsec perform
platform check and only call _fw_ready() on SysCtrl-capable platforms?
If so, I'll remove APP_NOTSUPP. Otherwise, do you need separate
_supported() and _ready() helpers?
>
>> +
>> + 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;
>
> See above comment.
>
>> +}
>> +
>> +/**
>> + * 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;
>
> See above comment.
>
> Thanks,
> Umesh
>> +}
>> 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 66e7cbcc3f91..d756b50cde6b 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,
>> };
>>
>> /**
>> @@ -42,6 +44,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
>>
[-- Attachment #2: Type: text/html, Size: 18396 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
2026-09-03 20:12 ` Anoop Vijay
@ 2026-09-03 20:42 ` Ruhl, Michael J
2026-09-04 3:13 ` Anoop Vijay
0 siblings, 1 reply; 17+ messages in thread
From: Ruhl, Michael J @ 2026-09-03 20:42 UTC (permalink / raw)
To: Vijay, Anoop C, Nerlige Ramappa, Umesh
Cc: intel-xe@lists.freedesktop.org, Nilawar, Badal, Vivi, Rodrigo,
Iddamsetty, Aravind, Tauro, Riana, Gupta, Anshuman,
Roper, Matthew D, Luse, Paul E, V, Mohamed Mansoor, Nasim, Kam
[-- Attachment #1: Type: text/plain, Size: 10119 bytes --]
Anoop,
The XE VSEC code will only use this API if the device is CRI, so yes, removing the NOTSUPP
will work.
Mike
From: Vijay, Anoop C <anoop.c.vijay@intel.com>
Sent: Thursday, September 3, 2026 4:13 PM
To: Nerlige Ramappa, Umesh <umesh.nerlige.ramappa@intel.com>
Cc: intel-xe@lists.freedesktop.org; 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>
Subject: Re: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
On 04-09-2026 00:47, Umesh Nerlige Ramappa wrote:
On Thu, Sep 03, 2026 at 07:03:41AM -0700, Anoop, Vijay wrote:
From: Anoop Vijay <anoop.c.vijay@intel.com><mailto:anoop.c.vijay@intel.com>
Add support for querying System Controller firmware application
status. This allows callers to determine whether a given firmware
application has completed boot and post-boot initialization.
This patch is carried here only as a build dependency for this
series; it is authored and under review as part of a separate
get-app-status series and should be dropped/rebased away once that
series lands.
Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-5-anoop.c.vijay@intel.com/
Link: https://lore.kernel.org/intel-xe/20260814095306.2482289-6-anoop.c.vijay@intel.com/
Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com><mailto:anoop.c.vijay@intel.com>
---
v4 (Rodrigo):
- Added lore links to the parent application-status series
---
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 62ccc9be71b4..5da591ade4e4 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"
/**
@@ -125,3 +127,83 @@ void xe_sysctrl_pm_resume(struct xe_device *xe)
xe->soc_remapper.set_sysctrl_region(xe, SYSCTRL_MAILBOX_INDEX);
}
+
+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;
Reiterating previous review comment - based on the users that you had listed earlier who query app status, we will never get to the above condition, so it can be safely dropped. Once you do that, you can drop the status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP checks in the below (_ready) helpers.
Instead, if you want to retain this check here, then each of the below helpers must be split into _ready() and _supported(). The split versions should check for the specific case. It's the caller's responsibility to handle the cases as needed.
APP_NOTSUPP was added based on Mike's earlier feedback to handle non-SysCtrl platforms.
@Ruhl, Michael J<mailto:michael.j.ruhl@intel.com>, can xe_vsec perform platform check and only call _fw_ready() on SysCtrl-capable platforms? If so, I'll remove APP_NOTSUPP. Otherwise, do you need separate _supported() and _ready() helpers?
+
+ 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;
See above comment.
+}
+
+/**
+ * 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;
See above comment.
Thanks,
Umesh
+}
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 66e7cbcc3f91..d756b50cde6b 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,
};
/**
@@ -42,6 +44,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
[-- Attachment #2: Type: text/html, Size: 17482 bytes --]
^ permalink raw reply related [flat|nested] 17+ messages in thread
* ✓ Xe.CI.FULL: success for drm/xe/sysctrl: Add System Controller debugfs (rev4)
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
` (6 preceding siblings ...)
2026-09-03 15:02 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-09-04 1:27 ` Patchwork
7 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-09-04 1:27 UTC (permalink / raw)
To: Anoop Vijay; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 94063 bytes --]
== Series Details ==
Series: drm/xe/sysctrl: Add System Controller debugfs (rev4)
URL : https://patchwork.freedesktop.org/series/161655/
State : success
== Summary ==
CI Bug Log - changes from xe-5685-b2fada7902896bce389c2b033688d18df36855fc_FULL -> xe-pw-161655v4_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (2 -> 2)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-161655v4_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@unaligned-read:
- shard-lnl: [PASS][1] -> [SKIP][2] ([Intel XE#2134])
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@fbdev@unaligned-read.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@fbdev@unaligned-read.html
* igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#2370])
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
- shard-lnl: NOTRUN -> [SKIP][4] ([Intel XE#1407]) +1 other test skip
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@linear-8bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#2327])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_big_fb@linear-8bpp-rotate-90.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#7059] / [Intel XE#7085])
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#1124]) +5 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-addfb-size-overflow:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#610] / [Intel XE#7387])
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#1124]) +2 other tests skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
* igt@kms_bw@connected-linear-tiling-3-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#7679])
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_bw@connected-linear-tiling-3-displays-target-2560x1440p.html
* igt@kms_bw@linear-tiling-2-displays-target-2560x1440p:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#367]) +1 other test skip
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_bw@linear-tiling-2-displays-target-2560x1440p.html
* igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs:
- shard-bmg: NOTRUN -> [SKIP][12] ([Intel XE#2887]) +6 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_ccs@bad-pixel-format-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@bad-pixel-format-yf-tiled-ccs:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#2887]) +3 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_ccs@bad-pixel-format-yf-tiled-ccs.html
* igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][14] ([Intel XE#2669] / [Intel XE#7389]) +9 other tests skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs@pipe-b-edp-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#3432]) +1 other test skip
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#2652]) +17 other tests skip
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-9/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_chamelium_audio@hdmi-audio-edid:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#373]) +1 other test skip
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_chamelium_audio@hdmi-audio-edid.html
* igt@kms_chamelium_color@ctm-0-25:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#2325] / [Intel XE#7358]) +1 other test skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_chamelium_color@ctm-0-25.html
* igt@kms_chamelium_color_pipeline@plane-lut3d-green-only:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#7358])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html
* igt@kms_chamelium_hpd@hdmi-hpd-fast:
- shard-bmg: NOTRUN -> [SKIP][20] ([Intel XE#2252]) +2 other tests skip
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_chamelium_hpd@hdmi-hpd-fast.html
* igt@kms_color@legacy-gamma-reset:
- shard-lnl: [PASS][21] -> [SKIP][22] ([Intel XE#3297]) +2 other tests skip
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_color@legacy-gamma-reset.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_color@legacy-gamma-reset.html
* igt@kms_color_pipeline@plane-lut1d-lut1d:
- shard-lnl: [PASS][23] -> [SKIP][24] ([Intel XE#7006])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_color_pipeline@plane-lut1d-lut1d.html
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_color_pipeline@plane-lut1d-lut1d.html
* igt@kms_content_protection@dp-mst-lic-type-1:
- shard-lnl: NOTRUN -> [SKIP][25] ([Intel XE#307] / [Intel XE#6974])
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_content_protection@dp-mst-lic-type-1.html
* igt@kms_content_protection@uevent:
- shard-bmg: NOTRUN -> [FAIL][26] ([Intel XE#6707] / [Intel XE#7439]) +1 other test fail
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-offscreen-128x42:
- shard-lnl: NOTRUN -> [SKIP][27] ([Intel XE#1424]) +1 other test skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_cursor_crc@cursor-offscreen-128x42.html
* igt@kms_cursor_crc@cursor-onscreen-256x85:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2320]) +2 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-256x85.html
* igt@kms_cursor_crc@cursor-onscreen-512x170:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#2321] / [Intel XE#7355])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_cursor_crc@cursor-onscreen-512x170.html
* igt@kms_cursor_crc@cursor-sliding-512x170:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#2321] / [Intel XE#7355])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_cursor_crc@cursor-sliding-512x170.html
* igt@kms_cursor_legacy@cursorb-vs-flipa-toggle:
- shard-lnl: NOTRUN -> [SKIP][31] ([Intel XE#309] / [Intel XE#7343])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_cursor_legacy@cursorb-vs-flipa-toggle.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2286] / [Intel XE#6035])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
* igt@kms_dp_linktrain_fallback@dsc-fallback:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#4331] / [Intel XE#7227])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_dp_linktrain_fallback@dsc-fallback.html
* igt@kms_dsc@dsc-fractional-bpp:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#8265]) +2 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_dsc@dsc-fractional-bpp.html
* igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner:
- shard-lnl: NOTRUN -> [SKIP][35] ([Intel XE#8265])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_dsc@dsc-with-bpc-formats-ultrajoiner.html
* igt@kms_feature_discovery@dsc:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#8586])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_feature_discovery@dsc.html
* igt@kms_flip@2x-flip-vs-expired-vblank@ab-dp2-hdmi-a3:
- shard-bmg: [PASS][37] -> [FAIL][38] ([Intel XE#3321]) +1 other test fail
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-1/igt@kms_flip@2x-flip-vs-expired-vblank@ab-dp2-hdmi-a3.html
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_flip@2x-flip-vs-expired-vblank@ab-dp2-hdmi-a3.html
* igt@kms_flip@basic-flip-vs-modeset:
- shard-lnl: [PASS][39] -> [SKIP][40] ([Intel XE#2482]) +5 other tests skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_flip@basic-flip-vs-modeset.html
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_flip@basic-flip-vs-modeset.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: NOTRUN -> [FAIL][41] ([Intel XE#301])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
- shard-bmg: NOTRUN -> [SKIP][42] ([Intel XE#7178] / [Intel XE#7351])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling:
- shard-lnl: [PASS][43] -> [SKIP][44] ([Intel XE#1745]) +1 other test skip
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
- shard-lnl: NOTRUN -> [SKIP][45] ([Intel XE#7178] / [Intel XE#7351]) +1 other test skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
* igt@kms_flip_tiling@flip-change-tiling:
- shard-lnl: [PASS][46] -> [SKIP][47] ([Intel XE#2682])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_flip_tiling@flip-change-tiling.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_flip_tiling@flip-change-tiling.html
* igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff:
- shard-lnl: NOTRUN -> [SKIP][48] ([Intel XE#6312] / [Intel XE#651]) +2 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@drrs-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#2311]) +36 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc:
- shard-lnl: NOTRUN -> [SKIP][50] ([Intel XE#7061] / [Intel XE#7356])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-render:
- shard-lnl: NOTRUN -> [SKIP][51] ([Intel XE#7061]) +2 other tests skip
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@drrshdr-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@drrshdr-shrfb-scaledprimary:
- shard-lnl: NOTRUN -> [SKIP][52] ([Intel XE#6312]) +3 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@drrshdr-shrfb-scaledprimary.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt:
- shard-bmg: NOTRUN -> [SKIP][53] ([Intel XE#4141]) +4 other tests skip
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-shrfb-pgflip-blt.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#656] / [Intel XE#7905]) +7 other tests skip
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][55] ([Intel XE#7865]) +7 other tests skip
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcpsrhdr-1p-primscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#7061]) +3 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-blt:
- shard-lnl: NOTRUN -> [SKIP][57] ([Intel XE#7905]) +9 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@hdr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@plane-fbc-rte:
- shard-bmg: NOTRUN -> [SKIP][58] ([Intel XE#2350] / [Intel XE#7503])
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc:
- shard-lnl: [PASS][59] -> [SKIP][60] ([Intel XE#7779])
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc.html
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render:
- shard-lnl: [PASS][61] -> [SKIP][62] ([Intel XE#2548] / [Intel XE#7779]) +22 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render.html
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][63] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_frontbuffer_tracking@psr-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][64] ([Intel XE#2313]) +32 other tests skip
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_frontbuffer_tracking@psrhdr-2p-primscrn-pri-shrfb-draw-render.html
* igt@kms_hdmi_inject@inject-audio:
- shard-bmg: NOTRUN -> [SKIP][65] ([Intel XE#7308])
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [PASS][66] -> [SKIP][67] ([Intel XE#1503])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-8/igt@kms_hdr@invalid-hdr.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-4/igt@kms_hdr@invalid-hdr.html
* igt@kms_invalid_mode@overflow-vrefresh:
- shard-lnl: [PASS][68] -> [SKIP][69] ([Intel XE#2568]) +2 other tests skip
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_invalid_mode@overflow-vrefresh.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_invalid_mode@overflow-vrefresh.html
* igt@kms_joiner@basic-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#6911] / [Intel XE#7466])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_joiner@basic-force-ultra-joiner.html
* igt@kms_panel_fitting@legacy:
- shard-bmg: NOTRUN -> [SKIP][71] ([Intel XE#2486])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_panel_fitting@legacy.html
* igt@kms_pipe_stress@stress-xrgb8888-ytiled:
- shard-bmg: NOTRUN -> [SKIP][72] ([Intel XE#4329] / [Intel XE#6912] / [Intel XE#7375])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_pipe_stress@stress-xrgb8888-ytiled.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping:
- shard-lnl: NOTRUN -> [SKIP][73] ([Intel XE#7283])
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier-source-clamping.html
* igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier:
- shard-bmg: NOTRUN -> [SKIP][74] ([Intel XE#7283]) +2 other tests skip
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-modifier.html
* igt@kms_plane@plane-panning-bottom-right-suspend:
- shard-lnl: [PASS][75] -> [SKIP][76] ([Intel XE#9128]) +1 other test skip
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_plane@plane-panning-bottom-right-suspend.html
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane@plane-panning-bottom-right-suspend.html
* igt@kms_plane_lowres@tiling-y:
- shard-bmg: NOTRUN -> [SKIP][77] ([Intel XE#2393])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_scaling@invalid-num-scalers:
- shard-lnl: [PASS][78] -> [SKIP][79] ([Intel XE#3307] / [Intel XE#7687] / [Intel XE#9125])
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_plane_scaling@invalid-num-scalers.html
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane_scaling@invalid-num-scalers.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers@pipe-b:
- shard-lnl: [PASS][80] -> [SKIP][81] ([Intel XE#2763] / [Intel XE#6886]) +3 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers@pipe-b.html
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers@pipe-b.html
* igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers@pipe-c:
- shard-lnl: [PASS][82] -> [SKIP][83] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) +3 other tests skip
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers@pipe-c.html
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-modifiers@pipe-c.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a:
- shard-lnl: NOTRUN -> [SKIP][84] ([Intel XE#2763] / [Intel XE#6886]) +7 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a.html
* igt@kms_pm_backlight@fade:
- shard-bmg: NOTRUN -> [SKIP][85] ([Intel XE#7376] / [Intel XE#7760] / [Intel XE#870]) +1 other test skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_pm_backlight@fade.html
* igt@kms_pm_rpm@dpms-mode-unset-lpsp:
- shard-bmg: NOTRUN -> [SKIP][86] ([Intel XE#1439] / [Intel XE#7402] / [Intel XE#836])
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
* igt@kms_pm_rpm@i2c:
- shard-lnl: [PASS][87] -> [SKIP][88] ([Intel XE#7106])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_pm_rpm@i2c.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_pm_rpm@i2c.html
* igt@kms_pm_rpm@modeset-lpsp:
- shard-lnl: [PASS][89] -> [SKIP][90] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_pm_rpm@modeset-lpsp.html
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_pm_rpm@modeset-lpsp.html
* igt@kms_pm_rpm@modeset-stress-extra-wait:
- shard-lnl: [PASS][91] -> [SKIP][92] ([Intel XE#1439] / [Intel XE#836])
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_pm_rpm@modeset-stress-extra-wait.html
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_pm_rpm@modeset-stress-extra-wait.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-a-edp-1:
- shard-lnl: NOTRUN -> [SKIP][93] ([Intel XE#4608])
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-a-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][94] ([Intel XE#4608] / [Intel XE#7304])
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf@pipe-b-edp-1.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-bmg: NOTRUN -> [SKIP][95] ([Intel XE#1489]) +4 other tests skip
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_psr2_sf@fbc-psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf:
- shard-lnl: NOTRUN -> [SKIP][96] ([Intel XE#2893] / [Intel XE#7304])
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
- shard-lnl: [PASS][97] -> [SKIP][98] ([Intel XE#1489]) +3 other tests skip
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr@fbc-psr2-sprite-blt@edp-1:
- shard-lnl: NOTRUN -> [SKIP][99] ([Intel XE#1406] / [Intel XE#4609] / [Intel XE#7345]) +1 other test skip
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_psr@fbc-psr2-sprite-blt@edp-1.html
* igt@kms_psr@pr-sprite-plane-move:
- shard-lnl: NOTRUN -> [SKIP][100] ([Intel XE#1406]) +1 other test skip
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr@pr-sprite-plane-move.html
* igt@kms_psr@psr-sprite-blt:
- shard-lnl: [PASS][101] -> [SKIP][102] ([Intel XE#2850] / [Intel XE#929]) +5 other tests skip
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_psr@psr-sprite-blt.html
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_psr@psr-sprite-blt.html
* igt@kms_psr@psr2-sprite-blt:
- shard-bmg: NOTRUN -> [SKIP][103] ([Intel XE#2234] / [Intel XE#2850]) +6 other tests skip
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_psr@psr2-sprite-blt.html
* igt@kms_rotation_crc@bad-pixel-format:
- shard-bmg: NOTRUN -> [SKIP][104] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_rotation_crc@bad-pixel-format.html
* igt@kms_scaling_modes@scaling-mode-full-aspect:
- shard-bmg: NOTRUN -> [SKIP][105] ([Intel XE#2413])
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@kms_scaling_modes@scaling-mode-full-aspect.html
* igt@kms_sharpness_filter@filter-dpms:
- shard-bmg: NOTRUN -> [SKIP][106] ([Intel XE#6503])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_sharpness_filter@filter-dpms.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-lnl: NOTRUN -> [SKIP][107] ([Intel XE#362] / [Intel XE#5848])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_vblank@query-forked:
- shard-lnl: [PASS][108] -> [SKIP][109] ([Intel XE#9125]) +55 other tests skip
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_vblank@query-forked.html
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_vblank@query-forked.html
* igt@kms_vrr@max-min:
- shard-bmg: NOTRUN -> [SKIP][110] ([Intel XE#1499])
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_vrr@max-min.html
* igt@xe_compute_preempt@compute-preempt-many-vram:
- shard-lnl: NOTRUN -> [SKIP][111] ([Intel XE#5191] / [Intel XE#7316] / [Intel XE#7346])
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_compute_preempt@compute-preempt-many-vram.html
* igt@xe_cw_post_sync@walker-post-sync:
- shard-bmg: NOTRUN -> [SKIP][112] ([Intel XE#8608])
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@xe_cw_post_sync@walker-post-sync.html
* igt@xe_evict@evict-beng-threads-small:
- shard-lnl: NOTRUN -> [SKIP][113] ([Intel XE#6540] / [Intel XE#688]) +3 other tests skip
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_evict@evict-beng-threads-small.html
* igt@xe_evict@evict-small-external-multi-queue-cm:
- shard-bmg: NOTRUN -> [SKIP][114] ([Intel XE#8370])
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@xe_evict@evict-small-external-multi-queue-cm.html
* igt@xe_exec_balancer@once-cm-parallel-userptr:
- shard-lnl: NOTRUN -> [SKIP][115] ([Intel XE#7482]) +3 other tests skip
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_exec_balancer@once-cm-parallel-userptr.html
* igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-rebind:
- shard-bmg: NOTRUN -> [SKIP][116] ([Intel XE#2322] / [Intel XE#7372]) +1 other test skip
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-userptr-rebind.html
* igt@xe_exec_basic@multigpu-once-userptr-invalidate:
- shard-lnl: NOTRUN -> [SKIP][117] ([Intel XE#1392]) +2 other tests skip
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_exec_basic@multigpu-once-userptr-invalidate.html
* igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-prefetch:
- shard-lnl: NOTRUN -> [SKIP][118] ([Intel XE#8374]) +1 other test skip
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-prefetch.html
* igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind-imm:
- shard-bmg: NOTRUN -> [SKIP][119] ([Intel XE#8374]) +5 other tests skip
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@xe_exec_fault_mode@once-multi-queue-userptr-rebind-imm.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-dyn-priority:
- shard-lnl: NOTRUN -> [SKIP][120] ([Intel XE#8364]) +7 other tests skip
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-dyn-priority.html
* igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem:
- shard-bmg: NOTRUN -> [SKIP][121] ([Intel XE#8364]) +12 other tests skip
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem.html
* igt@xe_exec_threads@threads-hang-fd-userptr-invalidate-race:
- shard-lnl: [PASS][122] -> [FAIL][123] ([Intel XE#9096]) +1 other test fail
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-8/igt@xe_exec_threads@threads-hang-fd-userptr-invalidate-race.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-1/igt@xe_exec_threads@threads-hang-fd-userptr-invalidate-race.html
* igt@xe_exec_threads@threads-hang-userptr-invalidate-race:
- shard-bmg: [PASS][124] -> [FAIL][125] ([Intel XE#9096])
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-9/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-1/igt@xe_exec_threads@threads-hang-userptr-invalidate-race.html
* igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-basic:
- shard-lnl: NOTRUN -> [SKIP][126] ([Intel XE#8378]) +2 other tests skip
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_exec_threads@threads-multi-queue-cm-shared-vm-basic.html
* igt@xe_exec_threads@threads-multi-queue-mixed-rebind:
- shard-bmg: NOTRUN -> [SKIP][127] ([Intel XE#8378]) +4 other tests skip
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@xe_exec_threads@threads-multi-queue-mixed-rebind.html
* igt@xe_multigpu_svm@mgpu-coherency-basic:
- shard-lnl: NOTRUN -> [SKIP][128] ([Intel XE#6964])
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_multigpu_svm@mgpu-coherency-basic.html
* igt@xe_multigpu_svm@mgpu-concurrent-access-basic:
- shard-bmg: NOTRUN -> [SKIP][129] ([Intel XE#6964])
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@xe_multigpu_svm@mgpu-concurrent-access-basic.html
* igt@xe_page_reclaim@boundary-split:
- shard-bmg: NOTRUN -> [SKIP][130] ([Intel XE#7793]) +1 other test skip
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@xe_page_reclaim@boundary-split.html
* igt@xe_page_reclaim@pde-vs-pd:
- shard-lnl: NOTRUN -> [SKIP][131] ([Intel XE#7793])
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_page_reclaim@pde-vs-pd.html
* igt@xe_pat@pat-index-xehpc:
- shard-lnl: NOTRUN -> [SKIP][132] ([Intel XE#1420] / [Intel XE#2838] / [Intel XE#7590])
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_pat@pat-index-xehpc.html
* igt@xe_pmu@engine-activity-accuracy-90:
- shard-lnl: [PASS][133] -> [FAIL][134] ([Intel XE#8555]) +1 other test fail
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-2/igt@xe_pmu@engine-activity-accuracy-90.html
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-4/igt@xe_pmu@engine-activity-accuracy-90.html
* igt@xe_prefetch_fault@prefetch-fault:
- shard-bmg: NOTRUN -> [SKIP][135] ([Intel XE#7599])
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@xe_prefetch_fault@prefetch-fault.html
* igt@xe_pxp@display-pxp-fb:
- shard-bmg: NOTRUN -> [SKIP][136] ([Intel XE#4733] / [Intel XE#7417])
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@xe_pxp@display-pxp-fb.html
* igt@xe_query@multigpu-query-config:
- shard-bmg: NOTRUN -> [SKIP][137] ([Intel XE#944]) +2 other tests skip
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@xe_query@multigpu-query-config.html
* igt@xe_query@multigpu-query-invalid-extension:
- shard-lnl: NOTRUN -> [SKIP][138] ([Intel XE#944])
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_query@multigpu-query-invalid-extension.html
* igt@xe_sriov_admin@bulk-preempt-timeout-vfs-disabled:
- shard-lnl: NOTRUN -> [SKIP][139] ([Intel XE#7174])
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_sriov_admin@bulk-preempt-timeout-vfs-disabled.html
* igt@xe_sriov_vfio@region-info:
- shard-lnl: NOTRUN -> [SKIP][140] ([Intel XE#7724])
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@xe_sriov_vfio@region-info.html
#### Possible fixes ####
* igt@fbdev@pan:
- shard-lnl: [SKIP][141] ([Intel XE#2134]) -> [PASS][142]
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@fbdev@pan.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@fbdev@pan.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- shard-lnl: [SKIP][143] ([Intel XE#9125]) -> [PASS][144] +41 other tests pass
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_color@ctm-blue-to-red:
- shard-lnl: [SKIP][145] ([Intel XE#3297]) -> [PASS][146] +3 other tests pass
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_color@ctm-blue-to-red.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_color@ctm-blue-to-red.html
* igt@kms_color_pipeline@plane-ctm3x4-lut1d:
- shard-lnl: [SKIP][147] ([Intel XE#7006]) -> [PASS][148]
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_color_pipeline@plane-ctm3x4-lut1d.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_color_pipeline@plane-ctm3x4-lut1d.html
* igt@kms_fbcon_fbt@fbc-suspend:
- shard-lnl: [SKIP][149] ([Intel XE#9127]) -> [PASS][150] +1 other test pass
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_fbcon_fbt@fbc-suspend.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_fbcon_fbt@fbc-suspend.html
* igt@kms_fbcon_fbt@psr:
- shard-lnl: [SKIP][151] ([Intel XE#8680]) -> [PASS][152]
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_fbcon_fbt@psr.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_fbcon_fbt@psr.html
* igt@kms_feature_discovery@display-1x:
- shard-lnl: [SKIP][153] ([Intel XE#702]) -> [PASS][154]
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_feature_discovery@display-1x.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_feature_discovery@display-1x.html
* igt@kms_feature_discovery@vrr:
- shard-lnl: [SKIP][155] ([Intel XE#8586]) -> [PASS][156]
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_feature_discovery@vrr.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_feature_discovery@vrr.html
* igt@kms_flip@blocking-absolute-wf_vblank:
- shard-lnl: [SKIP][157] ([Intel XE#2482]) -> [PASS][158] +4 other tests pass
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_flip@blocking-absolute-wf_vblank.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_flip@blocking-absolute-wf_vblank.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
- shard-lnl: [FAIL][159] ([Intel XE#301]) -> [PASS][160] +1 other test pass
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
* igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-render:
- shard-lnl: [SKIP][161] ([Intel XE#7779]) -> [PASS][162] +3 other tests pass
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-render.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt:
- shard-lnl: [SKIP][163] ([Intel XE#2548] / [Intel XE#7779]) -> [PASS][164] +10 other tests pass
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-blt.html
* igt@kms_invalid_mode@zero-clock:
- shard-lnl: [SKIP][165] ([Intel XE#2568]) -> [PASS][166] +1 other test pass
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_invalid_mode@zero-clock.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_invalid_mode@zero-clock.html
* igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers:
- shard-lnl: [SKIP][167] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) -> [PASS][168] +11 other tests pass
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-modifiers.html
* igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-b:
- shard-lnl: [SKIP][169] ([Intel XE#2763] / [Intel XE#6886]) -> [PASS][170] +11 other tests pass
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-b.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_plane_scaling@planes-scaler-unity-scaling@pipe-b.html
* igt@kms_pm_dc@dc5-psr:
- shard-lnl: [SKIP][171] ([Intel XE#7794]) -> [PASS][172]
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_pm_dc@dc5-psr.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_pm_dc@dc5-psr.html
* igt@kms_pm_rpm@modeset-lpsp-stress-no-wait:
- shard-lnl: [SKIP][173] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836]) -> [PASS][174] +1 other test pass
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html
* igt@kms_psr@psr2-sprite-plane-onoff:
- shard-lnl: [SKIP][175] ([Intel XE#2850] / [Intel XE#929]) -> [PASS][176] +2 other tests pass
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_psr@psr2-sprite-plane-onoff.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_psr@psr2-sprite-plane-onoff.html
* igt@kms_setmode@basic-no-cpu-idle:
- shard-lnl: [SKIP][177] -> [PASS][178]
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_setmode@basic-no-cpu-idle.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_setmode@basic-no-cpu-idle.html
* igt@kms_vblank@ts-continuation-modeset:
- shard-bmg: [INCOMPLETE][179] -> [PASS][180] +1 other test pass
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-3/igt@kms_vblank@ts-continuation-modeset.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-6/igt@kms_vblank@ts-continuation-modeset.html
#### Warnings ####
* igt@kms_big_fb@4-tiled-32bpp-rotate-90:
- shard-lnl: [SKIP][181] ([Intel XE#1407]) -> [SKIP][182] ([Intel XE#9125]) +3 other tests skip
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
* igt@kms_big_fb@4-tiled-64bpp-rotate-270:
- shard-lnl: [SKIP][183] ([Intel XE#9125]) -> [SKIP][184] ([Intel XE#1407]) +1 other test skip
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html
* igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-lnl: [SKIP][185] ([Intel XE#9125]) -> [SKIP][186] ([Intel XE#3658] / [Intel XE#7360])
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
- shard-lnl: [SKIP][187] ([Intel XE#9125]) -> [SKIP][188] ([Intel XE#7059] / [Intel XE#7085])
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
- shard-lnl: [SKIP][189] ([Intel XE#1124]) -> [SKIP][190] ([Intel XE#9125]) +9 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
* igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip:
- shard-lnl: [SKIP][191] ([Intel XE#9125]) -> [SKIP][192] ([Intel XE#1124]) +7 other tests skip
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180-hflip.html
* igt@kms_big_fb@yf-tiled-addfb:
- shard-lnl: [SKIP][193] ([Intel XE#1467] / [Intel XE#7367]) -> [SKIP][194] ([Intel XE#9125]) +1 other test skip
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_big_fb@yf-tiled-addfb.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_big_fb@yf-tiled-addfb.html
* igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p:
- shard-lnl: [SKIP][195] ([Intel XE#7679]) -> [SKIP][196] ([Intel XE#9125])
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_bw@connected-linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_bw@linear-tiling-3-displays-target-1920x1080p:
- shard-lnl: [SKIP][197] ([Intel XE#367]) -> [SKIP][198] ([Intel XE#9125]) +1 other test skip
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_bw@linear-tiling-3-displays-target-1920x1080p.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_bw@linear-tiling-3-displays-target-1920x1080p.html
* igt@kms_bw@linear-tiling-3-displays-target-3840x2160p:
- shard-lnl: [SKIP][199] ([Intel XE#9125]) -> [SKIP][200] ([Intel XE#367]) +1 other test skip
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_bw@linear-tiling-3-displays-target-3840x2160p.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_bw@linear-tiling-3-displays-target-3840x2160p.html
* igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc:
- shard-lnl: [SKIP][201] ([Intel XE#2887]) -> [SKIP][202] ([Intel XE#9125]) +15 other tests skip
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
- shard-lnl: [SKIP][203] ([Intel XE#9125]) -> [SKIP][204] ([Intel XE#3432])
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc:
- shard-lnl: [SKIP][205] ([Intel XE#3432]) -> [SKIP][206] ([Intel XE#9125]) +1 other test skip
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs:
- shard-lnl: [SKIP][207] ([Intel XE#9125]) -> [SKIP][208] ([Intel XE#2669] / [Intel XE#7389]) +1 other test skip
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-bmg-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc:
- shard-lnl: [SKIP][209] ([Intel XE#9125]) -> [SKIP][210] ([Intel XE#2887]) +9 other tests skip
[209]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html
[210]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs-cc.html
* igt@kms_cdclk@mode-transition:
- shard-lnl: [SKIP][211] ([Intel XE#4417] / [Intel XE#5447]) -> [SKIP][212] ([Intel XE#9125])
[211]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_cdclk@mode-transition.html
[212]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_cdclk@mode-transition.html
* igt@kms_content_protection@dp-mst-type-0:
- shard-lnl: [SKIP][213] ([Intel XE#9125]) -> [SKIP][214] ([Intel XE#307] / [Intel XE#6974])
[213]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_content_protection@dp-mst-type-0.html
[214]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_content_protection@dp-mst-type-0.html
* igt@kms_content_protection@dp-mst-type-0-suspend-resume:
- shard-lnl: [SKIP][215] ([Intel XE#9125]) -> [SKIP][216] ([Intel XE#6974])
[215]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html
[216]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_content_protection@dp-mst-type-0-suspend-resume.html
* igt@kms_content_protection@dp-mst-type-1-suspend-resume:
- shard-lnl: [SKIP][217] ([Intel XE#6974]) -> [SKIP][218] ([Intel XE#9125])
[217]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html
[218]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html
* igt@kms_content_protection@lic-type-0:
- shard-lnl: [SKIP][219] ([Intel XE#7642]) -> [SKIP][220] ([Intel XE#9125]) +2 other tests skip
[219]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_content_protection@lic-type-0.html
[220]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_content_protection@lic-type-0.html
* igt@kms_cursor_crc@cursor-offscreen-64x21:
- shard-lnl: [SKIP][221] ([Intel XE#1424]) -> [SKIP][222] ([Intel XE#9125])
[221]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_cursor_crc@cursor-offscreen-64x21.html
[222]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_cursor_crc@cursor-offscreen-64x21.html
* igt@kms_cursor_crc@cursor-onscreen-512x512:
- shard-lnl: [SKIP][223] ([Intel XE#9125]) -> [SKIP][224] ([Intel XE#2321] / [Intel XE#7355]) +1 other test skip
[223]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_cursor_crc@cursor-onscreen-512x512.html
[224]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html
* igt@kms_cursor_crc@cursor-random-32x10:
- shard-lnl: [SKIP][225] ([Intel XE#9125]) -> [SKIP][226] ([Intel XE#1424]) +3 other tests skip
[225]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_cursor_crc@cursor-random-32x10.html
[226]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_cursor_crc@cursor-random-32x10.html
* igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
- shard-lnl: [SKIP][227] ([Intel XE#309] / [Intel XE#7343]) -> [SKIP][228] ([Intel XE#9125]) +5 other tests skip
[227]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
[228]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html
* igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
- shard-lnl: [SKIP][229] ([Intel XE#9125]) -> [SKIP][230] ([Intel XE#309] / [Intel XE#7343]) +4 other tests skip
[229]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
[230]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
- shard-lnl: [SKIP][231] ([Intel XE#9125]) -> [SKIP][232] ([Intel XE#323] / [Intel XE#6035])
[231]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
[232]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
* igt@kms_display_modes@extended-mode-basic:
- shard-lnl: [SKIP][233] ([Intel XE#4302]) -> [SKIP][234] ([Intel XE#9125])
[233]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_display_modes@extended-mode-basic.html
[234]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dp_link_training@non-uhbr-sst:
- shard-lnl: [SKIP][235] ([Intel XE#9125]) -> [SKIP][236] ([Intel XE#4354] / [Intel XE#7450])
[235]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_dp_link_training@non-uhbr-sst.html
[236]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_dp_link_training@non-uhbr-sst.html
* igt@kms_dp_link_training@uhbr-sst:
- shard-lnl: [SKIP][237] ([Intel XE#4354] / [Intel XE#5870]) -> [SKIP][238] ([Intel XE#9125])
[237]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_dp_link_training@uhbr-sst.html
[238]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_dp_link_training@uhbr-sst.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-lnl: [SKIP][239] ([Intel XE#8265]) -> [SKIP][240] ([Intel XE#9125]) +2 other tests skip
[239]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_dsc@dsc-with-bpc-formats.html
[240]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_dsc@dsc-with-bpc-ultrajoiner:
- shard-lnl: [SKIP][241] ([Intel XE#9125]) -> [SKIP][242] ([Intel XE#8265]) +1 other test skip
[241]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_dsc@dsc-with-bpc-ultrajoiner.html
[242]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_dsc@dsc-with-bpc-ultrajoiner.html
* igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats:
- shard-lnl: [SKIP][243] ([Intel XE#9125]) -> [SKIP][244] ([Intel XE#4422] / [Intel XE#7442])
[243]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html
[244]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-different-formats.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-lnl: [FAIL][245] ([Intel XE#7949]) -> [SKIP][246] ([Intel XE#8680])
[245]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_fbcon_fbt@psr-suspend.html
[246]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-lnl: [SKIP][247] ([Intel XE#2482]) -> [FAIL][248] ([Intel XE#301])
[247]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank.html
[248]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc:
- shard-lnl: [SKIP][249] ([Intel XE#7779]) -> [SKIP][250] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[249]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc.html
[250]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_frontbuffer_tracking@drrs-argb161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-lnl: [SKIP][251] ([Intel XE#7779]) -> [SKIP][252] ([Intel XE#7905]) +29 other tests skip
[251]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-pri-indfb-draw-mmap-wc.html
[252]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-pri-shrfb-draw-blt:
- shard-lnl: [SKIP][253] ([Intel XE#7905]) -> [SKIP][254] ([Intel XE#7779]) +47 other tests skip
[253]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-pri-shrfb-draw-blt.html
[254]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@drrshdr-2p-primscrn-pri-shrfb-draw-blt.html
* igt@kms_frontbuffer_tracking@drrshdr-rgb101010-draw-render:
- shard-lnl: [SKIP][255] ([Intel XE#6312]) -> [SKIP][256] ([Intel XE#7779]) +14 other tests skip
[255]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@drrshdr-rgb101010-draw-render.html
[256]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@drrshdr-rgb101010-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc:
- shard-lnl: [SKIP][257] ([Intel XE#2548] / [Intel XE#7779]) -> [SKIP][258] ([Intel XE#656] / [Intel XE#7905]) +24 other tests skip
[257]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
[258]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render:
- shard-lnl: [SKIP][259] ([Intel XE#6312] / [Intel XE#651]) -> [SKIP][260] ([Intel XE#2548] / [Intel XE#7779]) +10 other tests skip
[259]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
[260]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt:
- shard-lnl: [SKIP][261] ([Intel XE#7061] / [Intel XE#7356]) -> [SKIP][262] ([Intel XE#7779]) +6 other tests skip
[261]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt.html
[262]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-abgr161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt:
- shard-lnl: [SKIP][263] ([Intel XE#2548] / [Intel XE#7779]) -> [SKIP][264] ([Intel XE#6312] / [Intel XE#651]) +9 other tests skip
[263]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt.html
[264]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-linear:
- shard-lnl: [SKIP][265] ([Intel XE#7779]) -> [SKIP][266] ([Intel XE#6312]) +12 other tests skip
[265]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-linear.html
[266]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-linear.html
* igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-y:
- shard-lnl: [SKIP][267] ([Intel XE#7399]) -> [SKIP][268] ([Intel XE#7779]) +1 other test skip
[267]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-y.html
[268]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrshdr-tiling-y.html
* igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-mmap-wc:
- shard-lnl: [SKIP][269] ([Intel XE#7061]) -> [SKIP][270] ([Intel XE#7779]) +5 other tests skip
[269]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-mmap-wc.html
[270]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
- shard-lnl: [SKIP][271] ([Intel XE#2548] / [Intel XE#7779]) -> [SKIP][272] ([Intel XE#1469] / [Intel XE#7399])
[271]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
[272]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html
* igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-blt:
- shard-lnl: [SKIP][273] ([Intel XE#7779]) -> [SKIP][274] ([Intel XE#7061]) +3 other tests skip
[273]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-blt.html
[274]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_frontbuffer_tracking@fbcpsrhdr-abgr161616f-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
- shard-lnl: [SKIP][275] ([Intel XE#656] / [Intel XE#7905]) -> [SKIP][276] ([Intel XE#2548] / [Intel XE#7779]) +33 other tests skip
[275]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
[276]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-plflip-blt:
- shard-lnl: [SKIP][277] ([Intel XE#7865]) -> [SKIP][278] ([Intel XE#7779]) +24 other tests skip
[277]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-plflip-blt.html
[278]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-render:
- shard-lnl: [SKIP][279] ([Intel XE#7779]) -> [SKIP][280] ([Intel XE#7865]) +24 other tests skip
[279]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-render.html
[280]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_frontbuffer_tracking@psrhdr-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][281] ([Intel XE#3544]) -> [SKIP][282] ([Intel XE#3374] / [Intel XE#3544])
[281]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html
[282]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-7/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_hdr@static-toggle:
- shard-lnl: [SKIP][283] ([Intel XE#9125]) -> [SKIP][284] ([Intel XE#1503])
[283]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_hdr@static-toggle.html
[284]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_hdr@static-toggle.html
* igt@kms_mst@mst-suspend-read-crc:
- shard-lnl: [SKIP][285] ([Intel XE#8348]) -> [SKIP][286] ([Intel XE#9125])
[285]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_mst@mst-suspend-read-crc.html
[286]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_mst@mst-suspend-read-crc.html
* igt@kms_pipe_stress@stress-xrgb8888-yftiled:
- shard-lnl: [SKIP][287] ([Intel XE#9125]) -> [SKIP][288] ([Intel XE#6912] / [Intel XE#7375])
[287]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
[288]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-5/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
* igt@kms_plane_multiple@2x-tiling-4:
- shard-lnl: [SKIP][289] ([Intel XE#4596] / [Intel XE#5854]) -> [SKIP][290] ([Intel XE#9125])
[289]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_plane_multiple@2x-tiling-4.html
[290]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane_multiple@2x-tiling-4.html
* igt@kms_plane_scaling@intel-max-src-size:
- shard-lnl: [SKIP][291] ([Intel XE#3307]) -> [SKIP][292] ([Intel XE#3307] / [Intel XE#7687] / [Intel XE#9125])
[291]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_plane_scaling@intel-max-src-size.html
[292]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane_scaling@intel-max-src-size.html
* igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
- shard-lnl: [SKIP][293] ([Intel XE#2763] / [Intel XE#6886]) -> [SKIP][294] ([Intel XE#2763] / [Intel XE#6886] / [Intel XE#7687] / [Intel XE#9125]) +5 other tests skip
[293]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
[294]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
* igt@kms_pm_dc@dc5-psr-suspend-resume:
- shard-lnl: [FAIL][295] ([Intel XE#8399]) -> [SKIP][296] ([Intel XE#8854])
[295]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_pm_dc@dc5-psr-suspend-resume.html
[296]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_pm_dc@dc5-psr-suspend-resume.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf:
- shard-lnl: [SKIP][297] ([Intel XE#2893] / [Intel XE#7304]) -> [SKIP][298] ([Intel XE#1489]) +1 other test skip
[297]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html
[298]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
- shard-lnl: [SKIP][299] ([Intel XE#1489]) -> [SKIP][300] ([Intel XE#2893] / [Intel XE#7304]) +4 other tests skip
[299]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html
[300]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf:
- shard-lnl: [SKIP][301] ([Intel XE#1489]) -> [SKIP][302] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304])
[301]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
[302]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html
* igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf:
- shard-lnl: [SKIP][303] ([Intel XE#2893] / [Intel XE#4608] / [Intel XE#7304]) -> [SKIP][304] ([Intel XE#1489]) +2 other tests skip
[303]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html
[304]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-overlay-plane-update-continuous-sf.html
* igt@kms_psr2_su@frontbuffer-xrgb8888:
- shard-lnl: [SKIP][305] ([Intel XE#1122] / [Intel XE#7429]) -> [SKIP][306] ([Intel XE#1128] / [Intel XE#7413]) +1 other test skip
[305]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_psr2_su@frontbuffer-xrgb8888.html
[306]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr2_su@frontbuffer-xrgb8888.html
* igt@kms_psr@fbc-psr2-primary-render:
- shard-lnl: [SKIP][307] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][308] ([Intel XE#1406] / [Intel XE#7345]) +1 other test skip
[307]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_psr@fbc-psr2-primary-render.html
[308]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_psr@fbc-psr2-primary-render.html
* igt@kms_psr@fbc-psr2-sprite-plane-onoff:
- shard-lnl: [SKIP][309] ([Intel XE#1406] / [Intel XE#7345]) -> [SKIP][310] ([Intel XE#2850] / [Intel XE#929])
[309]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-4/igt@kms_psr@fbc-psr2-sprite-plane-onoff.html
[310]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_psr@fbc-psr2-sprite-plane-onoff.html
* igt@kms_psr@pr-no-drrs:
- shard-lnl: [SKIP][311] ([Intel XE#1406]) -> [SKIP][312] ([Intel XE#2850] / [Intel XE#929]) +5 other tests skip
[311]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_psr@pr-no-drrs.html
[312]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_psr@pr-no-drrs.html
* igt@kms_psr@pr-primary-page-flip:
- shard-lnl: [SKIP][313] ([Intel XE#2850] / [Intel XE#929]) -> [SKIP][314] ([Intel XE#1406]) +3 other tests skip
[313]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_psr@pr-primary-page-flip.html
[314]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_psr@pr-primary-page-flip.html
* igt@kms_rotation_crc@primary-y-tiled-reflect-x-180:
- shard-lnl: [SKIP][315] ([Intel XE#9125]) -> [SKIP][316] ([Intel XE#1127] / [Intel XE#5813])
[315]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
[316]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_rotation_crc@primary-y-tiled-reflect-x-180.html
* igt@kms_rotation_crc@sprite-rotation-90:
- shard-lnl: [SKIP][317] ([Intel XE#9125]) -> [SKIP][318] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342])
[317]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_rotation_crc@sprite-rotation-90.html
[318]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-3/igt@kms_rotation_crc@sprite-rotation-90.html
* igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
- shard-lnl: [SKIP][319] ([Intel XE#3414] / [Intel XE#3904] / [Intel XE#7342]) -> [SKIP][320] ([Intel XE#9125])
[319]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-3/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
[320]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-bmg: [SKIP][321] ([Intel XE#2426] / [Intel XE#5848]) -> [FAIL][322] ([Intel XE#1729] / [Intel XE#7424])
[321]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern.html
[322]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][323] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][324] ([Intel XE#2426] / [Intel XE#5848])
[323]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[324]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
- shard-lnl: [SKIP][325] ([Intel XE#362] / [Intel XE#5848]) -> [SKIP][326] ([Intel XE#9125])
[325]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[326]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@kms_vrr@lobf-dc3co:
- shard-lnl: [SKIP][327] ([Intel XE#9125]) -> [SKIP][328] ([Intel XE#8397])
[327]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-6/igt@kms_vrr@lobf-dc3co.html
[328]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-7/igt@kms_vrr@lobf-dc3co.html
* igt@kms_vrr@seamless-rr-switch-vrr:
- shard-lnl: [SKIP][329] ([Intel XE#1499]) -> [SKIP][330] ([Intel XE#9125]) +1 other test skip
[329]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-lnl-5/igt@kms_vrr@seamless-rr-switch-vrr.html
[330]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-lnl-6/igt@kms_vrr@seamless-rr-switch-vrr.html
* igt@xe_exec_reset@gt-reset-fault-injection:
- shard-bmg: [ABORT][331] ([Intel XE#9131]) -> [DMESG-WARN][332] ([Intel XE#9130])
[331]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-5/igt@xe_exec_reset@gt-reset-fault-injection.html
[332]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-5/igt@xe_exec_reset@gt-reset-fault-injection.html
* igt@xe_wedged@basic-wedged:
- shard-bmg: [ABORT][333] ([Intel XE#8591] / [Intel XE#8963]) -> [DMESG-WARN][334] ([Intel XE#8963])
[333]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-5685-b2fada7902896bce389c2b033688d18df36855fc/shard-bmg-10/igt@xe_wedged@basic-wedged.html
[334]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/shard-bmg-2/igt@xe_wedged@basic-wedged.html
[Intel XE#1122]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1122
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
[Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
[Intel XE#1420]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1420
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
[Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
[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#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1729]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1729
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
[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#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
[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#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
[Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2413
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
[Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
[Intel XE#2568]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2568
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2682]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2682
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2838]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2838
[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#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
[Intel XE#3297]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3297
[Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
[Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
[Intel XE#4329]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4329
[Intel XE#4331]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4331
[Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
[Intel XE#4417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4417
[Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4609]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4609
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5191
[Intel XE#5447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5447
[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#5854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5854
[Intel XE#5870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5870
[Intel XE#6035]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6035
[Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6911]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6911
[Intel XE#6912]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6912
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
[Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
[Intel XE#702]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/702
[Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7085]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7085
[Intel XE#7106]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7106
[Intel XE#7174]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7174
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7227]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7227
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#7304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7304
[Intel XE#7308]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7308
[Intel XE#7316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7316
[Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
[Intel XE#7343]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7343
[Intel XE#7345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7345
[Intel XE#7346]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7346
[Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
[Intel XE#7355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7355
[Intel XE#7356]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7356
[Intel XE#7358]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7358
[Intel XE#7360]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7360
[Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
[Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7375
[Intel XE#7376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7376
[Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
[Intel XE#7387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7387
[Intel XE#7389]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7389
[Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
[Intel XE#7402]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7402
[Intel XE#7413]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7413
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7424
[Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
[Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7439
[Intel XE#7442]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7442
[Intel XE#7450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7450
[Intel XE#7466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7466
[Intel XE#7482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7482
[Intel XE#7503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7503
[Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
[Intel XE#7599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7599
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679
[Intel XE#7687]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7687
[Intel XE#7724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7724
[Intel XE#7760]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7760
[Intel XE#7779]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7779
[Intel XE#7793]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7793
[Intel XE#7794]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7794
[Intel XE#7865]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7865
[Intel XE#7905]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7905
[Intel XE#7949]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7949
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8348]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8348
[Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
[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#8397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8397
[Intel XE#8399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8399
[Intel XE#8555]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8555
[Intel XE#8586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8586
[Intel XE#8591]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8591
[Intel XE#8608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8608
[Intel XE#8680]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8680
[Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
[Intel XE#8854]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8854
[Intel XE#8963]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8963
[Intel XE#9096]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9096
[Intel XE#9125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9125
[Intel XE#9127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9127
[Intel XE#9128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9128
[Intel XE#9130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9130
[Intel XE#9131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9131
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* Linux: xe-5685-b2fada7902896bce389c2b033688d18df36855fc -> xe-pw-161655v4
IGT_9082: 2d61f578d998115259b87f9fa27f597ce11a0c89 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
xe-5685-b2fada7902896bce389c2b033688d18df36855fc: b2fada7902896bce389c2b033688d18df36855fc
xe-pw-161655v4: 161655v4
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-161655v4/index.html
[-- Attachment #2: Type: text/html, Size: 115127 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status
2026-09-03 20:42 ` Ruhl, Michael J
@ 2026-09-04 3:13 ` Anoop Vijay
0 siblings, 0 replies; 17+ messages in thread
From: Anoop Vijay @ 2026-09-04 3:13 UTC (permalink / raw)
To: Ruhl, Michael J, Nerlige Ramappa, Umesh
Cc: intel-xe@lists.freedesktop.org, Nilawar, Badal, Vivi, Rodrigo,
Iddamsetty, Aravind, Tauro, Riana, Gupta, Anshuman,
Roper, Matthew D, Luse, Paul E, V, Mohamed Mansoor, Nasim, Kam
[-- Attachment #1: Type: text/plain, Size: 13085 bytes --]
On 04-09-2026 02:12, Ruhl, Michael J wrote:
>
> Anoop,
>
> The XE VSEC code will only use this API if the device is CRI, so yes,
> removing the NOTSUPP
>
> will work.
>
> Mike
>
Thanks for confirming. I will drop NOTSUPP handling and the
corresponding checks in the _ready() helpers.
Anoop
> *From:*Vijay, Anoop C <anoop.c.vijay@intel.com>
> *Sent:* Thursday, September 3, 2026 4:13 PM
> *To:* Nerlige Ramappa, Umesh <umesh.nerlige.ramappa@intel.com>
> *Cc:* intel-xe@lists.freedesktop.org; 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>
> *Subject:* Re: [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller
> get application status
>
> On 04-09-2026 00:47, Umesh Nerlige Ramappa wrote:
>
> On Thu, Sep 03, 2026 at 07:03:41AM -0700, Anoop, Vijay wrote:
>
> From: Anoop Vijay <anoop.c.vijay@intel.com>
> <mailto:anoop.c.vijay@intel.com>
>
> Add support for querying System Controller firmware application
> status. This allows callers to determine whether a given firmware
> application has completed boot and post-boot initialization.
>
> This patch is carried here only as a build dependency for this
> series; it is authored and under review as part of a separate
> get-app-status series and should be dropped/rebased away once
> that
> series lands.
>
> Link:
> https://lore.kernel.org/intel-xe/20260814095306.2482289-5-anoop.c.vijay@intel.com/
> Link:
> https://lore.kernel.org/intel-xe/20260814095306.2482289-6-anoop.c.vijay@intel.com/
>
> Signed-off-by: Anoop Vijay <anoop.c.vijay@intel.com>
> <mailto:anoop.c.vijay@intel.com>
> ---
> v4 (Rodrigo):
> - Added lore links to the parent application-status series
> ---
> 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 62ccc9be71b4..5da591ade4e4 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"
>
> /**
> @@ -125,3 +127,83 @@ void xe_sysctrl_pm_resume(struct
> xe_device *xe)
>
> xe->soc_remapper.set_sysctrl_region(xe,
> SYSCTRL_MAILBOX_INDEX);
> }
> +
> +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;
>
>
> Reiterating previous review comment - based on the users that you
> had listed earlier who query app status, we will never get to the
> above condition, so it can be safely dropped. Once you do that,
> you can drop the status == XE_SYSCTRL_FIRMWARE_APP_NOTSUPP checks
> in the below (_ready) helpers.
>
> Instead, if you want to retain this check here, then each of the
> below helpers must be split into _ready() and _supported(). The
> split versions should check for the specific case. It's the
> caller's responsibility to handle the cases as needed.
>
> APP_NOTSUPP was added based on Mike's earlier feedback to handle
> non-SysCtrl platforms.
>
> @Ruhl, Michael J <mailto:michael.j.ruhl@intel.com>, can xe_vsec
> perform platform check and only call _fw_ready() on SysCtrl-capable
> platforms? If so, I'll remove APP_NOTSUPP. Otherwise, do you need
> separate _supported() and _ready() helpers?
>
>
>
> +
> + 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;
>
>
> See above comment.
>
>
> +}
> +
> +/**
> + * 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;
>
>
> See above comment.
>
> Thanks,
> Umesh
>
> +}
> 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 66e7cbcc3f91..d756b50cde6b 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,
> };
>
> /**
> @@ -42,6 +44,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
>
[-- Attachment #2: Type: text/html, Size: 24754 bytes --]
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2026-09-04 3:13 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03 14:03 [PATCH v4 0/4] drm/xe/sysctrl: Add System Controller debugfs Anoop, Vijay
2026-09-03 14:03 ` [PATCH v4 1/4] drm/xe/sysctrl: Add System Controller get application status Anoop, Vijay
2026-09-03 14:16 ` sashiko-bot
2026-09-03 19:17 ` Umesh Nerlige Ramappa
2026-09-03 20:12 ` Anoop Vijay
2026-09-03 20:42 ` Ruhl, Michael J
2026-09-04 3:13 ` Anoop Vijay
2026-09-03 14:03 ` [PATCH v4 2/4] drm/xe/sysctrl: Add sysctrl debugfs infrastructure and loopback test interface Anoop, Vijay
2026-09-03 14:13 ` sashiko-bot
2026-09-03 14:03 ` [PATCH v4 3/4] drm/xe/sysctrl: Add RAS error injection debugfs interface Anoop, Vijay
2026-09-03 14:13 ` sashiko-bot
2026-09-03 14:03 ` [PATCH v4 4/4] drm/xe/sysctrl: Add generic mailbox passthrough debugfs entry Anoop, Vijay
2026-09-03 14:12 ` sashiko-bot
2026-09-03 14:10 ` ✗ CI.checkpatch: warning for drm/xe/sysctrl: Add System Controller debugfs (rev4) Patchwork
2026-09-03 14:12 ` ✓ CI.KUnit: success " Patchwork
2026-09-03 15:02 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-04 1:27 ` ✓ Xe.CI.FULL: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox