* [PATCH v5 0/5] Add ocode late binding support for CRI
@ 2026-10-28 18:19 Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
` (7 more replies)
0 siblings, 8 replies; 14+ messages in thread
From: Badal Nilawar @ 2026-10-28 18:19 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
michael.j.ruhl, alexander.usyskin, anoop.c.vijay, shamim.begum,
kelvin.gardiner
Ocode is the OOBMSM telemetry/manageability firmware, and on CRI it is
loaded through late binding flow.
v2: Dropped "[RFC,3/4] drm/xe/xe_late_bind_fw: Track firmware load status"
v4:
- Fixed most of the comments from Daniele
- Rearranged the patches
- Introduced new patch to fix firmware leak
- Improved "TODO: compatibility check" comments
v5:
- Select xe/cri_ocode_<ver>.bin via System Controller SDK API version
and skip loading on mismatch
Badal Nilawar (5):
drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry
drm/xe/xe_late_bind_fw: Convert late bind flag to mask
drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
drm/xe/xe_late_bind_fw: Enable late binding support for CRI
drm/xe/xe_late_bind_fw: Refactor pm flow
drivers/gpu/drm/xe/abi/uc_fw_abi.h | 3 +-
drivers/gpu/drm/xe/xe_device.c | 2 +-
drivers/gpu/drm/xe/xe_device_types.h | 4 +-
drivers/gpu/drm/xe/xe_late_bind_fw.c | 135 ++++++++++++++----
drivers/gpu/drm/xe/xe_late_bind_fw.h | 4 +-
drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 6 +-
drivers/gpu/drm/xe/xe_pci.c | 6 +-
drivers/gpu/drm/xe/xe_pci_types.h | 2 +-
drivers/gpu/drm/xe/xe_pm.c | 6 +-
drivers/gpu/drm/xe/xe_sysctrl.c | 32 +++++
drivers/gpu/drm/xe/xe_sysctrl.h | 1 +
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 12 ++
12 files changed, 171 insertions(+), 42 deletions(-)
--
2.56.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
@ 2026-10-28 18:19 ` Badal Nilawar
2026-10-28 20:56 ` Ceraolo Spurio, Daniele
2026-10-28 18:19 ` [PATCH v5 2/5] drm/xe/xe_late_bind_fw: Convert late bind flag to mask Badal Nilawar
` (6 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Badal Nilawar @ 2026-10-28 18:19 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
michael.j.ruhl, alexander.usyskin, anoop.c.vijay, shamim.begum,
kelvin.gardiner
Release firmware when the "LTES" manifest entry is not found in the
firmware header.
Fixes: efa29317a553 ("drm/xe/xe_late_bind_fw: Extract and print version info")
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_late_bind_fw.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 768442ca7da6..1bddfaf0fb9f 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -335,19 +335,19 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
if (fw->size > XE_LB_MAX_PAYLOAD_SIZE) {
drm_err(&xe->drm, "Firmware %s size %zu is larger than max pay load size %u\n",
lb_fw->blob_path, fw->size, XE_LB_MAX_PAYLOAD_SIZE);
- release_firmware(fw);
- return -ENODATA;
+ ret = -ENODATA;
+ goto release_fw;
}
ret = parse_lb_layout(lb_fw, fw->data, fw->size, "LTES");
if (ret)
- return ret;
+ goto release_fw;
lb_fw->payload_size = fw->size;
lb_fw->payload = drmm_kzalloc(&xe->drm, lb_fw->payload_size, GFP_KERNEL);
if (!lb_fw->payload) {
- release_firmware(fw);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto release_fw;
}
drm_info(&xe->drm, "Using %s firmware from %s version %u.%u.%u.%u\n",
@@ -356,10 +356,11 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
lb_fw->version.hotfix, lb_fw->version.build);
memcpy((void *)lb_fw->payload, fw->data, lb_fw->payload_size);
- release_firmware(fw);
INIT_WORK(&lb_fw->work, xe_late_bind_work);
- return 0;
+release_fw:
+ release_firmware(fw);
+ return ret;
}
static int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
--
2.56.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v5 2/5] drm/xe/xe_late_bind_fw: Convert late bind flag to mask
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
@ 2026-10-28 18:19 ` Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
` (5 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Badal Nilawar @ 2026-10-28 18:19 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
michael.j.ruhl, alexander.usyskin, anoop.c.vijay, shamim.begum,
kelvin.gardiner
Replace the has_late_bind flag with a late_bind_mask to support
multiple late bind firmware types.
No functional change intended.
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
---
drivers/gpu/drm/xe/xe_device.c | 2 +-
drivers/gpu/drm/xe/xe_device_types.h | 4 ++--
drivers/gpu/drm/xe/xe_late_bind_fw.c | 5 ++++-
drivers/gpu/drm/xe/xe_pci.c | 4 ++--
drivers/gpu/drm/xe/xe_pci_types.h | 2 +-
5 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
index d3bb42e4d0d7..135ba4383c16 100644
--- a/drivers/gpu/drm/xe/xe_device.c
+++ b/drivers/gpu/drm/xe/xe_device.c
@@ -676,7 +676,7 @@ static void vf_update_device_info(struct xe_device *xe)
xe->info.has_heci_cscfi = 0;
xe->info.has_heci_gscfi = 0;
xe->info.has_i2c = 0;
- xe->info.has_late_bind = 0;
+ xe->info.late_bind_mask = 0;
xe->info.skip_guc_pc = 1;
xe->info.skip_pcode = 1;
xe->info.has_drm_ras = false;
diff --git a/drivers/gpu/drm/xe/xe_device_types.h b/drivers/gpu/drm/xe/xe_device_types.h
index 6a6f9a24365c..dbf54295eec5 100644
--- a/drivers/gpu/drm/xe/xe_device_types.h
+++ b/drivers/gpu/drm/xe/xe_device_types.h
@@ -150,6 +150,8 @@ struct xe_device {
u8 vm_max_level;
/** @info.va_bits: Maximum bits of a virtual address */
u8 va_bits;
+ /** @info.late_bind_mask: Indicates supported late binding firmwares */
+ u8 late_bind_mask;
/*
* Keep all flags below alphabetically sorted
@@ -183,8 +185,6 @@ struct xe_device {
u8 has_heci_gscfi:1;
/** @info.has_i2c: Device has I2C controller */
u8 has_i2c:1;
- /** @info.has_late_bind: Device has firmware late binding support */
- u8 has_late_bind:1;
/** @info.has_llc: Device has a shared CPU+GPU last level cache */
u8 has_llc:1;
/** @info.has_mbx_power_limits: Device has support to manage power limits using
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 1bddfaf0fb9f..881a46abc4f5 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -365,6 +365,7 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
static int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
{
+ struct xe_device *xe = late_bind_to_xe(late_bind);
int ret;
int fw_id;
@@ -373,6 +374,8 @@ static int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
return -ENOMEM;
for (fw_id = 0; fw_id < XE_LB_FW_MAX_ID; fw_id++) {
+ if (!(xe->info.late_bind_mask & BIT(fw_id)))
+ continue;
ret = __xe_late_bind_fw_init(late_bind, fw_id);
if (ret)
return ret;
@@ -436,7 +439,7 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
struct xe_device *xe = late_bind_to_xe(late_bind);
int err;
- if (!xe->info.has_late_bind)
+ if (!xe->info.late_bind_mask)
return 0;
if (!IS_ENABLED(CONFIG_INTEL_MEI_LB) || !IS_ENABLED(CONFIG_INTEL_MEI_GSC)) {
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index 0c13eb901aa7..a3e035a077c8 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -424,10 +424,10 @@ static const struct xe_device_desc bmg_desc = {
.has_gsc_nvm = 1,
.has_heci_cscfi = 1,
.has_i2c = true,
- .has_late_bind = true,
.has_pre_prod_wa = 1,
.has_soc_remapper_telem = true,
.has_sriov = true,
+ .late_bind_mask = BIT(XE_LB_FW_FAN_CONTROL),
.max_gt_per_tile = 2,
MULTI_LRC_MASK,
.needs_scratch = true,
@@ -811,7 +811,6 @@ static int xe_info_init_early(struct xe_device *xe,
xe->info.has_heci_gscfi = desc->has_heci_gscfi;
xe->info.has_heci_cscfi = desc->has_heci_cscfi;
xe->info.has_i2c = desc->has_i2c;
- xe->info.has_late_bind = desc->has_late_bind;
xe->info.has_llc = desc->has_llc;
xe->info.has_mert = desc->has_mert;
xe->info.has_page_reclaim_hw_assist = desc->has_page_reclaim_hw_assist;
@@ -829,6 +828,7 @@ static int xe_info_init_early(struct xe_device *xe,
xe->info.needs_scratch = desc->needs_scratch;
xe->info.needs_shared_vf_gt_wq = desc->needs_shared_vf_gt_wq;
xe->info.multi_lrc_mask = desc->multi_lrc_mask;
+ xe->info.late_bind_mask = desc->late_bind_mask;
xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
xe_modparam.probe_display &&
diff --git a/drivers/gpu/drm/xe/xe_pci_types.h b/drivers/gpu/drm/xe/xe_pci_types.h
index ce0b0f6c5b18..74a6cd461b21 100644
--- a/drivers/gpu/drm/xe/xe_pci_types.h
+++ b/drivers/gpu/drm/xe/xe_pci_types.h
@@ -28,6 +28,7 @@ struct xe_device_desc {
enum xe_platform platform;
u8 dma_mask_size;
+ u8 late_bind_mask;
u8 max_remote_tiles:2;
u8 max_gt_per_tile:2;
u8 multi_lrc_mask;
@@ -49,7 +50,6 @@ struct xe_device_desc {
u8 has_heci_gscfi:1;
u8 has_heci_cscfi:1;
u8 has_i2c:1;
- u8 has_late_bind:1;
u8 has_llc:1;
u8 has_mbx_power_limits:1;
u8 has_mbx_thermal_info:1;
--
2.56.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 2/5] drm/xe/xe_late_bind_fw: Convert late bind flag to mask Badal Nilawar
@ 2026-10-28 18:19 ` Badal Nilawar
2026-10-28 18:31 ` sashiko-bot
2026-10-29 16:43 ` Ceraolo Spurio, Daniele
2026-10-28 18:19 ` [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
` (4 subsequent siblings)
7 siblings, 2 replies; 14+ messages in thread
From: Badal Nilawar @ 2026-10-28 18:19 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
michael.j.ruhl, alexander.usyskin, anoop.c.vijay, shamim.begum,
kelvin.gardiner
Enable loading of Ocode, the legacy OOBMSM firmware, through the
late binding flow. The payload size check is no longer needed as
late binding supports larger payloads.
Ocode may not remain backward compatible across IFWI updates. Query
the SDK API version from the System Controller mailbox and load the
corresponding xe/cri_ocode_<ver>.bin. Skip loading the firmware if
the SDK API version in its manifest does not match.
Assisted-by: LLM
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/abi/uc_fw_abi.h | 3 +-
drivers/gpu/drm/xe/xe_late_bind_fw.c | 76 ++++++++++++++++---
drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 6 +-
drivers/gpu/drm/xe/xe_sysctrl.c | 32 ++++++++
drivers/gpu/drm/xe/xe_sysctrl.h | 1 +
drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 12 +++
6 files changed, 117 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/xe/abi/uc_fw_abi.h b/drivers/gpu/drm/xe/abi/uc_fw_abi.h
index 198e949660e0..ef734825d949 100644
--- a/drivers/gpu/drm/xe/abi/uc_fw_abi.h
+++ b/drivers/gpu/drm/xe/abi/uc_fw_abi.h
@@ -331,7 +331,8 @@ struct gsc_manifest_header {
struct gsc_version meu_kit_version;
u32 meu_manifest_version;
u8 general_data[4];
- u8 reserved3[56];
+ u16 sdk_api_version;
+ u8 reserved3[54];
u32 modulus_size; /* in dwords */
u32 exponent_size; /* in dwords */
} __packed;
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 881a46abc4f5..39c47b743edc 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -17,6 +17,12 @@
#include "xe_pcode.h"
#include "xe_pcode_api.h"
#include "xe_pm.h"
+#include "xe_sysctrl.h"
+
+/*
+ * TODO: Add MODULE_FIRMWARE() for xe/cri_ocode_<ver>.bin once the
+ * Ocode firmware binary is available upstream.
+ */
/*
* The component should load quite quickly in most cases, but it could take
@@ -33,10 +39,12 @@
static const u32 fw_id_to_type[] = {
[XE_LB_FW_FAN_CONTROL] = INTEL_LB_TYPE_FAN_CONTROL,
+ [XE_LB_FW_OCODE] = INTEL_LB_TYPE_OCODE,
};
static const char * const fw_id_to_name[] = {
[XE_LB_FW_FAN_CONTROL] = "fan_control",
+ [XE_LB_FW_OCODE] = "ocode",
};
static struct xe_device *
@@ -104,6 +112,7 @@ static int parse_cpd_header(struct xe_late_bind_fw *lb_fw,
manifest = data + offset;
lb_fw->version = manifest->fw_version;
+ lb_fw->sdk_api_version = manifest->sdk_api_version;
return 0;
}
@@ -179,6 +188,34 @@ static const char *xe_late_bind_parse_status(uint32_t status)
return "Invalid Payload";
case INTEL_LB_STATUS_TIMEOUT:
return "Timeout";
+ case INTEL_LB_STATUS_INTERNAL_ERROR:
+ return "Internal Error";
+ case INTEL_LB_STATUS_INVALID_FPT_TABLE:
+ return "Invalid FPT Table";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_VERIFICATION_ERROR:
+ return "Signed Payload Verification Error";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_CPD:
+ return "Signed Payload Invalid CPD";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_FW_VERSION_MISMATCH:
+ return "Signed Payload FW Version Mismatch";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_MANIFEST:
+ return "Signed Payload Invalid Manifest";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_HASH:
+ return "Signed Payload Invalid Hash";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_BINDING_TYPE_MISMATCH:
+ return "Signed Payload Binding type Mismatch";
+ case INTEL_LB_STATUS_SIGNED_PAYLOAD_HANDLE_SVN_FAILED:
+ return "Signed Payload Handle SVN Failed";
+ case INTEL_LB_STATUS_DESTINATION_MBOX_FAILURE:
+ return "Destination MBOX Failure";
+ case INTEL_LB_STATUS_MISSING_LOADING_PATCH:
+ return "Missing Loading Patch";
+ case INTEL_LB_STATUS_INVALID_COMMAND:
+ return "Invalid Command";
+ case INTEL_LB_STATUS_INVALID_HECI_HEADER:
+ return "Invalid HECI Header";
+ case INTEL_LB_STATUS_IP_ERROR_START:
+ return "IP Error Start";
default:
return "Unknown error";
}
@@ -298,6 +335,7 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
struct xe_late_bind_fw *lb_fw;
const struct firmware *fw;
u32 num_fans;
+ u16 sdk_ver = 0;
int ret;
if (fw_id >= XE_LB_FW_MAX_ID)
@@ -320,9 +358,23 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
return 0;
}
- snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path), "xe/%s_8086_%04x_%04x_%04x.bin",
- fw_id_to_name[lb_fw->id], pdev->device,
- pdev->subsystem_vendor, pdev->subsystem_device);
+ if (lb_fw->type == INTEL_LB_TYPE_OCODE) {
+ /* Get SDK API version */
+ ret = xe_sysctrl_sdk_api_version(xe, &sdk_ver);
+ if (ret) {
+ drm_warn(&xe->drm, "Failed to get OCODE SDK API version: %pe\n",
+ ERR_PTR(ret));
+ return 0;
+ }
+
+ snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path),
+ "xe/cri_ocode_%u.bin", sdk_ver);
+ } else {
+ snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path),
+ "xe/%s_8086_%04x_%04x_%04x.bin",
+ fw_id_to_name[lb_fw->id], pdev->device,
+ pdev->subsystem_vendor, pdev->subsystem_device);
+ }
drm_dbg(&xe->drm, "Request late binding firmware %s\n", lb_fw->blob_path);
ret = firmware_request_nowarn(&fw, lb_fw->blob_path, xe->drm.dev);
@@ -332,17 +384,17 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
return 0;
}
- if (fw->size > XE_LB_MAX_PAYLOAD_SIZE) {
- drm_err(&xe->drm, "Firmware %s size %zu is larger than max pay load size %u\n",
- lb_fw->blob_path, fw->size, XE_LB_MAX_PAYLOAD_SIZE);
- ret = -ENODATA;
- goto release_fw;
- }
-
ret = parse_lb_layout(lb_fw, fw->data, fw->size, "LTES");
if (ret)
goto release_fw;
+ if (lb_fw->type == INTEL_LB_TYPE_OCODE && lb_fw->sdk_api_version != sdk_ver) {
+ drm_warn(&xe->drm, "%s late binding fw: SDK API version mismatch %u != %u\n",
+ fw_id_to_name[lb_fw->id], lb_fw->sdk_api_version, sdk_ver);
+ ret = 0;
+ goto release_fw;
+ }
+
lb_fw->payload_size = fw->size;
lb_fw->payload = drmm_kzalloc(&xe->drm, lb_fw->payload_size, GFP_KERNEL);
if (!lb_fw->payload) {
@@ -355,6 +407,10 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
lb_fw->version.major, lb_fw->version.minor,
lb_fw->version.hotfix, lb_fw->version.build);
+ if (lb_fw->type == INTEL_LB_TYPE_OCODE)
+ drm_info(&xe->drm, "%s firmware SDK API version %u\n",
+ fw_id_to_name[lb_fw->id], lb_fw->sdk_api_version);
+
memcpy((void *)lb_fw->payload, fw->data, lb_fw->payload_size);
INIT_WORK(&lb_fw->work, xe_late_bind_work);
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
index ee5efe60774e..c7b3ffc743cf 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
@@ -13,14 +13,14 @@
#include "abi/uc_fw_abi.h"
-#define XE_LB_MAX_PAYLOAD_SIZE SZ_4K
-
/**
* enum xe_late_bind_fw_id - enum to determine late binding fw index
*/
enum xe_late_bind_fw_id {
/** @XE_LB_FW_FAN_CONTROL: Fan control */
XE_LB_FW_FAN_CONTROL = 0,
+ /** @XE_LB_FW_OCODE: Ocode firmware */
+ XE_LB_FW_OCODE,
/** @XE_LB_FW_MAX_ID: Number of IDs */
XE_LB_FW_MAX_ID
};
@@ -45,6 +45,8 @@ struct xe_late_bind_fw {
struct work_struct work;
/** @version: late binding blob manifest version */
struct gsc_version version;
+ /** @sdk_api_version: late binding blob manifest SDK API version */
+ u16 sdk_api_version;
};
/**
diff --git a/drivers/gpu/drm/xe/xe_sysctrl.c b/drivers/gpu/drm/xe/xe_sysctrl.c
index 4067e1dfdcd5..27a59e8e4487 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl.c
+++ b/drivers/gpu/drm/xe/xe_sysctrl.c
@@ -217,3 +217,35 @@ bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe)
return xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_DIAG) ==
XE_SYSCTRL_FIRMWARE_APP_INITIALIZED;
}
+
+/**
+ * xe_sysctrl_sdk_api_version - Get SDK API version
+ * @xe: Xe device
+ * @version: SDK API version
+ *
+ * Return: 0 on success, negative error code on failure.
+ */
+int xe_sysctrl_sdk_api_version(struct xe_device *xe, u16 *version)
+{
+ struct xe_sysctrl_sdk_api_resp resp = {};
+ struct xe_sysctrl_mailbox_command cmd = {};
+ size_t out_len = 0;
+ int ret;
+
+ xe_sysctrl_create_command(&cmd, XE_SYSCTRL_GROUP_CORE, XE_SYSCTRL_CMD_SDK_API_VERSION,
+ 0, 0, &resp, sizeof(resp));
+
+ ret = xe_sysctrl_send_command(&xe->sc, &cmd, &out_len);
+ if (ret)
+ return ret;
+
+ if (out_len != sizeof(resp)) {
+ xe_err(xe, "sysctrl: unexpected SDK API version length %zu (expected %zu)\n",
+ out_len, sizeof(resp));
+ return -EPROTO;
+ }
+
+ *version = resp.sdk_api_version;
+
+ return 0;
+}
diff --git a/drivers/gpu/drm/xe/xe_sysctrl.h b/drivers/gpu/drm/xe/xe_sysctrl.h
index b69a3f474236..c0b6d4330c88 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl.h
@@ -22,5 +22,6 @@ 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);
+int xe_sysctrl_sdk_api_version(struct xe_device *xe, u16 *version);
#endif
diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
index 1f3f782d770e..cdacceebca06 100644
--- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
+++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
@@ -57,10 +57,12 @@ enum xe_sysctrl_gfsp_cmd {
*
* @XE_SYSCTRL_CMD_LOOPBACK: Loopback test command
* @XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID: Retrieve application status by ID
+ * @XE_SYSCTRL_CMD_SDK_API_VERSION: Get SDK API version
*/
enum xe_sysctrl_core_cmd {
XE_SYSCTRL_CMD_LOOPBACK = 0x03,
XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID = 0x05,
+ XE_SYSCTRL_CMD_SDK_API_VERSION = 0x06,
};
/**
@@ -126,6 +128,16 @@ enum xe_sysctrl_fw_status {
XE_SYSCTRL_FIRMWARE_COMM_FAILURE,
};
+/**
+ * struct xe_sysctrl_sdk_api_resp - Get sdk api version response
+ */
+struct xe_sysctrl_sdk_api_resp {
+ /** @sdk_api_version: SDK API version */
+ u16 sdk_api_version;
+ /** @reserved: Reserved for future use */
+ u16 reserved;
+} __packed;
+
/**
* struct xe_sysctrl_mailbox_command - System Controller mailbox command
*/
--
2.56.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
` (2 preceding siblings ...)
2026-10-28 18:19 ` [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
@ 2026-10-28 18:19 ` Badal Nilawar
2026-10-28 18:29 ` sashiko-bot
2026-10-28 22:58 ` Ceraolo Spurio, Daniele
2026-10-28 18:19 ` [PATCH v5 5/5] drm/xe/xe_late_bind_fw: Refactor pm flow Badal Nilawar
` (3 subsequent siblings)
7 siblings, 2 replies; 14+ messages in thread
From: Badal Nilawar @ 2026-10-28 18:19 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
michael.j.ruhl, alexander.usyskin, anoop.c.vijay, shamim.begum,
kelvin.gardiner
Enable late binding support for CRI
Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_pci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
index a3e035a077c8..a18eed8d1a97 100644
--- a/drivers/gpu/drm/xe/xe_pci.c
+++ b/drivers/gpu/drm/xe/xe_pci.c
@@ -488,6 +488,8 @@ static const struct xe_device_desc cri_desc = {
.has_sriov = true,
.has_sysctrl = true,
.has_temp_sentinel = true,
+ .late_bind_mask = BIT(XE_LB_FW_FAN_CONTROL) |
+ BIT(XE_LB_FW_OCODE),
.max_gt_per_tile = 2,
MULTI_LRC_MASK,
.require_force_probe = true,
--
2.56.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v5 5/5] drm/xe/xe_late_bind_fw: Refactor pm flow
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
` (3 preceding siblings ...)
2026-10-28 18:19 ` [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
@ 2026-10-28 18:19 ` Badal Nilawar
2026-10-28 18:29 ` ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev5) Patchwork
` (2 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Badal Nilawar @ 2026-10-28 18:19 UTC (permalink / raw)
To: intel-xe
Cc: anshuman.gupta, rodrigo.vivi, daniele.ceraolospurio,
michael.j.ruhl, alexander.usyskin, anoop.c.vijay, shamim.begum,
kelvin.gardiner
Refactor late binding flow across suspend/resume by adding dedicated
pm functions.
v2: Flush on suspend even if disabled, work may already be in flight
Assisted-by: LLM
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
---
drivers/gpu/drm/xe/xe_late_bind_fw.c | 43 ++++++++++++++++++++--------
drivers/gpu/drm/xe/xe_late_bind_fw.h | 4 +--
drivers/gpu/drm/xe/xe_pm.c | 6 ++--
3 files changed, 36 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 39c47b743edc..5b2c397d4e3f 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -230,7 +230,7 @@ static int xe_late_bind_fw_num_fans(struct xe_late_bind *late_bind, u32 *num_fan
PCODE_MBOX(FAN_SPEED_CONTROL, FSC_READ_NUM_FANS, 0), num_fans, NULL);
}
-void xe_late_bind_wait_for_worker_completion(struct xe_late_bind *late_bind)
+static void wait_for_worker_completion(struct xe_late_bind *late_bind)
{
struct xe_device *xe = late_bind_to_xe(late_bind);
struct xe_late_bind_fw *lbfw;
@@ -306,18 +306,12 @@ static void xe_late_bind_work(struct work_struct *work)
xe_pm_runtime_put(xe);
}
-int xe_late_bind_fw_load(struct xe_late_bind *late_bind)
+static void xe_late_bind_fw_load(struct xe_late_bind *late_bind)
{
struct xe_device *xe = late_bind_to_xe(late_bind);
struct xe_late_bind_fw *lbfw;
int fw_id;
- if (!late_bind->component_added)
- return -ENODEV;
-
- if (late_bind->disable)
- return 0;
-
for (fw_id = 0; fw_id < XE_LB_FW_MAX_ID; fw_id++) {
lbfw = &late_bind->late_bind_fw[fw_id];
if (lbfw->payload) {
@@ -325,7 +319,6 @@ int xe_late_bind_fw_load(struct xe_late_bind *late_bind)
queue_work(late_bind->wq, &lbfw->work);
}
}
- return 0;
}
static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
@@ -458,7 +451,7 @@ static void xe_late_bind_component_unbind(struct device *xe_kdev,
struct xe_device *xe = kdev_to_xe_device(xe_kdev);
struct xe_late_bind *late_bind = &xe->late_bind;
- xe_late_bind_wait_for_worker_completion(late_bind);
+ wait_for_worker_completion(late_bind);
late_bind->component.ops = NULL;
}
@@ -473,7 +466,7 @@ static void xe_late_bind_remove(void *arg)
struct xe_late_bind *late_bind = arg;
struct xe_device *xe = late_bind_to_xe(late_bind);
- xe_late_bind_wait_for_worker_completion(late_bind);
+ wait_for_worker_completion(late_bind);
late_bind->component_added = false;
@@ -484,6 +477,30 @@ static void xe_late_bind_remove(void *arg)
}
}
+/**
+ * xe_late_bind_pm_suspend() - Wait for pending late binding fw loads
+ * @late_bind: pointer to late bind structure.
+ */
+void xe_late_bind_pm_suspend(struct xe_late_bind *late_bind)
+{
+ if (!late_bind->component_added)
+ return;
+
+ wait_for_worker_completion(late_bind);
+}
+
+/**
+ * xe_late_bind_pm_resume() - Reload late binding fw after resume
+ * @late_bind: pointer to late bind structure.
+ */
+void xe_late_bind_pm_resume(struct xe_late_bind *late_bind)
+{
+ if (!late_bind->component_added || late_bind->disable)
+ return;
+
+ xe_late_bind_fw_load(late_bind);
+}
+
/**
* xe_late_bind_init() - add xe mei late binding component
* @late_bind: pointer to late bind structure.
@@ -520,5 +537,7 @@ int xe_late_bind_init(struct xe_late_bind *late_bind)
if (err)
return err;
- return xe_late_bind_fw_load(late_bind);
+ xe_late_bind_fw_load(late_bind);
+
+ return 0;
}
diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.h b/drivers/gpu/drm/xe/xe_late_bind_fw.h
index 07e437390539..8896fea3068e 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.h
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.h
@@ -11,7 +11,7 @@
struct xe_late_bind;
int xe_late_bind_init(struct xe_late_bind *late_bind);
-int xe_late_bind_fw_load(struct xe_late_bind *late_bind);
-void xe_late_bind_wait_for_worker_completion(struct xe_late_bind *late_bind);
+void xe_late_bind_pm_suspend(struct xe_late_bind *late_bind);
+void xe_late_bind_pm_resume(struct xe_late_bind *late_bind);
#endif
diff --git a/drivers/gpu/drm/xe/xe_pm.c b/drivers/gpu/drm/xe/xe_pm.c
index daa7ba2df317..bc0303b93074 100644
--- a/drivers/gpu/drm/xe/xe_pm.c
+++ b/drivers/gpu/drm/xe/xe_pm.c
@@ -186,7 +186,7 @@ int xe_pm_suspend(struct xe_device *xe)
if (err)
goto err;
- xe_late_bind_wait_for_worker_completion(&xe->late_bind);
+ xe_late_bind_pm_suspend(&xe->late_bind);
for_each_gt(gt, xe, id)
xe_gt_suspend_prepare(gt);
@@ -290,7 +290,7 @@ int xe_pm_resume(struct xe_device *xe)
if (IS_VF_CCS_READY(xe))
xe_sriov_vf_ccs_register_context(xe);
- xe_late_bind_fw_load(&xe->late_bind);
+ xe_late_bind_pm_resume(&xe->late_bind);
drm_dbg(&xe->drm, "Device resumed\n");
xe_pm_block_end_signalling();
@@ -751,7 +751,7 @@ int xe_pm_runtime_resume(struct xe_device *xe)
xe_sriov_vf_ccs_register_context(xe);
if (xe->d3cold.allowed)
- xe_late_bind_fw_load(&xe->late_bind);
+ xe_late_bind_pm_resume(&xe->late_bind);
out:
xe_rpm_lockmap_release(xe);
--
2.56.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev5)
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
` (4 preceding siblings ...)
2026-10-28 18:19 ` [PATCH v5 5/5] drm/xe/xe_late_bind_fw: Refactor pm flow Badal Nilawar
@ 2026-10-28 18:29 ` Patchwork
2026-10-28 19:04 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-29 5:03 ` ✓ Xe.CI.FULL: " Patchwork
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-10-28 18:29 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
== Series Details ==
Series: Add ocode late binding support for CRI (rev5)
URL : https://patchwork.freedesktop.org/series/162657/
State : success
== Summary ==
+ trap cleanup EXIT
+ kunitconfigs=('/kernel/drivers/gpu/tests/.kunitconfig' '/kernel/drivers/gpu/drm/xe/.kunitconfig' '/kernel/drivers/gpu/drm/tests/.kunitconfig' '/kernel/drivers/gpu/drm/ttm/tests/.kunitconfig' '/kernel/drivers/dma-buf/.kunitconfig')
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/tests/.kunitconfig
[18:27:00] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:27:05] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:27:25] Starting KUnit Kernel (1/1)...
[18:27:25] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:27:25] ================= gpu_buddy (14 subtests) ==================
[18:27:25] [PASSED] gpu_test_buddy_alloc_limit
[18:27:25] [PASSED] gpu_test_buddy_alloc_optimistic
[18:27:25] [PASSED] gpu_test_buddy_alloc_pessimistic
[18:27:25] [PASSED] gpu_test_buddy_alloc_pathological
[18:27:25] [PASSED] gpu_test_buddy_alloc_contiguous
[18:27:25] [PASSED] gpu_test_buddy_alloc_clear
[18:27:25] [PASSED] gpu_test_buddy_alloc_range
[18:27:25] [PASSED] gpu_test_buddy_alloc_range_bias
[18:27:26] [PASSED] gpu_test_buddy_fragmentation_performance
[18:27:27] [PASSED] gpu_test_buddy_dirty_tracker_performance
[18:27:27] [PASSED] gpu_test_buddy_alloc_exceeds_max_order
[18:27:27] [PASSED] gpu_test_buddy_offset_aligned_allocation
[18:27:27] [PASSED] gpu_test_buddy_subtree_offset_alignment_stress
[18:27:27] [PASSED] gpu_test_buddy_addr_to_block
[18:27:27] ==================== [PASSED] gpu_buddy ====================
[18:27:27] ============================================================
[18:27:27] Testing complete. Ran 14 tests: passed: 14
[18:27:27] Elapsed time: 26.631s total, 4.394s configuring, 20.318s building, 1.855s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/xe/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[18:27:27] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:27:29] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:28:07] Starting KUnit Kernel (1/1)...
[18:28:07] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:28:07] ================== guc_buf (11 subtests) ===================
[18:28:07] [PASSED] test_smallest
[18:28:07] [PASSED] test_largest
[18:28:07] [PASSED] test_granular
[18:28:07] [PASSED] test_unique
[18:28:07] [PASSED] test_overlap
[18:28:07] [PASSED] test_reusable
[18:28:07] [PASSED] test_too_big
[18:28:07] [PASSED] test_flush
[18:28:07] [PASSED] test_lookup
[18:28:07] [PASSED] test_data
[18:28:07] [PASSED] test_class
[18:28:07] ===================== [PASSED] guc_buf =====================
[18:28:07] =================== guc_dbm (7 subtests) ===================
[18:28:07] [PASSED] test_empty
[18:28:07] [PASSED] test_default
[18:28:07] ======================== test_size ========================
[18:28:07] [PASSED] 4
[18:28:07] [PASSED] 8
[18:28:07] [PASSED] 32
[18:28:07] [PASSED] 256
[18:28:07] ==================== [PASSED] test_size ====================
[18:28:07] ======================= test_reuse ========================
[18:28:07] [PASSED] 4
[18:28:07] [PASSED] 8
[18:28:07] [PASSED] 32
[18:28:07] [PASSED] 256
[18:28:07] =================== [PASSED] test_reuse ====================
[18:28:07] =================== test_range_overlap ====================
[18:28:07] [PASSED] 4
[18:28:07] [PASSED] 8
[18:28:07] [PASSED] 32
[18:28:07] [PASSED] 256
[18:28:07] =============== [PASSED] test_range_overlap ================
[18:28:07] =================== test_range_compact ====================
[18:28:07] [PASSED] 4
[18:28:07] [PASSED] 8
[18:28:07] [PASSED] 32
[18:28:07] [PASSED] 256
[18:28:07] =============== [PASSED] test_range_compact ================
[18:28:07] ==================== test_range_spare =====================
[18:28:07] [PASSED] 4
[18:28:07] [PASSED] 8
[18:28:07] [PASSED] 32
[18:28:07] [PASSED] 256
[18:28:07] ================ [PASSED] test_range_spare =================
[18:28:07] ===================== [PASSED] guc_dbm =====================
[18:28:07] ================== guc_idm (22 subtests) ===================
[18:28:07] [PASSED] bad_init
[18:28:07] [PASSED] no_init
[18:28:07] [PASSED] init_fini
[18:28:07] [PASSED] check_init_small
[18:28:07] [PASSED] check_init_shared
[18:28:07] [PASSED] check_used
[18:28:07] [PASSED] check_quota
[18:28:07] [PASSED] check_all
[18:28:07] [PASSED] check_limits
[18:28:07] [PASSED] check_overlap
[18:28:07] [PASSED] check_overlap_alloc
[18:28:07] [PASSED] check_overlap_release
[18:28:07] [PASSED] check_overlap_partial_init
[18:28:07] [PASSED] check_overlap_partial_shared_range_blocking
[18:28:07] [PASSED] check_used_usable
[18:28:07] [PASSED] check_used_shareable
[18:28:07] [PASSED] check_used_mixed
[18:28:07] [PASSED] check_release_usable_range
[18:28:07] [PASSED] check_release_shareable_range
[18:28:07] [PASSED] check_split_boundaries
[18:28:07] [PASSED] check_shareable_spare
[18:28:07] [PASSED] check_shareable_spare_fragmented_tail
[18:28:07] ===================== [PASSED] guc_idm =====================
[18:28:07] ============== guc_klv_helpers (13 subtests) ===============
[18:28:07] [PASSED] test_count
[18:28:07] [PASSED] test_encode_u32
[18:28:07] [PASSED] test_encode_u64
[18:28:07] [PASSED] test_encode_string
[18:28:07] [PASSED] test_encode_object_raw
[18:28:07] [PASSED] test_encode_object_klv
[18:28:07] [PASSED] test_encode_object_nested
[18:28:07] [PASSED] test_encode_object_basic
[18:28:07] ===================== test_decode_u16 =====================
[18:28:07] [PASSED] empty
[18:28:07] [PASSED] valid
[18:28:07] [PASSED] max
[18:28:07] [PASSED] big
[18:28:07] [PASSED] long
[18:28:07] ================= [PASSED] test_decode_u16 =================
[18:28:07] ===================== test_decode_u32 =====================
[18:28:07] [PASSED] empty
[18:28:07] [PASSED] valid
[18:28:07] [PASSED] max
[18:28:07] [PASSED] long
[18:28:07] ================= [PASSED] test_decode_u32 =================
[18:28:07] ===================== test_decode_u64 =====================
[18:28:07] [PASSED] empty
[18:28:07] [PASSED] short
[18:28:07] [PASSED] valid
[18:28:07] [PASSED] max
[18:28:07] [PASSED] long
[18:28:07] ================= [PASSED] test_decode_u64 =================
[18:28:07] ===================== test_decode_str =====================
[18:28:07] [PASSED] empty
[18:28:07] [PASSED] one
[18:28:07] [PASSED] one_trash
[18:28:07] [PASSED] two
[18:28:07] [PASSED] two_trash
[18:28:07] [PASSED] three
[18:28:07] [PASSED] dword
[18:28:07] [PASSED] four
[18:28:07] [PASSED] five
[18:28:07] [PASSED] six
[18:28:07] [PASSED] seven
[18:28:07] [PASSED] qword
[18:28:07] ================= [PASSED] test_decode_str =================
[18:28:07] [PASSED] test_print
[18:28:07] ================= [PASSED] guc_klv_helpers =================
[18:28:07] =================== xe_log (4 subtests) ====================
[18:28:07] [PASSED] demo_cper
[18:28:07] [PASSED] demo_dmesg
[18:28:07] ======================= test_dmesg ========================
[18:28:07] [PASSED] test_fatal
[18:28:07] [PASSED] test_fatal_tile
[18:28:07] [PASSED] test_fatal_gt
[18:28:07] [PASSED] test_fatal_comp
[18:28:07] [PASSED] test_fatal_comp_tile
[18:28:08] [PASSED] test_fatal_comp_gt
[18:28:08] [PASSED] test_fatal_all
[18:28:08] [PASSED] test_recoverable
[18:28:08] [PASSED] test_recoverable_tile
[18:28:08] [PASSED] test_recoverable_gt
[18:28:08] [PASSED] test_recoverable_comp
[18:28:08] [PASSED] test_recoverable_comp_tile
[18:28:08] [PASSED] test_recoverable_comp_gt
[18:28:08] [PASSED] test_recoverable_all
[18:28:08] [PASSED] test_info
[18:28:08] [PASSED] test_info_tile
[18:28:08] [PASSED] test_info_gt
[18:28:08] [PASSED] test_info_err
[18:28:08] [PASSED] test_info_comp
[18:28:08] [PASSED] test_info_comp_tile
[18:28:08] [PASSED] test_info_comp_gt
[18:28:08] [PASSED] test_info_all
[18:28:08] [PASSED] test_hw_fatal
[18:28:08] [PASSED] test_hw_recoverable
[18:28:08] [PASSED] test_hw_corrected
[18:28:08] [PASSED] test_hw_informational
[18:28:08] =================== [PASSED] test_dmesg ====================
[18:28:08] ====================== test_invalid =======================
[18:28:08] [SKIPPED] no-component no-location no-warn (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] reserved location (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] unknown location (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] nonzero-device-id location (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] invalid-tile-id location (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] invalid-gt-id location (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] unknown component class (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] unknown system component (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] unknown hardware component (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] [SKIPPED] unknown component and location (requires CONFIG_DRM_XE_DEBUG)
[18:28:08] ================== [SKIPPED] test_invalid ==================
[18:28:08] ===================== [PASSED] xe_log ======================
[18:28:08] ================== no_relay (3 subtests) ===================
[18:28:08] [PASSED] xe_drops_guc2pf_if_not_ready
[18:28:08] [PASSED] xe_drops_guc2vf_if_not_ready
[18:28:08] [PASSED] xe_rejects_send_if_not_ready
[18:28:08] ==================== [PASSED] no_relay =====================
[18:28:08] ================== pf_relay (14 subtests) ==================
[18:28:08] [PASSED] pf_rejects_guc2pf_too_short
[18:28:08] [PASSED] pf_rejects_guc2pf_too_long
[18:28:08] [PASSED] pf_rejects_guc2pf_no_payload
[18:28:08] [PASSED] pf_fails_no_payload
[18:28:08] [PASSED] pf_fails_bad_origin
[18:28:08] [PASSED] pf_fails_bad_type
[18:28:08] [PASSED] pf_txn_reports_error
[18:28:08] [PASSED] pf_txn_sends_pf2guc
[18:28:08] [PASSED] pf_sends_pf2guc
[18:28:08] [SKIPPED] pf_loopback_nop (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:28:08] [SKIPPED] pf_loopback_echo (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:28:08] [SKIPPED] pf_loopback_fail (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:28:08] [SKIPPED] pf_loopback_busy (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:28:08] [SKIPPED] pf_loopback_retry (requires CONFIG_DRM_XE_DEBUG_SRIOV)
[18:28:08] ==================== [PASSED] pf_relay =====================
[18:28:08] ================== vf_relay (3 subtests) ===================
[18:28:08] [PASSED] vf_rejects_guc2vf_too_short
[18:28:08] [PASSED] vf_rejects_guc2vf_too_long
[18:28:08] [PASSED] vf_rejects_guc2vf_no_payload
[18:28:08] ==================== [PASSED] vf_relay =====================
[18:28:08] ================ pf_gt_config (9 subtests) =================
[18:28:08] [PASSED] fair_contexts_1vf
[18:28:08] [PASSED] fair_doorbells_1vf
[18:28:08] [PASSED] fair_ggtt_1vf
[18:28:08] ====================== fair_vram_1vf ======================
[18:28:08] [PASSED] 3.50 GiB
[18:28:08] [PASSED] 11.5 GiB
[18:28:08] [PASSED] 15.5 GiB
[18:28:08] [PASSED] 31.5 GiB
[18:28:08] [PASSED] 63.5 GiB
[18:28:08] [PASSED] 1.91 GiB
[18:28:08] ================== [PASSED] fair_vram_1vf ==================
[18:28:08] ================ fair_vram_1vf_admin_only =================
[18:28:08] [PASSED] 3.50 GiB
[18:28:08] [PASSED] 11.5 GiB
[18:28:08] [PASSED] 15.5 GiB
[18:28:08] [PASSED] 31.5 GiB
[18:28:08] [PASSED] 63.5 GiB
[18:28:08] [PASSED] 1.91 GiB
[18:28:08] ============ [PASSED] fair_vram_1vf_admin_only =============
[18:28:08] ====================== fair_contexts ======================
[18:28:08] [PASSED] 1 VF
[18:28:08] [PASSED] 2 VFs
[18:28:08] [PASSED] 3 VFs
[18:28:08] [PASSED] 4 VFs
[18:28:08] [PASSED] 5 VFs
[18:28:08] [PASSED] 6 VFs
[18:28:08] [PASSED] 7 VFs
[18:28:08] [PASSED] 8 VFs
[18:28:08] [PASSED] 9 VFs
[18:28:08] [PASSED] 10 VFs
[18:28:08] [PASSED] 11 VFs
[18:28:08] [PASSED] 12 VFs
[18:28:08] [PASSED] 13 VFs
[18:28:08] [PASSED] 14 VFs
[18:28:08] [PASSED] 15 VFs
[18:28:08] [PASSED] 16 VFs
[18:28:08] [PASSED] 17 VFs
[18:28:08] [PASSED] 18 VFs
[18:28:08] [PASSED] 19 VFs
[18:28:08] [PASSED] 20 VFs
[18:28:08] [PASSED] 21 VFs
[18:28:08] [PASSED] 22 VFs
[18:28:08] [PASSED] 23 VFs
[18:28:08] [PASSED] 24 VFs
[18:28:08] [PASSED] 25 VFs
[18:28:08] [PASSED] 26 VFs
[18:28:08] [PASSED] 27 VFs
[18:28:08] [PASSED] 28 VFs
[18:28:08] [PASSED] 29 VFs
[18:28:08] [PASSED] 30 VFs
[18:28:08] [PASSED] 31 VFs
[18:28:08] [PASSED] 32 VFs
[18:28:08] [PASSED] 33 VFs
[18:28:08] [PASSED] 34 VFs
[18:28:08] [PASSED] 35 VFs
[18:28:08] [PASSED] 36 VFs
[18:28:08] [PASSED] 37 VFs
[18:28:08] [PASSED] 38 VFs
[18:28:08] [PASSED] 39 VFs
[18:28:08] [PASSED] 40 VFs
[18:28:08] [PASSED] 41 VFs
[18:28:08] [PASSED] 42 VFs
[18:28:08] [PASSED] 43 VFs
[18:28:08] [PASSED] 44 VFs
[18:28:08] [PASSED] 45 VFs
[18:28:08] [PASSED] 46 VFs
[18:28:08] [PASSED] 47 VFs
[18:28:08] [PASSED] 48 VFs
[18:28:08] [PASSED] 49 VFs
[18:28:08] [PASSED] 50 VFs
[18:28:08] [PASSED] 51 VFs
[18:28:08] [PASSED] 52 VFs
[18:28:08] [PASSED] 53 VFs
[18:28:08] [PASSED] 54 VFs
[18:28:08] [PASSED] 55 VFs
[18:28:08] [PASSED] 56 VFs
[18:28:08] [PASSED] 57 VFs
[18:28:08] [PASSED] 58 VFs
[18:28:08] [PASSED] 59 VFs
[18:28:08] [PASSED] 60 VFs
[18:28:08] [PASSED] 61 VFs
[18:28:08] [PASSED] 62 VFs
[18:28:08] [PASSED] 63 VFs
[18:28:08] ================== [PASSED] fair_contexts ==================
[18:28:08] ===================== fair_doorbells ======================
[18:28:08] [PASSED] 1 VF
[18:28:08] [PASSED] 2 VFs
[18:28:08] [PASSED] 3 VFs
[18:28:08] [PASSED] 4 VFs
[18:28:08] [PASSED] 5 VFs
[18:28:08] [PASSED] 6 VFs
[18:28:08] [PASSED] 7 VFs
[18:28:08] [PASSED] 8 VFs
[18:28:08] [PASSED] 9 VFs
[18:28:08] [PASSED] 10 VFs
[18:28:08] [PASSED] 11 VFs
[18:28:08] [PASSED] 12 VFs
[18:28:08] [PASSED] 13 VFs
[18:28:08] [PASSED] 14 VFs
[18:28:08] [PASSED] 15 VFs
[18:28:08] [PASSED] 16 VFs
[18:28:08] [PASSED] 17 VFs
[18:28:08] [PASSED] 18 VFs
[18:28:08] [PASSED] 19 VFs
[18:28:08] [PASSED] 20 VFs
[18:28:08] [PASSED] 21 VFs
[18:28:08] [PASSED] 22 VFs
[18:28:08] [PASSED] 23 VFs
[18:28:08] [PASSED] 24 VFs
[18:28:08] [PASSED] 25 VFs
[18:28:08] [PASSED] 26 VFs
[18:28:08] [PASSED] 27 VFs
[18:28:08] [PASSED] 28 VFs
[18:28:08] [PASSED] 29 VFs
[18:28:08] [PASSED] 30 VFs
[18:28:08] [PASSED] 31 VFs
[18:28:08] [PASSED] 32 VFs
[18:28:08] [PASSED] 33 VFs
[18:28:08] [PASSED] 34 VFs
[18:28:08] [PASSED] 35 VFs
[18:28:08] [PASSED] 36 VFs
[18:28:08] [PASSED] 37 VFs
[18:28:08] [PASSED] 38 VFs
[18:28:08] [PASSED] 39 VFs
[18:28:08] [PASSED] 40 VFs
[18:28:08] [PASSED] 41 VFs
[18:28:08] [PASSED] 42 VFs
[18:28:08] [PASSED] 43 VFs
[18:28:08] [PASSED] 44 VFs
[18:28:08] [PASSED] 45 VFs
[18:28:08] [PASSED] 46 VFs
[18:28:08] [PASSED] 47 VFs
[18:28:08] [PASSED] 48 VFs
[18:28:08] [PASSED] 49 VFs
[18:28:08] [PASSED] 50 VFs
[18:28:08] [PASSED] 51 VFs
[18:28:08] [PASSED] 52 VFs
[18:28:08] [PASSED] 53 VFs
[18:28:08] [PASSED] 54 VFs
[18:28:08] [PASSED] 55 VFs
[18:28:08] [PASSED] 56 VFs
[18:28:08] [PASSED] 57 VFs
[18:28:08] [PASSED] 58 VFs
[18:28:08] [PASSED] 59 VFs
[18:28:08] [PASSED] 60 VFs
[18:28:08] [PASSED] 61 VFs
[18:28:08] [PASSED] 62 VFs
[18:28:08] [PASSED] 63 VFs
[18:28:08] ================= [PASSED] fair_doorbells ==================
[18:28:08] ======================== fair_ggtt ========================
[18:28:08] [PASSED] 1 VF
[18:28:08] [PASSED] 2 VFs
[18:28:08] [PASSED] 3 VFs
[18:28:08] [PASSED] 4 VFs
[18:28:08] [PASSED] 5 VFs
[18:28:08] [PASSED] 6 VFs
[18:28:08] [PASSED] 7 VFs
[18:28:08] [PASSED] 8 VFs
[18:28:08] [PASSED] 9 VFs
[18:28:08] [PASSED] 10 VFs
[18:28:08] [PASSED] 11 VFs
[18:28:08] [PASSED] 12 VFs
[18:28:08] [PASSED] 13 VFs
[18:28:08] [PASSED] 14 VFs
[18:28:08] [PASSED] 15 VFs
[18:28:08] [PASSED] 16 VFs
[18:28:08] [PASSED] 17 VFs
[18:28:08] [PASSED] 18 VFs
[18:28:08] [PASSED] 19 VFs
[18:28:08] [PASSED] 20 VFs
[18:28:08] [PASSED] 21 VFs
[18:28:08] [PASSED] 22 VFs
[18:28:08] [PASSED] 23 VFs
[18:28:08] [PASSED] 24 VFs
[18:28:08] [PASSED] 25 VFs
[18:28:08] [PASSED] 26 VFs
[18:28:08] [PASSED] 27 VFs
[18:28:08] [PASSED] 28 VFs
[18:28:08] [PASSED] 29 VFs
[18:28:08] [PASSED] 30 VFs
[18:28:08] [PASSED] 31 VFs
[18:28:08] [PASSED] 32 VFs
[18:28:08] [PASSED] 33 VFs
[18:28:08] [PASSED] 34 VFs
[18:28:08] [PASSED] 35 VFs
[18:28:08] [PASSED] 36 VFs
[18:28:08] [PASSED] 37 VFs
[18:28:08] [PASSED] 38 VFs
[18:28:08] [PASSED] 39 VFs
[18:28:08] [PASSED] 40 VFs
[18:28:08] [PASSED] 41 VFs
[18:28:08] [PASSED] 42 VFs
[18:28:08] [PASSED] 43 VFs
[18:28:08] [PASSED] 44 VFs
[18:28:08] [PASSED] 45 VFs
[18:28:08] [PASSED] 46 VFs
[18:28:08] [PASSED] 47 VFs
[18:28:08] [PASSED] 48 VFs
[18:28:08] [PASSED] 49 VFs
[18:28:08] [PASSED] 50 VFs
[18:28:08] [PASSED] 51 VFs
[18:28:08] [PASSED] 52 VFs
[18:28:08] [PASSED] 53 VFs
[18:28:08] [PASSED] 54 VFs
[18:28:08] [PASSED] 55 VFs
[18:28:08] [PASSED] 56 VFs
[18:28:08] [PASSED] 57 VFs
[18:28:08] [PASSED] 58 VFs
[18:28:08] [PASSED] 59 VFs
[18:28:08] [PASSED] 60 VFs
[18:28:08] [PASSED] 61 VFs
[18:28:08] [PASSED] 62 VFs
[18:28:08] [PASSED] 63 VFs
[18:28:08] ==================== [PASSED] fair_ggtt ====================
[18:28:08] ======================== fair_vram ========================
[18:28:08] [PASSED] 1 VF
[18:28:08] [PASSED] 2 VFs
[18:28:08] [PASSED] 3 VFs
[18:28:08] [PASSED] 4 VFs
[18:28:08] [PASSED] 5 VFs
[18:28:08] [PASSED] 6 VFs
[18:28:08] [PASSED] 7 VFs
[18:28:08] [PASSED] 8 VFs
[18:28:08] [PASSED] 9 VFs
[18:28:08] [PASSED] 10 VFs
[18:28:08] [PASSED] 11 VFs
[18:28:08] [PASSED] 12 VFs
[18:28:08] [PASSED] 13 VFs
[18:28:08] [PASSED] 14 VFs
[18:28:08] [PASSED] 15 VFs
[18:28:08] [PASSED] 16 VFs
[18:28:08] [PASSED] 17 VFs
[18:28:08] [PASSED] 18 VFs
[18:28:08] [PASSED] 19 VFs
[18:28:08] [PASSED] 20 VFs
[18:28:08] [PASSED] 21 VFs
[18:28:08] [PASSED] 22 VFs
[18:28:08] [PASSED] 23 VFs
[18:28:08] [PASSED] 24 VFs
[18:28:08] [PASSED] 25 VFs
[18:28:08] [PASSED] 26 VFs
[18:28:08] [PASSED] 27 VFs
[18:28:08] [PASSED] 28 VFs
[18:28:08] [PASSED] 29 VFs
[18:28:08] [PASSED] 30 VFs
[18:28:08] [PASSED] 31 VFs
[18:28:08] [PASSED] 32 VFs
[18:28:08] [PASSED] 33 VFs
[18:28:08] [PASSED] 34 VFs
[18:28:08] [PASSED] 35 VFs
[18:28:08] [PASSED] 36 VFs
[18:28:08] [PASSED] 37 VFs
[18:28:08] [PASSED] 38 VFs
[18:28:08] [PASSED] 39 VFs
[18:28:08] [PASSED] 40 VFs
[18:28:08] [PASSED] 41 VFs
[18:28:08] [PASSED] 42 VFs
[18:28:08] [PASSED] 43 VFs
[18:28:08] [PASSED] 44 VFs
[18:28:08] [PASSED] 45 VFs
[18:28:08] [PASSED] 46 VFs
[18:28:08] [PASSED] 47 VFs
[18:28:08] [PASSED] 48 VFs
[18:28:08] [PASSED] 49 VFs
[18:28:08] [PASSED] 50 VFs
[18:28:08] [PASSED] 51 VFs
[18:28:08] [PASSED] 52 VFs
[18:28:08] [PASSED] 53 VFs
[18:28:08] [PASSED] 54 VFs
[18:28:08] [PASSED] 55 VFs
[18:28:08] [PASSED] 56 VFs
[18:28:08] [PASSED] 57 VFs
[18:28:08] [PASSED] 58 VFs
[18:28:08] [PASSED] 59 VFs
[18:28:08] [PASSED] 60 VFs
[18:28:08] [PASSED] 61 VFs
[18:28:08] [PASSED] 62 VFs
[18:28:08] [PASSED] 63 VFs
[18:28:08] ==================== [PASSED] fair_vram ====================
[18:28:08] ================== [PASSED] pf_gt_config ===================
[18:28:08] ===================== lmtt (1 subtest) =====================
[18:28:08] ======================== test_ops =========================
[18:28:08] [PASSED] 2-level
[18:28:08] [PASSED] multi-level
[18:28:08] ==================== [PASSED] test_ops =====================
[18:28:08] ====================== [PASSED] lmtt =======================
[18:28:08] ================= sriov_packet (1 subtest) =================
[18:28:08] [PASSED] test_descriptor_init
[18:28:08] ================== [PASSED] sriov_packet ===================
[18:28:08] ================= pf_service (11 subtests) =================
[18:28:08] [PASSED] pf_negotiate_any
[18:28:08] [PASSED] pf_negotiate_base_match
[18:28:08] [PASSED] pf_negotiate_base_newer
[18:28:08] [PASSED] pf_negotiate_base_next
[18:28:08] [SKIPPED] pf_negotiate_base_older (no older minor)
[18:28:08] [PASSED] pf_negotiate_base_prev
[18:28:08] [PASSED] pf_negotiate_latest_match
[18:28:08] [PASSED] pf_negotiate_latest_newer
[18:28:08] [PASSED] pf_negotiate_latest_next
[18:28:08] [SKIPPED] pf_negotiate_latest_older (no older minor)
[18:28:08] [SKIPPED] pf_negotiate_latest_prev (no prev major)
[18:28:08] =================== [PASSED] pf_service ====================
[18:28:08] ================= xe_guc_g2g (2 subtests) ==================
[18:28:08] ============== xe_live_guc_g2g_kunit_default ==============
[18:28:08] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[18:28:08] ============== xe_live_guc_g2g_kunit_allmem ===============
[18:28:08] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[18:28:08] =================== [SKIPPED] xe_guc_g2g ===================
[18:28:08] =================== xe_mocs (2 subtests) ===================
[18:28:08] ================ xe_live_mocs_kernel_kunit ================
[18:28:08] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[18:28:08] ================ xe_live_mocs_reset_kunit =================
[18:28:08] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[18:28:08] ==================== [SKIPPED] xe_mocs =====================
[18:28:08] ================= xe_migrate (3 subtests) ==================
[18:28:08] ================= xe_migrate_sanity_kunit =================
[18:28:08] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[18:28:08] ================== xe_validate_ccs_kunit ==================
[18:28:08] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[18:28:08] ============= xe_migrate_access_memory_kunit ==============
[18:28:08] ========= [SKIPPED] xe_migrate_access_memory_kunit =========
[18:28:08] =================== [SKIPPED] xe_migrate ===================
[18:28:08] ================== xe_dma_buf (1 subtest) ==================
[18:28:08] ==================== xe_dma_buf_kunit =====================
[18:28:08] ================ [SKIPPED] xe_dma_buf_kunit ================
[18:28:08] =================== [SKIPPED] xe_dma_buf ===================
[18:28:08] ================= xe_bo_shrink (1 subtest) =================
[18:28:08] =================== xe_bo_shrink_kunit ====================
[18:28:08] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[18:28:08] ================== [SKIPPED] xe_bo_shrink ==================
[18:28:08] ==================== xe_bo (2 subtests) ====================
[18:28:08] ================== xe_ccs_migrate_kunit ===================
[18:28:08] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[18:28:08] ==================== xe_bo_evict_kunit ====================
[18:28:08] =============== [SKIPPED] xe_bo_evict_kunit ================
[18:28:08] ===================== [SKIPPED] xe_bo ======================
[18:28:08] =================== xe_any (9 subtests) ====================
[18:28:08] [PASSED] test_to_xe
[18:28:08] [PASSED] test_to_dev
[18:28:08] [PASSED] test_to_pdev
[18:28:08] [PASSED] test_to_drm
[18:28:08] [PASSED] test_if_pdev
[18:28:08] [PASSED] test_if_xe
[18:28:08] [PASSED] test_if_tile
[18:28:08] [PASSED] test_if_gt
[18:28:08] [PASSED] test_to_id
[18:28:08] ===================== [PASSED] xe_any ======================
[18:28:08] ==================== args (13 subtests) ====================
[18:28:08] [PASSED] count_args_test
[18:28:08] [PASSED] call_args_example
[18:28:08] [PASSED] call_args_test
[18:28:08] [PASSED] drop_first_arg_example
[18:28:08] [PASSED] drop_first_arg_test
[18:28:08] [PASSED] first_arg_example
[18:28:08] [PASSED] first_arg_test
[18:28:08] [PASSED] last_arg_example
[18:28:08] [PASSED] last_arg_test
[18:28:08] [PASSED] pick_arg_example
[18:28:08] [PASSED] if_args_example
[18:28:08] [PASSED] if_args_test
[18:28:08] [PASSED] sep_comma_example
[18:28:08] ====================== [PASSED] args =======================
[18:28:08] =================== xe_pci (3 subtests) ====================
[18:28:08] ==================== check_graphics_ip ====================
[18:28:08] [PASSED] 12.00 Xe_LP
[18:28:08] [PASSED] 12.10 Xe_LP+
[18:28:08] [PASSED] 12.55 Xe_HPG
[18:28:08] [PASSED] 12.60 Xe_HPC
[18:28:08] [PASSED] 12.70 Xe_LPG
[18:28:08] [PASSED] 12.71 Xe_LPG
[18:28:08] [PASSED] 12.74 Xe_LPG+
[18:28:08] [PASSED] 20.01 Xe2_HPG
[18:28:08] [PASSED] 20.02 Xe2_HPG
[18:28:08] [PASSED] 20.04 Xe2_LPG
[18:28:08] [PASSED] 30.00 Xe3_LPG
[18:28:08] [PASSED] 30.01 Xe3_LPG
[18:28:08] [PASSED] 30.03 Xe3_LPG
[18:28:08] [PASSED] 30.04 Xe3_LPG
[18:28:08] [PASSED] 30.05 Xe3_LPG
[18:28:08] [PASSED] 35.10 Xe3p_LPG
[18:28:08] [PASSED] 35.11 Xe3p_XPC
[18:28:08] ================ [PASSED] check_graphics_ip ================
[18:28:08] ===================== check_media_ip ======================
[18:28:08] [PASSED] 12.00 Xe_M
[18:28:08] [PASSED] 12.55 Xe_HPM
[18:28:08] [PASSED] 13.00 Xe_LPM+
[18:28:08] [PASSED] 13.01 Xe2_HPM
[18:28:08] [PASSED] 20.00 Xe2_LPM
[18:28:08] [PASSED] 30.00 Xe3_LPM
[18:28:08] [PASSED] 30.02 Xe3_LPM
[18:28:08] [PASSED] 35.00 Xe3p_LPM
[18:28:08] [PASSED] 35.03 Xe3p_HPM
[18:28:08] ================= [PASSED] check_media_ip ==================
[18:28:08] =================== check_platform_desc ===================
[18:28:08] [PASSED] 0x9A60 (TIGERLAKE)
[18:28:08] [PASSED] 0x9A68 (TIGERLAKE)
[18:28:08] [PASSED] 0x9A70 (TIGERLAKE)
[18:28:08] [PASSED] 0x9A40 (TIGERLAKE)
[18:28:08] [PASSED] 0x9A49 (TIGERLAKE)
[18:28:08] [PASSED] 0x9A59 (TIGERLAKE)
[18:28:08] [PASSED] 0x9A78 (TIGERLAKE)
[18:28:08] [PASSED] 0x9AC0 (TIGERLAKE)
[18:28:08] [PASSED] 0x9AC9 (TIGERLAKE)
[18:28:08] [PASSED] 0x9AD9 (TIGERLAKE)
[18:28:08] [PASSED] 0x9AF8 (TIGERLAKE)
[18:28:08] [PASSED] 0x4C80 (ROCKETLAKE)
[18:28:08] [PASSED] 0x4C8A (ROCKETLAKE)
[18:28:08] [PASSED] 0x4C8B (ROCKETLAKE)
[18:28:08] [PASSED] 0x4C8C (ROCKETLAKE)
[18:28:08] [PASSED] 0x4C90 (ROCKETLAKE)
[18:28:08] [PASSED] 0x4C9A (ROCKETLAKE)
[18:28:08] [PASSED] 0x4680 (ALDERLAKE_S)
[18:28:08] [PASSED] 0x4682 (ALDERLAKE_S)
[18:28:08] [PASSED] 0x4688 (ALDERLAKE_S)
[18:28:08] [PASSED] 0x468A (ALDERLAKE_S)
[18:28:08] [PASSED] 0x468B (ALDERLAKE_S)
[18:28:08] [PASSED] 0x4690 (ALDERLAKE_S)
[18:28:08] [PASSED] 0x4692 (ALDERLAKE_S)
[18:28:08] [PASSED] 0x4693 (ALDERLAKE_S)
[18:28:08] [PASSED] 0x46A0 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46A1 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46A2 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46A3 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46A6 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46A8 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46AA (ALDERLAKE_P)
[18:28:08] [PASSED] 0x462A (ALDERLAKE_P)
[18:28:08] [PASSED] 0x4626 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x4628 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46B0 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46B1 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46B2 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46B3 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46C0 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46C1 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46C2 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46C3 (ALDERLAKE_P)
[18:28:08] [PASSED] 0x46D0 (ALDERLAKE_N)
[18:28:08] [PASSED] 0x46D1 (ALDERLAKE_N)
[18:28:08] [PASSED] 0x46D2 (ALDERLAKE_N)
[18:28:08] [PASSED] 0x46D3 (ALDERLAKE_N)
[18:28:08] [PASSED] 0x46D4 (ALDERLAKE_N)
[18:28:08] [PASSED] 0xA721 (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7A1 (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7A9 (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7AC (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7AD (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA720 (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7A0 (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7A8 (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7AA (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA7AB (ALDERLAKE_P)
[18:28:08] [PASSED] 0xA780 (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA781 (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA782 (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA783 (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA788 (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA789 (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA78A (ALDERLAKE_S)
[18:28:08] [PASSED] 0xA78B (ALDERLAKE_S)
[18:28:08] [PASSED] 0x4905 (DG1)
[18:28:08] [PASSED] 0x4906 (DG1)
[18:28:08] [PASSED] 0x4907 (DG1)
[18:28:08] [PASSED] 0x4908 (DG1)
[18:28:08] [PASSED] 0x4909 (DG1)
[18:28:08] [PASSED] 0x56C0 (DG2)
[18:28:08] [PASSED] 0x56C2 (DG2)
[18:28:08] [PASSED] 0x56C1 (DG2)
[18:28:08] [PASSED] 0x7D51 (METEORLAKE)
[18:28:08] [PASSED] 0x7DD1 (METEORLAKE)
[18:28:08] [PASSED] 0x7D41 (METEORLAKE)
[18:28:08] [PASSED] 0x7D67 (METEORLAKE)
[18:28:08] [PASSED] 0xB640 (METEORLAKE)
[18:28:08] [PASSED] 0x56A0 (DG2)
[18:28:08] [PASSED] 0x56A1 (DG2)
[18:28:08] [PASSED] 0x56A2 (DG2)
[18:28:08] [PASSED] 0x56BE (DG2)
[18:28:08] [PASSED] 0x56BF (DG2)
[18:28:08] [PASSED] 0x5690 (DG2)
[18:28:08] [PASSED] 0x5691 (DG2)
[18:28:08] [PASSED] 0x5692 (DG2)
[18:28:08] [PASSED] 0x56A5 (DG2)
[18:28:08] [PASSED] 0x56A6 (DG2)
[18:28:08] [PASSED] 0x56B0 (DG2)
[18:28:08] [PASSED] 0x56B1 (DG2)
[18:28:08] [PASSED] 0x56BA (DG2)
[18:28:08] [PASSED] 0x56BB (DG2)
[18:28:08] [PASSED] 0x56BC (DG2)
[18:28:08] [PASSED] 0x56BD (DG2)
[18:28:08] [PASSED] 0x5693 (DG2)
[18:28:08] [PASSED] 0x5694 (DG2)
[18:28:08] [PASSED] 0x5695 (DG2)
[18:28:08] [PASSED] 0x56A3 (DG2)
[18:28:08] [PASSED] 0x56A4 (DG2)
[18:28:08] [PASSED] 0x56B2 (DG2)
[18:28:08] [PASSED] 0x56B3 (DG2)
[18:28:08] [PASSED] 0x5696 (DG2)
[18:28:08] [PASSED] 0x5697 (DG2)
[18:28:08] [PASSED] 0xB69 (PVC)
[18:28:08] [PASSED] 0xB6E (PVC)
[18:28:08] [PASSED] 0xBD4 (PVC)
[18:28:08] [PASSED] 0xBD5 (PVC)
[18:28:08] [PASSED] 0xBD6 (PVC)
[18:28:08] [PASSED] 0xBD7 (PVC)
[18:28:08] [PASSED] 0xBD8 (PVC)
[18:28:08] [PASSED] 0xBD9 (PVC)
[18:28:08] [PASSED] 0xBDA (PVC)
[18:28:08] [PASSED] 0xBDB (PVC)
[18:28:08] [PASSED] 0xBE0 (PVC)
[18:28:08] [PASSED] 0xBE1 (PVC)
[18:28:08] [PASSED] 0xBE5 (PVC)
[18:28:08] [PASSED] 0x7D40 (METEORLAKE)
[18:28:08] [PASSED] 0x7D45 (METEORLAKE)
[18:28:08] [PASSED] 0x7D55 (METEORLAKE)
[18:28:08] [PASSED] 0x7D60 (METEORLAKE)
[18:28:08] [PASSED] 0x7DD5 (METEORLAKE)
[18:28:08] [PASSED] 0x6420 (LUNARLAKE)
[18:28:08] [PASSED] 0x64A0 (LUNARLAKE)
[18:28:08] [PASSED] 0x64B0 (LUNARLAKE)
[18:28:08] [PASSED] 0xE202 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE209 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE20B (BATTLEMAGE)
[18:28:08] [PASSED] 0xE20C (BATTLEMAGE)
[18:28:08] [PASSED] 0xE20D (BATTLEMAGE)
[18:28:08] [PASSED] 0xE210 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE211 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE212 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE216 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE220 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE221 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE222 (BATTLEMAGE)
[18:28:08] [PASSED] 0xE223 (BATTLEMAGE)
[18:28:08] [PASSED] 0xB080 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB081 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB082 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB083 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB084 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB085 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB086 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB087 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB08F (PANTHERLAKE)
[18:28:08] [PASSED] 0xB090 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB0A0 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB0A1 (PANTHERLAKE)
[18:28:08] [PASSED] 0xB0B0 (PANTHERLAKE)
[18:28:08] [PASSED] 0xFD80 (PANTHERLAKE)
[18:28:08] [PASSED] 0xFD81 (PANTHERLAKE)
[18:28:08] [PASSED] 0xD740 (NOVALAKE_S)
[18:28:08] [PASSED] 0xD741 (NOVALAKE_S)
[18:28:08] [PASSED] 0xD742 (NOVALAKE_S)
[18:28:08] [PASSED] 0xD743 (NOVALAKE_S)
[18:28:08] [PASSED] 0xD745 (NOVALAKE_S)
[18:28:08] [PASSED] 0xD74A (NOVALAKE_S)
[18:28:08] [PASSED] 0xD74B (NOVALAKE_S)
[18:28:08] [PASSED] 0x674C (CRESCENTISLAND)
[18:28:08] [PASSED] 0x674D (CRESCENTISLAND)
[18:28:08] [PASSED] 0x674E (CRESCENTISLAND)
[18:28:08] [PASSED] 0x674F (CRESCENTISLAND)
[18:28:08] [PASSED] 0x6750 (CRESCENTISLAND)
[18:28:08] [PASSED] 0x6751 (CRESCENTISLAND)
[18:28:08] [PASSED] 0x6752 (CRESCENTISLAND)
[18:28:08] [PASSED] 0xD750 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD751 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD752 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD753 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD754 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD755 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD756 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD757 (NOVALAKE_P)
[18:28:08] [PASSED] 0xD75F (NOVALAKE_P)
[18:28:08] =============== [PASSED] check_platform_desc ===============
[18:28:08] ===================== [PASSED] xe_pci ======================
[18:28:08] ============= xe_rtp_tables_test (5 subtests) ==============
[18:28:08] ================== xe_rtp_table_gt_test ===================
[18:28:08] [PASSED] gt_was/14011060649
[18:28:08] [PASSED] gt_was/14011059788
[18:28:08] [PASSED] gt_was/14015795083
[18:28:08] [PASSED] gt_was/16021867713
[18:28:08] [PASSED] gt_was/14019449301
[18:28:08] [PASSED] gt_was/16028005424
[18:28:08] [PASSED] gt_was/14026578760
[18:28:08] [PASSED] gt_was/1409420604
[18:28:08] [PASSED] gt_was/1408615072
[18:28:08] [PASSED] gt_was/22010523718
[18:28:08] [PASSED] gt_was/14011006942
[18:28:08] [PASSED] gt_was/14014830051
[18:28:08] [PASSED] gt_was/18018781329
[18:28:08] [PASSED] gt_was/1509235366
[18:28:08] [PASSED] gt_was/18018781329
[18:28:08] [PASSED] gt_was/16016694945
[18:28:08] [PASSED] gt_was/14018575942
[18:28:08] [PASSED] gt_was/22016670082
[18:28:08] [PASSED] gt_was/22016670082
[18:28:08] [PASSED] gt_was/14017421178
[18:28:08] [PASSED] gt_was/16025250150
[18:28:08] [PASSED] gt_was/14021871409
[18:28:08] [PASSED] gt_was/16021865536
[18:28:08] [PASSED] gt_was/14021486841
[18:28:08] [PASSED] gt_was/14025160223
[18:28:08] [PASSED] gt_was/14026144927, 16029437861, 14026127056
[18:28:08] [PASSED] gt_was/14025635424
[18:28:08] [PASSED] gt_was/16028005424
[18:28:08] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:28:08] ================== xe_rtp_table_gt_test ===================
[18:28:08] [PASSED] gt_tunings/Tuning: Blend Fill Caching Optimization Disable
[18:28:08] [PASSED] gt_tunings/Tuning: 32B Access Enable
[18:28:08] [PASSED] gt_tunings/Tuning: L3 cache
[18:28:08] [PASSED] gt_tunings/Tuning: L3 cache - media
[18:28:08] [PASSED] gt_tunings/Tuning: Compression Overfetch
[18:28:08] [PASSED] gt_tunings/Tuning: Compression Overfetch - media
[18:28:08] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3
[18:28:08] [PASSED] gt_tunings/Tuning: Enable compressible partial write overfetch in L3 - media
[18:28:08] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only
[18:28:08] [PASSED] gt_tunings/Tuning: L2 Overfetch Compressible Only - media
[18:28:08] [PASSED] gt_tunings/Tuning: Stateless compression control
[18:28:08] [PASSED] gt_tunings/Tuning: Stateless compression control - media
[18:28:08] [PASSED] gt_tunings/Tuning: L3 RW flush all Cache
[18:28:08] [PASSED] gt_tunings/Tuning: L3 RW flush all cache - media
[18:28:08] [PASSED] gt_tunings/Tuning: Set STLB Bank Hash Mode to 4KB
[18:28:08] [PASSED] gt_tunings/Tuning: Force All Non-Compressible Memory Reads to be 256B Overfetches
[18:28:08] ============== [PASSED] xe_rtp_table_gt_test ===============
[18:28:08] ================== xe_rtp_table_oob_test ==================
[18:28:08] [PASSED] oob_was/1607983814
[18:28:08] [PASSED] oob_was/16010904313
[18:28:08] [PASSED] oob_was/18022495364
[18:28:08] [PASSED] oob_was/22012773006
[18:28:08] [PASSED] oob_was/14014475959
[18:28:08] [PASSED] oob_was/22011391025
[18:28:08] [PASSED] oob_was/22012727170
[18:28:08] [PASSED] oob_was/22012727685
[18:28:08] [PASSED] oob_was/22016596838
[18:28:08] [PASSED] oob_was/18020744125
[18:28:08] [PASSED] oob_was/1409600907
[18:28:08] [PASSED] oob_was/22014953428
[18:28:08] [PASSED] oob_was/16017236439
[18:28:08] [PASSED] oob_was/14019821291
[18:28:08] [PASSED] oob_was/14015076503
[18:28:08] [PASSED] oob_was/22016122933
[18:28:08] [PASSED] oob_was/14018913170
[18:28:08] [PASSED] oob_was/14018094691
[18:28:08] [PASSED] oob_was/18024947630
[18:28:08] [PASSED] oob_was/16022287689
[18:28:08] [PASSED] oob_was/13011645652
[18:28:08] [PASSED] oob_was/14022293748
[18:28:08] [PASSED] oob_was/22019794406
[18:28:08] [PASSED] oob_was/22019338487
[18:28:08] [PASSED] oob_was/16023588340
[18:28:08] [PASSED] oob_was/14019789679
[18:28:08] [PASSED] oob_was/14022866841
[18:28:08] [PASSED] oob_was/16021333562
[18:28:08] [PASSED] oob_was/14016712196
[18:28:08] [PASSED] oob_was/14015568240
[18:28:08] [PASSED] oob_was/18013179988
[18:28:08] [PASSED] oob_was/1508761755
[18:28:08] [PASSED] oob_was/16023105232
[18:28:08] [PASSED] oob_was/16026508708
[18:28:08] [PASSED] oob_was/14020001231
[18:28:08] [PASSED] oob_was/16023683509
[18:28:08] [PASSED] oob_was/14025515070
[18:28:08] [PASSED] oob_was/15015404425_disable
[18:28:08] [PASSED] oob_was/16026007364
[18:28:08] [PASSED] oob_was/14020316580
[18:28:08] [PASSED] oob_was/14025883347
[18:28:08] [PASSED] oob_was/16029380221
[18:28:08] [PASSED] oob_was/22022079272
[18:28:08] [PASSED] oob_was/16029897822
[18:28:08] [PASSED] oob_was/14026539277
[18:28:08] [PASSED] oob_was/14027054324
[18:28:08] [PASSED] oob_was/14025941587
[18:28:08] [PASSED] oob_was/16030224309
[18:28:08] ============== [PASSED] xe_rtp_table_oob_test ==============
[18:28:08] ================ xe_rtp_table_dev_oob_test ================
[18:28:08] [PASSED] device_oob_was/22010954014
[18:28:08] [PASSED] device_oob_was/15015404425
[18:28:08] [PASSED] device_oob_was/22019338487_display
[18:28:08] [PASSED] device_oob_was/14022085890
[18:28:08] [PASSED] device_oob_was/14026633728
[18:28:08] [PASSED] device_oob_was/14026746987
[18:28:08] [PASSED] device_oob_was/14026779378
[18:28:08] ============ [PASSED] xe_rtp_table_dev_oob_test ============
[18:28:08] ========== xe_rtp_table_missing_upper_bound_test ==========
[18:28:08] [PASSED] register_whitelist/WaAllowPMDepthAndInvocationCountAccessFromUMD, 1408556865
[18:28:08] [PASSED] register_whitelist/1508744258, 14012131227, 1808121037
[18:28:08] [PASSED] register_whitelist/1806527549
[18:28:08] [PASSED] register_whitelist/allow_read_ctx_timestamp
[18:28:08] [PASSED] register_whitelist/allow_read_queue_timestamp
[18:28:08] [PASSED] register_whitelist/16014440446
[18:28:08] [PASSED] register_whitelist/16017236439
[18:28:08] [PASSED] register_whitelist/16020183090
[18:28:08] [PASSED] register_whitelist/14024997852
[18:28:08] [PASSED] register_whitelist/14024997852
[18:28:08] ====== [PASSED] xe_rtp_table_missing_upper_bound_test ======
[18:28:08] =============== [PASSED] xe_rtp_tables_test ================
[18:28:08] =================== xe_rtp (3 subtests) ====================
[18:28:08] =================== xe_rtp_rules_tests ====================
[18:28:08] [PASSED] no
[18:28:08] [PASSED] yes
[18:28:08] [PASSED] no-and-no
[18:28:08] [PASSED] no-and-yes
[18:28:08] [PASSED] yes-and-no
[18:28:08] [PASSED] yes-and-yes
[18:28:08] [PASSED] no-or-no
[18:28:08] [PASSED] no-or-yes
[18:28:08] [PASSED] yes-or-no
[18:28:08] [PASSED] yes-or-yes
[18:28:08] [PASSED] no-yes-or-yes-no
[18:28:08] [PASSED] no-yes-or-yes-yes
[18:28:08] [PASSED] yes-yes-or-no-yes
[18:28:08] [PASSED] yes-yes-or-yes-yes
[18:28:08] [PASSED] no-no-or-yes-or-no
[18:28:08] [PASSED] or
[18:28:08] [PASSED] or-yes
[18:28:08] [PASSED] or-no
[18:28:08] [PASSED] yes-or
[18:28:08] [PASSED] no-or
[18:28:08] [PASSED] no-or-or-yes
[18:28:08] [PASSED] yes-or-or-no
[18:28:08] [PASSED] no-or-or-no
[18:28:08] [PASSED] missing-context-engine-class
[18:28:08] [PASSED] missing-context-engine-class-or-yes
[18:28:08] [PASSED] missing-context-engine-class-or-or-yes
[18:28:08] =============== [PASSED] xe_rtp_rules_tests ================
[18:28:08] =============== xe_rtp_process_to_sr_tests ================
[18:28:08] [PASSED] coalesce-same-reg
[18:28:08] [PASSED] coalesce-same-reg-literal-and-func
[18:28:08] [PASSED] no-match-no-add
[18:28:08] [PASSED] two-regs-two-entries
[18:28:08] [PASSED] clr-one-set-other
[18:28:08] [PASSED] set-field
[18:28:08] [PASSED] conflict-duplicate
[18:28:08] [PASSED] conflict-not-disjoint
[18:28:08] [PASSED] conflict-not-disjoint-literal-and-func
[18:28:08] [PASSED] conflict-reg-type
[18:28:08] [PASSED] bad-mcr-reg-forced-to-regular
[18:28:08] [PASSED] bad-regular-reg-forced-to-mcr
[18:28:08] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[18:28:08] ================== xe_rtp_process_tests ===================
[18:28:08] [PASSED] active1
[18:28:08] [PASSED] active2
[18:28:08] [PASSED] active-inactive
[18:28:08] [PASSED] inactive-active
[18:28:08] [PASSED] inactive-active-inactive
[18:28:08] [PASSED] inactive-inactive-inactive
[18:28:08] ============== [PASSED] xe_rtp_process_tests ===============
[18:28:08] ===================== [PASSED] xe_rtp ======================
[18:28:08] ==================== xe_wa (1 subtest) =====================
[18:28:08] ======================== xe_wa_gt =========================
[18:28:08] [PASSED] TIGERLAKE B0
[18:28:08] [PASSED] DG1 A0
[18:28:08] [PASSED] DG1 B0
[18:28:08] [PASSED] ALDERLAKE_S A0
[18:28:08] [PASSED] ALDERLAKE_S B0
[18:28:08] [PASSED] ALDERLAKE_S C0
[18:28:08] [PASSED] ALDERLAKE_S D0
[18:28:08] [PASSED] ALDERLAKE_P A0
[18:28:08] [PASSED] ALDERLAKE_P B0
[18:28:08] [PASSED] ALDERLAKE_P C0
[18:28:08] [PASSED] ALDERLAKE_S RPLS D0
[18:28:08] [PASSED] ALDERLAKE_P RPLU E0
[18:28:08] [PASSED] DG2 G10 C0
[18:28:08] [PASSED] DG2 G11 B1
[18:28:08] [PASSED] DG2 G12 A1
[18:28:08] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:28:08] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[18:28:08] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[18:28:08] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[18:28:08] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[18:28:08] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[18:28:08] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[18:28:08] ==================== [PASSED] xe_wa_gt =====================
[18:28:08] ====================== [PASSED] xe_wa ======================
[18:28:08] ============================================================
[18:28:08] Testing complete. Ran 839 tests: passed: 810, skipped: 29
[18:28:08] Elapsed time: 40.964s total, 1.883s configuring, 38.315s building, 0.735s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[18:28:08] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:28:10] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:28:35] Starting KUnit Kernel (1/1)...
[18:28:35] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:28:35] ============ drm_test_pick_cmdline (2 subtests) ============
[18:28:35] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[18:28:35] =============== drm_test_pick_cmdline_named ===============
[18:28:35] [PASSED] NTSC
[18:28:35] [PASSED] NTSC-J
[18:28:35] [PASSED] PAL
[18:28:35] [PASSED] PAL-M
[18:28:35] =========== [PASSED] drm_test_pick_cmdline_named ===========
[18:28:35] ============== [PASSED] drm_test_pick_cmdline ==============
[18:28:35] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[18:28:35] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[18:28:35] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[18:28:35] =========== drm_validate_clone_mode (2 subtests) ===========
[18:28:35] ============== drm_test_check_in_clone_mode ===============
[18:28:35] [PASSED] in_clone_mode
[18:28:35] [PASSED] not_in_clone_mode
[18:28:35] ========== [PASSED] drm_test_check_in_clone_mode ===========
[18:28:35] =============== drm_test_check_valid_clones ===============
[18:28:35] [PASSED] not_in_clone_mode
[18:28:35] [PASSED] valid_clone
[18:28:35] [PASSED] invalid_clone
[18:28:35] =========== [PASSED] drm_test_check_valid_clones ===========
[18:28:35] ============= [PASSED] drm_validate_clone_mode =============
[18:28:35] ============= drm_validate_modeset (1 subtest) =============
[18:28:35] [PASSED] drm_test_check_connector_changed_modeset
[18:28:35] ============== [PASSED] drm_validate_modeset ===============
[18:28:35] ====== drm_test_bridge_get_current_state (1 subtest) =======
[18:28:35] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[18:28:35] ======== [PASSED] drm_test_bridge_get_current_state ========
[18:28:35] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[18:28:35] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[18:28:35] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[18:28:35] [PASSED] drm_test_drm_bridge_helper_hdmi_output_bus_fmts
[18:28:35] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[18:28:35] ============== drm_bridge_alloc (2 subtests) ===============
[18:28:35] [PASSED] drm_test_drm_bridge_alloc_basic
[18:28:35] [PASSED] drm_test_drm_bridge_alloc_get_put
[18:28:35] ================ [PASSED] drm_bridge_alloc =================
[18:28:35] ============= drm_bridge_bus_fmt (5 subtests) ==============
[18:28:35] [PASSED] drm_test_bridge_rgb_yuv_rgb
[18:28:35] [PASSED] drm_test_bridge_must_convert_to_yuv444
[18:28:35] [PASSED] drm_test_bridge_hdmi_auto_rgb
[18:28:35] [PASSED] drm_test_bridge_auto_first
[18:28:35] [PASSED] drm_test_bridge_rgb_yuv_no_path
[18:28:35] =============== [PASSED] drm_bridge_bus_fmt ================
[18:28:35] ============= drm_cmdline_parser (40 subtests) =============
[18:28:35] [PASSED] drm_test_cmdline_force_d_only
[18:28:35] [PASSED] drm_test_cmdline_force_D_only_dvi
[18:28:35] [PASSED] drm_test_cmdline_force_D_only_hdmi
[18:28:35] [PASSED] drm_test_cmdline_force_D_only_not_digital
[18:28:35] [PASSED] drm_test_cmdline_force_e_only
[18:28:35] [PASSED] drm_test_cmdline_res
[18:28:35] [PASSED] drm_test_cmdline_res_vesa
[18:28:35] [PASSED] drm_test_cmdline_res_vesa_rblank
[18:28:35] [PASSED] drm_test_cmdline_res_rblank
[18:28:35] [PASSED] drm_test_cmdline_res_bpp
[18:28:35] [PASSED] drm_test_cmdline_res_refresh
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[18:28:35] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[18:28:35] [PASSED] drm_test_cmdline_res_margins_force_on
[18:28:35] [PASSED] drm_test_cmdline_res_vesa_margins
[18:28:35] [PASSED] drm_test_cmdline_name
[18:28:35] [PASSED] drm_test_cmdline_name_bpp
[18:28:35] [PASSED] drm_test_cmdline_name_option
[18:28:35] [PASSED] drm_test_cmdline_name_bpp_option
[18:28:35] [PASSED] drm_test_cmdline_rotate_0
[18:28:35] [PASSED] drm_test_cmdline_rotate_90
[18:28:35] [PASSED] drm_test_cmdline_rotate_180
[18:28:35] [PASSED] drm_test_cmdline_rotate_270
[18:28:35] [PASSED] drm_test_cmdline_hmirror
[18:28:35] [PASSED] drm_test_cmdline_vmirror
[18:28:35] [PASSED] drm_test_cmdline_margin_options
[18:28:35] [PASSED] drm_test_cmdline_multiple_options
[18:28:35] [PASSED] drm_test_cmdline_bpp_extra_and_option
[18:28:35] [PASSED] drm_test_cmdline_extra_and_option
[18:28:35] [PASSED] drm_test_cmdline_freestanding_options
[18:28:35] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[18:28:35] [PASSED] drm_test_cmdline_panel_orientation
[18:28:35] ================ drm_test_cmdline_invalid =================
[18:28:35] [PASSED] margin_only
[18:28:35] [PASSED] interlace_only
[18:28:35] [PASSED] res_missing_x
[18:28:35] [PASSED] res_missing_y
[18:28:35] [PASSED] res_bad_y
[18:28:35] [PASSED] res_missing_y_bpp
[18:28:35] [PASSED] res_bad_bpp
[18:28:35] [PASSED] res_bad_refresh
[18:28:35] [PASSED] res_bpp_refresh_force_on_off
[18:28:35] [PASSED] res_invalid_mode
[18:28:35] [PASSED] res_bpp_wrong_place_mode
[18:28:35] [PASSED] name_bpp_refresh
[18:28:35] [PASSED] name_refresh
[18:28:35] [PASSED] name_refresh_wrong_mode
[18:28:35] [PASSED] name_refresh_invalid_mode
[18:28:35] [PASSED] rotate_multiple
[18:28:35] [PASSED] rotate_invalid_val
[18:28:35] [PASSED] rotate_truncated
[18:28:35] [PASSED] invalid_option
[18:28:35] [PASSED] invalid_tv_option
[18:28:35] [PASSED] truncated_tv_option
[18:28:35] ============ [PASSED] drm_test_cmdline_invalid =============
[18:28:35] =============== drm_test_cmdline_tv_options ===============
[18:28:35] [PASSED] NTSC
[18:28:35] [PASSED] NTSC_443
[18:28:35] [PASSED] NTSC_J
[18:28:35] [PASSED] PAL
[18:28:35] [PASSED] PAL_M
[18:28:35] [PASSED] PAL_N
[18:28:35] [PASSED] SECAM
[18:28:35] [PASSED] MONO_525
[18:28:35] [PASSED] MONO_625
[18:28:35] =========== [PASSED] drm_test_cmdline_tv_options ===========
[18:28:35] =============== [PASSED] drm_cmdline_parser ================
[18:28:35] ========== drmm_connector_hdmi_init (20 subtests) ==========
[18:28:35] [PASSED] drm_test_connector_hdmi_init_valid
[18:28:35] [PASSED] drm_test_connector_hdmi_init_bpc_8
[18:28:35] [PASSED] drm_test_connector_hdmi_init_bpc_10
[18:28:35] [PASSED] drm_test_connector_hdmi_init_bpc_12
[18:28:35] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[18:28:35] [PASSED] drm_test_connector_hdmi_init_bpc_null
[18:28:35] [PASSED] drm_test_connector_hdmi_init_formats_empty
[18:28:35] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[18:28:35] === drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:28:35] [PASSED] supported_formats=0x9 yuv420_allowed=1
[18:28:35] [PASSED] supported_formats=0x9 yuv420_allowed=0
[18:28:35] [PASSED] supported_formats=0x5 yuv420_allowed=1
[18:28:35] [PASSED] supported_formats=0x5 yuv420_allowed=0
[18:28:35] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[18:28:35] [PASSED] drm_test_connector_hdmi_init_null_ddc
[18:28:35] [PASSED] drm_test_connector_hdmi_init_null_product
[18:28:35] [PASSED] drm_test_connector_hdmi_init_null_vendor
[18:28:35] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[18:28:35] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[18:28:35] [PASSED] drm_test_connector_hdmi_init_product_valid
[18:28:35] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[18:28:35] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[18:28:35] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[18:28:35] ========= drm_test_connector_hdmi_init_type_valid =========
[18:28:35] [PASSED] HDMI-A
[18:28:35] [PASSED] HDMI-B
[18:28:35] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[18:28:35] ======== drm_test_connector_hdmi_init_type_invalid ========
[18:28:35] [PASSED] Unknown
[18:28:35] [PASSED] VGA
[18:28:35] [PASSED] DVI-I
[18:28:35] [PASSED] DVI-D
[18:28:35] [PASSED] DVI-A
[18:28:35] [PASSED] Composite
[18:28:35] [PASSED] SVIDEO
[18:28:35] [PASSED] LVDS
[18:28:35] [PASSED] Component
[18:28:35] [PASSED] DIN
[18:28:35] [PASSED] DP
[18:28:35] [PASSED] TV
[18:28:35] [PASSED] eDP
[18:28:35] [PASSED] Virtual
[18:28:35] [PASSED] DSI
[18:28:35] [PASSED] DPI
[18:28:35] [PASSED] Writeback
[18:28:35] [PASSED] SPI
[18:28:35] [PASSED] USB
[18:28:35] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[18:28:35] ============ [PASSED] drmm_connector_hdmi_init =============
[18:28:35] ============= drmm_connector_init (3 subtests) =============
[18:28:35] [PASSED] drm_test_drmm_connector_init
[18:28:35] [PASSED] drm_test_drmm_connector_init_null_ddc
[18:28:35] ========= drm_test_drmm_connector_init_type_valid =========
[18:28:35] [PASSED] Unknown
[18:28:35] [PASSED] VGA
[18:28:35] [PASSED] DVI-I
[18:28:35] [PASSED] DVI-D
[18:28:35] [PASSED] DVI-A
[18:28:35] [PASSED] Composite
[18:28:35] [PASSED] SVIDEO
[18:28:35] [PASSED] LVDS
[18:28:35] [PASSED] Component
[18:28:35] [PASSED] DIN
[18:28:35] [PASSED] DP
[18:28:35] [PASSED] HDMI-A
[18:28:35] [PASSED] HDMI-B
[18:28:35] [PASSED] TV
[18:28:35] [PASSED] eDP
[18:28:35] [PASSED] Virtual
[18:28:35] [PASSED] DSI
[18:28:35] [PASSED] DPI
[18:28:35] [PASSED] Writeback
[18:28:35] [PASSED] SPI
[18:28:35] [PASSED] USB
[18:28:35] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[18:28:35] =============== [PASSED] drmm_connector_init ===============
[18:28:35] ========= drm_connector_dynamic_init (6 subtests) ==========
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_init
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_init_properties
[18:28:35] ===== drm_test_drm_connector_dynamic_init_type_valid ======
[18:28:35] [PASSED] Unknown
[18:28:35] [PASSED] VGA
[18:28:35] [PASSED] DVI-I
[18:28:35] [PASSED] DVI-D
[18:28:35] [PASSED] DVI-A
[18:28:35] [PASSED] Composite
[18:28:35] [PASSED] SVIDEO
[18:28:35] [PASSED] LVDS
[18:28:35] [PASSED] Component
[18:28:35] [PASSED] DIN
[18:28:35] [PASSED] DP
[18:28:35] [PASSED] HDMI-A
[18:28:35] [PASSED] HDMI-B
[18:28:35] [PASSED] TV
[18:28:35] [PASSED] eDP
[18:28:35] [PASSED] Virtual
[18:28:35] [PASSED] DSI
[18:28:35] [PASSED] DPI
[18:28:35] [PASSED] Writeback
[18:28:35] [PASSED] SPI
[18:28:35] [PASSED] USB
[18:28:35] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[18:28:35] ======== drm_test_drm_connector_dynamic_init_name =========
[18:28:35] [PASSED] Unknown
[18:28:35] [PASSED] VGA
[18:28:35] [PASSED] DVI-I
[18:28:35] [PASSED] DVI-D
[18:28:35] [PASSED] DVI-A
[18:28:35] [PASSED] Composite
[18:28:35] [PASSED] SVIDEO
[18:28:35] [PASSED] LVDS
[18:28:35] [PASSED] Component
[18:28:35] [PASSED] DIN
[18:28:35] [PASSED] DP
[18:28:35] [PASSED] HDMI-A
[18:28:35] [PASSED] HDMI-B
[18:28:35] [PASSED] TV
[18:28:35] [PASSED] eDP
[18:28:35] [PASSED] Virtual
[18:28:35] [PASSED] DSI
[18:28:35] [PASSED] DPI
[18:28:35] [PASSED] Writeback
[18:28:35] [PASSED] SPI
[18:28:35] [PASSED] USB
[18:28:35] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[18:28:35] =========== [PASSED] drm_connector_dynamic_init ============
[18:28:35] ==== drm_connector_dynamic_register_early (4 subtests) =====
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[18:28:35] ====== [PASSED] drm_connector_dynamic_register_early =======
[18:28:35] ======= drm_connector_dynamic_register (7 subtests) ========
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[18:28:35] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[18:28:35] ========= [PASSED] drm_connector_dynamic_register ==========
[18:28:35] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[18:28:35] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[18:28:35] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[18:28:35] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[18:28:35] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[18:28:35] ========== drm_test_get_tv_mode_from_name_valid ===========
[18:28:35] [PASSED] NTSC
[18:28:35] [PASSED] NTSC-443
[18:28:35] [PASSED] NTSC-J
[18:28:35] [PASSED] PAL
[18:28:35] [PASSED] PAL-M
[18:28:35] [PASSED] PAL-N
[18:28:35] [PASSED] SECAM
[18:28:35] [PASSED] Mono
[18:28:35] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[18:28:35] [PASSED] drm_test_get_tv_mode_from_name_truncated
[18:28:35] ============ [PASSED] drm_get_tv_mode_from_name ============
[18:28:35] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[18:28:35] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[18:28:35] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[18:28:35] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[18:28:35] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[18:28:35] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[18:28:35] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[18:28:35] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid =
[18:28:35] [PASSED] VIC 96
[18:28:35] [PASSED] VIC 97
[18:28:35] [PASSED] VIC 101
[18:28:35] [PASSED] VIC 102
[18:28:35] [PASSED] VIC 106
[18:28:35] [PASSED] VIC 107
[18:28:35] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[18:28:35] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[18:28:35] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[18:28:35] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[18:28:35] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[18:28:35] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[18:28:35] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[18:28:35] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[18:28:35] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name ====
[18:28:35] [PASSED] Automatic
[18:28:35] [PASSED] Full
[18:28:35] [PASSED] Limited 16:235
[18:28:35] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[18:28:35] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[18:28:35] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[18:28:35] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[18:28:35] === drm_test_drm_hdmi_connector_get_output_format_name ====
[18:28:35] [PASSED] RGB
[18:28:35] [PASSED] YUV 4:2:0
[18:28:35] [PASSED] YUV 4:2:2
[18:28:35] [PASSED] YUV 4:4:4
[18:28:35] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[18:28:35] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[18:28:35] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[18:28:35] ============= drm_damage_helper (21 subtests) ==============
[18:28:35] [PASSED] drm_test_damage_iter_no_damage
[18:28:35] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[18:28:35] [PASSED] drm_test_damage_iter_no_damage_src_moved
[18:28:35] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[18:28:35] [PASSED] drm_test_damage_iter_no_damage_not_visible
[18:28:35] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[18:28:35] [PASSED] drm_test_damage_iter_no_damage_no_fb
[18:28:35] [PASSED] drm_test_damage_iter_simple_damage
[18:28:35] [PASSED] drm_test_damage_iter_single_damage
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_outside_src
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_src_moved
[18:28:35] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[18:28:35] [PASSED] drm_test_damage_iter_damage
[18:28:35] [PASSED] drm_test_damage_iter_damage_one_intersect
[18:28:35] [PASSED] drm_test_damage_iter_damage_one_outside
[18:28:35] [PASSED] drm_test_damage_iter_damage_src_moved
[18:28:35] [PASSED] drm_test_damage_iter_damage_not_visible
[18:28:35] ================ [PASSED] drm_damage_helper ================
[18:28:35] ============== drm_dp_mst_helper (3 subtests) ==============
[18:28:35] ============== drm_test_dp_mst_calc_pbn_mode ==============
[18:28:35] [PASSED] Clock 154000 BPP 30 DSC disabled
[18:28:35] [PASSED] Clock 234000 BPP 30 DSC disabled
[18:28:35] [PASSED] Clock 297000 BPP 24 DSC disabled
[18:28:35] [PASSED] Clock 332880 BPP 24 DSC enabled
[18:28:35] [PASSED] Clock 324540 BPP 24 DSC enabled
[18:28:35] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[18:28:35] ============== drm_test_dp_mst_calc_pbn_div ===============
[18:28:35] [PASSED] Link rate 2000000 lane count 4
[18:28:35] [PASSED] Link rate 2000000 lane count 2
[18:28:35] [PASSED] Link rate 2000000 lane count 1
[18:28:35] [PASSED] Link rate 1350000 lane count 4
[18:28:35] [PASSED] Link rate 1350000 lane count 2
[18:28:35] [PASSED] Link rate 1350000 lane count 1
[18:28:35] [PASSED] Link rate 1000000 lane count 4
[18:28:35] [PASSED] Link rate 1000000 lane count 2
[18:28:35] [PASSED] Link rate 1000000 lane count 1
[18:28:35] [PASSED] Link rate 810000 lane count 4
[18:28:35] [PASSED] Link rate 810000 lane count 2
[18:28:35] [PASSED] Link rate 810000 lane count 1
[18:28:35] [PASSED] Link rate 540000 lane count 4
[18:28:35] [PASSED] Link rate 540000 lane count 2
[18:28:35] [PASSED] Link rate 540000 lane count 1
[18:28:35] [PASSED] Link rate 270000 lane count 4
[18:28:35] [PASSED] Link rate 270000 lane count 2
[18:28:35] [PASSED] Link rate 270000 lane count 1
[18:28:35] [PASSED] Link rate 162000 lane count 4
[18:28:35] [PASSED] Link rate 162000 lane count 2
[18:28:35] [PASSED] Link rate 162000 lane count 1
[18:28:35] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[18:28:35] ========= drm_test_dp_mst_sideband_msg_req_decode =========
[18:28:35] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[18:28:35] [PASSED] DP_POWER_UP_PHY with port number
[18:28:35] [PASSED] DP_POWER_DOWN_PHY with port number
[18:28:35] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[18:28:35] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[18:28:35] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[18:28:35] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[18:28:35] [PASSED] DP_QUERY_PAYLOAD with port number
[18:28:35] [PASSED] DP_QUERY_PAYLOAD with VCPI
[18:28:35] [PASSED] DP_REMOTE_DPCD_READ with port number
[18:28:35] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[18:28:35] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[18:28:35] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[18:28:35] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[18:28:35] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[18:28:35] [PASSED] DP_REMOTE_I2C_READ with port number
[18:28:35] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[18:28:35] [PASSED] DP_REMOTE_I2C_READ with transactions array
[18:28:35] [PASSED] DP_REMOTE_I2C_WRITE with port number
[18:28:35] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[18:28:35] [PASSED] DP_REMOTE_I2C_WRITE with data array
[18:28:35] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[18:28:35] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[18:28:35] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[18:28:35] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[18:28:35] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[18:28:35] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[18:28:35] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[18:28:35] ================ [PASSED] drm_dp_mst_helper ================
[18:28:35] ================== drm_exec (7 subtests) ===================
[18:28:35] [PASSED] sanitycheck
[18:28:35] [PASSED] test_lock
[18:28:35] [PASSED] test_lock_unlock
[18:28:35] [PASSED] test_duplicates
[18:28:35] [PASSED] test_prepare
[18:28:35] [PASSED] test_prepare_array
[18:28:35] [PASSED] test_multiple_loops
[18:28:35] ==================== [PASSED] drm_exec =====================
[18:28:35] =========== drm_format_helper_test (17 subtests) ===========
[18:28:35] ============== drm_test_fb_xrgb8888_to_gray8 ==============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[18:28:35] ============= drm_test_fb_xrgb8888_to_rgb332 ==============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[18:28:35] ============= drm_test_fb_xrgb8888_to_rgb565 ==============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[18:28:35] ============ drm_test_fb_xrgb8888_to_xrgb1555 =============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[18:28:35] ============ drm_test_fb_xrgb8888_to_argb1555 =============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[18:28:35] ============ drm_test_fb_xrgb8888_to_rgba5551 =============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[18:28:35] ============= drm_test_fb_xrgb8888_to_rgb888 ==============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[18:28:35] ============= drm_test_fb_xrgb8888_to_bgr888 ==============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[18:28:35] ============ drm_test_fb_xrgb8888_to_argb8888 =============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[18:28:35] =========== drm_test_fb_xrgb8888_to_xrgb2101010 ===========
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[18:28:35] =========== drm_test_fb_xrgb8888_to_argb2101010 ===========
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[18:28:35] ============== drm_test_fb_xrgb8888_to_mono ===============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[18:28:35] ==================== drm_test_fb_swab =====================
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ================ [PASSED] drm_test_fb_swab =================
[18:28:35] ============ drm_test_fb_xrgb8888_to_xbgr8888 =============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[18:28:35] ============ drm_test_fb_xrgb8888_to_abgr8888 =============
[18:28:35] [PASSED] single_pixel_source_buffer
[18:28:35] [PASSED] single_pixel_clip_rectangle
[18:28:35] [PASSED] well_known_colors
[18:28:35] [PASSED] destination_pitch
[18:28:35] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[18:28:35] ================= drm_test_fb_clip_offset =================
[18:28:35] [PASSED] pass through
[18:28:35] [PASSED] horizontal offset
[18:28:35] [PASSED] vertical offset
[18:28:35] [PASSED] horizontal and vertical offset
[18:28:35] [PASSED] horizontal offset (custom pitch)
[18:28:35] [PASSED] vertical offset (custom pitch)
[18:28:35] [PASSED] horizontal and vertical offset (custom pitch)
[18:28:35] ============= [PASSED] drm_test_fb_clip_offset =============
[18:28:35] =================== drm_test_fb_memcpy ====================
[18:28:35] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[18:28:35] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[18:28:35] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[18:28:35] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[18:28:35] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[18:28:35] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[18:28:35] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[18:28:35] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[18:28:35] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[18:28:35] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[18:28:35] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[18:28:35] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[18:28:35] =============== [PASSED] drm_test_fb_memcpy ================
[18:28:35] ============= [PASSED] drm_format_helper_test ==============
[18:28:35] ================= drm_format (18 subtests) =================
[18:28:35] [PASSED] drm_test_format_block_width_invalid
[18:28:35] [PASSED] drm_test_format_block_width_one_plane
[18:28:35] [PASSED] drm_test_format_block_width_two_plane
[18:28:35] [PASSED] drm_test_format_block_width_three_plane
[18:28:35] [PASSED] drm_test_format_block_width_tiled
[18:28:35] [PASSED] drm_test_format_block_height_invalid
[18:28:35] [PASSED] drm_test_format_block_height_one_plane
[18:28:35] [PASSED] drm_test_format_block_height_two_plane
[18:28:35] [PASSED] drm_test_format_block_height_three_plane
[18:28:35] [PASSED] drm_test_format_block_height_tiled
[18:28:35] [PASSED] drm_test_format_min_pitch_invalid
[18:28:35] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[18:28:35] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[18:28:35] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[18:28:35] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[18:28:35] [PASSED] drm_test_format_min_pitch_two_plane
[18:28:35] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[18:28:35] [PASSED] drm_test_format_min_pitch_tiled
[18:28:35] =================== [PASSED] drm_format ====================
[18:28:35] ============== drm_framebuffer (10 subtests) ===============
[18:28:35] ========== drm_test_framebuffer_check_src_coords ==========
[18:28:35] [PASSED] Success: source fits into fb
[18:28:35] [PASSED] Fail: overflowing fb with x-axis coordinate
[18:28:35] [PASSED] Fail: overflowing fb with y-axis coordinate
[18:28:35] [PASSED] Fail: overflowing fb with source width
[18:28:35] [PASSED] Fail: overflowing fb with source height
[18:28:35] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[18:28:35] [PASSED] drm_test_framebuffer_cleanup
[18:28:35] =============== drm_test_framebuffer_create ===============
[18:28:35] [PASSED] ABGR8888 normal sizes
[18:28:35] [PASSED] ABGR8888 max sizes
[18:28:35] [PASSED] ABGR8888 pitch greater than min required
[18:28:35] [PASSED] ABGR8888 pitch less than min required
[18:28:35] [PASSED] ABGR8888 Invalid width
[18:28:35] [PASSED] ABGR8888 Invalid buffer handle
[18:28:35] [PASSED] No pixel format
[18:28:35] [PASSED] ABGR8888 Width 0
[18:28:35] [PASSED] ABGR8888 Height 0
[18:28:35] [PASSED] ABGR8888 Out of bound height * pitch combination
[18:28:35] [PASSED] ABGR8888 Large buffer offset
[18:28:35] [PASSED] ABGR8888 Buffer offset for inexistent plane
[18:28:35] [PASSED] ABGR8888 Invalid flag
[18:28:35] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[18:28:35] [PASSED] ABGR8888 Valid buffer modifier
[18:28:35] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[18:28:35] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] NV12 Normal sizes
[18:28:35] [PASSED] NV12 Max sizes
[18:28:35] [PASSED] NV12 Invalid pitch
[18:28:35] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[18:28:35] [PASSED] NV12 different modifier per-plane
[18:28:35] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[18:28:35] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] NV12 Modifier for inexistent plane
[18:28:35] [PASSED] NV12 Handle for inexistent plane
[18:28:35] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[18:28:35] [PASSED] YVU420 Normal sizes
[18:28:35] [PASSED] YVU420 Max sizes
[18:28:35] [PASSED] YVU420 Invalid pitch
[18:28:35] [PASSED] YVU420 Different pitches
[18:28:35] [PASSED] YVU420 Different buffer offsets/pitches
[18:28:35] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[18:28:35] [PASSED] YVU420 Valid modifier
[18:28:35] [PASSED] YVU420 Different modifiers per plane
[18:28:35] [PASSED] YVU420 Modifier for inexistent plane
[18:28:35] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[18:28:35] [PASSED] X0L2 Normal sizes
[18:28:35] [PASSED] X0L2 Max sizes
[18:28:35] [PASSED] X0L2 Invalid pitch
[18:28:35] [PASSED] X0L2 Pitch greater than minimum required
[18:28:35] [PASSED] X0L2 Handle for inexistent plane
[18:28:35] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[18:28:35] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[18:28:35] [PASSED] X0L2 Valid modifier
[18:28:35] [PASSED] X0L2 Modifier for inexistent plane
[18:28:35] =========== [PASSED] drm_test_framebuffer_create ===========
[18:28:35] [PASSED] drm_test_framebuffer_free
[18:28:35] [PASSED] drm_test_framebuffer_init
[18:28:35] [PASSED] drm_test_framebuffer_init_bad_format
[18:28:35] [PASSED] drm_test_framebuffer_init_dev_mismatch
[18:28:35] [PASSED] drm_test_framebuffer_lookup
[18:28:35] [PASSED] drm_test_framebuffer_lookup_inexistent
[18:28:35] [PASSED] drm_test_framebuffer_modifiers_not_supported
[18:28:35] ================= [PASSED] drm_framebuffer =================
[18:28:35] ================ drm_gem_shmem (8 subtests) ================
[18:28:35] [PASSED] drm_gem_shmem_test_obj_create
[18:28:35] [PASSED] drm_gem_shmem_test_obj_create_private
[18:28:35] [PASSED] drm_gem_shmem_test_pin_pages
[18:28:35] [PASSED] drm_gem_shmem_test_vmap
[18:28:35] [PASSED] drm_gem_shmem_test_get_sg_table
[18:28:35] [PASSED] drm_gem_shmem_test_get_pages_sgt
[18:28:35] [PASSED] drm_gem_shmem_test_madvise
[18:28:35] [PASSED] drm_gem_shmem_test_purge
[18:28:35] ================== [PASSED] drm_gem_shmem ==================
[18:28:35] === drm_atomic_helper_connector_hdmi_check (29 subtests) ===
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[18:28:35] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420 =======
[18:28:35] [PASSED] Automatic
[18:28:35] [PASSED] Full
[18:28:35] [PASSED] Limited 16:235
[18:28:35] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[18:28:35] [PASSED] drm_test_check_disable_connector
[18:28:35] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[18:28:35] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[18:28:35] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[18:28:35] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[18:28:35] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[18:28:35] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[18:28:35] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[18:28:35] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[18:28:35] [PASSED] drm_test_check_output_bpc_dvi
[18:28:35] [PASSED] drm_test_check_output_bpc_format_vic_1
[18:28:35] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[18:28:35] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[18:28:35] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[18:28:35] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[18:28:35] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[18:28:35] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[18:28:35] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[18:28:35] ============ drm_test_check_hdmi_color_format =============
[18:28:35] [PASSED] AUTO -> RGB
[18:28:35] [PASSED] YCBCR422 -> YUV422
[18:28:35] [PASSED] YCBCR420 -> YUV420
[18:28:35] [PASSED] YCBCR444 -> YUV444
[18:28:35] [PASSED] RGB -> RGB
[18:28:35] ======== [PASSED] drm_test_check_hdmi_color_format =========
[18:28:35] ======== drm_test_check_hdmi_color_format_420_only ========
[18:28:35] [PASSED] RGB should fail
[18:28:35] [PASSED] YUV444 should fail
[18:28:35] [PASSED] YUV422 should fail
[18:28:35] [PASSED] YUV420 should work
[18:28:35] ==== [PASSED] drm_test_check_hdmi_color_format_420_only ====
[18:28:35] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[18:28:35] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[18:28:35] [PASSED] drm_test_check_broadcast_rgb_value
[18:28:35] [PASSED] drm_test_check_bpc_8_value
[18:28:35] [PASSED] drm_test_check_bpc_10_value
[18:28:35] [PASSED] drm_test_check_bpc_12_value
[18:28:35] [PASSED] drm_test_check_format_value
[18:28:35] [PASSED] drm_test_check_tmds_char_value
[18:28:35] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[18:28:35] = drm_atomic_helper_connector_hdmi_mode_valid (7 subtests) =
[18:28:35] [PASSED] drm_test_check_mode_valid
[18:28:35] [PASSED] drm_test_check_mode_valid_reject
[18:28:35] [PASSED] drm_test_check_mode_valid_reject_rate
[18:28:35] [PASSED] drm_test_check_mode_valid_reject_max_clock
[18:28:35] [PASSED] drm_test_check_mode_valid_yuv420_only_max_clock
[18:28:35] [PASSED] drm_test_check_mode_valid_reject_yuv420_only_connector
[18:28:35] [PASSED] drm_test_check_mode_valid_accept_yuv420_also_connector_rgb
[18:28:35] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[18:28:35] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[18:28:35] [PASSED] drm_test_check_infoframes
[18:28:35] [PASSED] drm_test_check_reject_avi_infoframe
[18:28:35] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[18:28:35] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[18:28:35] [PASSED] drm_test_check_reject_audio_infoframe
[18:28:35] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[18:28:35] ================= drm_managed (2 subtests) =================
[18:28:35] [PASSED] drm_test_managed_release_action
[18:28:35] [PASSED] drm_test_managed_run_action
[18:28:35] =================== [PASSED] drm_managed ===================
[18:28:35] =================== drm_mm (6 subtests) ====================
[18:28:35] [PASSED] drm_test_mm_init
[18:28:35] [PASSED] drm_test_mm_debug
[18:28:35] [PASSED] drm_test_mm_align32
[18:28:35] [PASSED] drm_test_mm_align64
[18:28:35] [PASSED] drm_test_mm_lowest
[18:28:35] [PASSED] drm_test_mm_highest
[18:28:35] ===================== [PASSED] drm_mm ======================
[18:28:35] ============= drm_modes_analog_tv (5 subtests) =============
[18:28:35] [PASSED] drm_test_modes_analog_tv_mono_576i
[18:28:35] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[18:28:35] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[18:28:35] [PASSED] drm_test_modes_analog_tv_pal_576i
[18:28:35] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[18:28:35] =============== [PASSED] drm_modes_analog_tv ===============
[18:28:35] ============== drm_panic_helper (3 subtests) ===============
[18:28:35] ============= drm_test_panic_screen_user_map ==============
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[18:28:35] ========= [PASSED] drm_test_panic_screen_user_map ==========
[18:28:35] ============= drm_test_panic_screen_user_page =============
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[18:28:35] ========= [PASSED] drm_test_panic_screen_user_page =========
[18:28:35] ========== drm_test_panic_screen_user_set_pixel ===========
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 494 x 494 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 RG16 little-endian (0x36314752)
[18:28:35] [PASSED] Panic screen user, mode: 1024 x 768 RG24 little-endian (0x34324752)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 494 x 494 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1920 x 1080 XR24 little-endian (0x34325258)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG16 little-endian (0x36314752)
[18:28:35] [PASSED] Panic screen kmsg, mode: 1024 x 768 RG24 little-endian (0x34324752)
[18:28:35] ====== [PASSED] drm_test_panic_screen_user_set_pixel =======
[18:28:35] ================ [PASSED] drm_panic_helper =================
[18:28:35] ============== drm_plane_helper (2 subtests) ===============
[18:28:35] =============== drm_test_check_plane_state ================
[18:28:35] [PASSED] clipping_simple
[18:28:35] [PASSED] clipping_rotate_reflect
[18:28:35] [PASSED] positioning_simple
[18:28:35] [PASSED] upscaling
[18:28:35] [PASSED] downscaling
[18:28:35] [PASSED] rounding1
[18:28:35] [PASSED] rounding2
[18:28:35] [PASSED] rounding3
[18:28:35] [PASSED] rounding4
[18:28:35] =========== [PASSED] drm_test_check_plane_state ============
[18:28:35] =========== drm_test_check_invalid_plane_state ============
[18:28:35] [PASSED] positioning_invalid
[18:28:35] [PASSED] upscaling_invalid
[18:28:35] [PASSED] downscaling_invalid
[18:28:35] ======= [PASSED] drm_test_check_invalid_plane_state ========
[18:28:35] ================ [PASSED] drm_plane_helper =================
[18:28:35] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[18:28:35] ====== drm_test_connector_helper_tv_get_modes_check =======
[18:28:35] [PASSED] None
[18:28:35] [PASSED] PAL
[18:28:35] [PASSED] NTSC
[18:28:35] [PASSED] Both, NTSC Default
[18:28:35] [PASSED] Both, PAL Default
[18:28:35] [PASSED] Both, NTSC Default, with PAL on command-line
[18:28:35] [PASSED] Both, PAL Default, with NTSC on command-line
[18:28:35] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[18:28:35] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[18:28:35] ================== drm_rect (9 subtests) ===================
[18:28:35] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[18:28:35] [PASSED] drm_test_rect_clip_scaled_not_clipped
[18:28:35] [PASSED] drm_test_rect_clip_scaled_clipped
[18:28:35] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[18:28:35] ================= drm_test_rect_intersect =================
[18:28:35] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[18:28:35] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[18:28:35] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[18:28:35] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[18:28:35] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[18:28:35] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[18:28:35] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[18:28:35] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[18:28:35] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[18:28:35] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[18:28:35] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[18:28:35] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[18:28:35] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[18:28:35] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[18:28:35] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[18:28:35] ============= [PASSED] drm_test_rect_intersect =============
[18:28:35] ================ drm_test_rect_calc_hscale ================
[18:28:35] [PASSED] normal use
[18:28:35] [PASSED] out of max range
[18:28:35] [PASSED] out of min range
[18:28:35] [PASSED] zero dst
[18:28:35] [PASSED] negative src
[18:28:35] [PASSED] negative dst
[18:28:35] ============ [PASSED] drm_test_rect_calc_hscale ============
[18:28:35] ================ drm_test_rect_calc_vscale ================
[18:28:35] [PASSED] normal use
[18:28:35] [PASSED] out of max range
[18:28:35] [PASSED] out of min range
[18:28:35] [PASSED] zero dst
[18:28:35] [PASSED] negative src
[18:28:35] [PASSED] negative dst
[18:28:35] ============ [PASSED] drm_test_rect_calc_vscale ============
[18:28:35] ================== drm_test_rect_rotate ===================
[18:28:35] [PASSED] reflect-x
[18:28:35] [PASSED] reflect-y
[18:28:35] [PASSED] rotate-0
[18:28:35] [PASSED] rotate-90
[18:28:35] [PASSED] rotate-180
[18:28:35] [PASSED] rotate-270
[18:28:35] ============== [PASSED] drm_test_rect_rotate ===============
[18:28:35] ================ drm_test_rect_rotate_inv =================
[18:28:35] [PASSED] reflect-x
[18:28:35] [PASSED] reflect-y
[18:28:35] [PASSED] rotate-0
[18:28:35] [PASSED] rotate-90
[18:28:35] [PASSED] rotate-180
[18:28:35] [PASSED] rotate-270
[18:28:35] ============ [PASSED] drm_test_rect_rotate_inv =============
[18:28:35] ==================== [PASSED] drm_rect =====================
[18:28:35] ============ drm_sysfb_modeset_test (1 subtest) ============
[18:28:35] ============ drm_test_sysfb_build_fourcc_list =============
[18:28:35] [PASSED] no native formats
[18:28:35] [PASSED] XRGB8888 as native format
[18:28:35] [PASSED] remove duplicates
[18:28:35] [PASSED] convert alpha formats
[18:28:35] [PASSED] random formats
[18:28:35] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[18:28:35] ============= [PASSED] drm_sysfb_modeset_test ==============
[18:28:35] ================== drm_fixp (2 subtests) ===================
[18:28:35] [PASSED] drm_test_int2fixp
[18:28:35] [PASSED] drm_test_sm2fixp
[18:28:35] ==================== [PASSED] drm_fixp =====================
[18:28:35] ============================================================
[18:28:35] Testing complete. Ran 667 tests: passed: 667
[18:28:35] Elapsed time: 26.935s total, 1.859s configuring, 24.661s building, 0.409s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[18:28:35] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:28:37] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:28:47] Starting KUnit Kernel (1/1)...
[18:28:47] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:28:47] ================= ttm_device (5 subtests) ==================
[18:28:47] [PASSED] ttm_device_init_basic
[18:28:47] [PASSED] ttm_device_init_multiple
[18:28:47] [PASSED] ttm_device_fini_basic
[18:28:47] [PASSED] ttm_device_init_no_vma_man
[18:28:47] ================== ttm_device_init_pools ==================
[18:28:47] [PASSED] No DMA allocations, no DMA32 required
[18:28:47] [PASSED] DMA allocations, DMA32 required
[18:28:47] [PASSED] No DMA allocations, DMA32 required
[18:28:47] [PASSED] DMA allocations, no DMA32 required
[18:28:47] ============== [PASSED] ttm_device_init_pools ==============
[18:28:47] =================== [PASSED] ttm_device ====================
[18:28:47] ================== ttm_pool (8 subtests) ===================
[18:28:47] ================== ttm_pool_alloc_basic ===================
[18:28:47] [PASSED] One page
[18:28:47] [PASSED] More than one page
[18:28:47] [PASSED] Above the allocation limit
[18:28:47] [PASSED] One page, with coherent DMA mappings enabled
[18:28:47] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:28:47] ============== [PASSED] ttm_pool_alloc_basic ===============
[18:28:47] ============== ttm_pool_alloc_basic_dma_addr ==============
[18:28:47] [PASSED] One page
[18:28:47] [PASSED] More than one page
[18:28:47] [PASSED] Above the allocation limit
[18:28:47] [PASSED] One page, with coherent DMA mappings enabled
[18:28:47] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[18:28:47] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[18:28:47] [PASSED] ttm_pool_alloc_order_caching_match
[18:28:47] [PASSED] ttm_pool_alloc_caching_mismatch
[18:28:47] [PASSED] ttm_pool_alloc_order_mismatch
[18:28:47] [PASSED] ttm_pool_free_dma_alloc
[18:28:47] [PASSED] ttm_pool_free_no_dma_alloc
[18:28:47] [PASSED] ttm_pool_fini_basic
[18:28:47] ==================== [PASSED] ttm_pool =====================
[18:28:47] ================ ttm_resource (8 subtests) =================
[18:28:47] ================= ttm_resource_init_basic =================
[18:28:47] [PASSED] Init resource in TTM_PL_SYSTEM
[18:28:47] [PASSED] Init resource in TTM_PL_VRAM
[18:28:47] [PASSED] Init resource in a private placement
[18:28:47] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[18:28:47] ============= [PASSED] ttm_resource_init_basic =============
[18:28:47] [PASSED] ttm_resource_init_pinned
[18:28:47] [PASSED] ttm_resource_fini_basic
[18:28:47] [PASSED] ttm_resource_manager_init_basic
[18:28:47] [PASSED] ttm_resource_manager_usage_basic
[18:28:47] [PASSED] ttm_resource_manager_set_used_basic
[18:28:47] [PASSED] ttm_sys_man_alloc_basic
[18:28:47] [PASSED] ttm_sys_man_free_basic
[18:28:47] ================== [PASSED] ttm_resource ===================
[18:28:47] =================== ttm_tt (15 subtests) ===================
[18:28:47] ==================== ttm_tt_init_basic ====================
[18:28:47] [PASSED] Page-aligned size
[18:28:47] [PASSED] Extra pages requested
[18:28:47] ================ [PASSED] ttm_tt_init_basic ================
[18:28:47] [PASSED] ttm_tt_init_misaligned
[18:28:47] [PASSED] ttm_tt_fini_basic
[18:28:47] [PASSED] ttm_tt_fini_sg
[18:28:47] [PASSED] ttm_tt_fini_shmem
[18:28:47] [PASSED] ttm_tt_create_basic
[18:28:47] [PASSED] ttm_tt_create_invalid_bo_type
[18:28:47] [PASSED] ttm_tt_create_ttm_exists
[18:28:47] [PASSED] ttm_tt_create_failed
[18:28:47] [PASSED] ttm_tt_destroy_basic
[18:28:47] [PASSED] ttm_tt_populate_null_ttm
[18:28:47] [PASSED] ttm_tt_populate_populated_ttm
[18:28:47] [PASSED] ttm_tt_unpopulate_basic
[18:28:47] [PASSED] ttm_tt_unpopulate_empty_ttm
[18:28:47] [PASSED] ttm_tt_swapin_basic
[18:28:47] ===================== [PASSED] ttm_tt ======================
[18:28:47] =================== ttm_bo (14 subtests) ===================
[18:28:47] =========== ttm_bo_reserve_optimistic_no_ticket ===========
[18:28:47] [PASSED] Cannot be interrupted and sleeps
[18:28:47] [PASSED] Cannot be interrupted, locks straight away
[18:28:47] [PASSED] Can be interrupted, sleeps
[18:28:47] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[18:28:47] [PASSED] ttm_bo_reserve_locked_no_sleep
[18:28:47] [PASSED] ttm_bo_reserve_no_wait_ticket
[18:28:47] [PASSED] ttm_bo_reserve_double_resv
[18:28:47] [PASSED] ttm_bo_reserve_interrupted
[18:28:47] [PASSED] ttm_bo_reserve_deadlock
[18:28:47] [PASSED] ttm_bo_unreserve_basic
[18:28:47] [PASSED] ttm_bo_unreserve_pinned
[18:28:47] [PASSED] ttm_bo_unreserve_bulk
[18:28:47] [PASSED] ttm_bo_fini_basic
[18:28:47] [PASSED] ttm_bo_fini_shared_resv
[18:28:47] [PASSED] ttm_bo_pin_basic
[18:28:47] [PASSED] ttm_bo_pin_unpin_resource
[18:28:47] [PASSED] ttm_bo_multiple_pin_one_unpin
[18:28:47] ===================== [PASSED] ttm_bo ======================
[18:28:47] ============== ttm_bo_validate (22 subtests) ===============
[18:28:47] ============== ttm_bo_init_reserved_sys_man ===============
[18:28:47] [PASSED] Buffer object for userspace
[18:28:47] [PASSED] Kernel buffer object
[18:28:47] [PASSED] Shared buffer object
[18:28:47] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[18:28:47] ============== ttm_bo_init_reserved_mock_man ==============
[18:28:47] [PASSED] Buffer object for userspace
[18:28:47] [PASSED] Kernel buffer object
[18:28:47] [PASSED] Shared buffer object
[18:28:47] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[18:28:47] [PASSED] ttm_bo_init_reserved_resv
[18:28:47] ================== ttm_bo_validate_basic ==================
[18:28:47] [PASSED] Buffer object for userspace
[18:28:47] [PASSED] Kernel buffer object
[18:28:47] [PASSED] Shared buffer object
[18:28:47] ============== [PASSED] ttm_bo_validate_basic ==============
[18:28:47] [PASSED] ttm_bo_validate_invalid_placement
[18:28:47] ============= ttm_bo_validate_same_placement ==============
[18:28:47] [PASSED] System manager
[18:28:47] [PASSED] VRAM manager
[18:28:47] ========= [PASSED] ttm_bo_validate_same_placement ==========
[18:28:47] [PASSED] ttm_bo_validate_failed_alloc
[18:28:47] [PASSED] ttm_bo_validate_pinned
[18:28:47] [PASSED] ttm_bo_validate_busy_placement
[18:28:47] ================ ttm_bo_validate_multihop =================
[18:28:47] [PASSED] Buffer object for userspace
[18:28:47] [PASSED] Kernel buffer object
[18:28:47] [PASSED] Shared buffer object
[18:28:47] ============ [PASSED] ttm_bo_validate_multihop =============
[18:28:47] ========== ttm_bo_validate_no_placement_signaled ==========
[18:28:47] [PASSED] Buffer object in system domain, no page vector
[18:28:47] [PASSED] Buffer object in system domain with an existing page vector
[18:28:47] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[18:28:47] ======== ttm_bo_validate_no_placement_not_signaled ========
[18:28:47] [PASSED] Buffer object for userspace
[18:28:47] [PASSED] Kernel buffer object
[18:28:47] [PASSED] Shared buffer object
[18:28:47] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[18:28:47] [PASSED] ttm_bo_validate_move_fence_signaled
[18:28:47] ========= ttm_bo_validate_move_fence_not_signaled =========
[18:28:47] [PASSED] Waits for GPU
[18:28:47] [PASSED] Tries to lock straight away
[18:28:47] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[18:28:47] [PASSED] ttm_bo_validate_swapout
[18:28:47] [PASSED] ttm_bo_validate_happy_evict
[18:28:47] [PASSED] ttm_bo_validate_all_pinned_evict
[18:28:47] [PASSED] ttm_bo_validate_allowed_only_evict
[18:28:47] [PASSED] ttm_bo_validate_deleted_evict
[18:28:47] [PASSED] ttm_bo_validate_busy_domain_evict
[18:28:47] [PASSED] ttm_bo_validate_evict_gutting
[18:28:47] [PASSED] ttm_bo_validate_recrusive_evict
[18:28:47] ================= [PASSED] ttm_bo_validate =================
[18:28:47] ============================================================
[18:28:47] Testing complete. Ran 102 tests: passed: 102
[18:28:47] Elapsed time: 12.076s total, 1.855s configuring, 10.006s building, 0.179s running
+ for kcfg in "${kunitconfigs[@]}"
+ [[ ! -f /kernel/drivers/dma-buf/.kunitconfig ]]
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/dma-buf/.kunitconfig
[18:28:47] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[18:28:49] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[18:28:58] Starting KUnit Kernel (1/1)...
[18:28:58] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[18:28:58] =============== dma-buf-fence (12 subtests) ================
[18:28:58] [PASSED] test_sanitycheck
[18:28:58] [PASSED] test_signaling
[18:28:58] [PASSED] test_add_callback
[18:28:58] [PASSED] test_late_add_callback
[18:28:58] [PASSED] test_rm_callback
[18:28:58] [PASSED] test_late_rm_callback
[18:28:58] [PASSED] test_status
[18:28:58] [PASSED] test_error
[18:28:58] [PASSED] test_wait
[18:28:58] [PASSED] test_wait_timeout
[18:28:58] [PASSED] test_stub
[18:28:58] [SKIPPED] test_race_signal_callback (requires at least 2 CPUs)
[18:28:58] ================== [PASSED] dma-buf-fence ==================
[18:28:58] ============ dma-buf-fence-chain (11 subtests) =============
[18:28:58] [PASSED] test_sanitycheck
[18:28:58] [PASSED] test_find_seqno
[18:28:58] [PASSED] test_find_signaled
[18:28:58] [PASSED] test_find_out_of_order
[18:29:03] [PASSED] test_find_gap
[18:29:03] [PASSED] test_find_race
[18:29:03] [PASSED] test_signal_forward
[18:29:03] [PASSED] test_signal_backward
[18:29:03] [PASSED] test_wait_forward
[18:29:03] [PASSED] test_wait_backward
[18:29:03] [PASSED] test_wait_random
[18:29:03] =============== [PASSED] dma-buf-fence-chain ===============
[18:29:03] ============ dma-buf-fence-unwrap (11 subtests) ============
[18:29:03] [PASSED] test_sanitycheck
[18:29:03] [PASSED] test_unwrap_array
[18:29:03] [PASSED] test_unwrap_chain
[18:29:03] [PASSED] test_unwrap_chain_array
[18:29:03] [PASSED] test_unwrap_merge
[18:29:03] [PASSED] test_unwrap_merge_duplicate
[18:29:03] [PASSED] test_unwrap_merge_seqno
[18:29:03] [PASSED] test_unwrap_merge_order
[18:29:03] [PASSED] test_unwrap_merge_complex
[18:29:03] [PASSED] test_unwrap_merge_complex_seqno
[18:29:03] [PASSED] test_dedup_empty
[18:29:03] ============== [PASSED] dma-buf-fence-unwrap ===============
[18:29:03] ================ dma-buf-resv (5 subtests) =================
[18:29:03] [PASSED] test_sanitycheck
[18:29:03] ===================== test_signaling ======================
[18:29:03] [PASSED] kernel
[18:29:03] [PASSED] write
[18:29:03] [PASSED] read
[18:29:03] [PASSED] bookkeep
[18:29:03] ================= [PASSED] test_signaling ==================
[18:29:03] ====================== test_for_each ======================
[18:29:03] [PASSED] kernel
[18:29:03] [PASSED] write
[18:29:03] [PASSED] read
[18:29:03] [PASSED] bookkeep
[18:29:03] ================== [PASSED] test_for_each ==================
[18:29:03] ================= test_for_each_unlocked ==================
[18:29:03] [PASSED] kernel
[18:29:03] [PASSED] write
[18:29:03] [PASSED] read
[18:29:03] [PASSED] bookkeep
[18:29:03] ============= [PASSED] test_for_each_unlocked ==============
[18:29:03] ===================== test_get_fences =====================
[18:29:03] [PASSED] kernel
[18:29:03] [PASSED] write
[18:29:03] [PASSED] read
[18:29:03] [PASSED] bookkeep
[18:29:03] ================= [PASSED] test_get_fences =================
[18:29:03] ================== [PASSED] dma-buf-resv ===================
[18:29:03] ============================================================
[18:29:03] Testing complete. Ran 51 tests: passed: 50, skipped: 1
[18:29:03] Elapsed time: 16.007s total, 1.870s configuring, 8.766s building, 5.336s running
+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI
2026-10-28 18:19 ` [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
@ 2026-10-28 18:29 ` sashiko-bot
2026-10-28 22:58 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 14+ messages in thread
From: sashiko-bot @ 2026-10-28 18:29 UTC (permalink / raw)
To: Badal Nilawar, intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] drm/xe: wrong Kconfig check in xe_late_bind_init() for CRI
--
commit 4506929d511f2d47da604ed04955ac5e9cacd5bb
Author: Badal Nilawar <badal.nilawar@intel.com>
drm/xe/xe_late_bind_fw: Enable late binding support for CRI
This commit enables late binding firmware support for fan control and ocode on
Crescent Island (CRI) by setting .late_bind_mask in cri_desc.
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 33e0ea0d406a0..190eaee5250eb 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -488,6 +488,8 @@ static const struct xe_device_desc cri_desc = {
> .has_sriov = true,
> .has_sysctrl = true,
> .has_temp_sentinel = true,
> + .late_bind_mask = BIT(XE_LB_FW_FAN_CONTROL) |
> + BIT(XE_LB_FW_OCODE),
[Severity: Medium]
Does xe_late_bind_init() also need to be updated to check for
CONFIG_INTEL_MEI_CSC when initializing late binding on CRI?
Unlike Battlemage (bmg_desc), which sets .has_heci_cscfi = 1 and registers an
auxiliary device bound by the mei-gsc driver (CONFIG_INTEL_MEI_GSC), Crescent
Island exposes its MEI CSC controller as a standalone PCI device bound by the
mei-csc driver (CONFIG_INTEL_MEI_CSC):
drivers/misc/mei/pci-csc.c:
static const struct pci_device_id mei_csc_pci_tbl[] = {
{ PCI_DEVICE_DATA(INTEL, MEI_CRI, MEI_ME_CSC_CFG) },
{ }
};
However, xe_device_probe() -> xe_late_bind_init() unconditionally checks
CONFIG_INTEL_MEI_GSC:
drivers/gpu/drm/xe/xe_late_bind_fw.c:xe_late_bind_init() {
...
if (!IS_ENABLED(CONFIG_INTEL_MEI_LB) || !IS_ENABLED(CONFIG_INTEL_MEI_GSC)) {
drm_info(&xe->drm, "Can't init xe mei late bind missing mei component\n");
return 0;
}
...
}
If CONFIG_INTEL_MEI_LB and CONFIG_INTEL_MEI_CSC are enabled without
CONFIG_INTEL_MEI_GSC, xe_late_bind_init() will bail out and skip loading the
fan_control and ocode firmware on CRI.
Conversely, if CONFIG_INTEL_MEI_LB and CONFIG_INTEL_MEI_GSC are enabled while
CONFIG_INTEL_MEI_CSC is disabled, xe_late_bind_init() will register the
component and queue xe_late_bind_work(), which will then sleep for
LB_INIT_TIMEOUT_MS (20 seconds) per firmware image waiting for a component
bind that never happens.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261028181951.1093283-7-badal.nilawar@intel.com?part=4
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
2026-10-28 18:19 ` [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
@ 2026-10-28 18:31 ` sashiko-bot
2026-10-29 16:43 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 14+ messages in thread
From: sashiko-bot @ 2026-10-28 18:31 UTC (permalink / raw)
To: Badal Nilawar, intel-xe
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] drm/xe: unreachable INTEL_LB_STATUS_IP_ERROR_START and missing status in xe_late_bind_parse_status()
--
commit 24b78786ca211ddb93b253dbb3bc2c006a8f78c6
Author: Badal Nilawar <badal.nilawar@intel.com>
drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
This commit enables loading the Ocode firmware through the late binding
flow by querying the SDK API version from the System Controller mailbox
and verifying it against the firmware manifest. It also removes the 4K
payload size limit and expands the status string table in
xe_late_bind_parse_status().
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 881a46abc4f51..39c47b743edc9 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
[ ... ]
> @@ -179,6 +188,34 @@ static const char *xe_late_bind_parse_status(uint32_t status)
> return "Invalid Payload";
> case INTEL_LB_STATUS_TIMEOUT:
> return "Timeout";
> + case INTEL_LB_STATUS_INTERNAL_ERROR:
> + return "Internal Error";
> + case INTEL_LB_STATUS_INVALID_FPT_TABLE:
> + return "Invalid FPT Table";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_VERIFICATION_ERROR:
> + return "Signed Payload Verification Error";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_CPD:
> + return "Signed Payload Invalid CPD";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_FW_VERSION_MISMATCH:
> + return "Signed Payload FW Version Mismatch";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_MANIFEST:
> + return "Signed Payload Invalid Manifest";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_HASH:
> + return "Signed Payload Invalid Hash";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_BINDING_TYPE_MISMATCH:
> + return "Signed Payload Binding type Mismatch";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_HANDLE_SVN_FAILED:
> + return "Signed Payload Handle SVN Failed";
> + case INTEL_LB_STATUS_DESTINATION_MBOX_FAILURE:
> + return "Destination MBOX Failure";
> + case INTEL_LB_STATUS_MISSING_LOADING_PATCH:
> + return "Missing Loading Patch";
> + case INTEL_LB_STATUS_INVALID_COMMAND:
> + return "Invalid Command";
> + case INTEL_LB_STATUS_INVALID_HECI_HEADER:
> + return "Invalid HECI Header";
> + case INTEL_LB_STATUS_IP_ERROR_START:
> + return "IP Error Start";
[Severity: Low]
Can the INTEL_LB_STATUS_IP_ERROR_START case in xe_late_bind_parse_status()
ever be reached?
In include/drm/intel/intel_lb_mei_interface.h, enum intel_lb_status defines
INTEL_LB_STATUS_IP_ERROR_START as BIT(31):
INTEL_LB_STATUS_TIMEOUT = 7,
INTEL_LB_STATUS_BUFFER_TOO_SMALL = 8,
INTEL_LB_STATUS_INTERNAL_ERROR = 9,
...
INTEL_LB_STATUS_IP_ERROR_START = BIT(31),
However, in drivers/gpu/drm/xe/xe_late_bind_fw.c, the sole caller
xe_late_bind_work() stores the return value of push_payload() in a signed
int and only invokes xe_late_bind_parse_status() when ret > 0:
if (ret > 0)
drm_err(&xe->drm, "Load %s firmware failed with err %d, %s\n",
fw_id_to_name[lbfw->id], ret, xe_late_bind_parse_status(ret));
else
drm_err(&xe->drm, "Load %s firmware failed with err %d",
fw_id_to_name[lbfw->id], ret);
Because BIT(31) is negative when stored in a signed 32-bit int, a failure
returning INTEL_LB_STATUS_IP_ERROR_START will take the else branch instead
of calling xe_late_bind_parse_status().
Also, should INTEL_LB_STATUS_BUFFER_TOO_SMALL (8), which sits between
INTEL_LB_STATUS_TIMEOUT (7) and INTEL_LB_STATUS_INTERNAL_ERROR (9) in
enum intel_lb_status, be included in this switch statement so it does not
fall through to "Unknown error"?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261028181951.1093283-7-badal.nilawar@intel.com?part=3
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Xe.CI.BAT: success for Add ocode late binding support for CRI (rev5)
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
` (5 preceding siblings ...)
2026-10-28 18:29 ` ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev5) Patchwork
@ 2026-10-28 19:04 ` Patchwork
2026-10-29 5:03 ` ✓ Xe.CI.FULL: " Patchwork
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-10-28 19:04 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 868 bytes --]
== Series Details ==
Series: Add ocode late binding support for CRI (rev5)
URL : https://patchwork.freedesktop.org/series/162657/
State : success
== Summary ==
CI Bug Log - changes from xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76_BAT -> xe-pw-162657v5_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (15 -> 15)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* Linux: xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76 -> xe-pw-162657v5
IGT_9169: 9169
xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76: f00a1fa90fcfdf84b1600e0aca74c965fb86fe76
xe-pw-162657v5: 162657v5
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/index.html
[-- Attachment #2: Type: text/html, Size: 1416 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry
2026-10-28 18:19 ` [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
@ 2026-10-28 20:56 ` Ceraolo Spurio, Daniele
0 siblings, 0 replies; 14+ messages in thread
From: Ceraolo Spurio, Daniele @ 2026-10-28 20:56 UTC (permalink / raw)
To: Badal Nilawar, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, michael.j.ruhl, alexander.usyskin,
anoop.c.vijay, shamim.begum, kelvin.gardiner
On 10/28/2026 11:19 AM, Badal Nilawar wrote:
> Release firmware when the "LTES" manifest entry is not found in the
> firmware header.
>
> Fixes: efa29317a553 ("drm/xe/xe_late_bind_fw: Extract and print version info")
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Daniele
> ---
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 15 ++++++++-------
> 1 file changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 768442ca7da6..1bddfaf0fb9f 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -335,19 +335,19 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
> if (fw->size > XE_LB_MAX_PAYLOAD_SIZE) {
> drm_err(&xe->drm, "Firmware %s size %zu is larger than max pay load size %u\n",
> lb_fw->blob_path, fw->size, XE_LB_MAX_PAYLOAD_SIZE);
> - release_firmware(fw);
> - return -ENODATA;
> + ret = -ENODATA;
> + goto release_fw;
> }
>
> ret = parse_lb_layout(lb_fw, fw->data, fw->size, "LTES");
> if (ret)
> - return ret;
> + goto release_fw;
>
> lb_fw->payload_size = fw->size;
> lb_fw->payload = drmm_kzalloc(&xe->drm, lb_fw->payload_size, GFP_KERNEL);
> if (!lb_fw->payload) {
> - release_firmware(fw);
> - return -ENOMEM;
> + ret = -ENOMEM;
> + goto release_fw;
> }
>
> drm_info(&xe->drm, "Using %s firmware from %s version %u.%u.%u.%u\n",
> @@ -356,10 +356,11 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
> lb_fw->version.hotfix, lb_fw->version.build);
>
> memcpy((void *)lb_fw->payload, fw->data, lb_fw->payload_size);
> - release_firmware(fw);
> INIT_WORK(&lb_fw->work, xe_late_bind_work);
>
> - return 0;
> +release_fw:
> + release_firmware(fw);
> + return ret;
> }
>
> static int xe_late_bind_fw_init(struct xe_late_bind *late_bind)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI
2026-10-28 18:19 ` [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
2026-10-28 18:29 ` sashiko-bot
@ 2026-10-28 22:58 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 14+ messages in thread
From: Ceraolo Spurio, Daniele @ 2026-10-28 22:58 UTC (permalink / raw)
To: Badal Nilawar, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, michael.j.ruhl, alexander.usyskin,
anoop.c.vijay, shamim.begum, kelvin.gardiner
On 10/28/2026 11:19 AM, Badal Nilawar wrote:
> Enable late binding support for CRI
>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
> ---
> drivers/gpu/drm/xe/xe_pci.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index a3e035a077c8..a18eed8d1a97 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -488,6 +488,8 @@ static const struct xe_device_desc cri_desc = {
> .has_sriov = true,
> .has_sysctrl = true,
> .has_temp_sentinel = true,
> + .late_bind_mask = BIT(XE_LB_FW_FAN_CONTROL) |
> + BIT(XE_LB_FW_OCODE),
> .max_gt_per_tile = 2,
> MULTI_LRC_MASK,
> .require_force_probe = true,
^ permalink raw reply [flat|nested] 14+ messages in thread
* ✓ Xe.CI.FULL: success for Add ocode late binding support for CRI (rev5)
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
` (6 preceding siblings ...)
2026-10-28 19:04 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-10-29 5:03 ` Patchwork
7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2026-10-29 5:03 UTC (permalink / raw)
To: Badal Nilawar; +Cc: intel-xe
[-- Attachment #1: Type: text/plain, Size: 25136 bytes --]
== Series Details ==
Series: Add ocode late binding support for CRI (rev5)
URL : https://patchwork.freedesktop.org/series/162657/
State : success
== Summary ==
CI Bug Log - changes from xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76_FULL -> xe-pw-162657v5_FULL
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (3 -> 3)
------------------------------
No changes in participating hosts
Known issues
------------
Here are the changes found in xe-pw-162657v5_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@kms_big_fb@4-tiled-8bpp-rotate-90:
- shard-bmg: NOTRUN -> [SKIP][1] ([Intel XE#2327]) +2 other tests skip
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
- shard-bmg: NOTRUN -> [SKIP][2] ([Intel XE#1124]) +4 other tests skip
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html
* igt@kms_bw@linear-tiling-2-displays-target-2160x1440p:
- shard-bmg: NOTRUN -> [SKIP][3] ([Intel XE#367]) +2 other tests skip
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_bw@linear-tiling-2-displays-target-2160x1440p.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-d-hdmi-a-3:
- shard-bmg: NOTRUN -> [INCOMPLETE][4] ([Intel XE#7084] / [Intel XE#8150])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs@pipe-d-hdmi-a-3.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][5] ([Intel XE#3432])
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc:
- shard-bmg: NOTRUN -> [SKIP][6] ([Intel XE#2887]) +3 other tests skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2652]) +16 other tests skip
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs@pipe-c-dp-2.html
* igt@kms_chamelium_color_pipeline@plane-lut3d-green-only:
- shard-bmg: NOTRUN -> [SKIP][8] ([Intel XE#7358]) +2 other tests skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_chamelium_color_pipeline@plane-lut3d-green-only.html
* igt@kms_chamelium_frames@hdmi-crc-single:
- shard-bmg: NOTRUN -> [SKIP][9] ([Intel XE#2252]) +1 other test skip
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_chamelium_frames@hdmi-crc-single.html
* igt@kms_color_pipeline@plane-lut1d-pre-ctm3x4@pipe-d-plane-4:
- shard-bmg: NOTRUN -> [SKIP][10] ([Intel XE#6969]) +7 other tests skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_color_pipeline@plane-lut1d-pre-ctm3x4@pipe-d-plane-4.html
* igt@kms_content_protection@content-type-change:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#7642])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_content_protection@content-type-change.html
* igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-1:
- shard-bmg: NOTRUN -> [FAIL][12] ([Intel XE#3304] / [Intel XE#7374])
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-7/igt@kms_content_protection@legacy-hdcp14@pipe-a-dp-1.html
* igt@kms_content_protection@legacy@pipe-a-dp-1:
- shard-bmg: NOTRUN -> [FAIL][13] ([Intel XE#3304])
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-7/igt@kms_content_protection@legacy@pipe-a-dp-1.html
* igt@kms_cursor_crc@cursor-onscreen-max-size:
- shard-bmg: NOTRUN -> [SKIP][14] ([Intel XE#2320]) +1 other test skip
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_cursor_crc@cursor-onscreen-max-size.html
* igt@kms_cursor_crc@cursor-rapid-movement-512x512:
- shard-bmg: NOTRUN -> [SKIP][15] ([Intel XE#2321] / [Intel XE#7355])
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html
* igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#1508])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html
* igt@kms_dp_link_training@non-uhbr-mst-direct-train:
- shard-bmg: NOTRUN -> [SKIP][17] ([Intel XE#9532])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_dp_link_training@non-uhbr-mst-direct-train.html
* igt@kms_dp_link_training@non-uhbr-sst-tbtalt-train:
- shard-bmg: NOTRUN -> [SKIP][18] ([Intel XE#9539])
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_dp_link_training@non-uhbr-sst-tbtalt-train.html
* igt@kms_dsc@dsc-basic:
- shard-bmg: NOTRUN -> [SKIP][19] ([Intel XE#8265])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_dsc@dsc-basic.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-lnl: [PASS][20] -> [FAIL][21] ([Intel XE#301]) +1 other test fail
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-lnl-8/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling:
- shard-bmg: NOTRUN -> [SKIP][22] ([Intel XE#7178] / [Intel XE#7351]) +2 other tests skip
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-upscaling.html
* igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x:
- shard-bmg: NOTRUN -> [SKIP][23] ([Intel XE#7179])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x.html
* igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][24] ([Intel XE#7061] / [Intel XE#7356]) +1 other test skip
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-abgr161616f-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-spr-indfb-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][25] ([Intel XE#2311]) +23 other tests skip
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_frontbuffer_tracking@drrshdr-1p-primscrn-spr-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-render:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#4141]) +4 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-render:
- shard-bmg: NOTRUN -> [SKIP][27] ([Intel XE#7061]) +2 other tests skip
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_frontbuffer_tracking@fbchdr-abgr161616f-draw-render.html
* igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt:
- shard-bmg: NOTRUN -> [SKIP][28] ([Intel XE#2313]) +28 other tests skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-blt.html
* igt@kms_joiner@invalid-modeset-big-joiner:
- shard-bmg: NOTRUN -> [SKIP][29] ([Intel XE#6901])
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_joiner@invalid-modeset-big-joiner.html
* igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier:
- shard-bmg: NOTRUN -> [SKIP][30] ([Intel XE#7283])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-cc-modifier.html
* igt@kms_plane@planar-pixel-format-settings@nv12-tile4-src-y:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#8076])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_plane@planar-pixel-format-settings@nv12-tile4-src-y.html
* igt@kms_plane_lowres@tiling-y:
- shard-bmg: NOTRUN -> [SKIP][32] ([Intel XE#2393])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_plane_lowres@tiling-y.html
* igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#2763] / [Intel XE#6886]) +9 other tests skip
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html
* igt@kms_pm_dc@dc3co-vpb-framegap:
- shard-bmg: NOTRUN -> [SKIP][34] ([Intel XE#8395] / [Intel XE#8396]) +1 other test skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_pm_dc@dc3co-vpb-framegap.html
* igt@kms_pm_dc@dc3co-vpb-framegap@psr2-xrgb8888:
- shard-bmg: NOTRUN -> [SKIP][35] ([Intel XE#8396]) +1 other test skip
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@kms_pm_dc@dc3co-vpb-framegap@psr2-xrgb8888.html
* igt@kms_pm_rpm@modeset-lpsp-stress:
- shard-bmg: NOTRUN -> [SKIP][36] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#7383] / [Intel XE#836])
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_pm_rpm@modeset-lpsp-stress.html
* igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
- shard-bmg: NOTRUN -> [SKIP][37] ([Intel XE#1489]) +2 other tests skip
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr@psr-sprite-plane-onoff:
- shard-bmg: NOTRUN -> [SKIP][38] ([Intel XE#2234] / [Intel XE#2850]) +4 other tests skip
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_psr@psr-sprite-plane-onoff.html
* igt@kms_sharpness_filter@filter-scaler-downscale:
- shard-bmg: NOTRUN -> [SKIP][39] ([Intel XE#6503]) +1 other test skip
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_sharpness_filter@filter-scaler-downscale.html
* igt@kms_vrr@flip-dpms:
- shard-bmg: NOTRUN -> [SKIP][40] ([Intel XE#1499] / [Intel XE#9271])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_vrr@flip-dpms.html
* igt@xe_cw_post_sync@walker-post-sync:
- shard-bmg: NOTRUN -> [SKIP][41] ([Intel XE#8608])
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@xe_cw_post_sync@walker-post-sync.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [PASS][42] -> [INCOMPLETE][43] ([Intel XE#6321] / [Intel XE#8355])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-10/igt@xe_evict@evict-mixed-many-threads-small.html
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-1/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_evict@evict-small-external-multi-queue:
- shard-bmg: NOTRUN -> [SKIP][44] ([Intel XE#8370])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@xe_evict@evict-small-external-multi-queue.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind:
- shard-bmg: NOTRUN -> [SKIP][45] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html
* igt@xe_exec_fault_mode@atomic-many:
- shard-bmg: [PASS][46] -> [FAIL][47] ([Intel XE#8578])
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-9/igt@xe_exec_fault_mode@atomic-many.html
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-5/igt@xe_exec_fault_mode@atomic-many.html
* igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate:
- shard-bmg: NOTRUN -> [SKIP][48] ([Intel XE#8374]) +4 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@xe_exec_fault_mode@many-multi-queue-userptr-invalidate.html
* igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr:
- shard-bmg: NOTRUN -> [SKIP][49] ([Intel XE#8364]) +14 other tests skip
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr.html
* igt@xe_exec_threads@threads-multi-queue-mixed-fd-rebind:
- shard-bmg: NOTRUN -> [SKIP][50] ([Intel XE#8378]) +2 other tests skip
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@xe_exec_threads@threads-multi-queue-mixed-fd-rebind.html
* igt@xe_live_ktest@xe_eudebug:
- shard-bmg: NOTRUN -> [SKIP][51] ([Intel XE#2833])
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@xe_live_ktest@xe_eudebug.html
* igt@xe_multigpu_svm@mgpu-pagefault-conflict:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#6964]) +2 other tests skip
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@xe_multigpu_svm@mgpu-pagefault-conflict.html
* igt@xe_pm@s4-basic-exec:
- shard-lnl: [PASS][53] -> [ABORT][54] ([Intel XE#9362]) +1 other test abort
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-lnl-8/igt@xe_pm@s4-basic-exec.html
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-lnl-4/igt@xe_pm@s4-basic-exec.html
* igt@xe_prefetch_fault@l2-prefetch-fault:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#8815])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@xe_prefetch_fault@l2-prefetch-fault.html
* igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#4733] / [Intel XE#7417])
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@xe_pxp@pxp-src-to-pxp-dest-rendercopy.html
* igt@xe_query@multigpu-query-hwconfig:
- shard-bmg: NOTRUN -> [SKIP][57] ([Intel XE#944]) +1 other test skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@xe_query@multigpu-query-hwconfig.html
#### Possible fixes ####
* igt@core_hotunplug@hotreplug:
- shard-bmg: [ABORT][58] ([Intel XE#9463]) -> [PASS][59]
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-8/igt@core_hotunplug@hotreplug.html
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-4/igt@core_hotunplug@hotreplug.html
* igt@kms_async_flips@alternate-sync-async-flip-atomic:
- shard-bmg: [FAIL][60] ([Intel XE#3718] / [Intel XE#6078]) -> [PASS][61]
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip-atomic.html
* igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-d-dp-2:
- shard-bmg: [FAIL][62] ([Intel XE#6078]) -> [PASS][63]
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-10/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-d-dp-2.html
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-8/igt@kms_async_flips@alternate-sync-async-flip-atomic@pipe-d-dp-2.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
- shard-lnl: [FAIL][64] -> [PASS][65]
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-lnl-3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-lnl-1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
* igt@kms_bw@linear-tiling-1-displays-target-3840x2160p:
- shard-bmg: [SKIP][66] ([Intel XE#367]) -> [PASS][67]
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-3/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-7/igt@kms_bw@linear-tiling-1-displays-target-3840x2160p.html
* igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20@pipe-a:
- shard-lnl: [DMESG-WARN][68] ([Intel XE#9513]) -> [PASS][69] +1 other test pass
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-lnl-3/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20@pipe-a.html
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-lnl-1/igt@kms_plane_scaling@planes-downscale-factor-0-75-upscale-20x20@pipe-a.html
#### Warnings ####
* igt@kms_hdr@brightness-with-hdr:
- shard-bmg: [SKIP][70] ([Intel XE#3544]) -> [SKIP][71] ([Intel XE#3374] / [Intel XE#3544])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-9/igt@kms_hdr@brightness-with-hdr.html
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-bmg: [SKIP][72] ([Intel XE#2509] / [Intel XE#7437]) -> [SKIP][73] ([Intel XE#2426] / [Intel XE#5848])
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76/shard-bmg-3/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/shard-bmg-6/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
[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#1508]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1508
[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#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#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
[Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
[Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
[Intel XE#2509]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2509
[Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2833]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2833
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
[Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
[Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
[Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
[Intel XE#3718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3718
[Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#5848]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5848
[Intel XE#6078]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6078
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
[Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
[Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901
[Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
[Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
[Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
[Intel XE#7084]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7084
[Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
[Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
[Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
[Intel XE#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#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
[Intel XE#7374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7374
[Intel XE#7383]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7383
[Intel XE#7417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7417
[Intel XE#7437]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7437
[Intel XE#7642]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7642
[Intel XE#8076]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8076
[Intel XE#8150]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8150
[Intel XE#8265]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8265
[Intel XE#8355]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8355
[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#8395]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8395
[Intel XE#8396]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8396
[Intel XE#8578]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8578
[Intel XE#8608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8608
[Intel XE#8815]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/8815
[Intel XE#9271]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9271
[Intel XE#9362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9362
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
[Intel XE#9463]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9463
[Intel XE#9513]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9513
[Intel XE#9532]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9532
[Intel XE#9539]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/9539
Build changes
-------------
* Linux: xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76 -> xe-pw-162657v5
IGT_9169: 9169
xe-6022-f00a1fa90fcfdf84b1600e0aca74c965fb86fe76: f00a1fa90fcfdf84b1600e0aca74c965fb86fe76
xe-pw-162657v5: 162657v5
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-162657v5/index.html
[-- Attachment #2: Type: text/html, Size: 27364 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware
2026-10-28 18:19 ` [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
2026-10-28 18:31 ` sashiko-bot
@ 2026-10-29 16:43 ` Ceraolo Spurio, Daniele
1 sibling, 0 replies; 14+ messages in thread
From: Ceraolo Spurio, Daniele @ 2026-10-29 16:43 UTC (permalink / raw)
To: Badal Nilawar, intel-xe
Cc: anshuman.gupta, rodrigo.vivi, michael.j.ruhl, alexander.usyskin,
anoop.c.vijay, shamim.begum, kelvin.gardiner
On 10/28/2026 11:19 AM, Badal Nilawar wrote:
> Enable loading of Ocode, the legacy OOBMSM firmware, through the
> late binding flow. The payload size check is no longer needed as
> late binding supports larger payloads.
>
> Ocode may not remain backward compatible across IFWI updates. Query
> the SDK API version from the System Controller mailbox and load the
> corresponding xe/cri_ocode_<ver>.bin. Skip loading the firmware if
> the SDK API version in its manifest does not match.
>
> Assisted-by: LLM
> Signed-off-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
> drivers/gpu/drm/xe/abi/uc_fw_abi.h | 3 +-
> drivers/gpu/drm/xe/xe_late_bind_fw.c | 76 ++++++++++++++++---
> drivers/gpu/drm/xe/xe_late_bind_fw_types.h | 6 +-
> drivers/gpu/drm/xe/xe_sysctrl.c | 32 ++++++++
> drivers/gpu/drm/xe/xe_sysctrl.h | 1 +
> drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h | 12 +++
> 6 files changed, 117 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/abi/uc_fw_abi.h b/drivers/gpu/drm/xe/abi/uc_fw_abi.h
> index 198e949660e0..ef734825d949 100644
> --- a/drivers/gpu/drm/xe/abi/uc_fw_abi.h
> +++ b/drivers/gpu/drm/xe/abi/uc_fw_abi.h
> @@ -331,7 +331,8 @@ struct gsc_manifest_header {
> struct gsc_version meu_kit_version;
> u32 meu_manifest_version;
> u8 general_data[4];
> - u8 reserved3[56];
> + u16 sdk_api_version;
As far as I can see from the specs, what we actually have here is a
u8[24] field which is reserved for data that is specific to the type of
FW the header belongs to. Since this is the generic header definition,
it needs to reflect that and not the ocode-specific usage of that field.
We have something similar in the css header, where one chunk of it is
different between GuC and HuC (see uc_css_guc_info). Following the same
approach we used there, we could do something like:
struct ocode_manifest_data {
u16 sdk_api_version;
u8 reserved [22];
}
and then in gsc_manifest_header you can have:
struct gsc_manifest_header {
[...]
union {
ip_specific_data[24];
struct ocode_manifest_data ocode_data;
}
[...]
}
> + u8 reserved3[54];
> u32 modulus_size; /* in dwords */
> u32 exponent_size; /* in dwords */
> } __packed;
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 881a46abc4f5..39c47b743edc 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -17,6 +17,12 @@
> #include "xe_pcode.h"
> #include "xe_pcode_api.h"
> #include "xe_pm.h"
> +#include "xe_sysctrl.h"
> +
> +/*
> + * TODO: Add MODULE_FIRMWARE() for xe/cri_ocode_<ver>.bin once the
> + * Ocode firmware binary is available upstream.
> + */
>
> /*
> * The component should load quite quickly in most cases, but it could take
> @@ -33,10 +39,12 @@
>
> static const u32 fw_id_to_type[] = {
> [XE_LB_FW_FAN_CONTROL] = INTEL_LB_TYPE_FAN_CONTROL,
> + [XE_LB_FW_OCODE] = INTEL_LB_TYPE_OCODE,
> };
>
> static const char * const fw_id_to_name[] = {
> [XE_LB_FW_FAN_CONTROL] = "fan_control",
> + [XE_LB_FW_OCODE] = "ocode",
> };
>
> static struct xe_device *
> @@ -104,6 +112,7 @@ static int parse_cpd_header(struct xe_late_bind_fw *lb_fw,
> manifest = data + offset;
>
> lb_fw->version = manifest->fw_version;
> + lb_fw->sdk_api_version = manifest->sdk_api_version;
>
> return 0;
> }
> @@ -179,6 +188,34 @@ static const char *xe_late_bind_parse_status(uint32_t status)
> return "Invalid Payload";
> case INTEL_LB_STATUS_TIMEOUT:
> return "Timeout";
> + case INTEL_LB_STATUS_INTERNAL_ERROR:
> + return "Internal Error";
> + case INTEL_LB_STATUS_INVALID_FPT_TABLE:
> + return "Invalid FPT Table";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_VERIFICATION_ERROR:
> + return "Signed Payload Verification Error";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_CPD:
> + return "Signed Payload Invalid CPD";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_FW_VERSION_MISMATCH:
> + return "Signed Payload FW Version Mismatch";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_MANIFEST:
> + return "Signed Payload Invalid Manifest";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_INVALID_HASH:
> + return "Signed Payload Invalid Hash";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_BINDING_TYPE_MISMATCH:
> + return "Signed Payload Binding type Mismatch";
> + case INTEL_LB_STATUS_SIGNED_PAYLOAD_HANDLE_SVN_FAILED:
> + return "Signed Payload Handle SVN Failed";
> + case INTEL_LB_STATUS_DESTINATION_MBOX_FAILURE:
> + return "Destination MBOX Failure";
> + case INTEL_LB_STATUS_MISSING_LOADING_PATCH:
> + return "Missing Loading Patch";
> + case INTEL_LB_STATUS_INVALID_COMMAND:
> + return "Invalid Command";
> + case INTEL_LB_STATUS_INVALID_HECI_HEADER:
> + return "Invalid HECI Header";
> + case INTEL_LB_STATUS_IP_ERROR_START:
> + return "IP Error Start";
As far as I can see the defines for those status code are already merged
to the mei header, so adding the extra logs for them could be split to
their own patch to keep this one focused on the ocode fetch and sdk
comparison.
Daniele
> default:
> return "Unknown error";
> }
> @@ -298,6 +335,7 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
> struct xe_late_bind_fw *lb_fw;
> const struct firmware *fw;
> u32 num_fans;
> + u16 sdk_ver = 0;
> int ret;
>
> if (fw_id >= XE_LB_FW_MAX_ID)
> @@ -320,9 +358,23 @@ static int (struct xe_late_bind *late_bind, u32 fw_id)
> return 0;
> }
>
> - snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path), "xe/%s_8086_%04x_%04x_%04x.bin",
> - fw_id_to_name[lb_fw->id], pdev->device,
> - pdev->subsystem_vendor, pdev->subsystem_device);
> + if (lb_fw->type == INTEL_LB_TYPE_OCODE) {
> + /* Get SDK API version */
> + ret = xe_sysctrl_sdk_api_version(xe, &sdk_ver);
> + if (ret) {
> + drm_warn(&xe->drm, "Failed to get OCODE SDK API version: %pe\n",
> + ERR_PTR(ret));
> + return 0;
> + }
> +
> + snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path),
> + "xe/cri_ocode_%u.bin", sdk_ver);
> + } else {
> + snprintf(lb_fw->blob_path, sizeof(lb_fw->blob_path),
> + "xe/%s_8086_%04x_%04x_%04x.bin",
> + fw_id_to_name[lb_fw->id], pdev->device,
> + pdev->subsystem_vendor, pdev->subsystem_device);
> + }
>
> drm_dbg(&xe->drm, "Request late binding firmware %s\n", lb_fw->blob_path);
> ret = firmware_request_nowarn(&fw, lb_fw->blob_path, xe->drm.dev);
> @@ -332,17 +384,17 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
> return 0;
> }
>
> - if (fw->size > XE_LB_MAX_PAYLOAD_SIZE) {
> - drm_err(&xe->drm, "Firmware %s size %zu is larger than max pay load size %u\n",
> - lb_fw->blob_path, fw->size, XE_LB_MAX_PAYLOAD_SIZE);
> - ret = -ENODATA;
> - goto release_fw;
> - }
> -
> ret = parse_lb_layout(lb_fw, fw->data, fw->size, "LTES");
> if (ret)
> goto release_fw;
>
> + if (lb_fw->type == INTEL_LB_TYPE_OCODE && lb_fw->sdk_api_version != sdk_ver) {
> + drm_warn(&xe->drm, "%s late binding fw: SDK API version mismatch %u != %u\n",
> + fw_id_to_name[lb_fw->id], lb_fw->sdk_api_version, sdk_ver);
> + ret = 0;
> + goto release_fw;
> + }
> +
> lb_fw->payload_size = fw->size;
> lb_fw->payload = drmm_kzalloc(&xe->drm, lb_fw->payload_size, GFP_KERNEL);
> if (!lb_fw->payload) {
> @@ -355,6 +407,10 @@ static int __xe_late_bind_fw_init(struct xe_late_bind *late_bind, u32 fw_id)
> lb_fw->version.major, lb_fw->version.minor,
> lb_fw->version.hotfix, lb_fw->version.build);
>
> + if (lb_fw->type == INTEL_LB_TYPE_OCODE)
> + drm_info(&xe->drm, "%s firmware SDK API version %u\n",
> + fw_id_to_name[lb_fw->id], lb_fw->sdk_api_version);
> +
> memcpy((void *)lb_fw->payload, fw->data, lb_fw->payload_size);
> INIT_WORK(&lb_fw->work, xe_late_bind_work);
>
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
> index ee5efe60774e..c7b3ffc743cf 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw_types.h
> @@ -13,14 +13,14 @@
>
> #include "abi/uc_fw_abi.h"
>
> -#define XE_LB_MAX_PAYLOAD_SIZE SZ_4K
> -
> /**
> * enum xe_late_bind_fw_id - enum to determine late binding fw index
> */
> enum xe_late_bind_fw_id {
> /** @XE_LB_FW_FAN_CONTROL: Fan control */
> XE_LB_FW_FAN_CONTROL = 0,
> + /** @XE_LB_FW_OCODE: Ocode firmware */
> + XE_LB_FW_OCODE,
> /** @XE_LB_FW_MAX_ID: Number of IDs */
> XE_LB_FW_MAX_ID
> };
> @@ -45,6 +45,8 @@ struct xe_late_bind_fw {
> struct work_struct work;
> /** @version: late binding blob manifest version */
> struct gsc_version version;
> + /** @sdk_api_version: late binding blob manifest SDK API version */
> + u16 sdk_api_version;
> };
>
> /**
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl.c b/drivers/gpu/drm/xe/xe_sysctrl.c
> index 4067e1dfdcd5..27a59e8e4487 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl.c
> +++ b/drivers/gpu/drm/xe/xe_sysctrl.c
> @@ -217,3 +217,35 @@ bool xe_sysctrl_is_diag_fw_ready(struct xe_device *xe)
> return xe_sysctrl_check_app_status(xe, XE_SYSCTRL_APP_DIAG) ==
> XE_SYSCTRL_FIRMWARE_APP_INITIALIZED;
> }
> +
> +/**
> + * xe_sysctrl_sdk_api_version - Get SDK API version
> + * @xe: Xe device
> + * @version: SDK API version
> + *
> + * Return: 0 on success, negative error code on failure.
> + */
> +int xe_sysctrl_sdk_api_version(struct xe_device *xe, u16 *version)
> +{
> + struct xe_sysctrl_sdk_api_resp resp = {};
> + struct xe_sysctrl_mailbox_command cmd = {};
> + size_t out_len = 0;
> + int ret;
> +
> + xe_sysctrl_create_command(&cmd, XE_SYSCTRL_GROUP_CORE, XE_SYSCTRL_CMD_SDK_API_VERSION,
> + 0, 0, &resp, sizeof(resp));
> +
> + ret = xe_sysctrl_send_command(&xe->sc, &cmd, &out_len);
> + if (ret)
> + return ret;
> +
> + if (out_len != sizeof(resp)) {
> + xe_err(xe, "sysctrl: unexpected SDK API version length %zu (expected %zu)\n",
> + out_len, sizeof(resp));
> + return -EPROTO;
> + }
> +
> + *version = resp.sdk_api_version;
> +
> + return 0;
> +}
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl.h b/drivers/gpu/drm/xe/xe_sysctrl.h
> index b69a3f474236..c0b6d4330c88 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl.h
> @@ -22,5 +22,6 @@ 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);
> +int xe_sysctrl_sdk_api_version(struct xe_device *xe, u16 *version);
>
> #endif
> diff --git a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> index 1f3f782d770e..cdacceebca06 100644
> --- a/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> +++ b/drivers/gpu/drm/xe/xe_sysctrl_mailbox_types.h
> @@ -57,10 +57,12 @@ enum xe_sysctrl_gfsp_cmd {
> *
> * @XE_SYSCTRL_CMD_LOOPBACK: Loopback test command
> * @XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID: Retrieve application status by ID
> + * @XE_SYSCTRL_CMD_SDK_API_VERSION: Get SDK API version
> */
> enum xe_sysctrl_core_cmd {
> XE_SYSCTRL_CMD_LOOPBACK = 0x03,
> XE_SYSCTRL_CMD_GET_APP_STATUS_BY_ID = 0x05,
> + XE_SYSCTRL_CMD_SDK_API_VERSION = 0x06,
> };
>
> /**
> @@ -126,6 +128,16 @@ enum xe_sysctrl_fw_status {
> XE_SYSCTRL_FIRMWARE_COMM_FAILURE,
> };
>
> +/**
> + * struct xe_sysctrl_sdk_api_resp - Get sdk api version response
> + */
> +struct xe_sysctrl_sdk_api_resp {
> + /** @sdk_api_version: SDK API version */
> + u16 sdk_api_version;
> + /** @reserved: Reserved for future use */
> + u16 reserved;
> +} __packed;
> +
> /**
> * struct xe_sysctrl_mailbox_command - System Controller mailbox command
> */
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2026-10-29 16:44 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-28 18:19 [PATCH v5 0/5] Add ocode late binding support for CRI Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 1/5] drm/xe/xe_late_bind_fw: Fix firmware leak on missing manifest entry Badal Nilawar
2026-10-28 20:56 ` Ceraolo Spurio, Daniele
2026-10-28 18:19 ` [PATCH v5 2/5] drm/xe/xe_late_bind_fw: Convert late bind flag to mask Badal Nilawar
2026-10-28 18:19 ` [PATCH v5 3/5] drm/xe/xe_late_bind_fw: Add support to load Ocode firmware Badal Nilawar
2026-10-28 18:31 ` sashiko-bot
2026-10-29 16:43 ` Ceraolo Spurio, Daniele
2026-10-28 18:19 ` [PATCH v5 4/5] drm/xe/xe_late_bind_fw: Enable late binding support for CRI Badal Nilawar
2026-10-28 18:29 ` sashiko-bot
2026-10-28 22:58 ` Ceraolo Spurio, Daniele
2026-10-28 18:19 ` [PATCH v5 5/5] drm/xe/xe_late_bind_fw: Refactor pm flow Badal Nilawar
2026-10-28 18:29 ` ✓ CI.KUnit: success for Add ocode late binding support for CRI (rev5) Patchwork
2026-10-28 19:04 ` ✓ Xe.CI.BAT: " Patchwork
2026-10-29 5:03 ` ✓ Xe.CI.FULL: " Patchwork
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.